Verilog HDL中模块参数传递的方法

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


前言

“parameter”是Verilog HDL中的一个关键字,代表着参数型常量,即用parameter来定义一个标识符代表一个常量,这样可以提高程序的可读性与可维护性。

例如:
parameter max_time = 10; //定义参数max_time为常量10

参数型常量在Verilog HDL中通常用来定义时间延迟和数据位宽。


一、参数传递

一方面,对于一个Verilog HDL模块而言,在实际中可能时间常量需要设置一个相对较大的值,这样才能符合设计预期,但是如果我们在仿真中依旧采用这样一个较大的值会导致仿真时间过长,耽误开发速度,因此可以仿真平台中(Testbench)利用参数传递改变底层模块中所设置的时间参数。
另一方面,如果我们在另一个模块中例化我们已经有的模块,但是又希望更改其中的一些参数值,这时利用参数传递就能很便捷地、灵活地通过顶层对底层的参数值进行更改。

二、参数传递方法

1.方法一

方法一是通过在例化过程中使用#(A)进行参数的传递。

例如:

module T( //模块一,底层。
	a,
	b,
	c
	);
	......
	parameter Width = 6, mem_num = 3;
	......
endmodule

module Y(	//模块二,顶层。
	d,
	e,
	f
	);
	......
	T #(5,7) T_inst0(  //这样的话Width=5,mem_num =7;
	.a(),
	.b(),
	.c()
	);
	......
endmodule

2.方法二

方法二是顶层在在例化时,在例化模块名前使用#(.(参数1),.(参数2))

例如:

module T( //模块一,底层。
	a,
	b,
	c
	);
	......
	parameter Width = 6, mem_num = 3;
	......
endmodule

module Y(	//模块二,顶层。
	d,
	e,
	f
	);
	......
	T #(.Width(5) ,
		.mem_num(7)
		) 
	T_inst0(  //这样的话Width=5,mem_num =7;
	.a(),
	.b(),
	.c()
	);
	......
endmodule

3.方法三

当在多个层次的模块中改变参数,就可以用”defparam“关键字。

例如:

module T( //模块一,底层。
	a,
	b,
	c
	);
	......
	parameter Width = 6, mem_num = 3;
	......
endmodule

module Y(	//模块二,顶层。
	d,
	e,
	f
	);
	......
	T T_inst0(  
	.a(),
	.b(),
	.c()
	);
	
	defparam T_inst0.Width = 5;
	defparam T_inst0.mem_num = 7;
	//这样的话Width=5,mem_num =7;
	......
endmodule

总结

以上就是在Verilog HDL程序设计中,相对都层次模块中的参数进行改变时可以用到的参数传递方法。文章来源地址https://www.toymoban.com/news/detail-505717.html

