06_03_001计算机eda设计教程-北航.ppt

上传人:bao****ty 文档编号:144338714 上传时间:2020-09-07 格式:PPT 页数:95 大小:2.62MB
返回 下载 相关 举报
06_03_001计算机eda设计教程-北航.ppt_第1页
第1页 / 共95页
06_03_001计算机eda设计教程-北航.ppt_第2页
第2页 / 共95页
06_03_001计算机eda设计教程-北航.ppt_第3页
第3页 / 共95页
06_03_001计算机eda设计教程-北航.ppt_第4页
第4页 / 共95页
06_03_001计算机eda设计教程-北航.ppt_第5页
第5页 / 共95页
点击查看更多>>
资源描述

《06_03_001计算机eda设计教程-北航.ppt》由会员分享,可在线阅读,更多相关《06_03_001计算机eda设计教程-北航.ppt(95页珍藏版)》请在金锄头文库上搜索。

1、1,计算机EDA设计教 程,北航计算机学院 艾明晶,2,目 录,绪论 (1学时) 第1章 数字系统设计与EDA技术 (2学时) 第2章 PLD器件结构 (2学时) 第3章 硬件描述语言Verilog HDL (3学时) 第4章 EDA设计工具软件 (5学时) 第5章 数字电路与数字系统的设计实现 (2学时) 第6章 SOPC开发过程 (1学时) 第7章 Nios 嵌入式处理器设计 (2学时),理论课共18学时,3,问题的提出 传统的数字系统设计方法 现代的数字系统设计方法 什么是EDA技术? 实例演示:电子秒表电路的设计 关于课程,共1学时,绪 论,4,问题的提出,设计一个电子秒表电路,使之完

2、成以下功能: 按0.01s的步长进行计时; 具有异步清零和启动/停止计数功能; 并用数码管显示其秒高位、秒低位,百分秒高位、百分秒低位。 为便于显示,秒和百分秒信号均采用BCD码计数方式。,5,问题的提出(续),输入信号: clk:系统时钟信号,f=50MHz; clr:异步清零信号,负脉冲有效; startstop:启/停信号,负脉冲有效。 输出信号: dsec6.0:驱动数码管,显示秒高位; sec6.0:驱动数码管,显示秒低位; cn:分钟的进位信号,接发光二极管,高有效; secd6.0、secm6.0 分别显示百分秒高位和百分秒低位。,6,解决方案1传统的数字系统设计方法,1. 根据

3、设计要求划分功能模块; 2. 确定输入和输出的关系,画出真值表; 3. 由真值表写出逻辑表达式; 4. 利用公式或卡诺图进行人工化简; 5. 根据化简后的逻辑表达式画出电路原理图; 6. 在面包板上进行实验,验证电路的正确性; 7. 若无错误,再在透明薄膜上用贴图符号贴PCB图; 8. 检查后送制板厂制板; 9. 对PCB板进行安装、调试,若有大的错误,修改设计,重复以上过程,重新制板。,搭积木的方式! 基于电路板的设计方法采用固定功能的器件(通用型器件),通过设计电路板来实现系统功能,7,传统的数字系统设计方法的缺点,效率低下所有这一切,几乎都是手工完成! 设计周期很长; 容易出错; 芯片种

4、类多,数量大,受市场的限制; 设计灵活性差; 产品体积大。,8,解决方案2现代的数字系统设计方法,首先在计算机上安装EDA软件,它们能帮助设计者自动完成几乎所有的设计过程;再选择合适的PLD芯片,可以在一片芯片中实现整个数字系统。,基于芯片的设计方法采用PLD(可编程逻辑器件),利用EDA开发工具,通过芯片设计来实现系统功能。,EDA软件,空白PLD,+,数字系统,编程,9,现代的数字系统设计方法(续1),1.根据设计要求划分功能模块 2. PLD开发(利用EDA工具) (1)设计输入:采用硬件描述语言(HDL),用条件语句或赋值语句表示输入和输出的逻辑关系,将整个程序输入到计算机中; (2)

5、设计的编译:EDA工具可自动进行逻辑综合,将功能描述转换为门级描述,或转换成具体PLD的网表文件,将网表文件自动适配到具体芯片中进行布局布线; (3)功能仿真和时序仿真; (4)编程下载到实际芯片中,在实验台上进行验证; (5)在每一阶段若有问题,可在计算机上直接修改设计,重复以上过程。,10,现代的数字系统设计方法(续2),3. 设计包含PLD芯片的电路板 (1)在计算机上利用EDA软件画电路原理图; (2) 进行电气规则检查无误后,自动生成网表文件; (3) 利用EDA软件画PCB图,自动布线; (4) 自动进行设计规则检查,无误后输出文件,制板。,优点: 效率高所有这一切,几乎都是借助计

6、算机利用EDA软件自动完成! 容易检查错误,便于修改; 设计周期短、成功率很高 ; 产品体积小。,11,什么是EDA技术?,EDA(Electronic Design Automation,电子设计自动化) 是在计算机的辅助下完成电子产品设计的一种先进的硬件设计技术! 是立足于计算机工作平台开发出来的一整套先进的设计电子系统的软件工具。,12,EDA技术的范畴,IC 版图设计,PLD 设计,电路设计,PCB 设计,模拟电路,数字电路,混合电路,设计输入,逻辑综合,仿真,编程下载,本课程内容!,13,学习EDA到底有什么用呢?,真有趣,可以按自己的想法设计一个芯片!,我也要参加全国大学生电子设计

