Verilog 学习笔记(一)模块例化

这篇具有很好参考价值的文章主要介绍了Verilog 学习笔记(一)模块例化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

    1.单个模块的例化

verilog中模块的例化有两种方式,一种是基于端口位置来例化模块,另一种则是根据端口名称来例化。首先介绍第一种基于端口位置来例化。在此之前,我们先给出一个简单的模块如下:

verilog例化模块,学习,笔记

 上图中的mod_a模块声明如下:

module mod_a ( output, output, input, input, input, input );

为了在模块top_module例化上面的模块,我们首先声明top_module。

module top_module ( 
    input a, 
    input b, 
    input c,
    input d,
    output out1,
    output out2
);

      采用基于端口位置的例化方法,要注意例化时连接六个端口(out1,out2,a,b,c,d)与该模块声明时对应的位置顺序是一样的。比如上面mod_a模块端口声明 先是两个输出,再是四个输入,所以例化应该为,

module top_module (
    input a,
    input b,
    input c,
    input d,
    output out1,
    output out2
);
     mod_a inst(
         out1,out2,a,b,c,d);
endmodule

     上面第一种例化方式书写上较为简单,但在实际中我们往往用的是第二种基于端口名称的例化方式。

     module top_module (
    input a,
    input b,
    input c,
    input d,
    output out1,
    output out2
);
    mod_a inst(
        .in1(a),
        .in2(b),
        .in3(c),
        .in4(d),
        .out1(out1),
        .out2(out2)
    );
endmodule

例化格式是   

        模块名  例化名(

         .模块端口(连接到的端口名称)

);

在实际verilog编程中第二种应用最多。

2.多个模块的例化

在实际中往往会遇到多个模块的例化,下面我们以D触发器为例,在top_module中串联例化三个D触发器模块。

 首先给出D触发器模块my_dff的声明

module my_dff ( input clk, input d, output q );

理想的连接框图如下:

verilog例化模块,学习,笔记

从图中看到,在top_module模块中要例化三个my_dff,所以模块的例化名不能相同,其次每个模块的输入输出都不一样,且中间还需要进行不同D触发器之间的连接,所以还需要先声明两根导线。剩下的连接具体看图连线就好了。具体代码如下:

module top_module ( input clk, input d, output q );
        wire q_d_1,q_d_2;
    my_dff inst0(
        .clk(clk),
        .d(d),
        .q(q_d_1)
    );
    my_dff inst1(
        .clk(clk),
        .d(q_d_1),
        .q(q_d_2)
    );
     my_dff inst2(
         .clk(clk),
         .d(q_d_2),
        .q(q)
    );
endmodule

例化补充:

如果例化的端口需要悬空、持续高或低电平、啥都不接,应该的例化格式为

module top_module ( input clk, input d, output q );
       
    my_dff inst0(
        .clk(clk),
        .d(1)//持续高电平,
        .q(),//悬空

       );文章来源地址https://www.toymoban.com/news/detail-636515.html

如果针对第一种严格按位置的例化,不需要的端口需要保留逗号

my_dff inst0(clk,d , );

       );

到了这里,关于Verilog 学习笔记(一)模块例化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA学习笔记:verilog基础代码与modelsim仿真(六)——vga显示模块

    VGA显示 目标:实现屏幕红、橙、黄、绿、青、蓝、紫、黑、白、灰条形显示 1. 模块框图与波形图 vga_colorbar是实现目标功能的总体模块框图,为了实现对应的输出,我们使用三个具体功能模块实现功能。 (1) clk_gen——使用pll锁相环实现时钟分频 (2)vga_ctrl——图像控制与输出模

    2024年02月04日
    浏览(42)
  • 5.3 Verilog 带参数例化

    分类  Verilog 教程 : defparam,参数,例化,ram 当一个模块被另一个模块引用例化时,高层模块可以对低层模块的参数值进行改写。这样就允许在编译时将不同的参数传递给多个相同名字的模块,而不用单独为只有参数不同的多个模块再新建文件。 参数覆盖有 2 种方式

    2024年01月17日
    浏览(32)
  • verilog写rom,采用端口排序顺序例化

    1,介绍rom,以及rom与ram的区别 参考文献: 1, 转载-ROM、RAM存储器原理详解以及DRAM、SRAM、SDRAM 、FLASH存储器的介绍

    2024年02月09日
    浏览(58)
  • 记录一下verilog重复例化的两种方式

    0 前言 这段时间例化了挺多mem,过程中也了解到了一些新的东西,在这里记录一下 1 for循环方式例化方法 先给出 sub_module 要将这个module分别例化成 u_sub_0 和 u_sub_1 ,并且每个都例化四次 for循环的实现方式如下 来看看例化后的效果 可以看到,总共4组inst,每组inst中存在两个

    2024年02月11日
    浏览(42)
  • VSCODE-Verilog开发插件/(代码格式化+Verilog文件树显示+一键例化+UCF转XDC+代码错误检查+语法高亮)

    VSCODE插件,可实现功能: 变量对齐 逗号对齐 括号对齐 快捷键:CTRL + L 例化的代码自动复制到剪切板 快捷键:ctrl+shift+p :输入 Convert_instance 正常顺序转换 可实现序号的从小到大的排列 快捷键:ctrl+shift+p :输入 Convert UCF to XDC NORMAL ORDER 或 Convert UCF to XDC SORT ORDER ucf, xdc, do, tcl 语法

    2024年03月10日
    浏览(50)
  • Verilog中两种位宽声明方式在赋值和例化时的思考

    近来在学习VHDL时发现其有TO和DOWNTO两种声明位宽的方式,不同方式在赋值操作时存在差异,容易混淆。想来Verilog也存在这种问题,故在此进行一个简单的讨论。 众所周知,在Verilog中声明数据位宽有两种方式: 第一种为DOWNTO方式,这种方式是我们通常使用的声明位宽的方法,

    2024年02月13日
    浏览(38)
  • Verilog学习笔记(5):Verilog高级程序设计

    串行加法器: 一个四位串行加法器由4个全加器构成。全加器是串行加法器的子模块,而全加器是由基本的逻辑门构成,这些基本的逻辑门就是所说的叶子模块。这个设计中运用叶子模块(基本逻辑门)搭建成子模块(全加器),再用子模块搭建成所需要的电路(串行加法器

    2024年02月11日
    浏览(43)
  • 「Verilog学习笔记」根据RTL图编写Verilog程序

    专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 观察题目给出的RTL图,主要的器件是两个D触发器,一个与门。D触发器含有异步复位信号,且为低电平有效。data_in输入到D触发器,D触发器的输出Q是前一时刻的data_in,即data_in打一

    2024年03月24日
    浏览(39)
  • Verilog学习笔记(3):Verilog数字逻辑电路设计方法

    例:用Verilog设计模256(8bits)计数器 (a)可综合程序描述方式 (b)常见的错误描述方式 同时Verilog的电路描述方式具有多样性,这也决定了对于电路设计的多样性。 例:用Verilog设计数字多路选择器 (a)采用真值表形式的代码 (b)采用逻辑表达式形式的代码 (c)采用结

    2023年04月08日
    浏览(118)
  • Verilog 学习笔记

    模块 • Verilog HDL程序是由模块构成的。每个模块的内容都是嵌在module和endmodule两个语句之间。每个模块实现特定的功能。模块是可以进行层次嵌套的。正因为如此,才可以将大型的数字电路设计分割成不同的小模块来实现特定的功能,最后通过顶层模块调用子模块来实现整体功

    2024年02月09日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包