0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用参数化编写可重用的verilog代码

jf_78858299 来源:Hack电子 作者:Hack电子 2023-05-11 15:59 次阅读

我们将介绍如何使用verilog参数和generate语句来编写可重用的verilog 代码。

与大多数编程语言一样,我们应该尝试使尽可能多的代码可重用。这使我们能够减少未来项目的开发时间,因为我们可以更轻松地将代码从一个设计移植到另一个设计。

我们在verilog中有两个可用的结构,可以帮助我们编写可重用的代码 - 参数化和generate语句。这两种结构都允许我们创建更通用的代码,当我们实例化组件时,我们可以轻松修改这些代码以满足我们的需求。

Verilog参数化

在verilog中,参数是常量的局部形式,可以在我们实例化模块时为其赋值。由于参数的范围有限,我们可以多次调用同一个verilog模块,并为参数分配不同的值。这使我们能够动态配置模块的行为。

下面的verilog代码片段显示了在模块中声明参数的方法。当我们在这样的verilog模块中声明一个参数时,我们称之为参数化模块。

上面verilog代码中的 < parameter_name > 字段用于为我们的参数提供标识符。我们使用此标识符在代码中调用参数值,就像使用普通变量一样。我们还可以使用上面示例中的 字段为参数分配默认值。这很有用,因为它允许我们实例化组件,而无需专门为参数赋值。当我们 verilog设计单元中实例化模块时,我们可以使用命名关联或位置关联为参数分配一个值。这与将信号分配给模块上的输入或输出完全相同。但是,当我们编写使用 verilog 1995 标准的代码时,我们只能使用位置关联为参数赋值。

下面的 verilog 代码片段显示了我们在实例化模块时用于为参数赋值的方法。

Verilog 参数化模块示例

为了更好地理解我们如何在verilog中使用参数,让我们考虑一个基本的例子。对于此示例,让我们考虑一个需要两个同步计数器的设计。其中一个计数器宽 8 位,另一个宽 12 位。

为了实现这个电路,我们可以编写两个具有不同宽度的不同计数器模块。然而,这是一种对电路进行编码的低效方法。相反,我们将编写单个计数器电路并使用参数来更改输出中的位数。

由于理解我们如何使用参数化模块并不重要,因此我们将排除此示例中的功能代码。相反,我们将只研究如何在 verilog中声明和实例参数化模块。

下面的 verilog 代码片段显示了我们如何为参数化计数器模块编写接口

在这个例子中,我们看到了如何使用参数来调整verilog中信号的大小。 我们不是使用固定数字来声明端口宽度,而是将参数值替换为端口声明 。这是 verilog 中参数最常见的用例之一。

在上面的 verilog 代码中,我们将 BITS 参数的默认值定义为 8。因此,当我们想要一个不是 8 位的输出时,我们只需要为参数分配一个值。

下面的代码片段显示了当我们想要 12 位输出时如何实例化这个模块。在这种情况下,我们必须在实例化 verilog 模块时覆盖参数的默认值。

虽然我们在上面的示例中使用 命名关联 ,但我们也可以使用位置关联为 verilog 中的参数赋值。

下面的代码片段显示了我们将如何使用位置关联将值 12 分配给 BITS 参数。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Verilog
    +关注

    关注

    28

    文章

    1351

    浏览量

    110085
  • 编程语言
    +关注

    关注

    10

    文章

    1944

    浏览量

    34721
  • 代码
    +关注

    关注

    30

    文章

    4782

    浏览量

    68546