7、竞赛!,呀,毕业设计和冯如杯正好能用得上哎!,原来在一个芯片里就可以设计一个完整的计算机系统呀!,找工作时也算得上一技之长哦!,14,本课程要学习的PLD设计EDA工具软件,1. Quartus 美国Altera公司自行设计的第四代PLD开发软件 目前版本:5.1 可以完成PLD的设计输入、逻辑综合、布局与布线、仿真、时序分析、器件编程的全过程 同时还支持SOPC(可编程片上系统)设计开发,2. ModelSim 美国Mentor Graphics公司的子公司Model Technology开发的仿真工具 目前版本:6.0 业界使用最广泛的HDL语言仿真器之一 支持VHDL、Verilog H

8、DL或混合HDL语言设计 仿真功能强大,仿真速度快!,15,实例演示 :电子秒表电路的设计,假设系统时钟为50MHz, PLD器件为EP1S10F780C6。 设计思路采用自顶向下的设计方法: 需要两个分频器,将50MHz分频为10KHz,将10KHz分频为100Hz; 需要一个BCD码计数器,可分别对秒和百分秒位循环计数; 需要一个译码器,将BCD计数器的输出译码为7段显示器的7段输入。,16,系统功能框图,17,采用Quatus 的PLD设计方法,千万记住哦!,1. 首先在资源管理器下创建一个工作目录。 2. 在Quatus 中创建一个工程。 3. 子模块设计:每个模块可以用HDL语言描述

9、,对每个模块进行编译、仿真,通过后然后生成模块符号。 4.顶层设计:创建一个顶层图形文件,将各模块符号放到图中,添加输入、输出引脚,连线;编译,仿真。 5. 给输入、输出引脚分配引脚号码,编程下载。,工作目录和工程名不能有空格和汉字!,18,演 示,第1步:在资源管理器下创建一个工作目录second。 第2步:启动Quatus II,执行菜单命令“ File New Project Wizard”,创建一个工程,工程名为second。 若要打开一个已有的工程,则执行“ File Open Project ”命令。 第3步:设计子模块 (1)执行菜单命令“ File New”,新建一个文本文件c

10、lkdiv100 .v,采用Verilog HDL语言描述; (2)存盘; (3)指定该子模块为顶层实体,执行 “Processing Start Compilation”命令,对其进行全编译。,最好每个工程都有自己的工作目录!,19,module clkdiv100 (clr,clkin,clkout,count); input clr,clkin; / 输入端口声明 output clkout,count; / 输出端口声明 reg6:0 count; reg clkout; always (posedge clkin or negedge clr) begin if (!clr) cou

11、nt=0; / 异步清零!低有效,子模块设计100分频器,模块1 10KHz到100Hz的分频电路(采用Verilog HDL语言描述),(1) 端口定义,模块名(同文件名),(3) 功能描述,20,子模块设计100分频器(续),else if (count6:0=99) begin clkout=1; / clkout只在计数值为99时为1 count6:0=0; end else begin clkout=0; / clkout在其他时候都为0 count6:0=count6:0+1; end end endmodule,续前页,21,子模块设计BCD计数器,模块2 BCD计数器,modu

12、le bcdcnt(dsec,sec,secd,secm,cn,clkin,clr); input clkin,clr; /Tclkin = 0.01s output3:0 dsec,sec,secd,secm; output cn; /秒高位向分钟的进位 reg3:0 dsec,sec,secd,secm; reg cn; always (posedge clkin or negedge clr) begin if (!clr) /(1)异步清零! begin cn=0; /进位信号也必须清零! dsec3:0=0; sec3:0=0; secd3:0=0; secm3:0=0; end,2

13、2,子模块设计BCD计数器(续1),续前页,else /(2)计数,采用4个if语句的嵌套 begin if(secm3:0=9) /百分秒低位是否为9? begin secm3:0=0; if(secd3:0=9) /百分秒高位是否为9? begin secd3:0=0; if(sec3:0=9) /秒低位是否为9? begin sec3:0=0; if(dsec3:0=5) /秒高位是否为5? dsec3:0=0; else dsec3:0=dsec3:0+1; end else sec3:0=sec3:0+1; end else secd3:0=secd3:0+1; end else s

14、ecm3:0=secm3:0+1;,23,子模块设计BCD计数器(续2),续前页,/(3)产生向分钟的进位信号 if (dsec3:0=5) end end endmodule,24,仿真子模块,第3步: (4)进行仿真 新建一个仿真波形文件.vwf,编辑输入波形; 执行“Tools Simulation Tool”命令,打开仿真器工具窗口; 单击Start按钮,开始仿真。,bcdcnt.vwf,25,创建模块符号,(5)创建模块符号 仿真通过后,执行“File Create/Update Create Symbol Files for Current File”菜单命令,创建模块符号(文件后

15、缀为.bsf)。,26,子模块设计7段码译码器,模块3 7段LED显示器(共阳极)译码器。,module p7seg(out,data); input 3:0data ; /7段显示器输入 output 6:0 out; /7段显示器字段输出 out6:0相当于a,b,c,d,e,f,g reg 6:0 out; always (data ) case (data) 4d0: out = 7b0000001 ; 4d1: out = 7b1001111 ; 4d2: out = 7b0010010 ; 4d3: out = 7b0000110 ; 4d4: out = 7b1001100 ; 4d5: out = 7b0100100 ;,case语句适于对同一个控制信号取不同的值时,输出取不同的值!,27,子模块设计7段码译码器(续),4d6: out = 7b0100000 ; 4d7: out = 7b0001111 ; 4d8: out = 7b0000000 ; 4d9: out = 7b0000100 ; default:out = 7b1111111; /当da

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号