如何在verilog中实例化if语句中的模块? [英] How can i instantiate a module inside an if statement in verilog?

查看:19
本文介绍了如何在verilog中实例化if语句中的模块?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

if (btn[0] == 1)
    begin
        operaciones op(A,B,numop,C);
        display disp(C,led);
    end

我需要在这里面实例化它,如果,我如何做到这一点?

推荐答案

在使用generate语句(它允许在if语句中实例化模块)之前,您需要考虑您所说的话。从您在代码片段中尝试执行的操作来看,当按下按钮0时,您希望执行一些操作并将结果显示在LED上。但是,当模块是非常不同的东西时,您将其视为函数调用。

模块实例化是模块硬件存在于其父模块中的声明。所以,当我有这样的东西时:

module top;

  module_name instances_name( ... );

endmodule
我声明module_name(module_name的所有硬件)存在于top中(可能有更多硬件)。将模块视为IC,将父模块视为面包板,实例化该模块就像将该IC放在面包板上,将端口连接作为连接到该IC的每个引脚的导线。完成任何设计所需的所有IC都存在于电路中的某个位置;它们不会根据用户输入的内容而出现或消失。

现在回想一下你想说的话:你是在说,当按下按钮0时,把这个IC放在面包板上。如果没有按,就把它拿开。由于集成电路不会从电路板上出现和消失,这是没有意义的。因此,您需要像在面板上构建设计一样处理模块实例化;您可以声明有硬件来执行此操作(放下并布线IC),当按下按钮0时,将来自该硬件的输出布线到LED(使用另一个IC或小电路进行布线;考虑多路复用器)。

这篇关于如何在verilog中实例化if语句中的模块?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