收藏 人收藏

    评论

    相关推荐

    Verilog HDL代码书写规范

    1. 目的本规范的目的是提高书写代码的可读性、可修改性、重用性,优化代码综合和仿真的结果,指导设计工程师使用VerilogHDL规范代码
    发表于 12-08 14:36

    如何用参数加法器树编写Verilog

    有没有人对如何用参数加法器树编写Verilog有任何建议,输入参数是操作数的数量?加布里埃尔以上来自于谷歌翻译以下为原文Does anyo
    发表于 04-25 13:28

    Verilog代码书写规范

    Verilog代码书写规范 本规范的目的是提高书写代码的可读性、可修改性、重用性,优化代码
    发表于 04-15 09:47 106次下载

    通过编写verilog代码实现OLED驱动和内容显示的解决方案

    本实验通过verilog代码编写,在EGO1开发板上实现OLED的驱动和内容显示。
    的头像 发表于 11-11 08:22 1.9w次阅读

    基于System Verilog重用验证平台设计及验证结果分析

    采用System Verilog语言设计了一种具有层次结构的重用验证平台,该平台能够产生各种随机、定向、错误测试向量,并提供功能覆盖率计算。将验证平台在Synopsys公司的VCS
    发表于 01-12 11:28 2678次阅读
    基于System <b class='flag-5'>Verilog</b>的<b class='flag-5'>可</b><b class='flag-5'>重用</b>验证平台设计及验证结果分析

    如何使用Verilog HDL描述综合电路?

    1、如何使用Verilog HDL描述综合电路 Verilog 有什么奇技淫巧?我想最重要的是理解其硬件特性。Verilog HDL语言仅是对已知硬件电路的文本描述。所以
    的头像 发表于 04-04 11:19 4208次阅读
    如何使用<b class='flag-5'>Verilog</b> HDL描述<b class='flag-5'>可</b>综合电路?

    代码重用攻击的通用模型及描述语言

    提出了一种代码重用攻击的通用模型,为了能够对代码重用攻击中的 gadget进行结构的描述,设计了一种用于
    发表于 05-29 16:29 5次下载

    代码重用性是代码开发和确保可维护性的关键

      所有嵌入式软件开发人员都应该了解库的工作方式及其提供的好处。代码重用性是高效、高效的代码开发和确保可维护性的关键。
    的头像 发表于 06-30 14:58 1667次阅读
    <b class='flag-5'>代码</b>的<b class='flag-5'>可</b><b class='flag-5'>重用</b>性是<b class='flag-5'>代码</b>开发和确保可维护性的关键

    代码重用的架构可视关键

      代码重用已成为一种通用的软件开发最佳实践。它通过提高开发效率来加快上市时间,同时最大限度地降低与全新开发相关的成本。代码重用的实践还使开发组织能够利用从现有
    的头像 发表于 11-07 14:50 442次阅读

    verilog语言编写规范

    本规范的目的是提高书写代码的可读性 可修改性 重用性 优化代码综合和仿真的结 果 指导设计工程师使用VerilogHDL规范代码和优化电路
    的头像 发表于 11-23 17:28 1193次阅读

    FPGA设计硬件语言Verilog中的参数

    FPGA 设计的硬件语言Verilog中的参数有两种关键词:define 和 paramerter,参数的主要目的是
    发表于 12-26 09:53 884次阅读

    基于verilog编写99秒计数器

    Verilog语言编写,通过模块设计的99秒技术器
    发表于 02-16 16:16 0次下载

    如何使用verilog参数和generate语句来编写重用verilog代码

    与大多数编程语言一样,我们应该尝试使尽可能多的代码重用。这使我们能够减少未来项目的开发时间,因为我们可以更轻松地将代码从一个设计移植到另一个设计。
    的头像 发表于 05-08 16:59 1659次阅读

    重用的验证组件中构建测试平台的步骤

    writer ) 进行区分,前者负责测试平台的构建和配置,后者可能对测试平台的底层了解较少,但用它来创建测试用例。 基于验证组件创建测试平台的步骤是:  Review重用的验证组件配置参数。  实例
    的头像 发表于 06-13 09:14 602次阅读
    <b class='flag-5'>可</b><b class='flag-5'>重用</b>的验证组件中构建测试平台的步骤

    FPGA的Verilog代码编写规范

      注:以R起头的是对编写Verilog代码的IP设计者所做的强制性规定,以G起头的条款是建议采用的规范。每个设计者遵守本规范锻炼命名规范性。
    的头像 发表于 08-15 16:23 2185次阅读