当前位置:网站首页>【Verilog数字系统设计(夏宇闻)3-----Verilog语法的基本概念1】
【Verilog数字系统设计(夏宇闻)3-----Verilog语法的基本概念1】
2022-07-26 01:42:00 【周猿猿】
Verilog数字系统设计(夏宇闻)3-----Verilog语法的基本概念1
概述
Verilog HDL是一种用于数字系统设计的语言。用Verilog HDL描述的电路设计就是该电路的Verilog HDL模型,也称为模块。Verilog HDL既是一种行为描述的语言也是一种结构描述的语言。这就是说,无论描述电路功能行为的模块或描述元器件或较大部件互联的模块都可以用Verilog语言来建立电路模型。如果按照一定的规则和风格编写,功能行为模块可以通过工具自动地转换为门级互联的结构模块。Verilog模型可以是实际电路的不同级别的抽象。
模型类型
抽象的级别和它们所对应的模型类型共有以下5种:
(1) 系统级(system-level):用语言提供的高级结构能够实现待设计模块的外部性能的模型。
(2) 算法级(algorithm-level):用语言提供的高级结构能够实现算法运行的模型。
(3) RTL级(registertransfer level):描述数据在寄存器之间的流动和如何处理、控制这些数据流动的模型。
以上三种都属于行为描述,只有RTL级才与逻辑电路有明确的对应关系。
(4) 门级(gate-level):描述逻辑门以及逻辑门之间连接的模型。与逻辑电路有确定的连接关系,以上4种数字系统设计工程师必须掌握。
(5) 开关级(switch-level):描述器件中三极管和储存节点以及它们之间连接的模型。
一个复杂电路系统的完整Verilog HDL模型是由若干个Verilog HDL模块构成的,每一 个模块又可以由若干个子模块构成。其中有些模块需要综合成具体电路,而有些模块只是与用户所设计的模块有交互联系的现存电路或激励信号源。利用VerilogHDL语言结构所提供的这种功能就可以构造一个模块间的清晰层次结构,以此来描述极其复杂的大型设计,并对所作设计的逻辑电路进行严格的验证。
行为描述语言具有功能
Verilog HDL行为描述语言作为一种结构化和过程性的语言,其语法结构非常适合于算法级和RTL级的模型设计。这种行为描述语言具有以下功能:
- 可描述顺序执行或并行执行的程序结构;
- 用延迟表达式或事件表达式来明确地控制过程的启动时间;
- 通过命名的事件来触发其他过程里的激活行为或停止行为;
- 提供了条件如if-else,case等循环程序结构;
- 提供了可带参数且非零延续时间的任务(task)程序结构;
- 提供了可定义新的操作符的函数结构(function);
- 提供了用于建立表达式的算术运算符、逻辑运算符、位运算符;
- Verilog HDL语言作为一种结构化的语言非常适用于门级和开关级的模型设计。
因其结构化的特点又使它具有以下功能:
1.提供了一套完整的表示组合逻辑的基本元件的原语(primitive);
2.提供了双向通路(总线)和电阻器件的原语;
3.可建立 MOS 器件的电荷分享和电荷衰减动态模型。
4.Verilog HDL 的构造性语句可以精确地建立信号的模型。 这是因为在 Verilog HDL 中 ,提供了延迟和输出强度的原语来建立精确程度很高的信号模型 。 信号值可以有不同的强度, 可以通过设定宽范围的模糊值来降低不确定条件的影响。
小结
(1) Verilog HDL程序是由模块构成的。 每个模块的内容都是位于 module 和 endmodule 两个语句之间 。 每个模块实现特定的功能 。
(2) 模块是可以进行层次嵌套的。 正因为如此, 才可以将大型的数字电路设计分割成不同的小模块来实现特定的功能 。
(3) 如果每个模块都是可以综合的, 则通过综合工具可以把它们的功能描述全都转换为最基本的逻辑单元描述,最后可以用 一个上层模块通过实例引用把这些模块连接起来 ,把它们整合成一个很大的逻辑系统。
(4) Verilog模块可以分为两种类型: 一种是为了让模块最终能生成电路的结构,另一种只是为了测试所设计电路的逻辑功能是否正确 。
(5) 每个模块要进行端口定义,并说明输入 、输出口 , 然后对模块的功能进行描述。
(6) Verilog HDL程序的书写格式自由,一行可以写几个语句,一个语句也可以分写多行。
(7) 除了endmodule语句外 ,每个语句和数据定义的最后必须有分号。
(8) 可以用/ * …… * /和//……对Verilog HDL程序的任何部分作注释。 一个好的 、有使用价值的源程序都应当加上必要的注释,以增强程序的可读性和可维护性。
边栏推荐
- zeromq浅析
- Quickly create a topic folder
- Prime Ring Problem
- “蔚来杯“2022牛客暑期多校训练营2 G.[Link with Monotonic Subsequence] 分块构造
- Two stage submission and three stage submission
- “蔚来杯“2022牛客暑期多校训练营2 H.[Take the Elevator] 维护线段
- 销量连连夺冠,五菱的成功秘诀只有低价吗?
- Typora expiration solution, what if typora can't open
- “蔚来杯“2022牛客暑期多校训练营2 I.[let fat tension] 矩阵乘法 J.[Link with Arithmetic Progression]线性回归
- Cross-lingual Transfer of Correlations between Parts of Speech and Gaze Features 阅读笔记
猜你喜欢

MulDA: A Multilingual Data Augmentation Framework for Low-Resource Cross-Lingual NER 阅读笔记

The work of robot engineering and the puzzle of postgraduate entrance examination "volume" supplement
![[unity] random generation of two-dimensional cave map](/img/ec/7433f6e942fc3d0b03cac37ac87e7b.png)
[unity] random generation of two-dimensional cave map

Go operation excel library excel use
![[untitled]](/img/bf/7c4be5b442d12b2b1896f197be30fa.png)
[untitled]

8. Learn Mysql to create data tables

What is a test case? How to design?

"Yuanqi Cola" is not the end point, "China Cola" is

聚势|海泰方圆亮相第五届数字中国建设峰会

MDK compilation process and arm compilation tool chain
随机推荐
Introduction to API testing
Dijkstra 求最短路
图像批处理高斯滤波降噪+峰值信噪比计算
IP address of the network
Speech comprehension - structural analysis exercise of fragment reading
Record a failure caused by a custom redis distributed lock
Zero copy of network file transfer
大咖观点+500强案例,软件团队应该这样提升研发效能
4QAM、16QAM 调制与解调仿真电路,观察并分析QAM星座图和误码率曲线【matlab代码】
记一次自定义 Redis 分布式锁导致的故障
NiO simple example
Stack Title: basic calculator
8. Learn Mysql to create data tables
当博客被黑客攻击时该怎么办?
MDK compilation process and arm compilation tool chain
销量连连夺冠,五菱的成功秘诀只有低价吗?
poj1521
Format JS code and debug JS code
Typora expiration solution, what if typora can't open
[Unity] 二维洞穴地图随机生成