8位计数译码器的设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

【例4.15】用模块例化方式设计8位计数译码器电路系统。在8位计数译码系统电路设计中,需要事先设计一个4位二进制加法计数器cnt4e模块和一个七段数码显示器的译码器dec7s模块,然后用模块例化方式将这两种模块组成计数译码系统电路。1.4位二进制加法计数器cnt4e的设计cnt4e的元件符号如图4.11所示,clk是时钟输入端;clr是复位控制输入端,当clr=1时计数器被复位,输出q[3..0]=0000;ena是使能控制输入端,当ena=1时,计数器才能工作;cout是进位输出端,当输出q[3..0]=1111时,cout=1。Cnt4e的VerilogHDL源程序cnt4e.v如下:modulecnt4e(clk,clr,ena,cout,q);inputclk,clr,ena;output[3:0]q;outputcout;reg[3:0]q;always@(posedgeclrorposedgeclk)beginif(clr)q='b0000;elseif(ena)q=q+1;endassigncout=&q;endmodule2.七段数码显示器的译码器dec7s的设计dec7s的元件符号如图4.12所示,a[3..0]是4数据输入端,将接至cnt4e的输出端q[3..0];q[7..0]是译码器的输出端,提供七段数码显示数据。Dec7s的VerilogHDL源程序Dec7s.v如下:moduleDec7s(a,q);input[3:0]a;图4.12Dec7s的元件符号图4.11cnt4e的元件符号output[7:0]q;reg[7:0]q;always@(a)begincase(a)0:q=8'b00111111;1:q=8'b00000110;2:q=8'b01011011;3:q=8'b01001111;4:q=8'b01100110;5:q=8'b01101101;6:q=8'b01111101;7:q=8'b00000111;8:q=8'b01111111;9:q=8'b01101111;10:q=8'b01110111;11:q=8'b01111100;12:q=8'b00111001;13:q=8'b01011110;14:q=8'b01111001;15:q=8'b01110001;endcaseendendmodule3.计数译码系统电路的设计计数译码系统电路的结构图如图4.13所示,它是用QuartusII的图形编辑方式设计出来的。其中u1和u2是两个cnt4e元件的例化模块名,相当cnt4e系统电路板上的插座;u3和u4是Dec7s元件的例化模块名,相当Dec7s在系统电路板上的插座。x、q1、q2是电路中的连线。用模块例化方式将cnt4e和Dec7s两种模块组成计数译码系统电路cnt_dec7s的源程序cnt_Dec_v.v如下:图4.13计数译码系统电路的结构图u1u2u3u4xq1q2modulecnt_Dec_v(clk,clr,ena,cout,q);inputclk,clr,ena;output[15:0]q;outputcout;reg[15:0]q;wire[3:0]q1,q2;wirex;cnt4eu1(clk,clr,ena,x,q1);//位置关联法的模块例化cnt4eu2(clk,clr,x,cout,q2);dec7su3(.a[3:0](q1),.q[7:0](q[7:0]));//名称关联法的模块例化dec7su4(.a[3:0](q2),.q[7:0](q[15:8]));endmodule计数译码系统电路的仿真波形如图4.14所示,其中数据“3F3F”是电路输出端q[15:0]送给七段数码管显示“00”的数据;“3F06”是显示“01”的数据;依此类推。仿真结果验证了设计的正确性。图4.14计数译码系统电路的仿真波形

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功