ImageVerifierCode 换一换
格式:PDF , 页数:303 ,大小:18.37MB ,
资源ID:3135020      下载积分:15 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/3135020.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(数字系统设计_Verilog_硬件描述语言HDL.pdf)为本站上传会员【曲****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

数字系统设计_Verilog_硬件描述语言HDL.pdf

1、数字系统设计与Ver i I ogHDL西安电子科技大学 雷达信号处理国家重点实验室西安电子科技大学 雷达信号处理国防科技重点实验室 第一部分初级篇数字通信和自动化控制等领域的高速度发展和 世界范围的高技术竞争对数字系统提出了越来越高的 要求,特别是需要设计具有实时信号处理能力的专用 集成电路,要求把包括多个CPU内核的整个电子系统综合到 个芯片(SOC)上。VHDL和Verilog HDI_这两种业标准的产生顺应了历史的潮流,因而得到了迅速的发展。作为新 世纪的中国大学生应该尽早掌握这种新的设计方法,使我国在复杂数字电路及系统的设计竞争中逐步缩小 与美国等先进的业发达国家的差距。为我国新世纪

2、 的深亚微米千万门级的复杂系统的设计培养批技术 骨干。C 0 c西安电子科技大学雷达信号处理国防科技重点实验室Verilog数字系统设计教程第一讲Verilog的基本概念西安电子科技大学 雷达信号处理国家重点实验室1.1硬件描述语言HDL硬件描述语言HI(Hardware Description Language)是硬 件设计人员和电子设计自动化(EDA)工具之间的接口,其主要目的是用来编写设计文件,建立电子系统行为级 的仿真模型。nn q西安电子科技大学雷达信号处理国防科技重点实验室1.1硬件描述语言HDL硬件描述语言利用计算机的巨大能力对用HDL建模的 复杂数字逻辑进行仿真,然后再自动综合

3、以生成符合 要求且在电路结构上可以实现的数字逻辑网表(Netlist),根据网表和某种艺的器件自动生成具 体电路然后生成该艺条件下这种具体电路的延时模 型。仿真验证无误后用于制造ASIC芯片或写入CPLD 和FPGA器件中。CC Q c c西安电子科技大学雷达信号处理国防科技重点实验室什么是硬件描述语言具有特殊结构能够对硬件逻辑电路的功能进行描述的一种高级 编程语言这种特殊结构能够:描述电路的连接 描述电路的功能 在不同抽象级上描述电路 描述电路的时序 表达具有并行性 HDL主要有两种:Verilog和VHDL Verilog起源于C语言,因此非常类似于C语言,容易掌握 VHDL格式严谨 VH

4、DL出现较晚,但标准化早。IEEE 1706-1985标准。西安电子科技大学 雷达信号处理国防科技重点实验室 为什么要使用硬件描述语言 电路的逻辑功能容易理解;便于计算机对逻辑进行分析处理;把逻辑设计与具体电路的实现分成两个独立的阶 段来操作;逻辑设计与实现的工艺无关;逻辑设计的资源积累可以重复利用;可以由多人共同更好更快地设计非常复杂的逻辑 电路(几十万门以上的逻辑系统)。7西安电子科技大学 雷达信号处理国防科技重点实验室 1.2 Verilog HDL 的历史1.2.1 什么是Verilog HDLVerilog HDL是硬件描述语言的种,用于数 字电子系统设计。设计者可用它进行各种级别的

5、 逻辑设计,可用它进行数字逻辑系统的仿真验 证、时序分析、逻辑综合。它是目前应用最广泛 的种硬件描述语言。CC Q C 西安电子科技大学雷达信号处理国防科技重点实验室1.2 Verilog HDL 的历史1.2.2 Verilog HDL的产生及发展 Verilog HDL是在 1983年由GDA(GateWay Design Automation)公司的Phil Moorby所仓。Phi Moorby后来成为Verilog-XL的主 要设计者和Cadence公司的第一个合検人。在1984T985年间,Moorby设计出了第一个Verilog-XL的仿真器 1986年,Moorby提出了用于快

