if (btn[0] == 1)
begin
operaciones op(A,B,numop,C);
display disp(C,led);
end
我需要在此内部实例化它,我该怎么做?
答案 0 :(得分:5)
在你使用generate
语句之前(允许在if语句中进行模块实例化)之前,你需要考虑你在说什么。从您在代码片段中尝试执行的操作开始,当按下按钮0时,您希望执行某些操作并在LED上显示结果。但是,当它们处于非常不同的状态时,您正在处理类似函数调用的模块。
模块实例化是模块硬件在其父模块中存在的声明。所以,当我有这样的事情时:
module top;
module_name instances_name( ... );
endmodule
我声明在module_name
(可能有更多硬件)中存在module_name
(top
的所有硬件)。将模块视为IC,将父模块视为面包板,实例化该模块就像将IC放在面包板上,端口连接是连接到IC的每个引脚的线路。所有的IC都必须做任何设计确实存在于电路中的地方;根据用户输入的内容,它们不会出现和消失。
现在回想一下你想说的话:你说,当按下按钮0时,把这个IC放在面包板上。如果没有按下,请将其取下。由于IC不会出现并从电路板上消失,这没有任何意义。因此,如果您在面包板上构建设计,则需要像处理IC一样处理模块实例化;您可以声明有硬件来执行此操作(放下并连接IC),当按下按钮0时,将该硬件的输出路由到LED(使用另一个IC或小电路进行布线;想想mux )。
答案 1 :(得分:0)
只是添加@Unn所说的内容,你真正需要做的是实例化你的模块,然后在if语句中打开(或关闭)模块的启用信号。