欢迎来到天天文库
浏览记录
ID:42983350
大小:6.42 MB
页数:85页
时间:2019-09-27
《电子系统设计Verilog语言基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《电子系统设计》第二讲VerilogHDL语言基础主要内容HDL概述HDL发展史行为描述vs.结构描述VerilogHDL基本要素基本VerilogHDL设计组合逻辑电路单元设计范例时序逻辑电路单元设计范例硬件描述语言设计规范ISE使用入门课程内容回顾设计示例例:用基本门电路/触发器实现下图所示的状态图例:用通用中规模集成电路实现下图所示的状态图0123456/0/1/0/0/0/1/0数字电路课程设计流程回顾组合逻辑设计流程时序逻辑设计流程中小规模集成电路实现设计示例&74161A2A1A001234567EN74151ZVCC编码器/译码器设计示例8-3编码器(V
2、erilogHDL设计)3-8译码器(电路图设计)41MUX设计示例41MUX(VHDL设计)41MUX(电路图设计)HDL发展史HDL:HardwareDescriptionLanguage原始HDL:如ABEL等仅是对电路连接的简单文字描述主流HDL:如VHDL、VerilogHDL等在结构描述能力基础上具备行为描述能力可面向设计以外综合、仿真等应用未来HDL:如SystemC等对大型系统设计、模块化设计等支持度更优ABEL语言程序段范例AHDL语言程序段范例VHDL语言程序段范例VerilogHDL语言程序段范例HDL设计方法行为描述由输入/输出响应关系描述Ac
3、omponentisdescribedbyitsinput/outputresponse结构描述由低等级的元件/基本单元的连接关系描述Acomponentisdescribedbyinterconnectinglower-levelcomponents/primitives行为描述设计方法示意只有电路的功能性描述,没有结构描述没有具体的硬件意图目的是综合与仿真结构描述设计方法示意电路的功能性和结构涉及具体硬件目的是综合从HDL到电路实现编译HDL语言正确性、可综合性检查综合形成对应于PLD器件内部逻辑电路资源的解释,包括布局布线等仿真形成针对上述电路解释的性能表现下载
4、按照流文件(Stream)格式要求植入PLDVerilogHDL发展史VerilogHDL语言最初于1983年由GatewayDesignAutomation(GDA)公司为其模拟器产品开发的硬件建模语言Cadence在1989年收购GDA后,VerilogHDL语言于1990年正式对外发布OpenVerilogInternational(OVI)成立,以促进Verilog语言规范的发展1993年,OVI推出了2.0版本Verilog语言于1995年成为IEEE标准,称为IEEEStd1364-1995,2001年更新了标准VerilogHDL与其他HDL的差异与AB
5、EL、AHDL等语言相比上述语言多应用逻辑等式来描述逻辑功能,侧重于结构描述方法VerilogHDL适合算法级、寄存器传输级(RTL)、门级、版图级等各类设计描述应用与VHDL语言相比两者都具备良好的行为描述能力VerilogHDL在描述硬件单元的结构时更简单易读,相比较而言,VHDL的描述长度是VerilogHDL的两倍VerilogHDL与PLD设计PLD设计是VerilogHDL的一大应用PLD设计仅支持VerilogHDL的一个子集本课程后续只学习和介绍PLD设计中支持的VerilogHDLVerilogHDL基本要素注意点:大小写敏感所有关键词须小写空格用于
6、增加可读性分号是语句终结符单行注释://多行注释:/**/时间规范用于仿真VerilogHDL基本要素图端口端口列表列出所有端口名称端口类型input输入端口output输出端口inout双向端口端口声明<端口类型><端口名>;例:modulehello_world(a,b,c,d,e);inputa,b,d;outputc,e;assignc=a&b;assigne=d;endmodule数据类型(DataTypes)常量参数(parameter)变量线网型(netstype)wire型最常用寄存器型(registertype)标量向量数组变量线网型用关键词w
7、ire等声明相当于硬件电路里的物理连接,特点是输出值紧跟输入值变化例:wire[7:0]in,out;assignout=in;寄存器型用reg或integer申明具有保持作用的元件注:不表示必将综合成物理(硬件)寄存器!在过程语句(always,initial)中赋值integer是含符号整数型变量*存储器二维寄存器数组不能是线网型(Net)例如:reg[31:0]mem[0:1023];//1k×32reg[31:0]instr;instr=mem[2];注意:不允许对存储器进行双索引操作instr=mem[2][7:0]//非法!常量param
此文档下载收益归作者所有