资源描述:
《VerilogHDL经典程序非常适合新手》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、2线-4线译码器modulecounter4(q1,q0,ncr,cp);inputcp,ncr;outputq1,q0;regq1,q0;always@(posedgecpornegedgencr)beginif(~ncr){q1,q0}<=2'b00;else{q1,q0}<={q1,q0}+1'b1;endendmodule二、4选1数据选择器moduleselector4_1(i0,i1,i2,i3,a1,a0,y);inputi0,i1,i2,i3,a1,a0;outputy;regy;alway
2、s@(a1ora0)begincase({a1,a0})2'b00:y=i0;2'b01:y=i1;2'b10:y=i2;2'b11:y=i3;default:y=0;一、2线-4线译码器modulecounter4(q1,q0,ncr,cp);inputcp,ncr;outputq1,q0;regq1,q0;always@(posedgecpornegedgencr)beginif(~ncr){q1,q0}<=2'b00;else{q1,q0}<={q1,q0}+1'b1;endendmodule二、4选1数
3、据选择器moduleselector4_1(i0,i1,i2,i3,a1,a0,y);inputi0,i1,i2,i3,a1,a0;outputy;regy;always@(a1ora0)begincase({a1,a0})2'b00:y=i0;2'b01:y=i1;2'b10:y=i2;2'b11:y=i3;default:y=0;endcaseendendmodule三、8线-3线优先编码器moduleencoder8_3(i,y,ei,eo,gs);input[7:0]i;inputei;output[2
4、:0]y;outputeo;outputgs;reg[2:0]y;regeo,gs;always@(eiori)beginif(ei==1'b1)begin{y,eo,gs}=5'b111_11;endelseif(i[7:0]==8'b1111_1111)begin{y,eo,gs}=5'b111_01;endelseif(i[7]==1'b0)begin{y,eo,gs}=5'b000_10;endelseif(i[6]==1'b0)begin{y,eo,gs}=5'b001_10;endelseif(i[
5、5]==1'b0)begin{y,eo,gs}=5'b010_10;endelseif(i[4]==1'b0)begin{y,eo,gs}=5'b011_10;endelseif(i[3]==1'b0)begin{y,eo,gs}=5'b100_10;endelseif(i[2]==1'b0)begin{y,eo,gs}=5'b101_10;endelseif(i[1]==1'b0)begin{y,eo,gs}=5'b110_10;endelseif(i[0]==1'b0)begin{y,eo,gs}=5'b1
6、11_10;endendendmodule四、模10加法计数器和一个时钟10分频电路1、模10加法计数器cnt_10的Verilog代码modulecount_10(clk,reset,dout);inputclk;inputreset;output[3:0]dout;reg[3:0]dout;always@(posedgeclkornegedgereset)beginif(~reset)dout<=4'b0000;elseif(dout<4'b1001)dout<=dout+1;elseif(dout==4'
7、b1001)dout<=4'b0000;endendmodule2、10分频模块fenpin_10的Verilog代码modulefenpin_10(clk_in,reset,clk_out);inputclk_in;inputreset;output[0:0]clk_out;reg[0:0]clk_out;reg[3:0]count;always@(posedgeclk_inornegedgereset)beginif(~reset)count<=4'b0000;elseif(count<4'b1001)co
8、unt<=count+1;elseif(count==4'b1001)begincount<=4'b0000;clk_out<=~clk_out;endendendmodule五、10110101序列发生器modulegenerator(clk,endcaseendendmodule三、8线-3线优先编码器moduleencoder8_3(i,y,ei,eo,gs);input[7:0