eda-Verilog技术复习内容_第1页
eda-Verilog技术复习内容_第2页
eda-Verilog技术复习内容_第3页
eda-Verilog技术复习内容_第4页
eda-Verilog技术复习内容_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

可编程逻辑器件及EDA技术总复习EDA技术(Electronic

Design

Automatic)广义EDA:以计算机为工作平台,以电子CAD通用软件包为开发环境,以电子系统设计为应用方向的电子产品自动化设计过程,电路设计是典型狭义EDA:以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。全定制ASIC——由设计者定义芯片上所有晶体管的几何图形和工艺规则,最后将设计结果交由IC厂家去进行掩模制造,做出产品应用领域:模拟集成电路设计,数字集成电路设计专用集成电路ASIC半定制ASIC——约束性的版图设计方法,以牺牲芯片性能为代价来简化设计,缩短开发时间。分为门阵列设计法和标准单元设计法。应用领域:通信领域可编程ASIC——将掩模ASIC集成度高的优点和可编程逻辑器件设计生产方便的特点结合在一起。应用领域:样品研制或小批量产品开发专用集成电路ASIC分类硬件描述语言HardwareDescriptionLanguage用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,适合大规模电子系统的设计。ABELVHDLVerilogHDLSystemCEDA技术的设计方法电路级设计流程系统级设计流程EDA技术的设计方法电路级设计流程设计输入:确定设计方案,选择合适元器件,根据具体的元器件设计电路原理图第一次仿真:检验设计方案在功能方面的正确性。包括数字电路的逻辑模拟、故障分析,模拟电路的交直流分析、瞬态分析。※必须要有元件模型库的支持。PCB板的自动布局布线:仿真通过后,根据原理图产生的电气连接网络表再进行PCB板的自动布局布线后仿真:检验PCB板在实际工作环境中的可行性。第一步:原理图第二步:PCB图第三步:电路图电路设计基本流程系统级设计流程系统划分:按照“自上而下”的方法设计输入:采用VHDL语言状态图等方式描述系统,并编译成标准的VHDL文件。功能仿真:检验系统功能设计的正确性。综合优化:对HDL源代码进行综合优化处理,生成门级描述的网络表相应的厂家综合库。适配前仿真:利用产生的网络表文件进行适配前的时序仿真。适配:将综合后的网络表文件针对某一具体的目标器件进行适配,包括底层器件配置、逻辑分割、逻辑优化、布局布线。适配后仿真:根据适配后的仿真模型,进行适配后的时序仿真器件实现:将适配产生的器件编程文件通过编程器或下载电缆载入到目标芯片FPGA或CPLD中第一步:行为描述第二步:逻辑综合第三步:设计实现always@(state)begin:OUTPUT_DECODEif(state==Too_High)beginCold<=1;Heat<=0;endelseif(state==Too_Low)beginCold<=0;Heat<=1;endelseif(state==Well_situated)beginCold<=0;Heat<=0;endend可编程逻辑器件设计基本流程可编程逻辑器件原理可编程逻辑器件分类低密度PROM,EPROM,EEPROM,PAL,PLA,GAL只能完成较小规模的逻辑电路高密度,已经有超过400万门的器件EPLD,CPLD,FPGA可用于设计大规模的数字系统集成度高,甚至可以做到SOC(SystemOnaChip)MAX7000S系列器件的内部结构LAB(logicarrayblock)宏单元(macrocells)扩展乘积项EPT(Expanderproductterms)可编程连线阵列PIA(programmableinterconnectarray)I/O控制块IOC(I/Ocontrolblocks)XC4000系列FPGA的内部结构1.XC4000系列的可配置逻辑块(CLB)函数功能发生器触发器2.输入/输出模块(In/OutputBlock)输入/输出锁存器三态输出缓冲器3.内部互连资源(PI)单长线双长线长线开关矩阵

可编程逻辑器件的设计流程

设计输入·电路图·硬件描述语言器件编程

