【verilog】Verilog数字系统设计教程学习笔记(夏宇闻)《一》
2018-03-20 17:32
806 查看
硬件描述语言(HDL,hardware description language)是一种形式化方法来描述数字电路和系统的语言。数字电路系统的设计者利用这种语言可以从上层到下层(从抽象到具体)逐层描述自己的设计思想用一系列分层次的模块来表示极其复杂的数字系统。然后利用EDA工具逐层进行仿真验证,再把其中需要变为具体物理电路的模块组合经由自动综合工具转换到门级电路网表。接下去再用专用集成电路(ASIC)或现场可编程门阵列(FPGA)自动布局布线把网表转换为具体电路布线结构的实现。在制成物理器件之前,还可以用Verilog的门级模型来代替具体基本元件。
verilog HDL 是硬件描述语言的一种,用于数字电子系统设计。该语言允许设计者进行各种级别的逻辑设计,进行数字逻辑系统的仿真验证、时序分析、逻辑综合。
下面是HDL设计流程。
Verilog HDL既是一种行为描述语言也是一种结构描述语言。按照一定的语法规则,功能行为模块可以通过工具自动转换为门级互联的结构模块。Verilog模型可以是实际电路不同级别的抽象,抽象级别和他们对应的模型类型可以分为以下5种:
系统级(system-level):用语言提供的高级结构能够实现待设计模块的外部性能的模型。(行为描述)
算法级(algorithm-level): 用语言提供的高级结构能够实现算法运行的模型。(行为描述)
RTL级(register transfer level):描述数据在寄存器之间如何流动,控制这些数据流动的模型。(与逻辑电路有明确对应关系)
门级(gate-level):描述逻辑门以及逻辑门之间连接的模型。(与逻辑电路有明确对应关系)
以上4种数字系统设计工程师必须掌握
开关级(switch-level) 描述器件中三极管和存储节点以及它们之间连接的模型(与具体物理电路有对应关系)
开关级对于工艺库元件和宏部件设计人员必须掌握。
一个复杂的电路系统的完整Verilog HDL 模型是由若干个Verilog HDL 模块构成的,其中有的模块需要综合成具体电路,而有的模块只是用户所设计有交互联系的现存电路或者激励信号源。
模块之间可以实现层次嵌套
如果每个模块都是可以综合的,则通过综合工具可以把它们的功能描述全都转换成最基本的逻辑单元描述,最后可以用一个上层模块通过实例引用把这些模块连接起来,整合成一个很大的逻辑系统。
Verilog 模块可以分成两种类型:一种是为了让模块最终能生成电路的结构,另一种只是为了测试所设计电路的逻辑功能是否正确。
每个模块要进行端口定义,说明输入输出口
Verilog HDL程序可以一行写几个语句,也可以一个语句分成几行写。
除了endmodule语句之外,每个语句和数据定义的最后都必须有分号。
用 /…………/ 对代码进行多行注释,// 为单行注释符。
下一篇将重点记录具体语法规则,结构定义等等内容,本篇只是作为原书开篇介绍中一些概念内容的记录。
verilog HDL 是硬件描述语言的一种,用于数字电子系统设计。该语言允许设计者进行各种级别的逻辑设计,进行数字逻辑系统的仿真验证、时序分析、逻辑综合。
下面是HDL设计流程。
verilog的基本概念
Verilog HDL是一种数字系统设计的语言,用Verilog HDL 描述的电路设计就是该电路的Verilog HDL模型,也称作“模块”。Verilog HDL既是一种行为描述语言也是一种结构描述语言。按照一定的语法规则,功能行为模块可以通过工具自动转换为门级互联的结构模块。Verilog模型可以是实际电路不同级别的抽象,抽象级别和他们对应的模型类型可以分为以下5种:
系统级(system-level):用语言提供的高级结构能够实现待设计模块的外部性能的模型。(行为描述)
算法级(algorithm-level): 用语言提供的高级结构能够实现算法运行的模型。(行为描述)
RTL级(register transfer level):描述数据在寄存器之间如何流动,控制这些数据流动的模型。(与逻辑电路有明确对应关系)
门级(gate-level):描述逻辑门以及逻辑门之间连接的模型。(与逻辑电路有明确对应关系)
以上4种数字系统设计工程师必须掌握
开关级(switch-level) 描述器件中三极管和存储节点以及它们之间连接的模型(与具体物理电路有对应关系)
开关级对于工艺库元件和宏部件设计人员必须掌握。
一个复杂的电路系统的完整Verilog HDL 模型是由若干个Verilog HDL 模块构成的,其中有的模块需要综合成具体电路,而有的模块只是用户所设计有交互联系的现存电路或者激励信号源。
Verilog用于模块的测试
Verilog还可以用来描述变化的测试信号。描述测试信号的变化和测试过程的模块叫做测试平台(testbench 或 testfixture)。它可以对电路模块(无论是行为的还是结构的)进行动态的全面测试。通过观测被测试模块的输出信号是否符合要求,调试验证逻辑系统的设计和结构正确与否及时修改程序。补充
Verilog HDL程序是由模块构成的。每个模块的内容都是位于module 和 endmodule两个语句之间。每个模块定义特定的功能。模块之间可以实现层次嵌套
如果每个模块都是可以综合的,则通过综合工具可以把它们的功能描述全都转换成最基本的逻辑单元描述,最后可以用一个上层模块通过实例引用把这些模块连接起来,整合成一个很大的逻辑系统。
Verilog 模块可以分成两种类型:一种是为了让模块最终能生成电路的结构,另一种只是为了测试所设计电路的逻辑功能是否正确。
每个模块要进行端口定义,说明输入输出口
Verilog HDL程序可以一行写几个语句,也可以一个语句分成几行写。
除了endmodule语句之外,每个语句和数据定义的最后都必须有分号。
用 /…………/ 对代码进行多行注释,// 为单行注释符。
下一篇将重点记录具体语法规则,结构定义等等内容,本篇只是作为原书开篇介绍中一些概念内容的记录。
相关文章推荐
- [转]Verilog数字系统设计教程(大连理工一博士学习笔记)
- verilog 数字系统设计教程 读书笔记(1)
- verilog 数字系统设计教程 读书笔记(2)
- 基于JAVA的水泥三维图像特征提取系统设计与实现 之一 JAVA 3D学习笔记
- Ferris教程学习笔记:js示例2.8 求出数组中所有数字的和
- Coursera公开课笔记: 斯坦福大学机器学习第十一课“机器学习系统设计(Machine learning system design)”
- Ferris教程学习笔记:js示例3.4输入两个数字,比较大小
- 交互设计学习笔记之《如何设计帮助系统》【交互设计】
- [学习笔记]UML小结以及基于领域模型的系统设计初步
- 操作系统精髓与设计原理学习笔记十:分布式处理、客户/服务器和集群系统
- 信息安全系统设计基础 第4周学习笔记
- 一、机器学习系统设计笔记之python机器学习入门
- 设计模式学习笔记3:用于系统解藕的Observer
- Linux内核设计与实现 学习笔记(3)虚拟文件系统
- Ferris教程学习笔记:js示例3.6 判断数字是否为两位数
- [系统分析师教程][学习笔记] 第一章 概述
- 黑马程序员之项目开发学习笔记:ATM取款机系统数据库设计
- [学习笔记]UML小结以及基于领域模型的系统设计初步
- 我脑残实验室Verilog学习笔记——在Xilinx ISE中运用符号设计顶层模块的方法
- Coursera公开课笔记: 斯坦福大学机器学习第十一课“机器学习系统设计(Machine learning system design)”