当前位置: 首页 > news >正文

抚州市网站建设_网站建设公司_CSS_seo优化

梅兰商贸网站开发设计,网站前置审批在哪里办,51外链代发网,互联网保险和线下保险的优缺点1.1 总体设计 1.1.1 概述 学习了明德扬至简设计法和明德扬设计规范#xff0c;本人用FPGA设计了一个测距系统。该系统采用超声波进行测量距离再在数码管上显示。在本案例的设计过程中包括了超声波的驱动、三线式数码管显示等技术。经过逐步改进、调试等一系列工作后#xf…1.1 总体设计 1.1.1 概述 学习了明德扬至简设计法和明德扬设计规范本人用FPGA设计了一个测距系统。该系统采用超声波进行测量距离再在数码管上显示。在本案例的设计过程中包括了超声波的驱动、三线式数码管显示等技术。经过逐步改进、调试等一系列工作后最终完成了此设计并进行上板验证下面将完整的设计记录与大家分享。 1.1.2 设计目标 此系统将实时显示前方障碍与装置之间的距离。 1.1.3 系统结构框图 系统结构框图如下所示 1.1.4 模块功能 hc_sr04模块实现功能 该模块通过控制触发信号trig10us的TTL使内部循环发出8个40KHZ脉冲即驱动超声波接收回响信号echo通过echo得到距离。 显示模块实现功能 该模块完成了对所测距离通过数码管对其显示。 1.1.5顶层信号 1.1.6顶层代码 module top( clk , rst_n , echo , trig , sel,seg );input clk ; input rst_n ; input echo ;output trig ;wire [3:0] s_g ;wire [3:0] s_s ;wire [3:0] s_b ;wire [3:0] s_q ;output [7:0] sel ;output [7:0] seg ;hc_sr04 hc_sr04_1(.clk (clk) ,.rst_n (rst_n) ,.echo (echo) ,.trig (trig) ,.s_g (s_g ),.s_s (s_s ),.s_b (s_b ),.s_q (s_q ) );seg_disp u_seg_disp(.clk (clk ),.rst_n (rst_n),.segment_data({s_q,s_b,s_s,s_g}),.segment (seg ),.seg_sel (sel ) );endmodule1.2 hc_sr04模块设计 1.2.1 接口信号 1.2.2 设计思路 我们只需要提供一个短期的10uS脉冲触发信号trig该模块内部将发出8个40kHz周期电平并检测回波一旦检测到有回波信号则输出回响信号回响信号echo是一个脉冲的宽度成正比的距离变量可通过发射信号到收到的回响信号时间间隔可以计算得到距离。建议测量周期为60ms以上以防止发射信号对回响信号的影响这里我们采用的是1s测量一次。 时钟计数器cnt0用于计算 1 秒的时钟个数加一条件为1表示一直计数结束条件为数到 TIME_1S 表示数到 1 秒就清零。 距离计数器 h_cnt用于计算flag为高电平的宽度的时间如果flag为1h_cnt就加一每完成1秒计数后h_cnt就变为0此外h_cnt等于h_cnt。 模块时序图 1.2.3 参考代码 module hc_sr04( clk , rst_n , echo , trig , s_g , s_s , s_b , s_q );parameter DATA_W 14 ;parameter TIME_1S 50_000_000;input clk ; input rst_n ; input echo ;output trig ; output[ 3:0] s_g ; output[ 3:0] s_s ; output[ 3:0] s_b ; output[ 3:0] s_q ; wire trig ; reg [ 3:0] s_g ; reg [ 3:0] s_s ; reg [ 3:0] s_b ; reg [ 3:0] s_q ; reg [DATA_W-1:0] distance;reg [25:0] cnt0 ; reg [20:0] h_cnt ; reg echo_2 ; reg echo_1 ; wire add_cnt0; wire end_cnt0; wire flag_h ; wire flag_l ;always (posedge clk or negedge rst_n)beginif(!rst_n)begincnt0 0;endelse if(add_cnt0)beginif(end_cnt0)cnt0 0;elsecnt0 cnt0 1b1;end endassign add_cnt0 1; assign end_cnt0 add_cnt0 cnt0 TIME_1S - 1;assign trig (cnt0500cnt01000)?1:0;always (posedge clk or negedge rst_n)beginif(rst_n1b0)beginecho_1 0;echo_2 0;endelse beginecho_1 echo ;echo_2 echo_1;end endalways (posedge clk or negedge rst_n)beginif(!rst_n)beginh_cnt 0;endelse if(add_h_cnt)beginif(end_h_cnt)h_cnt 0;elseh_cnt h_cnt 1;endelse if(end_cnt0)beginh_cnt 0;end endassign add_h_cnt echo_2; assign end_h_cnt 0 ; always (posedge clk or negedge rst_n)beginif(rst_n1b0)begindistance 0;endelse if(add_cnt0 cnt0 45_000_000-1)begindistance h_cnt*34/10000;end endalways (posedge clk or negedge rst_n)beginif(rst_n1b0)begins_g 0;endelse begins_g distance%10;end endalways (posedge clk or negedge rst_n)beginif(rst_n1b0)begins_s 0;endelse begins_s (distance/10)%10;end end always (posedge clk or negedge rst_n)beginif(rst_n1b0)begins_b 0;endelse begins_b (distance/100)%10;end endalways (posedge clk or negedge rst_n)beginif(rst_n1b0)begins_q 0;endelse begins_q (distance/1000)%10;endendendmodule 1.3 显示模块设计 1.3.1接口信号 1.3.2设计思路 该模块对数码管的位选信号sel每隔1ms的时间移位一次也就是1ms循环亮一个灯由于1ms的频率肉眼观察不出我们看到的就是4个灯全亮。 对输入距离distance进行求余处理得到每一位的数据通过case语句让每一位数据形成段选信号通过位选信号的控制显示在对应的数码管上。 1.3.3参考代码 module seg_disp( clk , rst_n , segment_data, segment , seg_sel ); parameter ZERO 8’b1100_0000 ; parameter ONE 8’b1111_1001 ; parameter TWO 8’b1010_0100 ; parameter THREE 8’b1011_0000 ; parameter FOUR 8’b1001_1001 ; parameter FIVE 8’b1001_0010 ; parameter SIX 8’b1000_0010 ; parameter SEVEN 8’b1111_1000 ; parameter EIGHT 8’b1000_0000 ; parameter NINE 8’b1001_0000 ; input clk ; input rst_n ; input [31:0] segment_data ; output [7:0 ] segment ; output [7:0 ] seg_sel ; reg [7:0 ] segment ; reg [7:0 ] seg_sel ; reg [10:0] delay ; reg [3:0 ] delay_time ; wire add_delay_time ; wire end_delay_time ; wire add_delay ; wire end_delay ; wire [3:0 ] segment_tmp ; always (posedge clk or negedge rst_n) begin if (rst_n0) begin delay 0; end else if(add_delay) begin if(end_delay) delay 0; else delay delay1 ; end end assign add_delay 1; assign end_delay add_delay delay 2000-1 ; always (posedge clk or negedge rst_n) begin if (rst_n0) begin delay_time 0; end else if(add_delay_time) begin if(end_delay_time) delay_time 0; else delay_time delay_time1 ; end end assign add_delay_time end_delay; assign end_delay_time add_delay_time delay_time 8-1 ; assign segment_tmp segment_data[(1delay_time)*4-1 -:4]; always (posedge clk or negedge rst_n)begin if(rst_n1’b0)begin segment ZERO; end else begin case(segment_tmp) 4’d0:segment ZERO; 4’d1:segment ONE ; 4’d2:segment TWO ; 4’d3:segment THREE; 4’d4:segment FOUR ; 4’d5:segment FIVE ; 4’d6:segment SIX ; 4’d7:segment SEVEN; 4’d8:segment EIGHT; 4’d9:segment NINE ; default:begin segment segment; end endcase end end always (posedge clk or negedge rst_n)begin if(rst_n1’b0)begin seg_sel 8’b1111_1111; end else begin seg_sel ~(8’b1delay_time); end end endmodule 1.4 效果和总结 上板验证效果 在这个设计中使用明德扬的至简设计法让我的思路非常清晰逻辑非常严谨虽然没有做到一遍成功但在调试过程中我都比较快速的找到问题并快速解决。对于学习FPGA的同学我非常推荐使用明德扬至简设计法和明德扬模块进行学习和设计。 教学视频和工程源代码请移步明德扬论坛学习 好消息FPGA至简设计200例已更新学习链接https://pan.baidu.com/s/181l9fKI8BXwR7HuAF-ok0w 提取码yt5p 【FPGA至简设计200例】毕业设计案例由浅入深步骤性教学明德扬 温馨提示明德扬2023推出了全新课程——逻辑设计基本功修炼课降低学习FPGA门槛的同时增加了学习的趣味性并组织了考试赢积分活动 http://www.mdy-edu.com/ffkc/415.html 点击→了解课程详情☝
http://www.ihoyoo.com/news/13650.html

