|
题目要求是利用一位全加器、D锁存器或者D触发器实现8位二进制加法器。
module adder1(x,y,ci,s,co);//一位全加器
input x,y,ci;
output s,co;
assign s=(x&!y&!ci)|(!x&y&!ci)|(!x&!y&ci)|(x&y&ci);
assign co=(x&y)|(x&ci)|(y&ci);
endmodule
module dlatch1(clk,d,q);//这个是d锁存器
input clk,d;
output q;
reg q;
always @(clk)
begin
if(clk) q<=d;
end
endmodule
module adderfull(a,b,clk,sum,cout,en);//这个是顶层模块
input a,b,clk,en;
output sum,cout;
reg cin;
always @(en)
if(en==0) cin<=0
adder1 add (a,b,cin,sum,cout);
dlatch1 temp (clk,cout,cin);
endmodule
然后就编译出错了:
Error (10170): Verilog HDL syntax error at adderfull.v(7) near text "adder1"; expecting ";"
Error (10112): Ignored design unit "adderfull" at adderfull.v(1) due to previous errors
请问,我这个代码的问题处在哪里?该怎样改?还有没有其它的错误? |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|