这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » 请教一个Verilog HDL 语法问题

共2条 1/1 1 跳转至

请教一个Verilog HDL 语法问题

菜鸟
2015-02-12 23:36:51     打赏

使用行为级运算符实现一位加法器,按照正常的写法可以理解,如下:

module FA_behav2(A,B,Cin,Sum,Cout);
input A,B,Cin;
output Sum,Cout;
reg Sum,Cout;

reg T1,T2,T3;

always@(A or B or Cin)
begin
  Sum=(A^B)^Cin;

T1=A$Cin;

T2=B$Cin;

T3=A$B;

Cout=(T1|T2|)T3;

end
endmodule

但是借助位拼接运算符后,代码改为如下:

module FA_behav2(A,B,Cin,Sum,Cout);
input A,B,Cin;
output Sum,Cout;
reg Sum,Cout;
always@(*)
begin
    {Cout,Sum}=A+B+Cin;
end
endmodule

对于其中的    {Cout,Sum}=A+B+Cin;语句不明白,{ }是一个位拼接运算符,这个语句怎么解释呢?

不好意思,初学者,哪位好心人给解释一下吧。

 


 

 


菜鸟
2015-02-16 15:30:32     打赏
2楼

我刚开始看Verilog,昨天正好也看到过这一句。我的理解是这样的:{Cout,Sum}可以看作是重新构建一个新的数,这个数的高位是Cout,低位是Sum。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]