6、速门级仿真的XL算法。1990年,Cadence公司收购了GDA公司 1991年,Cadence公司公开发表Verilog语言,成立了OVI(Open Verilog International)组织来负责Verilog HDL语言的发展。1995年制定了Verilog HDL的IEEE标准,即IEEE1364。C 0 c西安电子科技大学雷达信号处理国防科技重点实验室1.2 Verilog HDL 的历史nn q西安电子科技大学雷达信号处理国防科技重点实验室1.3 Verilog HDL 和 VHDL的比较 VHDL比VerilogHDL早几年成为IEEE标准;语法/结构比较严格,因而编写出的

7、 模块风格比较清晰;比较适合由较多的设计人员合作完成 的特大型项目(百万门以上)。西安电子科技大学雷达信号处理国防科技重点实验室1.3 Verilog HDL 和 VHDL的比较 Verilog HDL-较多的第三方工具的支持 语法结构比VHDL简单 学习起来比VHDL容易 仿真工具比较好使 测试激励模块容易编写西安电子科技大学雷达信号处理国防科技重点实验室1.3 Verilog HDL 和 VHDL 的比较行为级 的抽象系统级算法级寄存器传输级VenlogVHDL逻辑门级开关电路级VITALVer ilogHDL与VHDL建模能力的比较西安电子科技大学雷达信号处理国防科技重点实验室U Ver

8、ilog目前的应用情况和适用的设计 Verilog的主要应用包括:ASIC和FPGA工程师编写可综合的RTL代码 高抽象级系统仿真进行系统结构开发 测试工程师用于编写各种层次的测试程序 用于ASIC和FPGA单元或更高层次的模块的模型 开发西安电子科技大学雷达信号处理国防科技重点实验室1.4 Verilog目前的应用情况和适用的设计Verilog较为适合系统绍System)、算法 级(Alogrithem)、寄存器传输级(RTL)、逻辑(Logic)、/I绫(Gate)和电路开关级(Switch)的 设计,而对于特大型(千万门级以上)的系 统级(System)设计,贝,更为合适。nn q西安电

9、子科技大学雷达信号处理国防科技重点实验室L5采用Verilog HDL设计复杂数字电路的优点1.5.1传统设计方法电路原理图输入法采用电路原理图输入法进行设计,周期长、需 要专门的设计工具、需手工布线等。这种低水平的 设计方法大大延长了设计周期。西安电子科技大学雷达信号处理国防科技重点实验室152 Verilog HDL设计法与传统的电路 原理图输入法的比较采用Verilog输入法,可以很容易地把完成的设计 移植到不同厂家的不同芯片中去,并在不同规模应用 时可以较容易地作修改。采用Verilog输入法最大的优点是其与关 性。实际上这是利用了计算机的巨大能力并在EDA 具帮助下,把逻辑验证与具体

10、艺库匹配、布线即时 延计算分成不同的阶段来实现,从而减轻了人们的繁 琐劳动。西安电子科技大学 雷达信号处理国防科技重点实验室1.5采用Verilog HDL设计 复杂数字电路的优点7.5.3 Verilog的标准化与软核的重用Verilog是在1983年由GDA公司首先开发成功的,经 过诸多改进,于1995年11月正式被批准为Verilog IEEE1363-1995标准,又于2001年3月在原标准的基础上经过改进和 补充推出Verilog IEEE13642001新标准。由于Verilog HDL设计方法与工艺无关性,因而大 大提高了Verilog模型的可重用性。我们把功能经过验证的、可综合

11、的、实现后电路结构总门数在5000门以上的Verilog HDL模型称之为“软核”(Softcore),而把由软核构成的器件成 为虚拟器件。利用软核和虚拟器件的可重复利用的特性就可 大大缩短设计周期,加快了复杂电路的设计。C 0 c西安电子科技大学雷达信号处理国防科技重点实验室1.5.4 软核、固核和硬核的概念以及它们的重用把在某种现场可编程门阵列(FPGA)器件上实现 的,经验证是正确的总门数在500门以上电路结构编码文 件,称之为“固核”。把在某种专用半导体集成电路工艺的(ASIC)器件 上实现的经验证是正确的总门数在5000门以上的电路结构 掩膜,称之为“硬核”。_显而易见,在具体实现手

