ImageVerifierCode 换一换
格式:PPT , 页数:81 ,大小:2.50MB ,
文档编号:2040936      下载积分:15 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-2040936.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(罗嗣辉)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(EDA技术及应用课件:3-3 (1).ppt)为本站会员(罗嗣辉)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

EDA技术及应用课件:3-3 (1).ppt

1、1FPGA 设计的几个概念 建立时间和保持时间建立时间和保持时间 竞争和冒险竞争和冒险 时钟信号时钟信号 2建立时间和保持时间建立时间和保持时间建立时间(setup time)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间 保持时间(hold time)是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间 3 如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器 。 如果保持时间不够,数据同样不能被打入触发器。 数据稳定传输必须满足建立和保持时间的要求,当然在一些情况下,建立时间和保持时间的值可以为零。 PLD/FPGA开发软件可以自动计算两个相关输入的建立和保持时间。 4竞

2、争和冒险竞争和冒险 几乎所有数字电路,都会遇到竞争和冒险问题 信号在FPGA器件内部通过连线和逻辑单元时都有一定的延时。延时的大小与连线的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响,信号的高低电平转换也需要一定的过渡时间。由于存在这两方面因素,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,往往会出现一些不正确的尖峰信号,这些尖峰信号称为“毛刺”。如果一个组合逻辑电路中有毛刺出现,就说明该电路存在“冒险”。 5PLD内部毛刺产生的原因内部毛刺产生的原因 使用分立元件设计数字系统时,由于PCB走线时,存在分布电感和电容,所

3、以几纳秒的毛刺将被自然滤除 PLD内部决无分布电感和电容,所以在PLD/FPGA设计中,竞争和冒险问题将变的较为突出 6存在逻辑冒险的电路示例 7如何处理毛刺如何处理毛刺 可以通过改变设计,破坏毛刺产生的条件,来减少毛刺的发生 。在数字电路设计中,常常采用格雷码计数器取代普通的二进制计数器,这是因为格雷码计数器的输出每次只有一位跳变 毛刺并不是对所有的输入都有危害,例如D触发器的D输入端 。根据这个特性,我们应当在系统中尽可能采用同步电路 8时钟信号时钟信号 无论是用离散逻辑、可编程逻辑,还是用全定制硅器件实现的任何数字设计,为了成功地操作,可靠的时钟是非常关键的 设计不良的时钟将导致错误的行

4、为,并且调试困难、花销很大 时钟可分为如下四种类型:全局时钟、门控时钟、多级逻辑时钟和波动式时钟 9全局时钟全局时钟 对于一个设计项目来说,全局时钟(或同步时钟)是最简单和最可预测的时钟。 在PLD/FPGA设计中最好的时钟方案是:由专用的全局时钟输入引脚驱动的单个主时钟去钟控设计项目中的每一个触发器。只要可能就应尽量在设计项目中采用全局时钟。 PLD/FPGA都具有专门的全局时钟引脚,它直接连到器件中的每一个寄存器。这种全局时钟提供器件中最短的时钟到输出的延时。 10全局时钟的实例 11门控时钟门控时钟 在许多应用中,整个设计项目都采用外部的全局时钟是不可能或不实际的。 PLD具有乘积项逻辑

5、阵列时钟(即时钟是由逻辑产生的),允许任意函数单独地钟控各个触发器 。 当你用阵列时钟时,应仔细地分析时钟函数,以避免毛刺 。 12用一个用一个“与与”门产生门控时钟门产生门控时钟133位同步加法计数器的RCO输出用来钟控触发器 14改进方法15多级逻辑时钟多级逻辑时钟 当产生门控时钟的组合逻辑超过一级(即超过单个的“与”门或“或”门)时,设计项目的可靠性变得很困难。 通常,我们不应该用多级组合逻辑去钟控PLD设计中的触发器。 16行波时钟行波时钟 一个触发器的输出用作另一个触发器的时钟输入 如果仔细地设计,行波时钟可以象全局时钟一样地可靠工作。然而,行波时钟使得与电路有关的定时计算变得很复杂

