




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,电子设计自动化,北京信息科技大学光电信息与通信工程学院,2,什么是EDA技术?问题的提出传统的数字系统设计方法现代的数字系统设计方法实例演示:电子秒表电路的设计关于课程,绪论,3,什么是EDA技术?,EDA(ElectronicDesignAutomation,电子设计自动化)是在计算机的辅助下完成电子产品设计的一种先进的硬件设计技术!是立足于计算机工作平台开发出来的一整套先进的设计电子系统的软件工具。,4,EDA技术的范畴,IC版图设计,PLD设计,电路设计,PCB设计,模拟电路,数字电路,混合电路,设计输入,逻辑综合,仿真,编程下载,本课程内容!,5,问题的提出,设计一个电子秒表电路,使之完成以下功能:按0.01s的步长进行计时;具有异步清零和启动/停止计数功能;并用数码管显示其秒高位、秒低位,百分秒高位、百分秒低位。为便于显示,秒和百分秒信号均采用BCD码计数方式。,6,问题的提出(续),输入信号:clk:系统时钟信号,f=50MHz;clr:异步清零信号,负脉冲有效;startstop:启/停信号,负脉冲有效。输出信号:dsec6.0:驱动数码管,显示秒高位;sec6.0:驱动数码管,显示秒低位;cn:分钟的进位信号,接发光二极管,高有效;secd6.0、secm6.0分别显示百分秒高位和百分秒低位。,7,解决方案1传统的数字系统设计方法,1.根据设计要求划分功能模块;2.确定输入和输出的关系,画出真值表;3.由真值表写出逻辑表达式;4.利用公式或卡诺图进行人工化简;5.根据化简后的逻辑表达式画出电路原理图;6.在面包板上进行实验,验证电路的正确性;7.若无错误,再设计PCB图;8.检查后送制板厂制板;9.对PCB板进行安装、调试,若有大的错误,修改设计,重复以上过程,重新制板。,搭积木的方式!基于电路板的设计方法采用固定功能的器件(通用型器件),通过设计电路板来实现系统功能,8,传统的数字系统设计方法的缺点,效率低下,设计周期很长;容易出错;芯片种类多,数量大,受市场的限制;设计灵活性差;产品体积大。,9,解决方案2现代的数字系统设计方法,首先在计算机上安装EDA软件,它们能帮助设计者自动完成几乎所有的设计过程;再选择合适的PLD芯片,可以在一片芯片中实现整个数字系统。,基于芯片的设计方法采用PLD(可编程逻辑器件),利用EDA开发工具,通过芯片设计来实现系统功能。,EDA软件,空白PLD,+,数字系统,编程,10,现代的数字系统设计方法(续1),1.根据设计要求划分功能模块2.PLD开发(利用EDA工具)(1)设计输入:采用硬件描述语言(HDL),用条件语句或赋值语句表示输入和输出的逻辑关系,将整个程序输入到计算机中;(2)设计的编译:EDA工具可自动进行逻辑综合,将功能描述转换为门级描述,或转换成具体PLD的网表文件,将网表文件自动适配到具体芯片中进行布局布线;(3)功能仿真和时序仿真;(4)编程下载到实际芯片中,在实验台上进行验证;(5)在每一阶段若有问题,可在计算机上直接修改设计,重复以上过程。,11,现代的数字系统设计方法(续2),3.设计包含PLD芯片的电路板(1)在计算机上利用EDA软件画电路原理图;(2)进行电气规则检查无误后,自动生成网表文件;(3)利用EDA软件画PCB图,自动布线;(4)自动进行设计规则检查,无误后输出文件,制板。,优点:效率高所有这一切,几乎都是借助计算机利用EDA软件自动完成!容易检查错误,便于修改;设计周期短、成功率很高;产品体积小。,12,实例演示:电子秒表电路的设计,假设系统时钟为50MHz,PLD器件为EP1S10F780C6。设计思路采用自顶向下的设计方法:需要两个分频器,将50MHz分频为10KHz,将10KHz分频为100Hz;需要一个BCD码计数器,可分别对秒和百分秒位循环计数;需要一个译码器,将BCD计数器的输出译码为7段显示器的7段输入。,13,系统功能框图,14,采用ISE软件的PLD设计,1.首先在资源管理器下创建一个工作目录。2.在ISE中创建一个工程。3.子模块设计:每个模块可以用HDL语言描述,对每个模块进行编译、仿真。4.顶层设计:创建一个顶层文件,将各模块实例化,添加输入、输出引脚;编译,仿真。5.给输入、输出引脚分配引脚号码,编程下载。,工作目录和工程名不能有空格和汉字!,15,详细步骤,第1步:在资源管理器下创建一个工作目录second。第2步:启动ISE,执行菜单命令“FileNewProject”,创建一个工程,工程名为second。若要打开一个已有的工程,则执行“FileOpenProject”命令。第3步:设计子模块(1)执行菜单命令“ProjectNewSource”,新建一个文本文件clkdiv100.v,采用VerilogHDL语言描述;(2)存盘;(3)执行“SynthesisXST”下面“CheckSyntax”,对其进行语法检查。,最好每个工程都有自己的工作目录!,16,moduleclkdiv100(clr,clkin,clkout,count);inputclr,clkin;/输入端口声明outputclkout,count;/输出端口声明reg6:0count;regclkout;always(posedgeclkinornegedgeclr)beginif(!clr)count=0;/异步清零!低有效,子模块设计100分频器,模块110KHz到100Hz的分频电路(采用VerilogHDL语言描述),(1)端口定义,模块名(同文件名),(3)功能描述,17,子模块设计100分频器(续),elseif(count6:0=99)beginclkout=1;/clkout只在计数值为99时为1count6:0=0;endelsebeginclkout=0;/clkout在其他时候都为0count6:0=count6:0+1;endendendmodule,续前页,18,子模块设计BCD计数器,模块2BCD计数器,modulebcdcnt(dsec,sec,secd,secm,cn,clkin,clr);inputclkin,clr;/Tclkin=0.01soutput3:0dsec,sec,secd,secm;outputcn;/秒高位向分钟的进位reg3:0dsec,sec,secd,secm;regcn;always(posedgeclkinornegedgeclr)beginif(!clr)/(1)异步清零!begincn=0;/进位信号也必须清零!dsec3:0=0;sec3:0=0;secd3:0=0;secm3:0=0;end,19,子模块设计BCD计数器(续1),续前页,else/(2)计数,采用4个if语句的嵌套beginif(secm3:0=9)/百分秒低位是否为9?beginsecm3:0=0;if(secd3:0=9)/百分秒高位是否为9?beginsecd3:0=0;if(sec3:0=9)/秒低位是否为9?beginsec3:0=0;if(dsec3:0=5)/秒高位是否为5?dsec3:0=0;elsedsec3:0=dsec3:0+1;endelsesec3:0=sec3:0+1;endelsesecd3:0=secd3:0+1;endelsesecm3:0=secm3:0+1;,20,子模块设计BCD计数器(续2),续前页,/(3)产生向分钟的进位信号if(dsec3:0=5)endendendmodule,21,仿真子模块,第3步:(4)进行仿真新建一个仿真波形文件.tbw,编辑输入波形;选择“BehavioralSimulation”,执行“SimulateBehavioral”,开始仿真。,22,子模块设计7段码译码器,模块37段LED显示器(共阳极)译码器。,modulep7seg(out,data);input3:0data;/7段显示器输入output6:0out;/7段显示器字段输出out6:0相当于a,b,c,d,e,f,greg6:0out;always(data)case(data)4d0:out=7b0000001;4d1:out=7b1001111;4d2:out=7b0010010;4d3:out=7b0000110;4d4:out=7b1001100;4d5:out=7b0100100;,case语句适于对同一个控制信号取不同的值时,输出取不同的值!,23,子模块设计7段码译码器(续),4d6:out=7b0100000;4d7:out=7b0001111;4d8:out=7b0000000;4d9:out=7b0000100;default:out=7b1111111;/当data为4hA4hF时,七段显示器不亮endcaseendmodule,续前页,24,设计顶层文件,第4步:设计顶层文件(1)创建一个顶层文件second.v,将各模块实例化,添加输入、输出引脚;(2)将该文件设置为顶层模块;(3)进行编译器选项设置;(4)全编译;(5)对顶层文件仿真(如果必要的话)。,25,引脚锁定,第5步:给输入、输出引脚分配引脚号码,编程下载(1)在UserConstraints中进行引脚锁定执行“UserConstraints-AssignPackagePins”菜单命令,26,编程下载,(2)执行“GenerateProgrammingFilesGeneratePROM,ACE,ORJTAGFiles”,生成FPGA配置文件*.bit;(3)编程下载;执行“GenerateProgrammingFilesConfigureDevice(iMPACT)”,开始编程下载。(4)在线校验。利用实验板上的按钮,模拟启动计数、暂停计数和继续计数,以及异步清零功能,然后观察数码管和LED的显示,看是否与预定的功能相符。,PLD器件和EDA技术的出现改变了传统的数字系统设计思想,使硬件设计变得简单、高效!,27,关于课程,本课程主要学习基于FPGA(FieldProgrammableGateArray,现场可编程门阵列)的EDA技术。本课程包括理论教学和实验教学两大部分。理论教学以应用为主,按照“技术器件设计语言设计软件实例”的顺序介绍当前PLD设计的主导思想及设计方法。学时:理论课24学时+实验课8学时先修课程:数字电子技术,微机原理与接口技术,课程简介,28,教学目标,拓宽知识面,深化对数字电子技术和计算机接口与通信技术等知识的理解;熟练掌握VerilogHDL硬件描述语言;能够采用各种输入方法,综合使用多种EDA工具软件,进行FPGA的设计、编译、仿真及下载,掌握EDA设计的基本原理和方法;熟练应用EDA技术进行基于FPGA的数字系统的设计与开发;,关于课程(续1),29,1.FPGA应用开发入门与典型实例华清远见编著,人民邮电出版社,2008,教材,(1)设计与验证VerilogHDL吴
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 22025年护师试题更新及答案分析
- 2025年医保知识考试题库及答案:医保信息化建设应用跨平台开发试题
- 2025年消防队伍消防安全知识培训考试题库模拟试题及答案汇编及实战演练
- 学习框架审计师试题及答案分享
- 医院信息管理系统中的数据整合与利用策略研究
- 区块链技术助力构建智慧教育资源共享体系
- 向成功出发2025年入团考试试题及答案
- 医疗大数据伦理框架的构建与实施
- 医疗行业中的伦理培训与职业发展
- 消防组织与指挥特点试题及答案
- Unit6知识点讲解(带练习)课件-人教版八年级英语下册
- 新外研版三年级英语下册期中测试卷(汇编)
- 1-如何做好今年中考语文的复习备考
- 精神病学课件躯体治疗(精神病学)
- FeNO测定及应用演示版课件
- 考试焦虑主题班会课件
- 冀教版五年级下册美术第12课《寓言成语故事多》课件
- 英语演讲Artificial intelligence人工智能课件共课件
- 建设工程防渗漏验收检查表
- 铁皮石斛 组织培养 栽培 试验 实验
- 中国联通cBSS系统使用培训-第一部分
评论
0/150
提交评论