12、段和艺技术尚未确定的逻 辑设计阶段,软核具有最大的灵活性。而近年来电路实现 工艺技术的发展是相当迅速的,为了逻辑电路设计成果的 积累,和更快更好地设计更大规模的电路,发展软核的设 计和推广软核的重用技术是非常有必要的。C 0 c西安电子科技大学雷达信号处理国防科技重点实验室I 1.6 Verilog HDL的设计流程简介1.6.1自顶向下(Top-Down)设计的基本概念自顶向下的设计是从系 统级开始,把系统级划分为 若干个基本单元,然后再把 每个基本单元划分为下层 次的基本单元,一直这样做 下去,直到可以直接用EDA 元件库的基本元件来实现为 止图1.1.3为自顶向下(Top-Down)的示

13、意图,以设计树 的形式绘出。nn q西安电子科技大学雷达信号处理国防科技重点实验室1.6 Verilog HDL的设计流程简介1.6.2层次管理的基本概念复杂数字逻辑电路和系统的层次化、结构化设计隐含着硬 件设计方案的逐次分解。完整的硬件设计可以由图L L 3所示的设 计树描述。在这个设计树上,节点对应着该层次上基本单元的行 为描述,树枝对应着基本单元的结构分解。在不同的层次都可以 进行仿真以对设计思想进行验证。EDA工具提供了有效的手段来管 理错综复杂的层次,即可以很方便地查看某层次某模块的源代 码或电路图以改正仿真时发现的错误。C 0 c西安电子科技大学雷达信号处理国防科技重点实验室1.6

14、 Ver i log HDL的设计流程简介1.6.3具体模块的设计编译和仿真的过程HDL 设计文件HDL 功能仿真有冋歴有冋睡与实现逻辑的物 理器件有关的艺 技文件没冋题HDL垮台优化.布局布埃*确定实配电路 的具体库名布战后门皺仿真电珞制造工艺文件 或FPGA 码流文件从左图可以看出,模块设计流程主要由 两大主要功能部分组 成:1)设计开发:即从编写设 计文件一综合到布局 布线一 投片生成这样 系列步骤。2)设计验证:也就是进行 各种仿真的系列步 骤,如果在仿真过程 中发现问题就返回设 计输入进行修改。步西安电子科技大学雷达信号处理国防科技重点实验室 1.6 Ver i log HDL的设计

15、流程简介1.6.4对应具体工艺器件的优化、映象和布局布线由于各种ASIC和FPFA器件的工艺各不相同,因而当用不同厂家 的不同器件来实现已验证的逻辑网表(EDIF文件)时,就需要不同 的基本单元库与布线延迟模型与之对应才能进行准确的优化、映象、和布局布线。基本单元库与布线延迟模型由熟悉本厂工艺的工程师 提供,再由EDA厂商的工程师编入相应的处理程序,而逻辑电路设 计师只需用一文件说明所用的工艺器件和约束条件,EDA工具就会 自动地根据这文件选择相应的库和模型进行准确的处理从而大大 提高设计效率。C 0 c西安电子科技大学雷达信号处理国防科技重点实验室1.7 小结 掌握HDL设计方法应从学习Ve

16、rilog HDL设计方法开始。由于Top-Down的设计方法是首先从系统设计入手的,因而从顶层 进行功能划分和结构设计。系统的总体仿真是顶层进行功能化分 的重要环节,这时的设计与工艺无关。从底向上的设计在某种意义上讲是Top-Down设计的逆过程。nn q西安电子科技大学雷达信号处理国防科技重点实验室Verilog数字系统设计教程第二讲Verilog语法的基本概念宋万杰西安电子科技大学 雷达信号处理国家重点实验室-Verilog既是种行为描述的语言也是一种结构描述语言。Verilog模型 可以是实际电路的不同级别的抽象。这些抽象的级别包括:系统级(system):用高级语言结构实现设计模块的

17、外部性能的模型。算法级(algorithm):用高级语言结构实现设计算法的模型。RTL级(Register Transfer Leve I):描述数据在寄存器之间流动和如何 处理、控制这些数据流动的模型。以上三种都属于行为描述,只有RTL级与逻辑电路有明确的对应关系。门级(gate-level):描述逻辑门以及逻辑门之间的连接的模型。开关级(switch-level):描述器件中三极管和储存节点以及它们之间连 接的模型。0 no西安电子科技大学 雷达信号处理国防科技重点实验室 I概述Verilog HDL行为描述语言具有以下功能:可描述顺序执行或并行执行的程序结构。用延迟表达式或事件表达式来明

