FPGA入门学习剖析课件

上传人:我*** 文档编号:142094116 上传时间:2020-08-16 格式:PPT 页数:30 大小:557.50KB
返回 下载 相关 举报
FPGA入门学习剖析课件_第1页
第1页 / 共30页
FPGA入门学习剖析课件_第2页
第2页 / 共30页
FPGA入门学习剖析课件_第3页
第3页 / 共30页
FPGA入门学习剖析课件_第4页
第4页 / 共30页
FPGA入门学习剖析课件_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《FPGA入门学习剖析课件》由会员分享,可在线阅读,更多相关《FPGA入门学习剖析课件(30页珍藏版)》请在金锄头文库上搜索。

1、1,电子设计自动化,北京信息科技大学 光电信息与通信工程学院,2,什么是EDA技术? 问题的提出 传统的数字系统设计方法 现代的数字系统设计方法 实例演示:电子秒表电路的设计 关于课程,绪 论,3,什么是EDA技术?,EDA(Electronic Design Automation,电子设计自动化) 是在计算机的辅助下完成电子产品设计的一种先进的硬件设计技术! 是立足于计算机工作平台开发出来的一整套先进的设计电子系统的软件工具。,4,EDA技术的范畴,IC 版图设计,PLD 设计,电路设计,PCB 设计,模拟电路,数字电路,混合电路,设计输入,逻辑综合,仿真,编程下载,本课程内容!,5,问题的

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

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

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

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

6、软件自动完成! 容易检查错误,便于修改; 设计周期短、成功率很高 ; 产品体积小。,12,实例演示 :电子秒表电路的设计,假设系统时钟为50MHz, PLD器件为EP1S10F780C6。 设计思路采用自顶向下的设计方法: 需要两个分频器,将50MHz分频为10KHz,将10KHz分频为100Hz; 需要一个BCD码计数器,可分别对秒和百分秒位循环计数; 需要一个译码器,将BCD计数器的输出译码为7段显示器的7段输入。,13,系统功能框图,14,采用ISE软件的PLD设计,1. 首先在资源管理器下创建一个工作目录。 2. 在ISE中创建一个工程。 3. 子模块设计:每个模块可以用HDL语言描述

7、,对每个模块进行编译、仿真。 4.顶层设计:创建一个顶层文件,将各模块实例化,添加输入、输出引脚;编译,仿真。 5. 给输入、输出引脚分配引脚号码,编程下载。,工作目录和工程名不能有空格和汉字!,15,详细步骤,第1步:在资源管理器下创建一个工作目录second。 第2步:启动ISE,执行菜单命令“ File New Project ”,创建一个工程,工程名为second。 若要打开一个已有的工程,则执行“ File Open Project ”命令。 第3步:设计子模块 (1)执行菜单命令“ Project New Source”,新建一个文本文件clkdiv100 .v,采用Verilog

8、 HDL语言描述; (2)存盘; (3)执行 “Synthesis XST”下面 “Check Syntax”,对其进行语法检查。,最好每个工程都有自己的工作目录!,16,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) count=0; / 异步清零!低有效,子模块设计100分频器,模块1

9、 10KHz到100Hz的分频电路(采用Verilog HDL语言描述),(1) 端口定义,模块名(同文件名),(3) 功能描述,17,子模块设计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,续前页,18,子模块设计BCD计数器,模块2 BCD计数器,module bcdcnt(dsec,sec,secd,secm,cn,

10、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,19,子模块设计BCD计数器(续1),续前页,else /(2)计

11、数,采用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 secm3:0=secm3:0+1;,20,子模块设计BCD计数器

12、(续2),续前页,/(3)产生向分钟的进位信号 if (dsec3:0=5) end end endmodule,21,仿真子模块,第3步: (4)进行仿真 新建一个仿真波形文件.tbw,编辑输入波形; 选择“Behavioral Simulation” ,执行“Simulate Behavioral”,开始仿真。,22,子模块设计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

13、: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语句适于对同一个控制信号取不同的值时,输出取不同的值!,23,子模块设计7段码译码器(续),4d6: out = 7b0100000 ; 4d7: out = 7b0001111 ; 4d8: out = 7b0000000 ; 4d9: out

14、 = 7b0000100 ; default:out = 7b1111111; /当data为4hA4hF时,七段显示器不亮 endcase endmodule,续前页,24,设计顶层文件,第4步:设计顶层文件 (1)创建一个顶层文件second.v ,将各模块实例化,添加输入、输出引脚; (2)将该文件设置为顶层模块; (3)进行编译器选项设置; (4)全编译; (5)对顶层文件仿真(如果必要的话)。,25,引脚锁定,第5步:给输入、输出引脚分配引脚号码,编程下载 (1) 在User Constraints 中进行引脚锁定 执行“User Constraints - Assign Packa

15、ge Pins”菜单命令,26,编程下载,(2)执行“Generate Programming Files Generate PROM, ACE, OR JTAG Files”,生成FPGA配置文件*.bit ; (3)编程下载; 执行“Generate Programming Files Configure Device(iMPACT)”,开始编程下载。 (4)在线校验。 利用实验板上的按钮,模拟启动计数、暂停计数和继续计数,以及异步清零功能 ,然后观察数码管和LED的显示,看是否与预定的功能相符。,PLD器件和EDA技术的出现改变了传统的数字系统设计思想,使硬件设计变得简单、高效!,27,关 于 课 程,本课程主要学习基于FPGA(Field Programmable Gate Array,现场可编程门阵列)的EDA技术。 本课程包括理论教学和实验教学两大部分。 理论教学以应用为主,按照“技术器件设计语言设计软件实例”的顺序介绍当前PLD设计的主导思想及设计方法。 学时:理论课24学时 + 实验课8学时 先修课程:数字电子技术,微机原理与接口技术,课程简介,28,教学目标,拓宽知识面,深化对数字电子技术和计算机接口与通信

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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