verilog 介绍
Verilog HDL
Verilog HDL是在C语言的基础上发展起来的一种硬件描述语言,语法较自由。VHDL和Verilog HDL两者相比,VHDL的书写规则比Verilog HDL烦琐一些,但Veri log HDL自由的语法也容易让少数初学者出错。国外电子专业很多会在本科阶段教授VHDL,在研究生阶段教授Verilog HDL。它们的共同特点是利于由顶向下设计,利于模块的划分与复用,可移植性好,通用性好,设计不因芯片的工艺与结构的变化而变化,更利于向ASIC的移植。Verilog HDL语言最初是于1983年由Gateway Design Automation公司为其模拟器产品开发的硬件建模语言。那时它只是一种专用语言。由于其模拟、仿真器产品的广泛使用,VerilogHDL作为一种便于使用且实用的语言逐渐为众多设计者所接受。在一次努力增加语言普及性的活动中,VerilogHDL语言于1990年被推向公众领域。OpenVerilogInternational(OVI)是促进Verilog HDL
发展的国际性组织。1992年,OVI决定致力于推广Verilog OVI标准成为1EEE标准。这一努力最后获得成功,Verilog HDL语言于1995年成为IEEE标准,称为IEEE Std 1364--1995。完整的标准在Verilog HDL硬件描述语言参考手册中有详细描述。
Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽
象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门
和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式
地进行时序建模。
Verilog HDL语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外,Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。VerilogHDL从C编程语言中继承了多种操作符和结构,提供了扩展的建模能力,
其中许多扩展最初很难理解。但是,Verilog HDL语言的核心子集非常易于学习
和使用,这对大多数建模应用来说已经足够。当然,完整的硬件描述语言足以对
从最复杂的芯片到完整的电子系统进行描述。
2.1.2 Veri Iog HDL开发流程
用Verilog HDL语言开发CPLD/FPGA的完整流程为:
1)文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。
Verilog HDL文件保存为.v文件,常用的文本编辑工具有ultraedit32。
2)功能仿真:将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确,
是否符合设计要求。功能仿真也叫前仿真,对简单的设计可以跳过这一步,只在
布线完成以后,进行时序仿真。常用的仿真工具有Model Tech公司的Modelsim,
Aldec公司的Active HDL,Synopsys公司的VCS等。通过功能仿真可以及时发现
设计中的错误,加快设计进度,提高设计的可靠性。
3)逻辑综合(Synthesize):将HDL语言源文件调入逻辑综合软件翻译成由与、
或、非门、寄存器等基本逻辑单元组成的逻辑连接,即把语言综合成最筒的布尔
表达式和信号的连接关系。逻辑综合软件会生成.edf的EDA工业标准文件。常
用的综合工具有Synplicity公司的Synplify Pro,Synopsys公司的FPGA
Express等。
4)布局布线;将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的
逻辑安放到CPLD/FPGA内
5)时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的
时序,也叫后仿真。时序仿真应将布局布线的时延文件反标到设计中,使得仿真
既包括门延时,又包含线延时信息,从而准确地反映芯片地实际工作情况。
6)编程下载:确认仿真无误后,将生成的可编程文件下载到芯片中,得到实际
的电路。
2.1.3 Ver i Iog HDL的优点
数字信号处理(DSP)系统的研究人员一直在努力寻找各种优化的算法来解
决相关的信号处理问题。当他们产生了比较理想的算法思路后,就在计算机上用
C语言或其他语言程序来验证该算法,并不断修改以期完善,然后与别的算法作
性能比较。在现代通信和计算机系统中,对于DSP算法评价最重要的指标是看它
能否满足工程上的需要。而许多工程上的需要都有实时响应的要求,也就是说应需要数字信号处理(DSP)系统在限定的时间内,如在几个ms甚至于几个p s内,
对所输入的大量数据完成相当复杂的运算,并输出结果。这时如果我们仅仅使用
通用的微处理器,即使是专用于信号处理的微处理器,往往也无法满足实时响应
的要求。因此,不得不设计专用的高速硬线逻辑来完成这样的运算。设计这样的
有苛刻实时要求的复杂的高速硬线运算逻辑是一件很有挑战性的工作,即使有了
好的算法而没有好的设计工具和方法也很难完成。
传统的数字电路设计方法是采用电路原理图输入法。当时的系统设计规模比
较小,也比较简单,其中所用到的FPGA或ASIC设计工作往往只能采用厂家提供
的专用电路图输入工具来进行。为了满足设计性能指标,工程师往往需要花费好
几天或更长的时问进行艰苦的手工布线。此外,工程师还得非常熟悉所选器件得
内部结构和外部引线特点,才能达到设计要求。这种低水平的设计方法大大延长
了设计周期。
采用Verilog HDL设计电路时,由于它的标准化,可以很容易的把完成的
设计移植到不同厂家的不同芯片中,并且在不同规模应用时可以比较容易地进行
修改,以适应不同规模的应用。采用Verilog HDL设计电路的最大优点其实就
是它的与工艺无关性,这就使得工程师在功能设计、逻辑验证阶段不必过多考虑
门级及工艺实现的细节,只要利用系统设计时对芯片的要求,施加不同的约束条
件,即可设计出实际的电路,大大减轻了工程师的劳动强度。
Verilog HDL和传统的原理图输入方法的关系就好比是高级语言和汇编语
言的关系。Yerilog HDL的可移植性好,使用方便,但效率不如原理图;原理
图输入的可控性好,效率高,比较直观,但设计大规模CPLD/FPGA时显得很烦琐,
移植性差。在真正的CPLD/FPGA设计中,通常建议采用原理图和Verilog HDL
结合的方法来设计,适合用原理图的地方就用原理图,适合用Veri log HDL的
地方就用Verilog HDL,并没有强制的规定。在最短的时间内,用自己最熟悉
的工具设计出高效,稳定,符合设计要求的电路才是我们的最终目的。
由于Verilog HDL的设计方法与工艺无关,因此大大提高了Verilog HDL
模型的可重用性。通常把功能经过验证的、可综合的、实现后电路结构总门数在
5000门以上的Verilog HDL模型称为“软核”(Soft Core),由软核构成的器
件成为虚拟器件。在电路的设计过程中,利用软核和虚拟器件的可重用性,可以
太大缩短设计周期,加快了复杂电路的设计速度。
verilog 介绍的更多相关文章
- Verilog学习总结
1.多个always语句不能对同一变量赋值. 2.assign语句只能进行阻塞赋值,用来描述组合逻辑. 3.verilog描述方式:结构描述(门级描述和模块调用).数据流描述(assign,wire型 ...
- 自己动手写处理器之第二阶段(2)——Verilog HDL简单介绍
将陆续上传本人写的新书<自己动手写处理器>(尚未出版),今天是第六篇.我尽量每周四篇 2.3 Verilog HDL简单介绍 本书实现的OpenMIPS处理器是使用Verilog HDL编 ...
- 一段比较有意思的代码——介绍system verilog中的新增幅值语句
system verilog中新加了很多幅值语句,虽然都只适用于阻塞幅值,但是在某些场合中非常实用. 下面是一段有意思的代码,覆盖了一些用法. package definitions; typedef ...
- 关于verilog实例化的介绍
概念 当我们完成一个比较完整的系统的时候,通常需要编写一个Testbench来验证自己的设计的功能能否满足设计要求.在这个系统中通常会有一个top模块来连接那些小的模块,verilog通过实例化的方式 ...
- Verilog HDL模型的不同抽象级别
所谓不同的抽象类别,实际上是指同一个物理电路,可以在不同层次上用Verilog语言来描述.如果只从行为功能的角度来描述某一电路模块,就称作行为模块.如果从电路结构的角度来描述该电路模块,就称作结构模块 ...
- Verilog学习笔记基本语法篇(十二)········ 编译预处理
h Verilog HDL语言和C语言一样也提供编译预处理的功能.在Verilog中为了和一般的语句相区别,这些预处理语句以符号"`"开头,注意,这个字符位于主键盘的左上角,其对应 ...
- FPGA作为从机与STM32进行SPI协议通信---Verilog实现 [转]
一.SPI协议简要介绍 SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用 ...
- system verilog的一些总结(从其他博客复制来的)
转载自 http://blog.sina.com.cn/s/blog_e7fec2630101f5t9.html SystemVerilog是一种硬件描述和验证语言(HDVL),它基于IEEE 136 ...
- verilog断言(SVA:systemverlog assertion)语法 ---- 转载
转载自:http://blog.sina.com.cn/s/blog_4c270c730101f6mw.html 作者:白栎旸 断言assertion被放在verilog设计中,方便在仿真时查 ...
随机推荐
- for和for in区别
for ... in 循环中的代买每执行一次,就会对数组的元素或者对象的属性进行一次循环操作. eg:应该用在非数组对象的遍历上,使用for-in进行循环也被称为“枚举”. for (变量 in 对象 ...
- 贴图平移&凹凸贴图偏移
1. 平移(UV坐标动画) UV 坐标动画或 UV 平移的含义是,水平 (U) 和/或垂直 (V) 移动纹理的 UV 坐标,以产生复杂动画的错觉. 在以下示例中,火焰纹理沿着 U(水平)方向平移, ...
- 【python】闭包
一.闭包满足的条件 闭包 = 内部函数 + 定义函数的环境 条件一 : 内部函数 条件二: 外部环境的变量 二.实战 def outer(): x = 10 y = 20 def inner(): p ...
- 明令禁止下,哪些APP在违规获取用户信息?
2019年4月28日消息 移动互联网时代各大APP大行其道,用户为了更便捷地享受互联网服务,常常需要让渡部分个人信息.在信息获取不透明的情况下,不少APP运营企业出现过度获取乃至违规获取用户信息的情 ...
- 未处理AccessViolationException 异常
在进行arcgis的GP操作时,当操作栅格图像的拼接时,报错: AccessViolationException: 尝试读取或写入受保护的内存 原以为可以通过try catch屏蔽掉错误,不至于程序 ...
- 关于使用easyui 中提示dialog is not a function的问题
我们经常在一些项目使用easyui,当然必不可少都会用到dialog这个功能,但是有时候你会发现: 明明我的代码没有错误,调用的规范按照API的来撰写,但是还有会报 $(...).dialog is ...
- C# 如何获取SQL Server 中指定数据表的所有字段名和字段类型
如何获取指定数据表的所有字段名和字段类型.SqlConnection.GetSchema方法有2个重载形式,获取指定数据表的所有字段名和字段类型的秘密就在GetSchema (String, Stri ...
- Android Studio 问题
1.问题:android studio 安装 apk 闪退 方法: Build → Clean Project 一下再安装 2.问题:Gradle failed: already disposed m ...
- Oracle数据库容量使用情况调查
-- 剩余容量 select sum(bytes) FREE from DBA_FREE_SPACE where tablespace_name ='xxx'; -- 总容量 select sum(b ...
- [UE4]在Character中使用Add Spline Mesh Component,关于Transform.Mobility
一.因为Character是可移动的,因此也需要把Add Spline Mesh Component的Transform.Mobility设置为Movable 二.不然就会得到类似这样的提示.错误信息 ...