18、确地控制过程的启动时间。通过命名的事件来触发其它过程里的激活行为或停止行为。提供了条件如if-else、case、循环程序结构。提供了可带参数且非零延续时间的任务(task)程序结构。提供了可定义新的操作符的函数结构(function)。提供了用于建立表达式的算术运算符、逻辑运算符、位运算 符。Verilog HDL语言作为种结构化的语言也非常适合于门级 和开关级的模型设计。nn q西安电子科技大学雷达信号处理国防科技重点实验室概述因其结构化的特点又使它具有以下功能:提供了一套完整的表示组合逻辑的基本元件的原语(primitive);提供了双向通路(总线)和电阻器件的原语;可建立MOS器件的电

19、荷分享和电荷衰减动态模型。no西安电子科技大学 雷达信号处理国防科技重点实验室 2.1 Verilog模块的基本概念下面先介绍几个简单的Verilog HDL程序,从中了解Verilog模块的特性【例2.1】modu I e muxtwo(out,a,b,i nput a,b,s I;output out;reg out;always(si or a or b)if(!sI)out=a;eIse out=b;siendmodul西安电子科技大学雷达信号处理国防科技重点实验室2.1 Verilog模块的基本概念 MUX(多路选择器)的行为可以描述为:只要 信号a或b或si发生变化,如果si为则选

20、择a输 出;否则选择b输出。这个行为的描述并没有说明如果输入a或b是三态 的(高阻时)输出应该是什么,但有具体结构的真实 电路是有一定的输出的。没有考虑延时问题nn q西安电子科技大学雷达信号处理国防科技重点实验室2.1 Verilog模块的基本概念【例2.21MUX的结构级描述,采用 Verilog基本单元(门)描述。描 述中含有传输延时。modu I e twomux(out,a,b,si);i nput a,b,s I;output out;not u1(ns I,sI);and#1 u2(se I a,a,nse I);and#1 u3(se I b,b,si);or#2 u4(out

21、se I a,se I b);endmodu I e.西安电子科技大学 雷达信号处理国防科技重点实验室 2.1 Verilog模块的基本概念【例2.3】modu I e adder(count,sum,a,b,c i n);i nput 2:0 a,b;i nput c i n;output count;output 2:0 sum;ass i gn count,sum)=a+b+c i n;endmoduIe这个例子描述了一个三位的加法器。从例子中可以看 出,整个Verilog HDL程序是位于moduIe和endmoduIe声明 语句之间的nn q西安电子科技大学雷达信号处理国防科技重点

22、实验室2.1 Verilog模块的基本概念【例2.4】module compare(equal,a,b);output equal;声明输出信号equalinput 1:0 a,b;声明输入信号a,bassign equal=(a=b)?1:0;/如果两个输入信号相等则输出为1。否则输出 为/endmodule这个程序描述了一个比较器.在这个程 中,/*.*/和.表示注释部分,注释只是为了方便程序员理解程序,对编译是不起作用的。C 0 c0西安电子科技大学雷达信号处理国防科技重点实验室2.1 Verilog模块的基本概念【例2.5】moduIe tr i st2(out,i n,enab Ie

23、);output out;i nput i n,enab Ie;buf i 11 mybuf(out,i n,enab Ie);endmoduIe程序通过调用个在Ver i log语言提供的原语库中现存的三 态驱动器元件buf i丨1来实现其逻辑功能。这个调用过程也称 为库元件bufif1的实例化,在本模块中它被具体化为mybuf.CC Q C 0 A西安电子科技大学雷达信号处理国防科技重点实验室2.1 Verilog模块的基本概念【例2.6】modu I e tr i st1(sout,s i n,ena);output sout;i nput s i n,ena;mytr i tr i_i