6、。行波时钟在行波链上各触发器的时钟之间产生较大的时间偏移,并且会超出最坏情况下的建立时间、保持时间和电路中时钟到输出的延时,使系统的实际速度下降。 17基本逻辑电路: 组合逻辑电路、 时序逻辑电路一 组合逻辑电路设计 简单门电路、编码器、译码器、 加法器、多路选择器、三态门等。3.9 基本逻辑电路设计181、基本门电路192、编码器 设计一个 8 输入优先级编码器,y0 级别最低,y7 级别最高;输出为3位编码。Y7=1Vec=111Y6=1Vec=110Y5=1Vec=101Y4=1Vec=100Y3=1Vec=011Y2=1Vec=010Y1=1Vec=001Y0=1Vec=00020方法

7、方法1 1:利用 if 多选择语句自顶向下的优先特性21方法方法2 2:进程内为顺序语句,最先描述优先级最低, 最后描述优先级最高,可实现优先级编码。22方法方法3 3:利用条件赋值语句:利用条件赋值语句 architecture behavior of priority is begin vec = “111” when y7 = 1 else “110” when y6 = 1 else “101” when y5 = 1 else “100” when y4 = 1 else “011” when y3 = 1 else “010” when y2 = 1 else “001” when

8、 y1 = 1 else “000” when y0 = 1 else “XXX”; end behavior;233、译码器 译码器是编码器的逆过程。如 3-8 译码器:sel=000Y=00000001sel =001Y=00000010sel =010Y=00000100sel =011Y=00001000sel =100Y=00010000sel =101Y=00100000sel =110Y=01000000sel =111Y=1000000024方法方法1 1:使用逻辑左移运算符:使用逻辑左移运算符 library ieee; use ieee.std_logic_1164.all

9、; use ieee.std_logic_unsigned.all; entity decoder is port(inp : in std_logic_vector(2 downto 0); outp : out std_logic_vector(7 downto 0); end decoder; architecture rtl of decoder is begin outp=“00000001” sll(conv_integer(inp); end rtl;25方法方法2 2:使用:使用processprocess语句语句 library ieee; use ieee.std_logi

10、c_1164.all; use ieee.std_logic_unsigned.all; entity decoder is port(inp : in std_logic_vector(2 downto 0); outp : out std_logic_vector(7 downto 0); end decoder; architecture rtl of decoder is begin process(inp) begin outp0); outp(conv_integer(inp)=1; end process; end rtl;26方法方法3 3:使用:使用 case case 语句

11、实现。语句实现。27译码输出低有效28方法方法4 4:使用条件赋值语句:使用条件赋值语句293-8译码器仿真结果:译码输出低有效304、加法器 带进位的 4位加法器符号如下:Sum(i) = a(i) b(i) cinC(i+1) = a(i) b(i) +(a(i) + b(i) ) c(i) 31方法1:用for loop语句实现 32方法2:直接使用加法“+”函数:33加法器仿真结果:345、多路选择器 前面用 if 语句、case 语句、条件赋值语句、选择赋值语句分别描述过4选1选择器。6、三态门及总线缓冲器 VHDL语言通过指定大写的Z值表示高阻状态 a : std_logic; a

12、_bus:std_logic_vector(7 downto 0); 指定高阻状态如下: a = Z ; a_bus = “ZZZZZZZZ” ;351)三态门电路描述36三态门仿真结果:372)单向总线缓冲器383)双向总线缓冲器39二 时序逻辑电路设计 触发器、寄存器、计数器、分频器、信号发生器等。一)时序电路特殊信号的描述 时钟信号和复位信号 1、时钟信号描述 常用的描述方式: 1)进程的敏感信号是时钟信号,在进程内 部用if 语句描述时钟的边沿条件。40如: process (clock_signal) begin if (clock_edge_condition) then sign

