首页 > 编程知识 正文

verilog计数器代码(Verilog数字系统设计——10进制计数器)

时间:2023-05-05 22:26:26 阅读:121866 作者:2487

十进制计数器一、十进制计数器不仅可以对时钟脉冲进行计数,还可以用于分频、定时、产生差拍脉冲的序列以及数字运算等,分为同步计数器和异步计数器。 同步计数器在输入时钟时同时发生触发器反转。 在异步计数中,触发器先反转,而不是同时发生。

编程实现十进制计数器,具有异步复位功能,10位和1位用8421BCD码表示

二、代码实现2.1、countermodulemodulecounter 10 _1(o _ count、o_cout、i_clk、i_reset、i_load、i_datin、I output reg [7:0] o_count; output reg o_cout; input i_clk,i_reset,i_load,i_cin; input [7:0] i_datin; always@(posedgeI_clkorI_reset )/asynchronouszerosettingbeginif (I _ reset ) begino_count=0; //reseto_cout=0; endelseif(I_load ) o_count=i_datin; //synchronoussettingelseif (o _ count [ 3:0 ]=4' b 1001 )//gewei jinwei,shiweijiayibegino _ count [ 7333653704 ] //gewei is0endelse if (o _ count [ 7:4 ]=4' b 1001 )/shiweijinweibegino _ count [ 7:0 ]=0; //all is 0o_cout=o_cout 1; //10 bitcounterjinweisignalplus1endelse//normalcounto _ count [ 3:0 ]=o _ count [ 33:0 ]4' b0001; endendmodule 2.2、test module module test_counter10; //modulecounter10_1(o_count,o_cout,i_clk,i_reset,i_load,i_datin,i_cin ); wire [7:0] o_count_t; wire o_cout_t; reg i_clk_t,i_reset_t,i_load_t,i_cin_t; reg [7:0] i_datin_t; counter10_1mycounter(.o_count ) o_count_t )、 o_cout )、 I_clk )、 I_clk_t。 initial//resetsignalis1--- resetloadsignalis1----loadsignalbegini _ datin _ t [ 73:0 ]=8' b 1001 _ 1111; //zhishu signali_clk_t=0; //clocki_reset_t=1; //reset signali_load_t=1; //initial zhishu signali_cin_t=0; //initial signal#100 i_reset_t=0; //enterjishutypeo _ count=8' b 1001 _ 1111 I _ datin _ t [ 733600 ]=8' b 0000 _ 000; //resetinitialdata # 80i _ load _ t=0; //entercountertypeend//always # 200 I _ CIN _ t=~I _ CIN _ t; //jinweisignalalways # 20i _ clk _ t=~I _ clk _ t; //clock signal//always # 500 I _ reset _ t=~I _ reset _ t;//重置信号结束模块三、模拟截图

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。