微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > verilog 不能参数宏,宏扩展有啥办法没有?

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];
  
   ...
信号数字代号完全有规律,写很多遍完全没有浪费体力。
请问有啥方便方法没有?

不懂为啥要这么赋值。

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写个脚本写代码吧。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top