相关文章:

  • 网站改版 百度一个app下载免费下载安装
  • 怎样才能建设一歌网站中职网站建设教学计划
  • 怎么学好网站开发中国大唐集团公司招聘网站
  • 个人网站怎么做代码广西桂林旅游几月份去最好
  • 优秀创意网站php网站用到的知识
  • 深圳网页设计兴田德润赞扬廊坊视频优化效果
  • 做详情页比较好的网站大专有动漫设计专业吗
  • 深圳开发公司网站在国外做外国的网站合法吗
  • 网站建设咨询电话wordpress搜索页自定义
  • 湖北建设执业资格注册中心网站深圳网站建设便捷
  • 好多职业培训网站是怎么做的安装wordpress中文
  • 泰安网络推广 网站建设 网站优化wordpress模板代码编辑插件
  • 手机网站如何制作四川营销网站建设
  • 任丘网站建设支付宝小程序定制
  • 做网站一屏有多大顺德网站建设策划
  • 在那里建立公司网站敬请期待英文怎么写
  • 东莞企业网站建设开发公司长沙seo建站
  • datadata.asp 网站 破解室内设计网站大全网
  • 太原本地网站搭建公司公司做网站推广的价格
  • 宁波外贸seo网站建设网站源码上传安装包
  • 找网站建设公司哪家最好wordpress ent 主题
  • 简单网站建设推荐长沙专业网站优化定制
  • 哪个网站专门做商铺啊东莞58同城广告推广公司
  • 北京网站设计联系方式重庆巫溪网站建设
  • 在iis搭建网站wordpress 发布插件
  • 钟表网站模板大数据
  • 有没有做网站源代码 修改的安康市网站开发
  • 电商网站设计价格兄弟们给个能用的网站
  • 黑龙江建设网官方网站特种作业火车采集器 wordpress
  • 电子商务网站的数据库怎么做如何做一个宣传片