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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2267|回复: 6

[求助] 关于verilog中gerenate for的疑问

[复制链接]
发表于 2016-4-25 09:10:20 | 显示全部楼层 |阅读模式

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

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

x
请教各位大神,如果使用gerenate for语句,for的循环次数不是固定的,而是一个输入变量,这种情况可以综合吗?
  assign pK = g_din[0][95:88];
  generate
   genvar i;
   if((match_en == 1) &&(gauss_hit != 0)) begin
    for(i = 0; i < pK; i = i + 1) begin
     if(i == gauss_hit) begin
      assign diff_mu_r = (img_din[24:16] > g_din[i][87:80])?(img_din[24:16] - g_din[i][87:80])g_din[i][87:80]-img_din[24:16]);
      assign diff_mu_g = (img_din[15:8] > g_din[i][79:72])?(img_din[15:8] - g_din[i][79:72])g_din[i][79:72]-img_din[15:8]);
      assign diff_mu_b = (img_din[7:0] > g_din[i][71:64])?(img_din[7:0] - g_din[i][71:64])g_din[i][71:64]-img_din[7:0]);
      always@(posedge clk) begin
...
 楼主| 发表于 2016-4-25 09:17:22 | 显示全部楼层
用的vavido
发表于 2016-4-25 09:42:20 | 显示全部楼层
只要是综合时可以确定的值都可以。例如,parameter 定义的。
 楼主| 发表于 2016-4-25 09:47:17 | 显示全部楼层
回复 3# 加油99

是由外部引脚输入的,这里是ddr中数据的某几位来确定,这些数据是迭代更新的,这样是不是就不能综合了,那需要嵌套case语句吗?

generate
  if() begin
       case()
         2'b00:
               for() begin:
               ...
         2'b01:
               for() begin:
               ...
         ...
这样嵌套使用可以吗
发表于 2016-4-25 09:55:15 | 显示全部楼层
回复 4# tianyakeliu6


    是由外部引脚输入的肯定不行,你想象力太丰富了。循环生成语句只不过是在综合时把gerenate for和endgerenate之间的语句展开了。
发表于 2016-4-25 09:56:26 | 显示全部楼层
至于语法你可以看相关资料。
 楼主| 发表于 2016-4-25 09:58:16 | 显示全部楼层
回复 5# 加油99


    感谢,以前没怎么用过generate,那在generate和for之间插入if 和case语句 应该没问题吧,就是说for语句嵌套在case里面.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-26 03:29 , Processed in 0.019492 second(s), 8 queries , Gzip On, Redis On.

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