前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >数字硬件建模-从另一方面理解Verilog(一)

数字硬件建模-从另一方面理解Verilog(一)

作者头像
碎碎思
发布于 2022-03-07 05:56:45
发布于 2022-03-07 05:56:45
1.1K0
举报
文章被收录于专栏:OpenFPGAOpenFPGA

Verilog标准化为IEEE 1364标准,用于描述数字电子电路。Verilog HDL主要用于RTL抽象级别的设计和验证。Verilog由Prabhu Goel和Phil Moorby于1984年在Gateway design automations创建。Verilog IEEE标准包括Verilog-95(IEEE 1364-1995)、Verilog-2001(IEEE 1364-2001)和Verilog-2005(IEEE 1364-2005)。Verilog是区分大小写的,在进一步讨论RTL设计和合成之前,必须对Verilog代码结构有基本的了解(图1.3)

图1.3 Verilog代码结构模板

如Verilog代码结构模板所示。

Verilog设计说明

在实际场景中,Verilog HDL分为三种不同的编码描述。编码描述的不同风格是结构、行为和可综合的RTL。考虑图1.4C所示的半加法器的设计结构,它描述不同的编码风格。图1.4显示了半加法器的真值表、原理图和逻辑结构实现。

结构设计

结构设计定义了设计的数据结构,并使用所需的网络连接以网络列表的形式进行描述。结构设计主要是不同小复杂度数字逻辑块的实例化。它基本上是一个小型模块的设计连接,以实现中等或复杂的逻辑。示例1.1描述了“basic_verilog”模块的结构代码样式(图1.4)。

示例1.1“basic_verilog”的结构样式

图1.4“basic_Verilog”的逻辑结构

行为设计

名称本身表示编码样式的性质。在Verilog代码的行为风格中,功能是从特定设计的真值表中编码的。假设设计是带有输入和输出的黑盒。设计者的主要意图是根据所需的输入集(示例1.2)在输出端映射功能。

可综合RTL设计

可综合RTL代码在实际环境中用于描述使用可综合结构的设计功能。RTL代码样式是使用可综合结构对功能的高级描述。建议使用可综合的Verilog结构使用RTL编码样式(示例1.3)。

示例1.3“basic_Verilog”的可合成RTL Verilog代码

关键Verilog术语

在接下来讨论Verilog术语之前,了解Verilog是如何工作的是至关重要的。为什么它是一种硬件描述语言?

  • Verilog不同于软件语言,因为它用于描述硬件。Verilog支持描述传播时间和灵敏度
  • Verilog支持并发(并行)执行语句,甚至支持顺序执行语句。
  • Verilog支持阻塞(=)分配,甚至支持非阻塞分配(<=)。阻塞赋值用于描述组合逻辑,非阻塞赋值用于描述顺序逻辑。这些作业将在后续章节中讨论。
  • Verilog支持输入、输出和双向(inout)端口的声明。
  • Verilog支持常量和参数的定义。Verilog支持文件处理。
  • Verilog支持四值逻辑:逻辑“0”、逻辑“1”、高阻抗“z”和未知“X”。
  • Verilog支持使用“always”和“initial”关键字的程序块。带有关键字“always”的过程块表示自由运行的进程并始终在事件上执行,带有关键字“initial”的过程块表示只执行一次块。两个程序块都在模拟器时间“0”执行。这些模块将在后续章节中讨论。
  • Verilog支持可合成结构以及不可合成结构。
  • Verilog支持递归使用任务和函数。
  • Verilog支持程序语言接口(PLI),将控制从Verilog传输到用“C”语言编写的函数。

下面显示的模板描述了用于描述大多数组合逻辑设计的关键Verilog结构(图1.5)。

图1.5基本Verilog定义和说明

Verilog算术运算符

Verilog支持加法、减法、乘法、除法和模运算符来执行算术运算。表1.1描述了算术运算符(示例1.4)。

表1.1 Verilog算术运算符

操作符

名称

功能

+

二元加法Binary addition

执行两个二进制操作数相加的步骤

二进制减号Binary minus

执行两个二进制操作数的减法

*

乘法Multiplication

执行两个二进制操作数的乘法

/

除法Division

对两个二进制操作数进行除法

%

模数Modulus

从两个操作数的除法求模

示例1.4

Verilog逻辑运算符

Verilog支持逻辑AND、OR和否定运算符来执行所需的逻辑操作。逻辑运算符用于在操作结束时返回单位值。表1.2描述了逻辑运算符的功能使用(示例1.5)。

表1.2 Verilog逻辑运算符

操作符

名称

功能

&&

逻辑与Logical AND

对两个二进制操作数执行逻辑与

!

逻辑反Logical Negation

对给定的二进制数执行逻辑求反

示例1.5 Verilog逻辑运算符

Verilog等式和不等式运算符

Verilog相等运算符用于在比较两个操作数后返回真值或假值。表1.3描述了操作员的功能(示例1.6)。

表1.3 Verilog等式和不等式运算符

操作符

名称

功能

==

Case equality

比较两个操作数的等式

!=

Case inequality

用于找出两个操作数的不等式

示例1.6 Verilog等式和不等式运算符

