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设计中,方便在仿真时查 ...
随机推荐
- 解决: Homestead 环境下, yarn install --no-bin-links, NPM run dev, 命令报错
执行以下命令: 1 $ rm -rf node_modules 2 $ yarn config set registry http://registry.cnpmjs.org 3 $ yarn ins ...
- java——————基础总结2
一 程序中常见的错误: 1,语法错误 2, 逻辑错误 3,运行时错误 二 定义class类的时候,如果前面加个public 那么class的类名必须要和文件名一致,否则就会 出现编译错误 三 编译源文 ...
- Jenkins可持续集成项目搭建——配置邮件
1.系统管理->系统设置 (1)填写系统管理员邮件地址 (2)填写邮箱配置.发件人邮箱.收件人邮箱 注:1>发件人邮箱地址必须和系统管理员邮箱地址一致 2> 部分邮箱配置输入的不是登 ...
- docker nginx letsencrypt
https越来越流行了,但免费的证书一般是一年有效期.一般是够用了,但懒人都想一劳永逸, 有个免费证书颁发机构是letsencrypt.它是开源,并且完全免费的,它颁发的证书已经被几乎所有的浏览器所认 ...
- 18.24 Ubuntu修改静态IP
1.查询系统当前的ip地址配置信息,输入ifconfig命令进行查看 2.打开文件设置静态IP sudo vi /etc/network/interfaces 3.设置address ip.gatew ...
- spring事务详解(三)源码详解
系列目录 spring事务详解(一)初探事务 spring事务详解(二)简单样例 spring事务详解(三)源码详解 spring事务详解(四)测试验证 spring事务详解(五)总结提高 一.引子 ...
- 记录一次MyEclipse打开jsp文件出现Error的解决办法
今天正在忙着写项目,在打开一个项目内的jsp文件时发现我亲爱的代码消失了. 最后从网上找到了解决办法,希望可以帮到有需要的人,也作为个人记录 第一步:找到安装路径MyEclipse\configura ...
- ThinkPHP 中使用 IS_AJAX 判断原生 JS 中的 Ajax 出现问题
问题: 在 ThinkPHP 中使用原生 js 发起 Ajax 请求的时候.在控制器无法使用 IS_AJAX 进行判断.而使用 jQuery 中的 ajax 是没有问题的. 在ThinkPHP中.有一 ...
- rabbitMQ 在 windows 64位环境下无法启动(提示乱码)的解决方法
执行start命令时,提示乱码 解决方法: Set the environment variable “RABBITMQ_BASE” to “c:\rabbitmq”, uninstall the s ...
- Linux下阅读源代码工具安装
综合他们多篇博客,做一个自己的总结(从0开始,记录过程) 系统:ubuntu 16.04 vim:7.4.1689 内容来源: https://www.cnblogs.com/wangzhe1635 ...