24、nst(.out(sout),.in(s in),.enable(ena);调用由mytr i模块定义的实例元件tr i_inst,即把已定义的模块myfr i在本模块中具体化为 tr i_instendmoduIemodu I e mytr i(out,i n,enab I e);output out;i nput i n,enab Ie;ass i gn out=enabIe?i n:5bz;endmoduIec o c西安电子科技大学雷达信号处理国防科技重点实验室2.2 Verilog用于模块的测试 如何检查上述例子其功能是否正确?需要有测试激励信号输入到被测模块 需要记录被测模块的输出

25、信号 需要把用功能和行为描述的Ver i log模块转换为门 级电路互连的电路结构(综合)。需要对已经转换为门级电路结构的逻辑进行测试(门级电路仿真)。需要对布局布线后的电路结构进行测试。(布局布线后仿真)。nn q西安电子科技大学雷达信号处理国防科技重点实验室2.2 Verilog用于模块的测试c 0 c西安电子科技大学雷达信号处理国防科技重点实验室2.3小结通过上面的例子可以看到:(1)Verilog HDL程序是由模块构成的。每个模块的内容都是位于moduIe和 endmodu Ie两个语句之间。每个模块实现特定的功能。(2)模块是可以进行层次嵌套的。(3)每个模块要进行端口定义,并说明

26、输入输出口,然后对模块的功能进行 描述。(4)Verilog HDL程序的书写格式自由,一行可以写几个语句,个语句也可 以分写多行。(5)除了endmodule语句外,每个语句和数据定义的最后必须有分号。(6)可以用/*.*/和.对Verilog HDL程序的任何部分作注释。个好的,有使用价值的源程序都应当加上必要的注释,以增强程序的可读 性和可维护性。西安电子科技大学 雷达信号处理国防科技重点实验室 Verilog数字系统设计教程第三讲常用Verilog语法之宋万杰西安电子科技大学雷达信号处理国家重点实验室3.1模块的结构Verilog的基本设计单元是“模块”(block)个模块 是由两部分

27、组成的,二部分描述接口,另一部分描述逻辑功能,即定 义输入是如何影响输出的。modu I e blockl(a,b,c,d);i nput a,b;output c,d;一acbdass i gn c=a|b;ass ign d=a&b;西安电子科技大学 雷达信号处理国防科技重点实验室 乂3.1模块的结构Ver i log模,块的结构由在modu Ie和 endmoduIe 天键词之间的四个主要部分组成:端口定义:I/O说明:-内部信号声明:-功能定义:module block1(a,b,c,d);input a,b,c;output d;wire x;assign d=a|x;assign

28、x=(b&c);西安电子科技大学雷达信号处理国防科技重点实验室3.1模块的结构3.1.1模块的端口定义模块的端口声明了模块的输入输出口。其格式如下:module 模块名(1,2,3,4,.);3.1.2模块内容模块的内容包括I/O说明、内部信号声明、功能定义。I/O说明的格式输入口:input信号位宽1:0!端口名1;input信号位宽1:0端口名2;input信号位宽 1:0端名i;(共有i个输入口)西安电子科技大学 雷达信号处理国防科技重点实验室 乂3.1模块的结构输出口 output信号位宽 1:01端口名1;output 信号位宽 1:0!端口名2;output信号位宽1:0!端口名j

29、共有个 输出口)输入/输出口:inout 信号位宽1:0!端口名1;inout信号位宽1:0!端口名2;inout信号位宽1:0!端口名k;/(共有k个双向总线端口)I/O说明也可以写在端口声明语句里。其格式如下:moduIe moduIe_name(input portl,i nput port2,.西安电子科技大学雷达信号处理国防科技重点实验室3.1模块的结构内部信号说明在模块内用到的和与端口有关的wire和 reg变量的声明。如:reg width-1:0 R变量 1,R变量2;wire width-1:0 W变量 1,W变量2;西安电子科技大学.雷达信号处理国防科技重点实验室3.1

30、模块的结构功能定义模块中最重要的部分是逻辑功能定义部分。有三种方法可在 模块中产生逻辑。-用assign语句(数据流描述):ass i gn a=b&c;用实例元件(结构化描述):and2 and_i nst(q,a,b);用“always”块(行为描述):always (posedge cIk or posedge cIr)beg i nif(c I r)q=0;eI se if(en)q=d;end西安电子科技大学 雷达信号处理国防科技重点实验室 乂3.1模块的结构3.1.3理解要点如在模块中逻辑功能由下面三个语句块组成:assign cs=(aO&a1&a2);II-and2 andjn

31、st(qout,a,b);II-2always (posedge elk or posedge clr)/-beginif(clr)q=0;else if(en)q=d;end三条语句是并行的,它们产生独立的逻辑电路;而在always 块中:begin与nd 之间是顺序执行的 西安电子科技大学 雷达信号处理国防科技重点实验室3.2数据类型及其常量及变量321.常量在程序运行过程中.其值不能被改变的量称为常量。一.数字整数。在Verilog HDL中,整型常量即整常数有以下四种进制表示 形式:1)二进制整数(b或B)2)十进制整数(d或D)3)十六进制整数(h或H)4)进制整数(。或。)数字表达

