可编程逻辑电路设计入门(PDF37页).pdf
1可编程逻辑电路设计教学组可编程逻辑电路设计教学组可编程逻辑电路设计教学组可编程逻辑电路设计教学组二六年二六年二六年二六年?课程简介课程简介?可编程逻辑器件常识可编程逻辑器件常识?试验平台简介试验平台简介?MAX+PLUS II入门入门?基本的基本的VHDL程序结构程序结构?开发流程演示开发流程演示?本次试验内容本次试验内容2教学目的及方式教学目的及方式?教学目的教学目的?熟悉可编程逻辑器件的结构和原理?掌握可编程逻辑器件的开发方法和工具?掌握VHDL语言?学习数字系统的设计方法?锻炼数字系统的设计和实现的综合能力?教学方式教学方式?讲授?自学课程简介课程简介教学内容教学内容?可编程逻辑器件的结构原理可编程逻辑器件的结构原理?可编程逻辑器件的特性和使用可编程逻辑器件的特性和使用?可编程逻辑器件的开发流程可编程逻辑器件的开发流程?可编程逻辑器件的开发工具可编程逻辑器件的开发工具?可编程逻辑系统的可编程逻辑系统的VHDL语言设计方法语言设计方法?数字系统的设计方法数字系统的设计方法课程简介课程简介3教学计划教学计划检查检查/报告实验五:小系统设计报告实验五:小系统设计Project(I)电子表介绍电子表介绍Project(I)和和(II)57/24-检查检查/报告报告/答辩实验六:大系统设计答辩实验六:大系统设计Project(II)题目可选开放实验题目可选开放实验6/7/8 8/4检查实验四:状态机及层次化设计实验脉宽测量电路状态机层次化设计检查实验四:状态机及层次化设计实验脉宽测量电路状态机层次化设计EDA软件接口软件接口47/21检查实验三:时序逻辑电路实验扫描显示电路检查实验三:时序逻辑电路实验扫描显示电路VHDL(时序逻辑部分)时序逻辑电路设计设计优化方法(时序逻辑部分)时序逻辑电路设计设计优化方法37/17-检查实验二:组合逻辑电路实验译码器检查实验二:组合逻辑电路实验译码器/十进制转换十进制转换/比较器比较器/加法器加法器VHDL语言(组合逻辑部分)实验板介绍语言(组合逻辑部分)实验板介绍27/14检查实验一:入门实验(熟悉实验板和开发软件)检查实验一:入门实验(熟悉实验板和开发软件)PLD器件常识实验板简介开发软件入门器件常识实验板简介开发软件入门VHDL程序结构程序结构17/10-实验要求实验内容(2.5小时)教学内容(1小时)课次日期实验要求实验内容(2.5小时)教学内容(1小时)课次日期课程简介课程简介评分标准评分标准?实验实验1:不计分:不计分?实验实验24:103分分?实验实验5:20分分?功能实现检查:10分?实验报告:10分?实验实验6:50分分?实验结果检查:30分?实验报告:10分?PPT报告:10分课程简介课程简介4实验报告要求实验报告要求?系统目标系统目标?功能?技术指标:速度/功耗/精度等?系统规范系统规范?系统的输入?系统的输出?系统的功能?系统框图系统框图?对系统各模块实现的详细说明对系统各模块实现的详细说明?输入?输出?系统实现的算法和结构说明?设计源码(*)?模块的性能/资源/仿真结果?系统的测试结果系统的测试结果?功能测试结果?指标测试结果?资源消耗?系统的总结系统的总结?实验的经验总结实验的经验总结?对所实现系统功能进一步扩展的展望对所实现系统功能进一步扩展的展望课程简介课程简介实验纪律实验纪律?报告未按时交,扣报告未按时交,扣5分分?缺席实验者,该次实验分为缺席实验者,该次实验分为0?抄袭他人报告和实验源代码者,实验不及格抄袭他人报告和实验源代码者,实验不及格课程简介课程简介5教学参考资料教学参考资料?教学参考书教学参考书?EDA技术实用教程,潘松,科学出版社?VHDL与数字电路设计,卢毅,科学出版社?数字系统设计与PLD应用技术,蒋璇,电子工业出版社?FPGA设计及应用,褚振勇,西安电子科技大学出版社?VHDL语言100例详解,北理工ASIC研究所,清华大学出版社?互联网资源互联网资源?可编程逻辑器件中文网站可编程逻辑器件中文网站? 中国电子网可编程器件专题 中国电子网可编程器件专题?Digital Library CD-ROM?EE?ID/PassWord?BBS/Lec/Lab?ftp.ele.pku.edu/pub课程简介课程简介逻辑器件分类逻辑器件分类可编程逻辑器件常识可编程逻辑器件常识LogicASICStd LogicPLDGate ArrayCell-basedICFullCustom ICSimple PLDCPLDFPGA(E,EE)PROMPLAPAL,GALASIC:Application Specific Integrated CircuitPLD:Programmable Logic Device6为什么要用为什么要用PLD??现场可编程现场可编程?可再编程可再编程?在线设计验证在线设计验证?好的开发软件好的开发软件?快速开发原型机快速开发原型机?迅速投放市场迅速投放市场?不需要不需要NRE费用费用?用硬件模拟代替软件仿真用硬件模拟代替软件仿真?.可编程逻辑器件常识可编程逻辑器件常识可编程逻辑器件发展历史(一)可编程逻辑器件发展历史(一)?简单简单PLD:Project-Name?Project名和顶层设计文件名匹配?建立适当的目录存放Project良好的设计习惯MAXPLUS II入门入门建立原理图文件和输入符号建立原理图文件和输入符号?打开打开Graphic Editor开始输入原理图文件开始输入原理图文件?在空白处双击输入符号(或在空白处双击输入符号(或Symbol-Enter Symbol)?选择符号库?选择符号MAXPLUS II入门入门22Symbol库说明库说明?Prim库:基本逻辑块库:基本逻辑块?Mf库:库:74系列等效逻辑块系列等效逻辑块?Mega_lpm:参数化模块:参数化模块?Edif:edif接口模块接口模块?用户自定义库:指定目录下的所有自定义模块用户自定义库:指定目录下的所有自定义模块?每个目录都相当于一个库?Options-user libraries可以设置用户库MAXPLUS II入门入门连线和命名连线和命名?连线:连线:?将鼠标放在起始端口,鼠标自动变成“+”形状?按住鼠标左键并将鼠标拖动到终止端口?松开鼠标左键?选中某条线按del键可删除该线MAXPLUS II入门入门?命名命名?选中连线,从键盘输入其名字?对输入输出引脚,鼠标左键双击“PIN_NAME”然后输入名字23Save&Check设计设计?File-Project-save&check?在提示信息的帮助下纠正错误在提示信息的帮助下纠正错误?MAX+PLUS II会自动生成代表该设计的符号,用户可以自己再编辑会自动生成代表该设计的符号,用户可以自己再编辑MAXPLUS II入门入门文本输入设计文本输入设计?使用使用VHDL或者或者AHDL语言输入语言输入?步骤与图形输入设计类似,只不过改用步骤与图形输入设计类似,只不过改用Text Editor编辑源程序文件。编辑源程序文件。MAXPLUS II入门入门24语言模板语言模板MAXPLUS II入门入门编译设计编译设计?选择功能编译选择功能编译/定时编译定时编译?选择目标器件选择目标器件?分配管脚分配管脚?设置逻辑综合控制设置逻辑综合控制?设置装配控制设置装配控制?设置定时要求设置定时要求?编译编译?查看编译结果查看编译结果MAXPLUS II入门入门25选择功能编译选择功能编译/时序编译时序编译?打开编译器:打开编译器:MAX+PLUS II-Compiler?选择功能编译或时间编译:选择功能编译或时间编译:Processing-Functional(Timing)SNF ExtractorMAXPLUS II入门入门选择目标器件选择目标器件?Assign-DeviceMAXPLUS II入门入门26分配管脚分配管脚?Assign-Pin/Location/Chip?管脚名可以手动输入或者适用管脚名可以手动输入或者适用Search按钮(要求设计已经编译过一次)按钮(要求设计已经编译过一次)MAXPLUS II入门入门设置芯片选项设置芯片选项?Assign-Global Project Device Options?选择下载方式和保留管脚等?CIC310实验板要求选择“passive serial”下载方式,同时管脚选项中的x一律去掉。MAXPLUS II入门入门下载方式选择去掉小框中的X27设置逻辑综合控制设置逻辑综合控制?Assign-Global Project Logic SynthesisMAXPLUS II入门入门缺省方式为NORMAL;综合方式为FAST可以改善设计性能,但是使配置变困难;WYS|WYG(所见即所得)的逻辑综合量最小。拖动滚动条可以在面积优化和速度优化之间协调对于MAX器件,选择多级综合可以充分利用所有可使用的逻辑选项,适合于处理含特别复杂逻辑的项目。对于FLEX器件,该选项自动有效。设置逻辑综合控制设置逻辑综合控制?FLEX器件的进位器件的进位/级联链级联链?进位链提供逻辑单元间的快速进位功能?级联链便于实现扇入数很多的逻辑函数?选择FAST方式,则进位/级联选项自动有效;否则可以手动选择:在Global Project Logic Synthesis菜单上选择Define Synthesis StyleMAXPLUS II入门入门如要使用进位链,则从下拉菜单中选择Auto。如要使用级联链,则从下拉菜单中选择Auto。28设置定时要求设置定时要求?对整个设计设置全局定时要求:对整个设计设置全局定时要求:Assign-Global Project Timing Requirements?可设置传播延时、时钟到输出延时、建立时间和时钟频率?对于FLEX系列器件,设置定时要求会影响设计的编译。MAXPLUS II入门入门编译过程选项编译过程选项?Processing菜单下有些选项与编译有关菜单下有些选项与编译有关MAXPLUS II入门入门Design Doctor:在编译期间,可选的Design Doctor工具将自动检查项目中的所有设计文件以发现在编程的器件中可能存在的可靠性不好的逻辑。选择功能编译或者定时编译。Smart Recompile:编译器保存项目中的额外信息以便减少重编译所花的时间。Total Recompile:每次编译都重新生成网表文件和层次互连文件。29开始编译开始编译?在Compiler窗口中按Start按钮?从Messages窗口查看信息?如有错误发生,利用Locate按钮定位,修改后重新编译?编译完可以打开rpt文件查看项目的基本信息MAXPLUS II入门入门定时分析定时分析?三种定时分析模式三种定时分析模式?延迟矩阵:分析多个源节点和目标节点之间的传播路径延迟?时序逻辑电路性能:分析时序逻辑电路的性能,包括最小时钟周期和最大时钟频率,以及限制时钟频率的关键路径?建立/保持矩阵:计算从输入引脚到触发器、锁存器和异步RAM的信号输入所需要的最少建立和保持时间?对应于延迟的任何一条路径都可以在设计文件或者装配图中显示出来对应于延迟的任何一条路径都可以在设计文件或者装配图中显示出来?在在MAX+PLUS II菜单下选择菜单下选择Timing Analyzer可进行定时分析可进行定时分析MAXPLUS II入门入门30延迟矩阵延迟矩阵?Analysis-Delay Matrix?计算组合逻辑电路部分的延迟,通常用于计算输入管脚到输出管脚的延迟?如果要计算内部节点之间的延迟,则可以通过设置源节点/目标节点来实现。(Node-Timing Analysis Source/Destination)MAXPLUS II入门入门时序逻辑电路性能时序逻辑电路性能?Analysis-Registered Performance?显示最高时钟频率、最小时钟周期以及源到目的的最长时延路径?选择List Paths可以显示所有路径MAXPLUS II入门入门31建立和保持时间分析建立和保持时间分析?Setup/Hold Matrix?计算触发器的输入建立时间与保持时间?建立时间:输入信号提前于时钟稳定的时间?保持时间:输入信号在时钟有效沿后仍保持稳定的时间MAXPLUS II入门入门仿真仿真?两种仿真模式两种仿真模式?功能仿真(前仿真)仅仅验证设计的逻辑功能,不考虑时延的影响 编译器仅仅抽取网表,不进行逻辑综合、适配和时间分析 可以仿真设计中出现的任何节点 仿真速度快?时序仿真(后仿真)综合考虑器件时延和逻辑功能 编译器进行逻辑综合、适配和时间分析等 只能够仿真电路中物理存在的节点 仿真速度慢?两种仿真文件:两种仿真文件:Waveform 和和 Vector?仿真步骤仿真步骤?编辑仿真的输入信号,设置仿真起始时间?运行仿真?比较仿真结果?仿真结果保存在仿真结果保存在.scf文件中文件中MAXPLUS II入门入门32Waveform Editor?两种用途两种用途?作为设计的输入工具:.wdf(waveform design file)文件?作为仿真时输入测试矢量和观察仿真结果的工具:.scf(simulation channel file)文件MAXPLUS II入门入门缩放按钮缩放按钮波形赋值按钮波形赋值按钮右键弹出菜单右键弹出菜单观察的信号观察的信号产生波形文件产生波形文件?产生新的波形文件产生新的波形文件?File-New-Wave Edit File(.scf or.wdf)?保存为.scf文件?设置可选项设置可选项?Grid size(Options-Grid Size)?结束时间(File-End time)MAXPLUS II入门入门33添加观察节点添加观察节点?Node-Enter Nodes from SNF?先点List,在左边框中选中想观察的节点将之移动到右边MAXPLUS II入门入门1 点击点击2 选择选择3 点击点击编辑节点波形编辑节点波形?选中需要编辑的一段时间间隔选中需要编辑的一段时间间隔?Edit(或鼠标右键或鼠标右键)-Overwrite-选择波形,也可以直接选择左边的适当按钮选择波形,也可以直接选择左边的适当按钮MAXPLUS II入门入门34运行仿真运行仿真?保存波形文件:保存波形文件:File-Save As?波形文件名应与项目名一致?运行仿真:运行仿真:File-Project-Save&SimulateMAXPLUS II入门入门PLD编程编程/下载下载?PLD编程下载方式编程下载方式?Programmer:专用编程器 第三方编程器?Download Cable?Configure Device?具体下载方式跟器件有关,请查阅相应的器件手册。?CIC-310下载方式(以下载方式(以8k下载板为例)下载板为例)?Passive Serial方式?板上小单片机 与计算机通信 管理下载的FPGA程序(压缩/解压缩)控制FPGA下载?板上SEEPROM 保存若干个PLD下载程序MAXPLUS II入门入门35CIC310实验板下载方法(一)实验板下载方法(一)?用用MAX+PLUS II编译时,编译时,Assign-Global Project Device Options弹出框中要选择弹出框中要选择”Passive Serial”下载方式,并同时管脚选项中的下载方式,并同时管脚选项中的x一律去掉。一律去掉。?编译仿真通过后,运行桌面上的编译仿真通过后,运行桌面上的DNLD3.exe(如果为(如果为10K10的下载板则运行的下载板则运行DNLD10.exe)?在下载程序面板中选在下载程序面板中选Options-COM Port,选择正确的串口,通常为,选择正确的串口,通常为COM1。MAXPLUS II入门入门CIC310实验板下载方法(二)实验板下载方法(二)?按面板上的按面板上的Dir在在SEEPROM框中显示当前可以下载的设计。框中显示当前可以下载的设计。?按按Add将新设计加入。按将新设计加入。按Del则将该设计从则将该设计从SEEPROM中删除中删除?选中选中SEEPROM框中的某个设计然后点框中的某个设计然后点Config键可以下载该设计;按键可以下载该设计;按Del则将该设计从则将该设计从SEEPROM中删除;按中删除;按Act则是激活该设计,则系统被复位或者断电重新上电时,该设计被自动加载。则是激活该设计,则系统被复位或者断电重新上电时,该设计被自动加载。MAXPLUS II入门入门显示显示下载下载保存的下载程序,带保存的下载程序,带*的为被激活的程序的为被激活的程序36VHDL程序结构程序结构?1、USE定义区定义区?Library定义所使用的元件库?Package定义所使用的元件库中的包?2、Entity定义区:定义电路实体的定义区:定义电路实体的I/O接口规格接口规格?3、Architecture定义区:描述电路内部具体功能定义区:描述电路内部具体功能?Component定义区?信号定义?行为描述/数据流描述/结构描述?4、Configuration定义区:决定使用哪一个定义区:决定使用哪一个architecture。(非必须)。(非必须)基本的基本的VHDL程序结构程序结构VHDL简单实例简单实例and2Library IEEE;Use IEEE.std_logic_1164.all;Entity and2 isport(a:in std_logic;b:in std_logic;c:out std_logic);End and2;Architecture rtl of and2 isBeginc=a and b;End rtl;基本的基本的VHDL程序结构程序结构37开发一个简单的开发一个简单的PLD设计演示平台:设计演示平台:MAX+PLUS II开发流程演示开发流程演示范例范例?实验目的:实验目的:?熟悉MAX+PLUS II软件?熟悉PLD开发流程?具体要求见讲义?实验内容:实验内容:?1、用原理图输入方式实现一个简单的组合逻辑电路,如3输入与非门、异或门等?2、用VHDL语言实现另一个简单的组合逻辑电路?选做选做?1、下载SEEPROM中原有的几个程序,观察验证其功能。本次实验内容本次实验内容