verilog 不能参数宏,宏扩展有啥办法没有?
时间:10-02
整理:3721RD
点击:
verilog 宏功能很弱,不能定义宏参数,很不方便,
比如一组组合电路持续赋值:
ssign wto_0 =wt[0];
assign wto_1 =wt[1];
assign wto_2 =wt[2];
assign wto_3 =wt[3];
assign wto_4 =wt[4];
assign wto_5 =wt[5];
assign wto_6 =wt[6];
assign wto_7 =wt[7];
assign wto_8 =wt[8];
assign wto_9 =wt[9];
assign wto_10 =wt[10];
assign wto_11=wt[11];
assign wto_12=wt[12];
assign wto_13=wt[13];
assign wto_14=wt[14];
assign wto_15=wt[15];
...
信号数字代号完全有规律,写很多遍完全没有浪费体力。
请问有啥方便方法没有?
比如一组组合电路持续赋值:
ssign wto_0 =wt[0];
assign wto_1 =wt[1];
assign wto_2 =wt[2];
assign wto_3 =wt[3];
assign wto_4 =wt[4];
assign wto_5 =wt[5];
assign wto_6 =wt[6];
assign wto_7 =wt[7];
assign wto_8 =wt[8];
assign wto_9 =wt[9];
assign wto_10 =wt[10];
assign wto_11=wt[11];
assign wto_12=wt[12];
assign wto_13=wt[13];
assign wto_14=wt[14];
assign wto_15=wt[15];
...
信号数字代号完全有规律,写很多遍完全没有浪费体力。
请问有啥方便方法没有?
不懂为啥要这么赋值。
verilog里是没办法了。
如果重复量很大的话就用perl写个脚本写代码吧。
可以用宏和generate来搞定,不过上面的代码比较诡异,一点用处都没有。
愿闻其详
比如lz的这个例子该怎么写能麻烦写一下吗?
试试把这个赋值语句左边这个WTO定义成reg数组,然后用for来写吧。
不知道这样写有什么必要,看样子是用来调试用的,难道是二维?
·define dest_var(i) wto_··i
integer i;
generate
for(i =0; i < 16;i=i+1)
begin
assign ·dest_var(i) = wt;
end
endgenerate
看楼上
谢谢。以前没用过带参数的宏,呵呵。
verilog里是没办法了。
如果重复量很大的话就用perl写个脚本写代码吧。