设计实现·优化·合并、映射·布局、布线功能仿真时序仿真器件测试系统说明可编程逻辑器件选型CPLD选择的方法编程技术在线可编程能力功能模块的性能触发器结构嵌入式器件I/O引脚的数量和类型时钟输入引脚的数量FPGA选择的方法可配置逻辑模块I/O引脚的数量和类型时钟输入端的数目嵌入式器件配置/编程方式器件当中所含可配置逻辑模块的数目IP核IP内核可以在不同的硬件描述级实现,由此产生了三类IP内核:软核硬核固核IP核是具有知识产权(IntellectualProperty)的集成电路芯核的简称,其作用是把一组拥有知识产权的电路设计集合在一起,构成芯片的基本单位,如FIR滤波器,SDRAM控制器,PCI接口等等设计成可修改参数的模块,以供设计时搭积木之用。随着CPLD/FPGA的规模越来越大,设计越来越复杂,使用IP核是一个设计发展趋势。VerilogHDL语言基础Verilog能够在多种抽象级别对数字逻辑系统进行描述:既可以在晶体管级、逻辑门级进行描述,也可以在寄存器传输级对电路信号在寄存器之间的传输情况进行描述。除了对电路的逻辑功能进行描述,Verilog代码还能够被用于逻辑仿真、逻辑综合,其中后者可以把寄存器传输级的Verilog代码转换为逻辑门级的网表,从而方便在现场可编程逻辑门阵列上实现硬件电路,或者让硬件厂商制造具体的专用集成电路。设计人员还可以利用Verilog的扩展部分Verilog-AMS进行模拟电路和混合信号集成电路的设计。module

AND_G2(a,b,f);//模块名inputa,b;//端口说明outputf;wiretemp;

//内部信号声明assigntemp=a&b;//逻辑功能assignf=temp;endmodule

//模块结束,无结束符;端口说明

端口说明用于定义模块的端口队列中的各个端口的I/O传输特性,同时也可以声明各个端口的位宽moduleininoutinoutout内部信号说明

内部信号说明在端口说明中给出端口类型,缺省的端口类型为wire型,也可在端口说明中被明确定义为wire类型,或重新定义为reg型,需要说明的是无论被定义成哪种类型,其端口数据长度必须与原定义一致。wirea,b,c;wire[3:1]instr;reg[15:0]naddr;regm,n,q;功能定义模块中最重要的是逻辑功能定义,可通过下面3种方法在模块中实现逻辑功能。assign语句—是实现组合逻辑最常用的方法之一always语句—既可描述组合逻辑,也可描述时序逻辑模块实例语句—在一个模块中应用其他模块,实现层次化设计module_nameInstance_name(port_associations);VerilogHDL基本要素

1、数据类型分类物理数据类型net型reg型抽象数据类型integer整型time时间型real实型event事件型parameters参数型这两种类型的变量在定义时,要设置位宽缺省值为一位。变量的每一位可以是0,1,X或Z。memory型由于存在不同数据类型,在一个设计中就可能使用不同的数据类型,这些数据类型之间就可能存在相互之间的驱动问题,在VerlogHDL中,不同数据类型的之间遵循以下驱动规则:数据类型之间相互驱动问题输入口(input)可以由reg型或net型驱动,但它本身只能驱动net型;输出口(output)可以由reg型或net型驱动,但它本身只能驱动net型;输入/输出口(inout)只可以由net型驱动,它本身也只能驱动net型;如果信号变量是在过程块(initial块或always块)中被赋值的,必须把它声明为reg型变量PortAssignmentsmodulereg/

netnetmodulereg/netnetmodulenetnetInputOutputinoutnetnet2运算符算术运算符位运算符逻辑运算符关系运算符等式运算符移位运算符+,-,*,/~,&,|,^,~^&&,||,!>,<,<=,>===,!=,!==,====a>>n或a<<n过程块是VerilogHDL行为描述的基本单位。一个模块的行为级描述通常由一个或多个过程块构成。过程语句(initial和always语句)@(敏感事件列表,只在always语句后出现,可缺省)块开始标识符(begin/fork):块名(可缺省)局部变量说明(可缺省)过程赋值语句/高级程序语句块结束标识符(end/join)VerilogHDL常用四种说明语句一个程序模块可以包含多个initial、always、task和function过程块。其中initial语句无条件触发,执行一次;always语句在满足触发条件执行,或无条件时一直执行;一个模块中的过程语句可有多个存在,相互独立,并行执行。initialalwaystaskfunction2.3.2结构说明语句always的敏感事件一般格式:always@(event1)always@(event1orevent2)always@(posedgeclk)always@(negedgeclk)always@(posedgeclkornegedgereset)3过程赋值语句

