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