到了这里,关于Verilog HDL中模块参数传递的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Verilog概述一:Verilog HDL和 VHDL详细对比

    Verilog概述一:Verilog HDL和 VHDL详细对比

    当前比较流行的硬件设计语言有两种,即 VHDL 与 Verilog HDL,两者各有优劣,也各有相当多的拥护者。 VerilogHDL和VHDL都是完备的HDL设计和验证语言,具有完整的设计方法和设计规范。 HDL (hardware description language) 硬件描述语言 具有特殊功能结构能够对硬件逻辑电路的功能进行描

    2024年02月02日
    浏览(8)
  • Verilog HDL语言基础知识

    Verilog HDL语言基础知识

    目录 Verilog HDL语言基础知识  6.1.2  Verilog HDL模块的结构 6.1.3 逻辑功能定义 6.2.1  常量 6.3 运算符及表达式 6.4.2 条件语句 先来看两个Verilog HDL程序。 例6.1    一个8位全加器的 Verilog HDL源代码 【例6.2】一个8位计数器的Verilog HDL源代码     从上面的例子可以看出:     ①

    2024年02月05日
    浏览(10)
  • 有限状态机设计(Verilog HDL)

    有限状态机设计(Verilog HDL)

    一、有限状态机 - 基本概念 有限状态机(Finite State Machine, FSM)是电路设计的经典方法,通常可以认为是组合逻辑和寄存器逻辑的组合,其中组合逻辑用于状态译码和产生输出信号,寄存器用于存储状态。 - Moore和Mealy型状态机 摩尔型(Moore)状态机: 输出只是当前状态的函数

    2024年02月16日
    浏览(9)
  • 微信小程序页面传递参数方法

            页面跳转方法有很多中,但经常会通过一个页面传递参数给另一个页面,非常的常见。但数据量大的时候,通常用字符串传递,但会显得过于臃肿,下面介绍页面传递参数的各种方式。 例如:A跳转到B页面携带参数 特点:只能传递单个页面,数据量少 当然,如果过

    2024年02月03日
    浏览(13)
  • 【Verilog HDL】FPGA-Verilog文件的基本结构

    【Verilog HDL】FPGA-Verilog文件的基本结构

    🎉欢迎来到FPGA专栏~Verilog文件的基本结构 ☆* o(≧▽≦)o *☆ 嗨 ~我是 小夏与酒 🍹 ✨ 博客主页: 小夏与酒的博客 🎈该系列 文章专栏: FPGA学习之旅 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏 📜 欢迎大家关注! ❤️ Verilog HDL系列博客参考书籍 《

    2024年02月04日
    浏览(11)
  • 【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法

    【FPGA Verilog开发实战指南】初识Verilog HDL-基础语法

    就是用代码来描述硬件结构 语言有VHDL与Verilog HDL Verilog HDL 是从C语言来的,学的快 ###例子 也叫保留字,一般是小写 module 表示模块的开始 endmodule 模块的结束 模块名 一般与.v文件的名字一致 输入信号 input 输出信号 output 既做输入也做输出 inout 需要一些变量和参数对输

    2024年02月21日
    浏览(13)
  • 【FPGA】组合逻辑电路三种建模方式(Verilog HDL 门级建模、Verilog HDL 数据流建模、组合电路行为级建模)

    【FPGA】组合逻辑电路三种建模方式(Verilog HDL 门级建模、Verilog HDL 数据流建模、组合电路行为级建模)

    目录   Verilog HDL 门级建模 各种逻辑门的表示和使用 门级建模书写实例 Verilog HDL 数据流建模 数据流建模 数据流建模书写实例 组合电路行为级建模 always语句 条件语句 多路分支语句 循环语句 for while repeat forever 行为级建模示例   可以理解为对逻辑电路中各个门依次进行描述

    2024年04月13日
    浏览(21)
  • 【【Verilog典型电路设计之log函数的Verilog HDL设计】】

    【【Verilog典型电路设计之log函数的Verilog HDL设计】】

    log函数是一种典型的单目计算函数,与其相应的还有指数函数、三角函数等。对于单目计算函数的硬件加速器设计一般两种简单方法:一种是查找表的方式;一种是使用泰勒级数展开成多项式进行近似计算。这两种方式在设计方法和精确度方面有很大的不同。查找表方式是通过

    2024年02月11日
    浏览(12)
  • 【Verilog HDL实践】汽车尾灯控制电路实现

    【Verilog HDL实践】汽车尾灯控制电路实现

    【Verilog HDL实践】汽车尾灯控制电路实现 使用芯片:Altera Cyclone® IV EP4CE22F17C6N FPGA 开发工具:Quartus Ⅱ 开发项目: 设计一个汽车尾灯控制电路。已知汽车左右两侧各有3个尾灯,采用K0、K1进行状态控制,要求尾灯按如下规则亮灭。 (1)汽车沿直线行驶时,两侧的指示灯全灭;

    2024年02月04日
    浏览(10)
  • Verilog HDL系统任务说明语句task

    Verilog HDL系统任务说明语句task

    task说明语句 如果传给任务的变量和任务完成后接受任务的变量已定义,就可以用一条语句启动任务,任务完成以后控制传回启动的过程。 1.1任务的定义 定义任务的语法如下: 1.2任务的调用及变量的传递 任务调用: 1.3例子 用两种不同的方法设计一个功能相同的模块,完成

    2024年02月03日
    浏览(10)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包