32、方式有以下三种:1)位宽X进制X数字这是种全面的描述方式。2)进制X数字在这种描述方式中,数字的位宽采用缺省位宽(这由具体的机器系统决定,但至少32位)。3)数字在这种描述方式中,采用缺省进制十进制。西安电子科技大学 雷达信号处理国防科技重点实验室 乂Verilog HDL中有两类数值常量整型数和实型数3.1.2数值!.Verilog HDL中的数值可取下面的四类值:0逻辑零、逻辑非、低电平1逻辑1、逻辑真、高电平X或X不确定的逻辑状态z或Z高阻态Verilog HDL中有两类数值常量整型数和实 型数下划线符号“除了不能放于数值的首位以外,可以随意 用在整型数与实型数中,他们对数值的大小没有任

33、何改变,只是为了提高可读性。1)整型数及其表示Verilog HDL的整数可以使二进制(b或B)、十进制(d或D)、十六进制(h或H)与八进制(。或),有下面三种书写形式(1)简单的十进制格式;(2)缺省位宽的基数格式;(3)指定位宽的基数格式。(1)简单的十进制格式:用09的数字串组成的十进制数,可以用符号“+”或“一”来表示数的 正负.(2)缺省位宽的基数格式;表示形式为:符号“,为基数格式表示的固有字符,该字符不能省略,否则为非法表示形 式;参数vbase_format用于说明数值采用的进制格式;参数vnumber为 相应进制格式下吊串数字.这种格式未指定位宽,其缺省值至少为3 2位.(

34、3)指定位宽的基数格式:表示形式为:vsize 参数用来指定所表示数字的位宽.当位宽小于数值的实际大小时,相应的高位部分被忽略;当位宽大于数值的实际位数,且数值的最高位是0或1 时,相应的高位部分补。;而当位宽大于数值的实际位数,但数值的最高位是X 或z时,相应的高位部分补X或7_ Q !I-I/I V I II I !I Verilog HDL中有两类数值常量整型数和实型数基数符号及其合法的表示值数制基数符号合法的表不值二进制b or B0,1,x,X,z,Z,?,_八进制 or 07,x,X,z,Z,?,_十进制d or D0-9,_十六进制h or HD9,af,AF,x,X,z,Z,?

35、Verilog HDL中有两类数值常量整型数和实型数数值表不位宽数制等效二进制值及其解书释10缺省十进制。010(32位或以上)4ac缺省十进制非法,十进制表不不允许出现ac字样h4ac缺省十六进制0_0100010_1100(32位或以上)9o6719位进制0110_0111_00019o-6719位进制非法,符号位只能出现在表不的最左端6hf36位十六进制110011,高位部分被舍去6hf6位十六进制00111,高位部分由补足3b10 x3位二进制10 x12h2x612位十六进制0010_xxxx_10106hx6位十六进制XX_XXXX,高位部分由X补足Verilog HDL中有两类

36、数值常量整型数和实型数例;三种格式的整数表示法15(十进制15)简单的十进制hl5(十进制21,十六进制15)缺省位宽的十六进Syntax:5 5bl0011(十进制19,二进制10011)5位的二进制1、1匸 亠阳:生亠宀阳:牛I1口、!/?F自亠士;在生llInteger存为表示100000000000000000000000000000001unsized 32bits8hAA10101010sized hex6blO 0011100011sized binary5F00000000000000000000000000001111unsized hex 32 bits8H优llllzzz

