|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本人写了一个基于pipeline的Verilog四位超前进位加法器设计,但是前仿真正确 后仿真就挂了 不知道什么原因 刚开始学Verilog,很多地方理解的还不是很好 ,在这里求助大神啊程序
`timescale 1ns/100ps
module Pipeline_Adder4(cout,sum,a,b,ci,clk);
output cout;
output [3:0] sum;
input ci,clk;
input [3:0] a,b;
reg [3:0] p,tempp,g,sum;
reg c0,c1,c2,c3,cout,tempci1,tempci2;
always@ (posedge clk)
begin
p<=a^b;
g<=a&b;
tempci1<=ci;
end
always@ (posedge clk)
begin
tempp<=p;
c0<=g[0]|p[0]&tempci1;
c1<=g[1]|g[0]&p[1]|tempci1&p[0]&p[1];
c2<=g[2]|g[1]&p[2]|g[0]&p[1]&p[2]|tempci1&p[0]&p[1]&p[2];
c3<=g[3]|g[2]&p[3]|g[1]&p[2]&p[3]|g[0]&p[1]&p[2]&p[3]|tempci1&p[0]&p[1]&p[2]&p[3];
tempci2<=tempci1;
end
always@ (posedge clk)
begin
sum<=tempp^{c2,c1,c0,tempci2};
cout<=c3;
end
endmodule
仿真结果
前仿
后仿
后仿跟前仿完全不一样 还有很多跳变点
求大神指点啊 |
|