FPGA verilog实现键控数码管动态显示 急啊!!
模块化(d0,d1 ,d2 ,d3 ,q,com,enable,clk); 输入[3 :0] D0,D1 ,D2 ,D3 ; 可输入的clk; 结论[7 :0] q; 结论[3 :0] com; reg [3 :0] com; Reg [7 :0] Q; Reg [3 :0] DN; reg [1 :0]状态; 始终@(po sedgeclk)开始请问一下verilog怎样写数码管显示?
1 数字端口的第一个设计连接到数字管的每个部分。2 然后将引脚4 至1 1 设置为输出模式。
3 然后制作一个函数以显示编号5 4 然后主体显示数字5 .5 6 最后,使显示功能4 7 主体显示数字4 ,以便数字管显示数字。
试用Veriloghdl设计一个七段数码管的显示译码器,要求可以同时兼容共阴共阳数码管
moduled8 _display(clk,rst,comsel,en,play); inputclk; inputrst; 输入COMSE; 输出[7 :0] en; 结论[7 :0]播放; Reg [3 0:0]计数; Reg [7 :0] en; Reg [7 :0]玩; 始终@(posedgeclkornegedgest)beginif(! en <= 1 ; Play <= 8 'B001 1 1 1 1 1 ; endelsebegincount <= 0; en <= 0; 播放<= 8 'b1 1 000000; endEndelSeBeginCount <= count+1 ; 案例(count [3 0:2 8 ])3 'b000:beginif(consel)beginen <= 8 'b00000001 ; 播放<= 8 'B001 1 1 1 1 1 ; endelsebeginen <= 8 'b1 1 1 1 1 1 1 0; 播放<= 8 'b1 1 000000; endEnd3 'b001 :beginif(co msel)beginen <= 8 'b0000001 0; 播放<= 8 'B000001 1 0; endelsebeginen <= 8 'b1 1 1 1 1 1 1 1 1 1 ; 播放<= 8 'B1 1 1 1 1 001 ; endEnd3 'b01 0:beginif(领事)beginen <= 8 'b000001 00; play <= 8 'B01 01 1 01 1 ; endelsebeginen <= 8 'b1 1 1 1 1 1 1 1 ; 播放<= 8 'b1 01 001 00; endEnd4 'b01 1 :beginif(领事)beg inen <= 8 'b00001 000; 播放<= 8 'b01 001 1 1 1 ; endelsebeginen <= 8 'b1 1 1 1 01 1 1 ; 播放<= 8 'b1 01 1 0000; EndEndCasendEndModule是数字运行灯1 -4 的4 位7 段。将其更改为“输出解决方案”,然后将4 位动态显示器更改为一个数字管,只是在静态显示
Verilog HDL 编写6位数码管动态刷新电路
Moduleled_dong(SEG,SL,CLK); //静态模块显示版[7 :0] seg; //定义数字管段输出的起始引脚[3 :0] SL; //定义数字铅笔管(选择)inputclk; //定义输入时钟-pin reg [7 :0] seg_reg; //定义数字管输出寄存器reg [3 :0] sl_reg; //定义数字管输出寄存器[3 :0]。3 :0] disp_dat; //注册广告注册[2 9 :0]计数; //始终定义仪表寄存器@(poedgeclk)// clk -signal -drop -drop -delay of BeginCount = count+1 ; //联系Counter Plus 1 Endalways@(Co UNF [1 8 :1 7 ])//定义显示详细事件开始case(graf [1 8 :1 7 ])//扫描-Anzigedaten 2 'b00:depp_dat = 4 'b1 000; //显示单个数字设置编号。
'b01 :disp_dat = 4 'b001 0; //十多数字为2 2 'b1 0:disp_dat = 4 'b0001 ; //显示一百个数字的数量为1 2 'b1 1 :disp_dat = 4 'b01 1 1 ; //千分位数为7 EndCasecase(Count [1 8 :1 7 ])//。
B1 01 1 ; //选择1 00米数字管2 'b1 1 :sl_reg = 4 'b01 1 1 ; //选择1 00-DIGIT数字管EndcasateAlways@(disp_dat)//解码版begincase(disp_dat)//选择输出数据4 'h0:seg_reg = 8 'hc0; //显示04 'h1 :seg_reg = 8 'h f9 ; //显示1 4 'h2 :seg_reg = 8 'ha4 ; //显示2 4 'h3 :seg_reg = 8 'hb0; //显示3 4 'h4 :seg_reg = 8 'h9 9 ; //显示4 4 'h5 :seg_reg = 8 'h9 2 ; //显示5 4 'h6 :seg_reg = 8 'h8 2 ; //显示6 4 'h7 :seg_reg = 8 'hf8 ; //显示7 4 'H8 :seg_reg = 8 'h8 0; //显示8 4 'h9 :seg_reg = 8 'h9 0; // show 9 4 'ha:seg_reg = 8 'h8 8 ; //显示A4 'Hb:seg_reg = 8 'H8 3 ; // show b4 'hc:seg_reg = 8 'hc6 ; // show c4 'hd:seg_reg = 8 'ha1 ; // show d4 'he:seg_reg = 8 'h8 6 ; //显示e4 'hf:seg_reg = 8 'h8 e; // fendcasedssignseg = seg_reg; //分配给SL_REG的数字管道解码结果的版本; // Digital Tube Selection End End模块PIN的版本可以自己定义它。