13、al_out = signal_in ; 其它时序语句 end if ; end process ; 412)在进程中用wait until语句描述时钟信号,此 时进程将没有敏感信号。 如: process begin wait until (clock_edge_condition); signal_out = signal_in ; 其它时序语句 end process ; 42 注意: a.在对时钟边沿说明时,一定要注明是上升沿 还是下降沿。 b.一个进程中只能描述一个时钟信号。 c.wait until 语句只能放在进程的最前面或 最后面。3)时钟边沿的描述 时钟上升沿: (clock

14、event and clock = 1clockevent and clock = 1) 时钟下降沿: (clockevent and clock = 0clockevent and clock = 0) 432、触发器的复位信号描述 1)同步复位:在只有以时钟为敏感信号的进程 中定义。 如: process (clock_signal) begin if (clock_edge_condition) then if (reset_condition) then signal_out = reset_value; else signal_out = signal_in ; end if ; e

15、nd if ; end process ; 44 2)异步复位:进程的敏感信号表中除时钟信 号外,还有复位信号。 如:process (reset_signal, clock_signal) begin if (reset_condition) then signal_out = reset_value; elsif (clock_edge_condition) then signal_out = signal_in ; end if ; end process ; 45二) 常用时序电路设计 1、触发器(Flip_Flop) 1)D触发器46异步置位/复位D触发器47同步复位D触发器48比较

16、:异步置位的锁存器(Latch)49 library ieee; use ieee.std_logic_1164.all; entity t_ff is port(t, clk : in std_logic; q : buffer std_logic); end t_ff; architecture rtl of t_ff is begin process(clk) begin if clkevent and clk=1 then if t=1 then q=not q; else q=q; end if; end process; end rtl;TClkQQ2)T触发器50 library

17、 ieee; use ieee.std_logic_1164.all; entity rs_ff is port(r, s, clk : in std_logic; q, qn : buffer std_logic); end rs_ff; architecture rtl of rs_ff is begin process(r, s, clk) begin if clkevent and clk=1 then if s = 1 and r = 0 then q=0; qn=1; elsif s=0 and r=1 then q=1; qn=0; elsif s=0 and r=0 then

18、q=q; qn=q n; else null; end if; end if; end process; end rtl;SClkQQRSRQQn00QQn01101001113)RS触发器512、寄存器 8位串行输入、串行输出移位寄存器:z0z1z2z3z4z5z6z7z8528位移位寄存器描述(结构描述)538位移位寄存器直接用信号连接描述54移位寄存器仿真结果:553、计数器 计数器分为:同步计数器 异步计数器(1)同步计数器 同步计数器指在时钟脉冲(计数脉冲)的控 制下,构成计数器的各触发器状态同时发生变化 的计数器。56带允许端的十二进制计数器57可逆计数器(加减计数器)58可逆计数

19、器仿真结果:59例:六十进制(分、秒)计数器606160进制计数器仿真结果:62(2)异步计数器 异步计数器又称为行波计数器,它的低位计数器的输出作为高位计数器的时钟信号。 异步计数器采用行波计数,使计数延迟增加,计数器工作频率较低。 描述异步计数器与同步计数器的不同主要体现在对各级时钟脉冲的描述上。63例:由8个触发器构成的行波计数器:64 基本元件 dffr 的描述:65采用元件例化描述8位行波计数器:668 位行波计数器仿真结果:674、序列信号发生器、检测器 1)“01111110”序列发生器6869仿真结果:702)序列信号检测器,检测“01111110”71727374简洁的序列信号检测器:7576三 存储器设计1、ROM77782、SRAM7980仿真结果:81第3章 习题四 1、给触发器复位的方法有哪两种?如果时钟进程 中用了敏感信号表,哪种复位方法要求把复位 信号放在敏感信号表中? 2、设计一个任意 n 分频的分频器。 3、设计一个用于时钟(分、秒)计数的 60进制 的计数器(分个、十位)。 4、设计一个用于时钟(小时)计数的 24进制的 计数器(分个、十位)。 5、给定一个参考晶振频率 f = 1MHz,设计一个 数字电子表。

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|