VerilogHDL的行为描述中语句块主要有过程赋值语句和逻辑控制语句组成。其中过程赋值语句必须放在always进程中,其基本格式为:<被赋值变量><赋值操作符><赋值表达式>阻塞赋值=非阻塞赋值<=Verilog包括两种过程赋值语句串行块语句中,各条非阻塞过程赋值语句对应的“赋值表达式”同时开始计算,在过程块结束时,才将结果赋值给各个“被赋值变量”,可理解为先同时采样,最后一起赋值。串行块内各条阻塞型过程赋值语句按顺序依次执行。本条语句的赋值操作完成后,下一条语句才开始执行。moduleblk(c,b,a,clk);outputc,b;inputclk,a;regb,c;always@(posedgeclk)begin b=a;c=b;endendmodule阻塞赋值语句使用“=”作为赋值符阻塞赋值语句按顺序执行,一条语句完全执行完后,才执行下一条语句,即有“阻塞”作用。moduleblkn(c,b,a,clk);outputc,b;inputclk,a;regb,c;always@(posedgeclk)begin b<=a;c<=b;endendmodule非阻塞赋值语句使用“<=”作为赋值符非阻塞赋值语句并行执行,即一条语句不会“阻塞”其它语句执行,充许赋值调度。4条件语句和循环语句条件语句条件分支语句if-else条件分支语句case循环语句for语句repeat语句while语句if-else语句格式格式1:if(<条件表达式>)语句或语句块格式2:if(<条件表达式>)语句或语句块1; else语句或语句块2;格式3:if(<条件表达式1>)语句或语句块1; elseif(<条件表达式2>)语句或语句块2; …… elseif(<条件表达式n>)语句或语句块n; else语句或语句块n+1;单分支控制两路分支控制多路分支控制格式1:case(条件表达式) <case分支项表达式1>:语句块1 <case分支项表达式2>:语句块2 defult:默认语句块 endcase格式2:casex(条件表达式) <case分支项表达式1>:语句块1<case分支项表达式2>:语句块2 defult:默认语句块endcasecase语句的一般格式格式3:casez(条件表达式) <case分支项表达式1>:语句块1 <case分支项表达式2>:语句块2defult:默认语句块endcasefor语句格式for(<表达式1>;<条件表达式>;<表达式2>)

<表达式1>定义了循环变量的初值,<表达式2>定义了循环变量的增值操作,<条件表达式>定义了循环条件,常为逻辑表达式执行循环体语句之前,首先计算表达式1的值,然后判断条件是否成立,如果条件成立,则执行语句块中的语句,然后执行表达式2,修改循环变量。forever语句格式格式1:forever语句;格式2:forever begin

多条语句 endforever循环语句是一个无条件循环语句,是一个不可综合的语句,不能独立写在程序中,必须写在initial块中。通常用于产生周期性的波形,作为仿真测试信号。repeat语句格式格式1:repeat(表达式)语句;格式2:repeat(表达式) begin

多条语句 end执行语句、语句组直到表达式为零。如果一开始表达式条件即为假,则语句一次也不能被执行while语句格式格式1:while(表达式)语句格式2:while(表达式) begin

多条语句 end2.3.5任务和函数VerilogHDL常用四种说明语句initialalwaystaskfunction在VerilogHDL的行为描述模块除了initial说明语句和always说明语句外,还有任务说明语句task和函数说明语句function,分别用来定义任务和函数,利用任务和函数用于描述复杂程序,提高程序的可移植性和可读性。task说明语句格式:task<任务名>; <端口定义> <语句1> <语句2> …… <语句n> endtask任务的端口定义中可以有input、output和inout,且数量不限。function说明语句function<返回值的类型或范围>(函数名);<端口说明语句><变量类型说明语句>begin<语句>endendfunction调用函数的一般格式如下:<函数名>(<表达式1><,<表达式2>,……>)4数据流描述方式概念广义:根据信号(变量)之间的逻辑关系,采用持续赋值语句描述逻辑电路的方式,称为数据流描述。狭义:可以理解即是将传统意义上的“逻辑表达式”转换为运用VerilogHDL中的运算符和赋值语句(assign语句)的表示形式。5结构描述方式2.5结构描述概念通过调用逻辑元件、描述它们之间的连接来建立逻辑电路的VerilogHDL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论