37、zsized hexrbxXsized binaryVerilog HDL中有两类数值常量 整型数和实型数实型数及其表示Verilog HDL中的实数可以用十进制与科学计数法两种格式来表示,如 果采用十进制格式,小数点两边必须都有数字,否则为非法的表示形式.实数表示法的实例1.8十进制计数法3.8el0 科学计数法2.1E-9 科学计数法可用e或E表示,其结果相同3_2387.3398_3047 使用下划线提高可读性3.非法表示,小数点两遍都必须有数非法表示,小数点两遍都必须有数非法表示,小数点两遍都必须有数,2e6.123.2数据类型及其常量及变量 X和Z值。在数字电路中,X代表不定值,Z代

38、表高阻值。个X可以用来定义十六进制数的4位二进制数的 状态,进制数的3位,二进制数的1位。z的表 示方式同X类似。z还有一种表达方式是可以写 作“?。西安电子科技大学雷达信号处理国防科技重点实验室3.2数据类型及其常量及变量负数。个数字可以被定义为负数,只需在位宽表达式前加一个 减,减必须写在数字定义表达式的最前面。注意减号不可以放在位宽和进制 之间也不可以放在进制和具体的数之间。-85 这个表达式代表5的补数(用八位二进制数表示)8d-5 非法格式下画线(underscore。下划线可以用来分隔开数的表达以提 高程序可读性。但不可以用在位宽和进制处,只能用在具体的数字之间。167 b1010

39、1011 _1111 J010 合法格式8 b_0011_1010 非法格式金婢如、則1值走7K3.2数据类型及其常量及变量二.参数(parameter)型 用参数声明一个可变常量,常用于定义延时及宽度变量。参数定义的语法:parameter;可一次定义多个参数,用逗号隔市 在使用文字(literal)的地方都可以使用参数。参数的定义是局部的,只在当前模块中有效。;参数定义可使用以前定义的整数和实数参数。module mod1(out,in1,in2);parameter cycle=20,prop_ del=3,setup=cycle/2-prop_del,p1=8,x_ word=16J

40、bx,file=/usr1/jdough/design/mem_ file.dat”;一 wire p1:0 w1;/Awire declaration using parameter注意:参数file不是 string,而是个整数,其值是所有字母的扩展 ASCIlfio 若file=AB”,则file值为8h4142。用 法:$fopen(file);$display(u%s5 file);endmodule3.2数据类型及其常量及变量322变量变量即在程序运行过程中其值可以改变的量。常用的网络数据类型 包括wi re型和tri型。wire型变量通常是用来表示单个门驱动或连续赋值语句驱 动的

41、网络型册土用+好!开【悬同il田巨主夂巽口口二十日面应开【米卜士用wire tri01XZ00X一01X1X1X.X厶017西安电子科技大学雷达信号处理国防科技重点实验室3.2数据类型及其常量及变量一,wire型wire型数据常用来表示用于以assign关键字指定的组合逻 辑信号。Verilog程序模块中输入输出信号类型缺省时自动定义为wire 型。其格式如下:wire n-1:0数据名1,数据名2,数据名i;共有i条总 线,每条总线内有n条线路,或wire n:1数据名1,数据名2,数据名i;西安电子科技大学雷达信号处理国防科技重点实验室3.2数据类型及其常量及变量二.reg型寄存器是数据储

42、存单元的抽象。寄存器数据类型的 关键字是rego reg类型数据的默认初始值为不定值X。reg型数据常用来表示用于“always”模块内的指定 信号,常代表触发器。在“alwavs”块内被赋值的每一个信号都必 须定义成reg型数据的格式如下:reg n-1:0数据名1,数据名2,数据名i;或 西安电子科技大学 雷达信号处理国防科技重点实验室 U举例说明数据类型的选择moduIe top;wi re y;reg a,b;DUT u1(y,a,b);initialbeg i na=0;b=0;#10 a=1;.end endmoduIe模块DUT的边界net net/registernet/reg

43、ister 入口 输出口net输出/入口 inoutnetnetmodule DUT(Y,A,B_);output Y;input A,B:wire Y,A,B;and(Y,A,B);endmodule如何选择正确的数据类型?输入口(input)可以由寄存器或网络连接 驱动,但它本身只能驱动网络连接。输出口(output)可以由寄存器或网络连接 驱动,但它本身只能驱动网络连接。输入/输出口(inout)只可以由网络连接驱动,它本身也只能驱动网络连接。如果信号变量是在过程块(initial块或 al ways块)中被赋值的,必须把它声明为寄 存器类型变量西安电子科技大学雷达信号处理国防科技重点实

44、验室如何选择正确的数据类型输入端口可以由 net/register号区动,但 输入端口只能是net3-in20双向端口输入/输出 只能是net类型输出端可以是I net/register类型,输 上出端口只能驱动netYmodule top;wire y;reg a,b;DUT u1(y,a,b);initial begina=0;b=0;#5 a=1;module DUT(Y,A,B);output Y;I 若Y,A,B说明为 input A,B;丄reg则会产生错误。wire Y,A,B;and(Y,A,B);endmoduleend在过程块中只能给 register类型赋值西安电子科技大

45、学雷达信号处理国防科技重点实验室选择数据类型时常犯的错误举例example.v修改前:module example(ol5 o2,a,b,3 d);input a,b,3 d;output ol,o2;reg c,d;reg o2and ul(o2,c,d);always(a or b)if(a)ol=b;else ol=0;endmodule修改后:module example(ol,o2,a,b,c,d);input a,b,c,d;output ol,o2;/reg c,d;/reg o2reg ol;and ul(o2,c,d);always(a or b)if(a)ol=b;else

46、 ol=0;endmodule西安电子科技大学 雷达信号处理国防科技重点实验室 乂选择数据类型时常犯的错误举例Compiling source file nexample.vn 第一次编诈信息Error!Incompatible declaration,(c)defined as input verilo _c example v at line 2 Verilog-IDDIL“example.v,5:Error!Incompatible declaration,(d)defined as inputat line 2 Verilog-IDDILexample”,5:Error!Gate(ul

47、)has illegal output specification Verilog-GHIOS example.v,8:3 errorsCompiling source file example.vError!Illegal left-hand-side assignment example.v,11:ol=b;Error!Illegal left-hand-side assignment example.v,12:ol=0;2 errors第二次编译信息Verilog-ILHSAVerilog-ILHSA西安电子科技大学雷达信号处理国防科技重点实验室3.2数据类型及其常量及变量二,memor

48、y 型Verilog HDL通过对reg型变量建立数组来对存储器建模,可以描述RAM型存储器,ROM存储器和reg文件。数组中的每个单元 通过t*数组索引进行寻址。在Ver i log语言中没有多维数组存在。memory型数据是通过扩展reg型数据的地址范围来生成的。其格式如下:reg n-1:存储器名mT:0;或reg n-1:存储器名m:1;西安电子科技大学 雷达信号处理国防科技重点实验室 乂3.3运算符及表达式Verilog HDL语言的运算符范围很广,其运算符按其功能可分 为以下几类:运算符分类所含运算符算术运算符+,*,/,%逻辑运算符1,&,II关系运算符,=相等运算符.1.17

49、7 7 位运算符&,1,A,AOA归约运算符&,&,1,l,A,Aor移位运算符vv,r条件运算符二O,西安电子科聽煤算符 雷达信号处珊!防科技重点实验室3.3运算符及表达式在Verilog HDL语言中运算符所带的操作数是不同的,按其所带操作数的个数运算符可分为三种:1)单目运算符(unary operator):可以带个操作数,操作数放在运算符 的右边。2)二目运算符(binary operator):可以带个操作数,操作数放在运算 符的两边。3)三目运算符(ternary operator):可以带三个操作,这三个操作数用三 目运算符分隔开。小曜叁宮配齡学 尾值若德甥齬甚辜羅縫损”以匕3

50、3运算符及表达式3.3.1,基本的算术运算,加 减 乘 除 模module arithops();注意integerparameter five=5;reg类型在算integer ans,int;术运算时的reg 3:0 rega,regb;差另。integer reg 3:0 num;是有符号数,initial begin 而reg是无符rega=3;号数。regb=4b1010;int=-3;/int=1111.1111_1101将负数赋值给reg或其它无符号变 量使用2的补码算术。如果操作数的某一位是X或z,则 结果为X在整数除法中,余数舍弃模运算中使用第一个操作数的符 号endini

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服