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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8269|回复: 14

[求助] verilog case语句遇到的问题

[复制链接]
发表于 2016-7-8 15:55:56 | 显示全部楼层 |阅读模式

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

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

x

报错图

报错图
这个case语句哪里有问题?生成条件必须是常量表达式?什么意思?是用来判断的那个条件用的有问题吗?谢谢!
发表于 2016-7-8 16:22:33 | 显示全部楼层
平时用的判断条件都是寄存器型的变量
发表于 2016-7-8 16:24:25 | 显示全部楼层
你要是分不同情况去例化模块,要用case generate 语句,并且case里面不能是变量,必须是常量参数
看你的代码,其实你可以直接把这四个模块都例化在那里,然后根据pipelining_no信号去做个mux,选择这四个模块其中一个输出给output就好
发表于 2016-7-8 16:25:36 | 显示全部楼层
楼上说的对,
 楼主| 发表于 2016-7-8 16:43:10 | 显示全部楼层
回复 3# 南宫恨

谢谢,我知道问题在哪了。可是关于case语句还有个问题,如果case后面必须是常量参数,那怎么用case实现根据不同情况选择不同操作?常量参数不是=确定情况吗?
发表于 2016-7-8 18:02:38 | 显示全部楼层
回复 5# lygwzy89


    你可以根据需要在不同的地方例化的时候,传递不同的参数,比如例化两个a模块,第一个传递参数01,第二个传递10,这样会自动生成不动的
发表于 2016-7-8 18:04:40 | 显示全部楼层
回复 5# lygwzy89


    看你目前这一小段代码,你直接把四个都例化了
    然后输出做个mux
    output_signal = pipileline_no == 0 ? a_out :
                            pipileline_no == 1 ? b_out... 就好了
 楼主| 发表于 2016-7-8 22:08:39 | 显示全部楼层
回复 7# 南宫恨
好的,谢谢了!
发表于 2016-7-11 14:15:11 | 显示全部楼层
怎么楼主的代码看下来是在递归啊。。。
 楼主| 发表于 2016-7-12 08:40:08 | 显示全部楼层
回复 9# iidestiny
是,不过现在不用了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-22 01:14 , Processed in 0.023106 second(s), 9 queries , Gzip On, Redis On.

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