代码如下: module adder(a,b,cin,sum,cout); input a,b; input cin; output cout; output sum; wire cout,sum; assign sum=a^b^cin; assign cout=(a&cin)|(b&cin)|(a&b); endmodule
module adder_8(fa,fb,fcin,fsum,fcout); input [7:0]fa,fb; output [7:0]fsum; input fcin; output fcout; wire [0:6]ftemp; adder fa1(.a(fa[0]),.b(fb[0]),.cin(fcin),.sum(fsum[0]),.cout(ftemp[0])), fa2(.a(fa[1]),.b(fb[1]),.cin(ftemp[0]),.sum(fsum[1]),.cout(ftemp[1])), fa3(.a(fa[2]),.b(fb[2]),.cin(ftemp[1]),.sum(fsum[2]),.cout(ftemp[2])), fa4(.a(fa[3]),.b(fb[3]),.cin(ftemp[2]),.sum(fsum[3]),.cout(ftemp[3])), fa5(.a(fa[4]),.b(fb[4]),.cin(ftemp[3]),.sum(fsum[4]),.cout(ftemp[4])), fa6(.a(fa[5]),.b(fb[5]),.cin(ftemp[4]),.sum(fsum[5]),.cout(ftemp[5])), fa7(.a(fa[6]),.b(fb[6]),.cin(ftemp[5]),.sum(fsum[6]),.cout(ftemp[6])), fa8(.a(fa[7]),.b(fb[7]),.cin(ftemp[6]),.sum(fsum[7]),.cout(fcout)); endmodule
module adder_test; reg [7:0] da,db; wire [7:0] dsum; wire dcout; reg dcin; adder_8 f1(da,db,dcin,dsum,dcout); initial begin da=0;db=0;dcin=0; #10 $display("a=%b,b=%b,cin=%b,sum=%d,cout=%d",da,db,dcin,dsum,dcout); db=8'b1111; for(da=8'b0;da<=8'b11111111;da=da+1) begin #10 dcin=~dcin; $display("a=%b,b=%b,cin=%b,sum=%d,cout=%d",da,db,dcin,dsum,dcout); end end endmodule
下一篇链接:下面没有链接了
上一篇链接:综合的Verilog 写的FIFO存储器
|