Verilog中如何在always block中对其他module进行调用?

我现在需要编写一个ALU,要求可以对两个4位的输入变量进行加减乘除以及逻辑运算,然后在basys2板子上实现,现在我把加减乘除和逻辑运算分为4个module已经都写好了,... 我现在需要编写一个ALU,要求可以对两个4位的输入变量进行加减乘除以及逻辑运算,然后在basys2板子上实现,现在我把加减乘除和逻辑运算分为4个module已经都写好了,然后需要在主程序中调用,因为每一种运算的切换是根据我在电路板上按下不同的按键,所以我在主程序中想要通过if...else实现,如下:
always @ (*) begin
if(s==0)
调用 adder。。。
else if(s==1)
调用subtractor。。。
else if 等等情况
这种情况应该怎么调用呢?我知道不能用module instance和module instantiation在always block中的。。。
求大神解答!

又及,模块实例化是不能用在always block中的……我现在需要解决的就是怎么能通过判断输入然后运行相应的模块
展开
wangjun403
2013-04-17 · TA获得超过528个赞
知道小有建树答主
回答量:451
采纳率:0%
帮助的人:358万
展开全部
你这完全是用软件的思维来写硬件

你有了加减乘除4个模块,你现在要做的是用一个顶层模块来例化他们,同时判断输入是加减乘除中的那个,分别送到4个模块,而不是你所说的调用

另外task几乎是不用来写综合语句的,你们老师是在坑你
更多追问追答
追问
可是模块实例化不能用在always block中啊,而if...else..语句只能用在always block中,我需要用if..else来进行输入的判断,我现在要解决的就是这个问题……
追答
你可以用一个always block来判断加减乘除,并产生一个flag去启动加减乘除运算
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式