未完待续.....

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenFPGA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
python glob使用
http://www.cnblogs.com/lovemo1314/archive/2011/04/26/2029556.html
bear_fish
2018/09/19
1.3K0
python中的glob模块
可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差不多。查找文件只用到三个匹配符:”*”, “?”, “[ ]”。 ”*”匹配0个或多个字符; ”?”匹配单个字符; ”[ ]”匹配指
狼啸风云
2019/01/18
1.1K0
文件和目录操作(二)、glob模块
可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差不多。查找文件只用到三个匹配符:”*”, “?”, “[ ]”。 ”*”匹配0个或多个字符; ”?”匹配单个字符; ”[ ]”匹配指
狼啸风云
2019/10/22
1.5K0
文件和目录操作(二)、glob模块
python基础学习os、 glob模块
glob模块 1.glob.glob(pathname), 返回所有匹配的文件路径列表。它只有一个参数pathname,定义了文件路径匹配规则,这里可以是绝对路径,也可以是相对路径。 2.glob.iglob(pathname), 获取一个可编历对象,使用它可以逐个获取匹配的文件路径名。与glob.glob()的区别是:glob.glob同时获取所有的匹配路径,而glob.iglob一次只获取一个匹配路径。 glob模块可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差不多。它有三
哆哆Excel
2022/10/31
7010
数据处理技巧 | glob - 被忽略的超强文件批量处理模块
本篇推文开始,我将介绍一些常用的Python数据处理小技巧,帮助大家更好的处理数据,提高工作效率。今天我将介绍Python自带的一个模块-glob模块。涉及的内容主要如下:
DataCharm
2021/02/22
1.3K0
Python glob 模块全解析:轻松处理文件路径匹配
在 Python 中,glob 模块 主要用于 查找符合特定规则的文件路径,它支持使用通配符(如 *、? 和 [])来进行灵活的文件搜索。相比于 os.listdir(),glob 更适合按模式匹配文件,非常适用于批量处理文件。
不止于python
2025/03/17
1420
Python glob 模块全解析:轻松处理文件路径匹配
Python - 获取文件夹内所有文件
本文记录Python 获取指定文件夹内所有文件的方法。 测试环境 新建了3个文件夹和11个文件 glob glob模块可以返回指定路径(可绝对/可相对)下的符合制定匹配模式的文件路径。
为为为什么
2022/08/04
1.2K0
Python - 获取文件夹内所有文件
Python: glob匹配文件
glob模块实例详解 glob的应用场景是要寻找一系列(符合特定规则)文件名。 glob模块是最简单的模块之一,内容非常少。用它可以查找符合特定规则的文件路径名。查找文件只用到三个匹配符:”*”, “
用户2183996
2018/06/21
2.4K0
glob模块基本介绍
通过指定recursive=True可以进行递归查找,模式**将匹配任何文件以及零个或多个目录,子目录和目录的符号链接。
炒香菇的书呆子
2023/10/11
3260
【实用 Python 库】Python glob库:轻松应对文件和目录管理
在Python编程中,我们经常需要处理文件和目录。为了更便捷地处理这些任务,Python提供了glob库,它允许我们根据特定模式匹配文件和目录。本篇博客将详细介绍glob库的用法,并通过实例演示它的各种功能。
繁依Fanyi
2023/10/12
1.7K0
深度对比Python中4大文件处理库(os、shutil、glob、pathlib)
os库应该是使用频率最高的一个文件处理库,但是不得不说Python中还有几个其它的文件处理库,像shutil库、glob库、pathlib库,它们可以说是相互补充,有着自己好用的方法。黄同学亲切的将它们合称为Python文件处理库的四大天王。
快学Python
2021/12/07
7.4K0
深度对比Python中4大文件处理库(os、shutil、glob、pathlib)
Python标准库glob用法精要
Python标准库glob提供了glob()和iglob()两个函数用来枚举指定文件夹中符合特定模式的文件列表,支持“?”和“*”通配符。 >>> import glob # 查找所有扩展名为txt
Python小屋屋主
2018/04/16
1.3K0
python—subprocess、gl
运行python的时候,我们都是在创建并运行一个进程。像Linux进程那样,一个进程可以fork一个子进程,并让这个子进程exec另外一个程序。在Python中,我们通过标准库中的subprocess包来fork一个子进程,并运行一个外部的程序。
py3study
2020/01/09
1.5K0
glob库函数使用方法
glob模块是用来获取文件路径的一个常用模块。它可以根据用户指定的路径来搜索文件,然后返回符合规则的文件路径列表。
很酷的站长
2023/10/31
4790
glob库函数使用方法
Python实现:教你轻松统计文件夹下文件个数
在日常的文件管理中,我们经常需要统计某个文件夹下文件的数量,这对于数据管理、文件清理等工作至关重要。Python作为一种强大而灵活的编程语言,提供了多种方法来实现这一目标。本文将介绍几种Python实现统计文件夹下文件个数的方法,并逐步解析它们的原理和用法。
霍格沃兹测试开发Muller老师
2024/03/18
2920
【经典原创】分享几个好用到爆的Python内置模块
今天介绍几个好用到爆的Python内置库,相信大家看过之后会对今后的Python编程帮助多多
用户6888863
2022/04/13
3160
整理了十个Python自动化操作,拿走就用!
在过去的半年内,我总共发布了超过了40篇 「Python办公自动化」文章,不知道大家有没有发现,有一些模块、一些代码会频繁出现。而os、shutil、glob基本是每篇都会出现。
小F
2021/04/26
1.2K0
教你怎么用python操作文件
Python中有几个内置模块和方法来处理文件。这些方法被分割到例如os, os.path , shutil 和 pathlib 等等几个模块中。文章将列举Python中对文件最常用的操作和方法。
程序员小新
2022/01/11
6.5K0
Python 自动化办公之"你还在手动操作“文件”或“文件夹”吗?"
1、“罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢? 2、利用 Python 进行多 Sheet 表合并、多工作簿合并、一表按列拆分
杰哥的IT之旅
2020/06/18
8960
一文去掌握python 中pathlib库
在python中,我们知道常用的路径的是os模块,这里给大家介绍一个新的模块-pathlib。
雷子
2022/05/21
1K0
一文去掌握python 中pathlib库
推荐阅读
相关推荐
python glob使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文