免费预览已结束,剩余64页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,EDA技术与FPGA设计,清华大学电子实践基地许忠信zxu,FPGA设计课程大纲,2,3,两种数字系统设计方法,基于电路板的设计方法采用固定功能的器件(通用型器件),通过设计电路板来实现系统功能基于芯片的设计方法采用PLD(可编程逻辑器件),利用EDA开发工具,通过芯片设计来实现系统功能。,4,实现载体的变迁,集成于片上而不是集成于板上;,5,设计方法的变迁,借助于EDA工具而不是手工设计;,6,掌握EDA技术有什么用呢?,真有趣,可以按自己的想法设计一个芯片!,我要报名参加SRT研究项目!我要参加大学生电子设计竞赛!,哇,毕业设计和研究生项目正好能用得上哎!,原来在一个芯片里就可以设计一个完整的计算机系统呀!,找工作也算得上一技之长哦!,7,EDA技术范畴,ASIC设计PLD设计(FPGA/CPLD)PCB设计,8,查找题名含FPGA的硕士论文,9,EDA技术,什么是EDA技术EDA技术是以计算机为工作平台、以EDA软件工具为开发环境、以硬件描述语言(HDL)为设计语言、以可编程逻辑器件(PLD)或ASIC为实现载体,以帮助电子设计工程师进行电子产品自动化设计的综合技术。在EDA软件平台上,根据硬件描述语言完成的设计文件,自动地进行逻辑编译、化简、分割、综合及优化、布局布线、仿真、目标芯片的适配编译、逻辑映射和编程下载,直至实现既定的电子系统。,10,本实验采用的开发环境,EDA硬件实验平台DE2-70多媒体开发板目标芯片:EP2C70F896C6,属Altera公司CycloneII系列的一种FPGA芯片硬件描述语言:VHDLEDA软件工具:Altera公司的QuartusII8.0,11,可编程逻辑器件(PLD),可编程逻辑器件PLD(ProgrammableLogicDevice)是一种半定制集成电路,在其内部集成了大量的门和触发器等基本逻辑电路,用户通过编程来改变PLD内部的逻辑关系或连线,就可以得到需要的设计电路。可编程编程逻辑器件的出现,改变了传统的数字系统设计方法,为采用EDA技术开创了广阔的发展空间,并极大地提高了电路设计效率。,12,PLD分类,按集成度分类:一般以GAL22V10芯片为分水岭低密度可编程逻辑器件LDPLD高密度可编程逻辑器件HDPLD,13,CPLD结构特点与工作原理,多采用E2CMOS工艺,也包含EEPROM、Flash、Anti-Fuse等工艺,可实现掉电保护基于乘积项结构,逻辑单元大,容量小采用集中式布线池结构,延时可预测,14,CPLD的结构与工作原理,以Altera公司MAX7000系列器件为例MAX7000系列器件结构组成逻辑阵列块宏单元扩展乘积项可编程互联阵列I/O控制块,15,CPLD的结构与工作原理MAX7000系列宏单元结构,16,FPGA结构特点与工作原理,基于SRAM查找表结构逻辑单元颗粒小具有丰富的布线资源,布线资源连通FPGA内部所有单元,延时不可预测时序逻辑资源丰富,可实现较复杂的时序功能容量大:Xilinx公司的FPGA可达800万门;Altera公司的FPGA可达400万门。,17,FPGA实现细节,NMOS晶体管作为可编程开关编程信息保存在SRAM中,断电后信息消失;每次加电时都要给SRAM输入编程信息;,18,FPGA的结构与工作原理,查找表逻辑结构,图3-32FPGA查找表单元,19,查找表逻辑结构,将4输入真值表的输出写入161RAM4个输入变量作为查找表的地址,20,FPGA的基本单元,21,FPGA与CPLD比较,22,EDA实验开发系统,DE2康芯清华科仪,革新百科融创掌宇,EDA实验开发系统性能指标:主芯片资源及性能外围设备及接口,显示度通用性、灵活性二次开发,用于电子设计大赛部分品牌,23,DE2开发装置介绍,24,QuartusII,QuartusII是Altera公司为其FPGA/CPLD芯片设计的集成化专用开发软件QuartusII前身是MaxPlusII,QuartusII每半年出一个新版本2006年12月推出QuartusII6.12008年春季推出QuartusII8.0QuartusII支持所有新老器件,包括SOPCBuilder,支持系统级开发,25,QuartusII主界面,26,QuartusII主界面的一个实例,27,QuartusII设计流程,28,开始一个新项目(Project),Project:项目,工程,设计QuartusII只对项目进行编译,模拟,编程.而不对单独的文件,除非把该文件设置为项目,29,指定新项目的工作目录及名称,选择命令File|NewProjectWizard在对话框中操作:,30,QuartusII设计输入,硬件描述语言输入VHDL:.vhdVerilog:.v模块/原理图方式输入(bsf/bdf)使用MegaWizardPlug-InManege产生IP核/宏功能块基于块设计文件的输入(vqm/qsf)内存编辑输入(mif/hex),31,图形设计方法,图形方式输入调用QuartusII中提供的元件库调用自己建造的元件,可由VHDL/Verilog生成,32,QuartusII中的元件库,基本元件库(primitives)基本门电路(primitiveslogic)各种触发器、锁存器(primitivesstorage)输入/输出引脚(primitivespin)其它元件库(others)74系列器件(othermaxplus2)宏功能模块评估(otherOpencore_plus),33,QuartusII中的元件库,参数化元件库(megafunctions)算术组件:累加器、计数器、加法器、乘法器和LPM算术函数;门电路:多路复用器、LPM门函数。I/O组件:时钟数据恢复(CDR)、锁相环(PLL)、双数据速率(DDR)、千兆位收发器块(GXB)、LVDS接收器和发送器、PLL重新配置和远程更新宏功能模块。存储组件:存储器、移位寄存器、LPM存储器函数。,34,调用库元件方法,新建原理图,打开原理图编辑器窗口File|New,选择DeviceDesignFiles标签下BlockDiagram/SchematicFile,再单击OK使用命令ViewShowGuidelines,可使原理图编辑器窗口出现网格,以帮助设计者确定元件符号的位置调用库元件的三种方法在原理图编辑器空白处双击鼠标左键执行命令Edit|InsertSymbol点击工具条上的与门符号(表示要插入一个元件符号),35,选择元件,元件选择对话框,36,由设计生成元件符号,创建VHDL文件或原理图文件验证无误执行Creat|CreatSymbolFilesfromCurrentFile,生成元件符号,37,VHDL是什么?,HDLHardwareDescriptionLanguage;VHSICVeryHighSpeedIntegratedCircuit;VHDLVHSICHardwareDescriptionLanguage;VHDL是一种硬件描述语言80年代初期美国政府超高速集成电路(VHSIC)发展计划的衍生物;VHDL的IEEE国际标准:IEEEStd1076IEEEstd1076-1987,-1993,-2000,-2002四个版本,38,硬件描述与软件不同之处,信号硬件连线的抽象连接电路中元件并行语句多个语句同时执行对应于电路中的不同部分,39,VHDL源程序基本结构,库、程序包调用库:存放已有设计、程序包程序包:存放共享数据类型、函数、过程等与C对比:全局数据结构、库函数实体说明(Entity)描述外部接口对外可见结构体(Architecture)描述系统内部结构对外不可见,40,IEEE标准库及程序包,libraryieee;packageStd_Logic_1164定义了标准逻辑位数据类型Std_Logic定义了标准逻辑矢量数据类型Std_Logic_VectorpackageStd_Logic_ArithpackageStd_Logic_SignedpackageStd_Logic_Unsigned,41,程序包和设计库的引用,库和程序包的引用格式library库名表;use库名.包名.项目名;例子libraryIEEE;useIEEE.Std_Logic_1164.All;,42,实体和结构体,实体说明:描述电路的接口信息,简称实体,保留字entity。结构体:描述电路的行为或结构,保留字architecture。,43,半加器VHDL源程序,entityHalf_Adderisport(X:inbit;Y:inbit;Sum:outbit;Carry:outbit);endHalf_adder;architecturebehofHalf_AdderisbeginSum=XxorY;Carry=XandY;endbeh;,外部接口特征,内部行为,44,实体声明的格式,ENTITY实体名ISGENERIC(常数名;数据类型:设定值)-类属参数说明,“”中内容为可选项PORT(端口名1:端口模式端口类型;-端口声明语句用分号隔开端口名2:端口模式端口类型;端口名n:端口模式端口类型-最后一个端口声明语句后不加分号);END实体名;-可以只用END结束实体声明,不一定加实体名,45,实体声明,实体名实体名可以为英文字母打头的任何字母数字以及下划线的组合建议实体名与文件名相同类属参数类属参数为实体声明中的可选项,常用来规定端口的大小、信号的定时特性等。端口名端口名是设计者赋予每个外部引脚的名称。端口模式端口模式用来定义外部引脚的信号方向四种端口模式:in,out,inout,buffer端口类型定义端口的数据类型,常用的数据类型有Std_logic、Std_Logic_Vector,46,VHDL对象与数据类型,共同点具有相同的类型特性在初始化时均可赋初值可相互赋值,47,信号特点与属性,定义位置实体声明中端口均为信号在结构体中,只能在进程外部定义信号的常用事件属性:Event表示信号发生变化例clkevent-表示信号clk发生跳变clkeventandclk=1-表示信号clk发生正跳变(上升沿),48,对象的声明,格式对象类对象名:数据类型:初值;初值可不指定,用默认值对象声明例子signalCLK,CLEAR:Bit:=1;-声明了两个信号,均为二进制位类型,初值指定为1variableInfetch:Boolean;-定义布尔类型的变量Infetch,初值默认为FalseconstantROM_Size:Integer:=16#FFFF#;-定义ROM_Size为整数类型的常数,其值为16进制的FFFF,49,VHDL数据类型,布尔(BOOLEAN)类型位(BIT)数据类型位矢量(BIT_VECTOR)类型字符(CHARACTER)类型整数(INTEGER)类型实数(REAL)类型,50,常用数据类型std_logic,标准逻辑位数据类型:表示一位逻辑值具有九种数据值,常用值仅四个X、0、1和Z简单设计中,使用0和1即可使用需要libraryieee;useieee.std_logic_1164.all;,Std_Logic中的信号值及其定义,52,常用数据类型std_logic_vector,标准逻辑矢量数据类型定义为一维数组,数组中每个元素都是std_logic必须指明其数组宽度,即位宽用途用于计数器(相当于整型)signala:std_logic_vector(1to4);-a具有4位宽度,作为计数器可以表示015多个值的集合result4:outstd_logic_vector(3downto0);-4位加法器的4个输出端下标signala:std_logic_vector(1to4):=1010;-a(1)=1,a(2)=0,a(3)=1,a(4)=0signala:std_logic_vector(3downto0):=1010;-a(3)=1,a(2)=0,a(1)=1,a(0)=0,53,常用数据类型枚举,属于自定义类型与C语言中enum数据结构类似例子typeWeekDayis(SUN,MON,TUE,WEN,THU,FRI,SAT);-表示一周的七天typeStatsis(S0,S1,S2,S3);-定义状态机的四个状态,54,VHDL运算符,逻辑运算符(LogicalOperator)关系运算符(RelationalOperator)算术运算符(ArithmeticOperator)符号运算符(SignOperator)重载运算符(OverloadingOperator),VHDL运算符列表,VHDL运算符列表,57,并置运算符SignalB:Std_Logic_Vector(1downto0);SignalC:Std_Logic_Vector(5downto0);SignalD:Std_Logic_Vector(4downto0);SignalE:Std_Logic_Vector(2downto0);C=A-元素与元素并置,58,结构体的语法形式,architectureofisbeginendarchitecture;,ARCHITECTURE,并行信号赋值语句,并行过程调用语句,元件例化语句,生成语句,并行语句,并行语句,并行语句,块语句,顺序语句1顺序语句2.顺序语句n,进程语句,信号,信号,信号,信号,信号,ENDARCHITECTURE,结构体中的并行语句,60,进程,最基本的行为结构完成一定功能相当于C里的一个函数一个设计由若干个进程组成进程内部实现功能进程之间并列执行,61,进程一般形式,标号:process(敏感信号表)声明部分begin顺序语句部分endprocess标号;标号:该进程的一个名字标号声明部分:定义局部变量顺序语句部分:该进程执行的内容敏感信号:用于激活进程的信号敏感信号发生变化,会自动激活该进程激活进程相当于函数调用,62,进程举例,ArchitectureExamofExamis-(局部变量声明部分)beginAnd_Process:-进程1标号Process(A,B)-敏感信号beginT=AandB;-顺序行为语句endprocess;clk_Process:-进程2标号process(clk)-敏感信号beginifclkeventandclk=1thenOutput=Input;-将输入赋给输出endif;endprocess;endExam;,63,层次化设计的核心思想,模块化将系统分为几个子模块子模块又分别由更小的模块组成元件复用调用已有的设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程分包工程安全管理标准培训课件
- 2026年广东女子职业技术学院单招职业技能测试题库附答案详解(轻巧夺冠)
- 检修部制粉班班长安全责任制培训课件
- 2026年广西工业职业技术学院单招职业适应性考试题库带答案详解(培优a卷)
- 2026年岳阳现代服务职业学院单招综合素质考试题库含答案详解(突破训练)
- 2026年广东茂名农林科技职业学院单招职业倾向性考试题库带答案详解(典型题)
- 2026年山西省阳泉市单招职业适应性考试题库带答案详解(巩固)
- 2026年广东科学技术职业学院单招职业适应性考试题库及答案详解一套
- 2026年广西农业职业技术大学单招职业适应性测试题库及答案详解(夺冠系列)
- 2025《念奴娇 过洞庭》词章结构课件
- TCPA 005-2024 星级品质 婴儿纸尿裤
- 桩基承载力优化设计研究
- DJ公主岗位职责
- 多联机安装全过程经典技术指导手册
- 龙虎山正一日诵早晚课
- 排球基础理论 【核心知识精讲精析】 高一上学期体育与健康人教版必修第一册
- 医院课件:《规范医疗服务收费行为培训》
- YY/T 1836-2021呼吸道病毒多重核酸检测试剂盒
- GB/T 32291-2015高压超高压安全阀离线校验与评定
- 煤矿掘进顶板管理
- 邹申写作教程Units-课件
评论
0/150
提交评论