在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6441|回复: 10

[求助] verilog 不能参数宏,宏扩展有啥办法没有?

[复制链接]
发表于 2012-10-7 11:01:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
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];
  
   ...
信号数字代号完全有规律,写很多遍完全没有浪费体力。
请问有啥方便方法没有?
发表于 2012-10-7 14:07:34 | 显示全部楼层
不懂为啥要这么赋值。
发表于 2012-10-8 21:19:46 | 显示全部楼层
verilog里是没办法了。
如果重复量很大的话就用perl写个脚本写代码吧。
发表于 2012-10-8 23:05:33 | 显示全部楼层
可以用宏和generate来搞定,不过上面的代码比较诡异,一点用处都没有。
发表于 2012-10-9 07:49:05 | 显示全部楼层
回复 4# tiangua


    愿闻其详
    比如lz的这个例子该怎么写能麻烦写一下吗?
发表于 2012-10-9 08:36:31 | 显示全部楼层
试试把这个赋值语句左边这个WTO定义成reg数组,然后用for来写吧。。
发表于 2012-10-9 11:47:58 | 显示全部楼层
不知道这样写有什么必要,看样子是用来调试用的,难道是二维?
发表于 2012-10-9 20:36:23 | 显示全部楼层
本帖最后由 tiangua 于 2012-10-10 21:19 编辑

·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
发表于 2012-10-10 21:18:42 | 显示全部楼层
回复 5# orlye


   看楼上
发表于 2012-10-11 20:57:30 | 显示全部楼层
回复 8# tiangua


    谢谢。以前没用过带参数的宏,呵呵。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-6-11 11:25 , Processed in 0.021617 second(s), 7 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表