1. 首页
  2. 课程学习
  3. 网络管理
  4. 周立功Verilog HDL黄金参考指南

周立功Verilog HDL黄金参考指南

上传者: 2020-08-29 19:50:51上传 PDF文件 512KB 热度 20次
广州周立功单片机发展有限公司Tel:(020)3873097638730977Fax:38730925htp:/v.zlgmcu.com 过程连续赋值 50 编稈语言接口 寄存器 5 Repeat 保留字 53 Specparam 语句... 字符串 任务 61 任务使能 64 定时控制 用户定义的原语 While 编译器伪指令 ∴71 编译器伪指令 define ifdef 74 系统任务和函数 76 系统任务和函数... 76 display和$wite... Fopen和 Fclose.... 8 readmemb和 Sreadmemh Strobe Stimeformat 随机建模. 定时检查 ,14 值改变转储 命令行选项 命令行选项 广州周立功单片机发展有限公司Te:(020)3873097638730977Fax:38730925htl:/Nww.ZLgmcu.com 序 Verilog黄金参考指南是 Verilog硬件描述语言及其语法、语义、合并以及将它应用到硬件设计的一个 简明的快速参考指南。 Verilog黄金参考指南并不是要代替lEE的标准 Verilog语言参考手册。它不像lEE的标准手册提供 了 Verilog完整、正式的描述。相反,黄金参考指南以一种方使的参考格式解答了在 Verilog的实戊应用过 程中经常遇到的问题。 erlg黄金参考指南乜不想成为介绍性的拦南。这里所提出的信息是一种扼要的参考格式,而不是学 习像∨erlg这种复杂的主题所必要的渐进和共吗方式。但必须承认的是已经熟悉计算机语言的人希望将这 个参考指南作为 verilog的课本,因此在开始本指南就会刈这个主题进行一个简单的非正式介绍。 Verilog黄金参考指南的主要特征是它包含了从许多 Verilog项目中积聚起来的大量实践知识。指南不 仅提供方便的语法参考(很多类似的书也有),还对最常见的语言错误提岀警告、在代码不能编译的时候给 出线索指出要看什么地方、警生你注意合并问题并对改善你的编码形式提出建议 Verilog黄金参考指南是为了给 Doulos的系列 Verilog练课程增值,也是 HDL Pace Maker— Doulos Verilog计算机基础训练包的补充。 指南的使用 ▲指南的主体被分成3个主要部分,每个部分都按字母顺序组织。每一部分都以每页顶部的关键字词 条作为索引。通常,你只婓快速翻阅指南查找相应的关键字词条的就可以找到想要的信息。如果找不到 也可以用最后的完整索引查找。 本指帕的很多信息郴国绕 Verilog的甸汏组织,但也有另外一珰有关编码标准、设计沇程、错误、保留 字以及在正文按字母顺序参考部分后面的编译器伪指令、系统任务和函数以及命令行选项等特殊的部分。 如果你是 Verilog的新手,请先阅读次页的 Verilog简单介绍 索引 粗体的索引条目在指南的主体有对应的页。剩下的索引条目按重要性的顺序在字符参考部分的页参考 后面 用于定义 Verilog语法的记号说明 在任何可能的时候,语法定义要写得和例子相似,但冇需要引入一些额外的记号。简单地来说,方括 号[]包含可选的项目,三个点号...表示重复,花括号{}包含的是汴释。斜体表示话法该鄙分作别处定义。 记号的完整描述如下 包含注释的花括号{}所不是被定义的 Verilog语法的一部分,但它向你提供了有关语法定义的补充信 息。粗体的化括号{}是 Verilog句法的一部分(连接运算符)。 包含在方括号[]中的语法是可选的。粗体的方括号是[] Verilog语法的一部分(矢量范围、位和部分选 择、存储器元素) 示前面的项目或行的重复0次或者多次,或者表示一个列表,例如: Item..表示tem重复0次或多次 示在用逗号分隔的列表重复(例如:A,B,C)。 列表中至少有一个项目。列表的结尾没有,号。 小写的字是保留字,是 Verilog语言的组成部分(例如: module) 以大写字母头的字(不是斜体)是 Verilog的标识符,即用户定义的名字,它们都不是保留的标识符 (例如: InstanceName) 斜体的字是句法范畴,即在别处完整给岀句法名字的定义。句法畴可以在相同的页里定义,乜可以 在独立的页定义,还可以在下面定义的其中一个特殊范畴中定义。 4 广州周立功单片机发展有限公司Tel:(020)3873097638730977Fax:38730925htp:/v.zlgmcu.com 斜体=表示在同一页定义和使用的何法范畴。 特殊的语法范畴: Min7 ypMaxExpression以 Expression定义。 U/ nsignedNumber以No umber定义。 Something EXpressio= Expression,其中 Something给出有关表达式的含总信息(例如 ConstantExpression, ConstantIn TypMaxExpression Verilog的简单介绍 下面向不懂erog语言的读者在技术上简要介绍一下 Verilog 背景 Verilog硬件描述浯言(HDL)是描述电子电路行为和结构的一种语言,是一种EEE标准(IEEE std.1364-1995 Verilog用于模拟从随机和纯行为到门级和开关级的抽象范围等层次的数字电子电路功能,也用于从许 多抽象(奇仔器传输级)描述合并(即自动产生)门级描述。∨ erilog一般用于支持高层次的设计(或基于 语言的设讣),其中电子设计在用自动合并工具进行详细设计前要通过高层次的完全抽象仿真来检验。 Verilog也广泛应用于C的门级检验,包括仿真、故障仿真和定时检验。 Verilog最初是在1984年由 Gateway Design Automation公司川发 Verilog-L仿真器的时候一起川发 出来。1989年, Cadence Design Systems公司并购 Gateway公司,同时拥有对erog语言和∨ erilog-X 仿真器的权力。1990年, Cadence将 Verilog语言(不是erlg-L)放到公共领域。为了使veog语 言通过EE标准化过程,一个非贏利性组织Open∨ erilog International(OVI)将它不断推进,结果在1995 年Veog成为一个EE标准。此后,OVI仍继续不断维护和开发这种语言。 语言 在本部分和指南剩下的部分,以大写字母开头的斜体字都是技术术语,都可以在本指的主体中找到。 使件设计的层次部分在V erilog中用模块( Module)描述。模块定义」哽件单元的接口(即输入和输 出)及其内部结构或行为。 大量的原语或者门( Gates)都内置在 Verilog语言内。它们表示基本的逻门(例如:and、or)。另 外,还可以定义用户定义的原语( User Defined primitives,UDPs)。 电子电路的结构通过在高层模块内对模块和原语(UDPs和门)举实例( stances)米摇述,而且实 例之间迁过线树(Nets)连接。线网表示一个电气连接、一条线路或总线。端口(Port)连接列表用于将 线网迕接到模块的端口或者连接到原语的实例,其中一个端口表示一个管脚。寄存器( Registers,见下面) 也可以连接到实例的输入端凵(只能连接到输入端口)。 线网(和寄存器)的值由逻辑值0、1、X(未知或未初始化的)和z(高阻或悬空)组成。除了逻辑 倌外,线网还有强度( Streng功)值。强度广泛地用于开关级模型以及解释网络有超过一个驱动器的情况。 电孑电路的行为是用nita/和 Aways结构以及连续赋值( Continuous Assignments)摧述。这些结构 以及UDPs和门表示设计的层次树的叶子。每个a、 Always、连续赋值、UD尸和门实例相对于所有其 他结构是同时执行的,lnia或 Always内的语句( Statements)在很多方面上都和软件编程语言的语句相 似。它们在用定时控制(π iming Controls)规定的时间例如延迟以及用(仿真)事件控制触发执行。语句 在Begiη-End塽顺序地执行,在FoκkJon块并行地执行。连续赋值语句修改线网的值。 initia/和 Aways 修改寄存器的值。lmia或 Always可以分解成有给定变量的指定的任务( Asks)和凶数( Functions) Verilog语言还有大量内置的系统任务( System Tasks)和函数( Functions)。编程语言接口( Programming Language Interface,PL)是 Verilog语言的一个组成部分,它提供了一种和调用系统仁务和函数相同的 方法调用以C写的函数。 5 广州周立功单片机发展有限公司Te:(020)3873097638730977Fax:38730925htl:/Nww.ZLgmcu.com 编译 Verilog源代码通常输入到计算机的一个或多个文本文件中。然后,这归文本文件被提交到 Verilog编 译器或解释器,编译用丁仿真或合并的数据文件。有时候仿真在编译后立即进行,不创建中间的数据文件。 模块结构 module M(P1, P2, P3, P4); input P1, P2: tput [7: 0] P3 inout p4 [7:0]R1,M1[1:1024] wire w1w2. w3. w4 parameter C1=This is a string begin: BlockNa ∥语句 begin ∥/语句 连续赋值 assign W1=Expression wire(Strong 1, Weak0)[3: 0 ]#(2, 3)W2= Expression ∥模块实例 OMP U1(W3, W4) COMP U2(P1(W3),P2(W4)) task 1 input A1 inout a2. tput A3 be ∥1语句 endtask function [7: 0]F1 input A1 广州周立功单片机发展有限公司Tel:(020)3873097638730977Fax:38730925htp:/v.zlgmcu.com ∥语句 F1=EXpression end endfunction dimodule 语句 #delay wait(Expression) @(A or B or C) @(posedge CIk) Reg= Expression Reg < Expression VectorReg[Bit= Expression VectorReg[MSB: LSB]=Expression Memory Address= Expression assign Reg= Expression deassign Reg TaskEnable(: disable Task orblock. - EventName if(Condition) else if(Condition Ise case(Selection) Choice 1 Choice. Choice 3 default endcase for(I=0; I
下载地址
用户评论