课程设计-=--基于veriloghdl数字频率计设计与实现内容摘要:
Q1,Q2,Q3,Q4,Q5)。 output [3:0] Q0,Q1,Q2,Q3,Q4,Q5。 input clk。 input [3:0] A0,A1,A2,A3,A4,A5。 reg [3:0] Q0,Q1,Q2,Q3,Q4,Q5。 always @(posedge clk) begin Q0 = A0。 Q1 = A1。 Q2 = A2。 Q3 = A3。 Q4 = A4。 Q5 = A5。 end Endmodule 该模块定义输入端口如下: ● clk:所存数据信号输入,当 clk 的上升沿到来时,寄存器将输入端信号锁存进寄存器 ,并且改变输出。 ● A0,A1,A2,A3,A4,A5:寄存器的数据输入端 该模块定义输出端口如下: ● Q0,Q1,Q2,Q3,Q4,Q5:寄存器的数据输出端。 在 Altera 公司的软件工具 QuartusII 中编译和波形仿真得到波形如图 所示。 22 图 寄存器模块的仿真波形 多路选择模块 data_mux 多路选择模块实现测量频率值的分时显示,即动态显示。 经过多路选择器模块来分时地传输数据。 多路选择模块的结构如图 所示。 图 多路选择模块结构框图 根据模块 实现的功能设计 Verilog HDL 源代码如下: module data_mux(disp_select,A0,A1,A2,A3,A4,A5,Q)。 output [3:0] Q。 input [2:0]disp_select。 input [3:0] A0,A1,A2,A3,A4,A5。 reg [3:0] Q。 always @(disp_select,A5,A4,A3,A2,A1,A0,Q) begin case(disp_select) 339。 b000: Q = A5。 339。 b001: Q = A4。 339。 b010: Q = A3。 339。 b011: Q = A2。 339。 b100: Q = A1。 339。 b101: Q = A0。 default: Q = 439。 b0。 endcase end Endmodule 23 该模块定义输入端口如下: ● disp_select:选择信号输入 ● A0,A1,A2,A3,A4,A5:多路选择模块的数据输入端口 该模块定义输出端口如下: ● 多路选择模块的数据输出端口。 在 Altera 公司的软件工具 QuartusII 中编译和波形仿真得到波形如图 所示。 图 多路选择模块的仿真波形 动态位选模块 dispselect 动态位选模块用来驱动数码动态地显示频率测量数据,分时地选择各个数码管进行显示 动态位选的结构框图 所示。 24 图 动态位选模块的结构框图 根据模块实现的功能设计 Verilog HDL 源代码如下: module dispselect(clk,disp_select,Q)。 output [5:0] Q。 output [2:0] disp_select。 input clk。 reg [5:0] Q。 reg [2:0] disp_select。 always @(posedge clk) begin if(disp_select 339。 b101) disp_select = disp_select + 339。 b1。 else disp_select = 339。 b0。 case(disp_select) 339。 b000: Q = 639。 b100000。 339。 b001: Q = 639。 b010000。 339。 b010: Q = 639。 b001000。 339。 b011: Q = 639。 b000100。 339。 b100: Q = 639。 b000010。 339。 b101: Q = 639。 b000001。 default: Q = 639。 b000000。 endcase end endmodule 该模块定义输入端口如下: ● clk:动态位选的时钟信号输入,一般取 1KHz 左右的标准时钟。 该模块定义输出端口如下: ● disp_select:动态位选中间量输出,用于与系统中其他模块之间的同步。 ● Q:动态位选信号输出,可以直接接到数码管的公共端。 在 Altera 公司的软件工具 QuartusII 中编译和波形仿真得到波形如图 所示。 25 图 动态位选模块的仿真波形 BCD 译码模块 dispdecoder BCD 译码模块主要实现 BCD 码到 7 段数码管显示码字段的转换,同时,考虑到频 率测量中的一些“零”的处理,比如选择量程 1~999999Hz,但被测信号频率为 100Hz,这样在显示的时候就需要将 6为数码管的前三位屏蔽。 BCD 译码模块的结构框图如图 所示。 图 BCD 译码模块的结构框图 根据模块实现的功能设计 Verilog HDL 源代码如下: module dispdecoder( data_in, disp_select, dp_s1hz,dp_s10hz,dp_s100hz, Q5,Q4,Q3,Q2,Q1,Q0,counter_out, data_out, dp)。 output [6:0] data_out。 output dp。 input [3:0] data_in。 input [2:0] disp_select。 input dp_s1hz,dp_s10hz,dp_s100hz。 input [3:0] Q5,Q4,Q3,Q2,Q1,Q0。 input counter_out。 reg dp。 reg [6:0] data_out。 reg hide。 initial begin dp = 139。 b0。 hide = 139。 b0。 end 26 //译码显示数据 always @(data_in,hide,data_out) begin if(hide == 139。 b0) begin case(data_in) 439。 b0000 : data_out = 739。 b1111110。 //0 439。 b0001 : data_out = 739。 b0110000。 //1 439。 b0010 : data_out = 739。 b1101101。 //2 439。 b0011 : data_out = 739。 b1111001。 //3 439。 b0100 : data_out = 739。 b0110011。 //4 439。 b0101 : data_out = 739。 b1011011。 //5 439。 b0110 : data_out = 739。 b1011111。 //6 439。 b0111 : data_out = 739。 b1110000。 //7 439。 b1000 : data_out = 739。 b1111111。 //8 439。 b1001 : data_out = 739。 b1110011。 //9 default : data_out = 739。 b0000000。 endcase end end //小数点位置与零数字的处理 always @(disp_select,dp_s1hz,dp_s10hz,dp_s100hz, Q5,Q4,Q3,Q2,Q1,counter_out,dp,hide) begin if (((disp_select == 339。 b001) amp。 amp。 (dp_s100hz == 139。 b1))|| ((disp_select == 339。 b011) amp。 amp。 (dp_s10hz == 139。 b1))|| ((disp_select == 339。 b101) amp。 amp。 (dp_s1hz == 139。 b1))) dp = 139。 b1。 else dp = 139。 b0。 case(disp_select) 339。 b000: begin if((counter_out == 139。 b0) amp。 amp。 (Q5 == 439。 b0)) hide = 139。 b1。 else hide = 139。 b0。 end 339。 b001: begin if((counter_out == 139。 b0) amp。 amp。 (Q5 == 439。 b0) amp。 amp。 (Q4 == 439。 b0) amp。 amp。 (dp_s100hz != 139。 b1)) hide = 139。 b1。 else hide = 139。 b0。 end 339。 b010: begin if((counter_out == 139。 b0) amp。 amp。 (Q5 == 439。 b0) amp。 amp。 (Q4 == 439。 b0) amp。 amp。 (Q3 == 439。 b0) amp。 amp。 (dp_s100hz != 139。 b1)) hide = 139。 b1。 else hide = 139。 b0。 end 339。 b011: begin if((counter_out == 139。 b0) amp。 amp。 (Q5 == 439。 b0) amp。 amp。 (Q4 == 439。 b0) amp。 amp。 (Q3 == 439。 b0) amp。 amp。 (Q2 == 439。 b0) amp。 amp。 (dp_s100hz != 139。 b1)amp。 amp。 (dp_s10hz != 139。 b1)) hide = 139。 b1。 27 else hide = 139。 b0。 end 339。 b100: begin if((counter_out == 139。 b0) amp。 amp。 (Q5 == 439。 b0) amp。 amp。 (Q4 == 439。 b0) amp。 amp。 (Q3 == 439。 b0) amp。 amp。 (Q2 == 439。 b0) amp。 amp。 (Q1 == 439。 b0) amp。 amp。 (dp_s100hz != 139。 b1)amp。 amp。 (dp_s10hz != 139。 b1)) hide = 139。 b1。 else hide = 139。 b0。 end default: hide = 139。 b0。 endcase end endmodule 该模块定义输入端口如下: ● data_in: BCD 码字输入信号 ● disp_select:来自动态显示位模块,实现两者之间的同步 ● dp_s1hz, dp_s10hz, dp_s100hz:输入小数点位置。课程设计-=--基于veriloghdl数字频率计设计与实现
相关推荐
、不当的焦距、遥感或天文中大气的扰动、照片的扫描等等。 图象复原的目标是从退化图象中重构出原始图象。 运动模糊图象的恢复是图象复原的主要分支之一,它的恢复算法有很多种。 有些算法虽然有很好的恢复效果,但算法复杂,恢复时间比较长(如最大熵法)。 有些算法虽然计算速度较快,但恢复效果不尽人意(如空间域逆向恢复)。 在本 下 面 介 绍 逆滤 波 、维 纳 滤 波 、 有 约束 最 小 二乘 方
资 料员作出查项记录,汇集成编呈报监查的项目经理部领导。 安全教育:规定每月三次,十天一次。 以班为单位,工长召集,专职安全员参加落实,总结通报一旬来的安全情况,提出存在的问题,讲解公司、项目部相关安全文件精神及对照。 其中一次为安全教育考核(卷面考试)总结评论。 :对现场安全检查中的班组能达标的,给预大会通报表扬。 对被指令整改的,屡教不改的,不服从安全指挥的违章作业
中,公共课、专业基础课、专业主干课为必修课。 (一)公共课 形势与政策、 中国近现代史纲要 、 马克思主义基本原理 、 毛泽东思想和中国特色社会主义理论体系概论 、 思想道德修养与法律基础 、 军事理论 课 、大学英语、计算机基础、公共体育、 贵州省情。 (二)专业基础课 管理学、会计学、统计学、经济学原理、管理信息系统、经济法、市场营销学。 (三)专业主干课 财务管理、财务会计、管理会计
D、通过刻苦学习,使他的成绩有了提高。 2病句修改有错误的一项是()。 A、过了一会儿,汽车忽然渐渐放慢了速度修改:把 忽然 删去 B、学校里出现了从来没有过的空前的学雷锋热潮。 C、全厂职工讨论并听取了厂长关于改善经营管理的报告。 修改:将 热潮 改为 运动。 修改:将 听 取 与 讨论 对调。 2下列几个句子中只有一句是对的()。 A、社会主义国家发展生产力的根本目的是改善人民的生活水平。
,梦幻般的湖。 本文通过描写青海湖的壮丽景色,表达了作者为青海湖的质朴而震撼的感受。 二、文章脉络 本文可分为三部分。 第一部分,写作者去青海湖路上的情形。 第二部分,具体描写青海湖的景色及其特点。 这一部分又写了三个方面的内容:湖水醉人的蓝色;环境氛围清新幽静,无比优美;神奇的鸟岛,丰富的鱼类。 第 三部分,总结全文,写明作者的感受。 以 “梦幻 ”为线索:关于高原的梦 ——梦境的继续
一。 荷兰后裔美国作家和历史学家——亨德里克*房龙为美国少年了解《圣经》知识撰写一部通俗读物《圣经的故事》,他简明扼要地解答了《圣经》是怎样的一部书,包含哪些内容,作者是谁,成书何时。 他以简洁、优美的文笔为读者勾勒了一幅犹太人的历史画卷。 纷繁的历史人物、争夺领地的频频征战经他一番梳理,变得清晰可读。 深奥的教义,复杂的戒律,在他的笔下,变得浅显易解。 今天