已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
五邑大学实验报告实验课程名称数字频率计的Verilog HDL语言实现院系名称: 信息工程学院 专业名称: 通信工程(物联网工程) 实验项目名称: EDA实验 班级 : 110711学号: 11071107报告人:冯剑波实验六 数字频率计的Verilog HDL语言实现一、实验目的:1、掌握较复杂数字电路或系统的纯Verilog HDL实现方法;2、体会纯Verilog HDL语言输入设计与原理图输入设计的差别。二、实验原理:数字频率计是用来测量输入信号的频率并显示测量结果的系统。一般基准时钟的高电平的持续时间为,若在这内被测信号的周期数为则被测信号的频率就是,选择不同的,可以得到不同的测量精度。一般越大,测量精度越高,但一次的测量时间及频率计所需的硬件资源也增加。三、设计任务与要求:1、设计一个6位频率计,测量范围从1Hz到99 99 99Hz,测量结果用6个数码管显示,基准时钟频率为1Hz;2、只显示测量结果,中间计数过程不显示;结果更新时间2秒一次;3、频率计只设一个复位键,按下该键(reset=0)系统复位,释放该键(reset=1)系统工作,测量并显示结果。4、显示用静态方式;5、用Verilog HDL实现上述要求的频率计。四、设计源程序及注释与仿真结果设计源程序:module pinlvji(oHEX0,oHEX1,oHEX2,oHEX3,oHEX4,oHEX5,clk_50M,clk_1Hz,reset,signal_out);input clk_50M,reset; /50MHz时钟输入、复位output6:0 oHEX0,oHEX1,oHEX2,oHEX3,oHEX4,oHEX5; /数码管0-5,分别显示个、十、百、千、万、十万位的数字output reg clk_1Hz;output reg signal_out;reg signal_in;reg29:0 cnt;reg29:0 cnt1;reg count_en; /计数允许,count_en=1时计数,下降沿到来时锁存 reg load;reg3:0 ge,shi,bai,qian,wan,shiwan;reg cout1,cout2,cout3,cout4,cout5;reg3:0 q0,q1,q2,q3,q4,q5;wire clr;always (posedge clk_50M) /改变Hz的范围,自己设定的频率1Hz-999999Hzbegincnt1=cnt1+1;if(cnt1=25_000_0) begin signal_out=0;signal_in=0;endelse if(cnt1=50_000_0) cnt1=0;else begin signal_out=1;signal_in=0;endendalways (posedge clk_50M) /50M分频产生1Hz时钟begincnt=cnt+1;if(cnt=25_000_000) clk_1Hz=0;else if(cnt=50_000_000) cnt=0;else clk_1Hz=1;end/*被测信号signal_in作为个位的输入,,signal_in上升沿到来时ge位+1;进位输出是cout1,作为十位的输入*/always (posedge signal_out or posedge reset or posedge clr) begin if(reset) ge=0; else if(clr) ge=0; else begin if(count_en) begin if(ge=9) begin ge=0;cout1=1;end else begin ge=ge+1;cout1=0;end end endend/*cout1作为十位的输入,cout1上升沿到来时shi位+1;进位输出是cout2,作为百位的输入*/always (posedge cout1 or posedge reset or posedge clr) begin if(reset) shi=0; else if(clr) shi=0; else begin if(count_en) begin if(shi=9) begin shi=0;cout2=1;end else begin shi=shi+1;cout2=0;end end endend/*cout2作为百位的输入,cout2上升沿到来时bai位+1;进位输出是cout3,作为千位的输入*/always (posedge cout2 or posedge reset or posedge clr) begin if(reset) bai=0; else if(clr) bai=0; else begin if(count_en) begin if(bai=9) begin bai=0;cout3=1;end else begin bai=bai+1;cout3=0;end end endend/*cout3作为千位的输入,cout3上升沿到来时qian位+1;进位输出是cout4,作为万位的输入*/always (posedge cout3 or posedge reset or posedge clr) begin if(reset) qian=0; else if(clr) qian=0; else begin if(count_en) begin if(qian=9) begin qian=0;cout4=1;end else begin qian=qian+1;cout4=0;end end endendalways (posedge cout4 or posedge reset or posedge clr) begin if(reset) wan=0; else if(clr) wan=0; else begin if(count_en) begin if(wan=9) begin wan=0;cout5=1;end else begin wan=wan+1;cout5=0;end end endendalways (posedge cout5 or posedge reset or posedge clr) begin if(reset) shiwan=0; else if(clr) shiwan=0; else begin if(count_en) begin if(bai=9) begin shiwan=9;end else begin shiwan=shiwan+1;end end endend/*count_en=1时计数,count_en=0不允许计数*/always (posedge clk_1Hz or posedge reset)begin if(reset) begin count_en=0;end else begin count_en=count_en;load=count_en;endend/*count_en下降沿到来时锁存数据*/always (negedge count_en)begin q0=ge; q1=shi; q2=bai; q3=qian; q4=wan; q5=shiwan;endassign clr=clk_1Hz&load;/*调用数码管显示*/led7s u0(q0,oHEX0);led7s u1(q1,oHEX1);led7s u2(q2,oHEX2);led7s u3(q3,oHEX3);led7s u4(q4,oHEX4);led7s u5(q5,oHEX5);endmodulemodule led7s(datain,ledout);input3:0 datain; output reg6:0 ledout;always begin case(datain) 0: ledout=7b1000000; 1: ledout=7b1111001; 2: ledout=7b0100100; 3: ledout=7b0110000; 4: ledout=7b0011001; 5: ledout=7b0010010; 6: ledout=7b0000010; 7: ledout=7b1111000; 8: ledout=7b0000000; 9: ledout=7b0010000; default:ledout=7b1000000; endcase endendmodule仿真波型:5、 心得体会虽然我以前上了Verilog HDL语言,但是这都实习中还是碰到了一些问题,通过向老师,向同学寻求帮助和在网上,在图书馆查找相关的资料来一点点解决遇到的问题,从中感觉自己对VHDL语言的理解又进了一步!对硬件描述语言和纯元件语言,如c语言之间的差别又有了更深一层次的理解,不过自我感觉想要对VHDL语言要很熟练的掌握的话,还需要多多的联系才行的。六、思考题1、本设计的测量结果在6个数码管上显示,若采用静态显示的方式,每位显示需4根输出线,共需24根据输出线;若用动态扫描方式,只需6+7=13根线。什么叫动态扫描显示方式?你能写出动态扫描输出显示的程序吗?答: 动态数码扫描显示方式是利用了人眼的视觉暂留效应,把6个数码管按一定顺序(从左至右或从右至左)进行点亮,当点亮的频率(即扫描频率)不大时,我们看到的是数码管一个个的点亮,然而,当点亮频率足够大时,我们看到的不再是一个一个的点亮,而是全部同时显示(点亮),与传统方式得到的视觉效果完全一样。动态扫描输出显示的程序如下:module led_dong(seg,sl,clk); /静态模块显示output 7:0 seg; /定义数码管段输出引脚output3:0 sl; /定义数码管位(选择)输出引脚input clk; /定义输入时钟引脚reg 7:0 seg_reg; /定义数码管段输出寄存器reg 5:0 sl_reg; /定义数码管位输出寄存器reg 5:0 disp_dat; /定义显示数据寄存器reg 29:0 count; /定义计数器寄存器always(posedge clk) /定义clk信号下降延触发 begin count=count+1; /计数器加1 endalways(count18:17) /定义显示数据触发事件 begincase(count18:17) /定义扫描显示数据3b000:disp_dat=6b100000; /显示十万位数3b001:disp_dat=6b010000; /显示万位数 3b010:disp_dat=6b001000; /显示千位数 3b011:disp_dat=6b000100; /显示百位数 3b100:disp_dat=6b000010; /显示十位数 3b101:disp_dat=6b000001; /显示个位数 endcase case(count19:17) /选择数码管显示位 3b000:sl_reg=6b100000; /选择个位数码管 3b001:sl_reg=6b010000; /选择十位数码管 3b010:sl_reg=6b001000; /选择百位数码管 3b011:sl_reg=6b000100; /选择千位数码管3b100:sl_reg=6b000010; /选择万位数码管3b101:sl_reg=6b000001; /选择十万位数码管 endcase endalways(disp_dat) /显示译码输出 begin case(disp_dat) /选择输出数据 6h0:seg_reg=8hc0; /显示0 6h1:seg_reg=8hf9; /显示1 6h2:seg_reg=8ha4; /显示2 6h3:seg_reg=8hb0; /显示3 6h4:seg_reg=8h99; /显示4 6h5:seg_reg=8h92; /显示5 6h6:seg_reg=8h82; /显示6 6h7:seg_reg=8hf8; /显示7 6h8:seg_reg=8h80; /显示8 6h9:seg_reg=8h90; /显示9 6ha:seg_reg=8h88; /显示a 6hb:seg_reg=8h83; /显示b 6hc:seg_reg=8hc6; /
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年乌鲁木齐客运知识考试答案解析
- 2024年辽宁客运从业资格证考试试题库及答案详解图片
- 2024年拉萨客运资格证恢复考试
- 2024年海西客运从业资格证考试培训试题和答案
- 房建施工阶段工程造价控制要点探讨
- 电梯自纠自查报告范文
- 食堂食材配送服务相关管理制度
- 专题02首字母填空100题(重难词汇)-2022-2023学年七年级英语下学期期末复习查缺补漏冲刺满分(人教版)
- 专题00物质的推断之知识清单-冲刺2023年中考化学物质的推断专练
- 2024年大庆房屋买卖协议
- 《城市轨道交通桥梁养护技术规范》
- 《水土保持技术》课件-项目八 拦渣措施
- 机动车检测站违规检验整改报告
- 2024年建筑电工复审考试题库附答案
- 2024年4月自考04737C++程序设计试题及答案含评分参考
- 睡眠医学智慧树知到期末考试答案章节答案2024年广州医科大学
- GB/T 17259-2024机动车用液化石油气钢瓶
- 国开(河北)2024年《中外政治思想史》形成性考核1-4答案
- 床边护理带教体会
- 2024年社区工作者考试必背1000题题库及必背答案
- MOOC 微型计算机原理与接口技术-南京邮电大学 中国大学慕课答案
评论
0/150
提交评论