审阅文章的心得笔记

上传人:宝路 文档编号:2191256 上传时间:2017-07-21 格式:DOC 页数:8 大小:111.50KB
返回 下载 相关 举报
审阅文章的心得笔记_第1页
第1页 / 共8页
审阅文章的心得笔记_第2页
第2页 / 共8页
审阅文章的心得笔记_第3页
第3页 / 共8页
审阅文章的心得笔记_第4页
第4页 / 共8页
审阅文章的心得笔记_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《审阅文章的心得笔记》由会员分享,可在线阅读,更多相关《审阅文章的心得笔记(8页珍藏版)》请在金锄头文库上搜索。

1、阅读笔记看相关资料最好看官网上的权威资料,编写代码时要有硬件思维,每一条代码都有实在的对应代码。多提问,多思考,多记录。当代码写完之后,考虑工作频率能不能再提高一些,资源还能不能够再节省一些。代码的风格是能够让别人在最短的时间里看懂你的代码,在代码风格上,不要进行太多的创新。一 FPGA 书写格式要求二 FPGA 语法规范/ 程序说明开始/ =/ 功能: 完成两个输入数的相加。/ 参数: strByDelete,strToDelete/ 输入参数/ 输出参数/ 主要思路:本算法主要采用 2 级流水线完成相加/ 日期:起始日期,如:2007/8/21.9:40-2007/8/23.21:45/

2、版本:/ 程序编写人员:/ 程序调试记录:/ =/三 FPGA 相关知识3.1 什么是同步逻辑和异步逻辑,同步电路和异步电路的区别是什么?电路设计可分类为同步电路和异步电路设计。同步电路利用时钟脉冲使其子系统同步运作,而异步电路不使用时钟脉冲做同步,其子系统是使用特殊的“开始”和“完成”信号使之同步。由于异步电路具有下列优点 -无时钟歪斜问题、低电源消耗、平均效能而非最差效能、模块性、可组合和可复用性。异步电路主要是组合逻辑电路,用于产生地址译码器、或的读写控制信号脉冲,其逻辑输出与任何时钟信号都没有关系,译码输出产生的毛刺通常是可以监控的。同步电路是由时序电路(寄存器和各种触发器)和组合逻辑

3、电路构成的电路,其所有操作都是在严格的时钟控制下完成的。这些时序电路共享同一个时钟,而所有的状态变化都是在时钟的上升沿(或下降沿)完成的。同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。电路设计可分类为同步电路和异步电路设计。同步电路利用时钟脉冲使其子系统同步运作,而异步电路不使用时钟脉冲做同步,其子系统是使用特殊的“ 开始”和“完成”信号使之同步。由于异步电路具有下列优点-无时钟歪斜问题、低电源消耗、平均效能而非最差效能、模块性、可组合和可复用性。异步电路主要是组合逻辑电路,用于产生地址译码器、或的读写控制信号脉冲,其逻辑输出与任何时钟信号都没有关系,译码输出产生

4、的毛刺通常是可以监控的。同步电路是由时序电路(寄存器和各种触发器) 和组合逻辑电路构成的电路,其所有操作都是在严格的时钟控制下完成的。这些时序电路共享同一个时钟,而所有的状态变化都是在时钟的上升沿(或下降沿)完成的。同步设计得优越性:1.同步电路比较容易使用寄存器的异步复位 /置位端,以使整个电路有一个确定的初始状态;2.在可编程逻辑器件中,使用同步电路可以避免器件受温度,电压,工艺的影响,易于消除电路的毛刺,使设计更可靠,单板更稳定;3.同步电路可以很容易地组织流水线,提高芯片的运行速度,设计容易实现;4.同步电路可以很好地利用先进的设计工具,如静态时序分析工具等,为设计者提供最大便利条件,

5、便于电路错误分析,加快设计进度。二 同步设计得规则:1.尽可能在整个设计中只使用一个主时钟和同一个时钟沿,主时钟走全局时钟网络。2.在 FPGA 设计中,推荐所有输入、输出信号均应通过寄存器寄存,寄存器接口当作异步接口考虑。3.当全部电路不能用同步电路思想设计时,即需要多个时钟来实现,则可以将全部电路分成若干局部同步电路(尽量以同一个时钟为一个模块) ,局部同步电路之间接口当作异步接口考虑。4.当必须采用多个时钟设计时,每个时钟信号的时钟偏差(T)要严格控制。5.电路的实际最高工作频率不应大于理论最高工作频率,留有设计余量,保证芯片可靠工作。6.电路中所有寄存器、状态机在单板上电复位时应在一个

6、已知的状态。异步设计中常见问题及其解决方法异步电路设计主要体现在时钟的使用上,如使用组合逻辑时钟、级连时钟和多时钟网络;另外还有采用异步置位、复位、自清零、自复位等。这些异步电路的大量存在,一是增加设计难度,二是在出现错误时,电路分析比较困难,有时会严重影响设计进度。很多异步设计都可以转化为同步设计,对于可以转化的逻辑必须转化,不能转化的逻辑,应将异步的部分减到最小,而其前后级仍然应该采用同步设计。1.组合逻辑产生的时钟 2.行波计数器/行波时钟 4.不规则的计数器 5.分频器 6.多时钟的同步化 7.RS 触发器 8.上升沿检测 9.下降沿检测 10.上升/下降沿检测 11.对计数器的译码对

7、计数器译码,可能由于竞争冒险产生毛刺。如果后级采用了同步电路,我们完全可以对此不予理会。如果对毛刺要求较高,推荐采用 Gray 编码(PLD)或 One-hot 编码(FPGA)的计数器,一般不要采用二进制码. 12.门控时钟 13.锁存器 14 多级时钟或多时钟网络四 不建议使用的电路 1 不建议使用组合逻辑时钟或门控时钟组合逻辑很容易产生毛刺,用组合逻辑的输出作为时钟很容易使系统产生误动作。2 不建议使用行波时钟 3 尽量避免采用多个时钟,多使用触发器的使能端来解决。4 触发器的置/复位端尽量避免出现毛刺,及自我复位电路等,最好只用一个全局复位信号。5 电路中尽量避免“死循环 ”电路,如

8、RS 触发器等。6 禁止时钟在不同可编程器件中级连,尽量降低时钟到各个器件时钟偏差值。3.2 什么是竞争与冒险现象?怎样判断?如何消除?在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。产生毛刺叫冒险。如果布尔式中有相反的信号则可能产生竞争和冒险现象。解决方法:一是添加布尔式的(冗余)消去项,但是不能避免功能冒险,二是在芯片外部加电容。三是增加选通电路在组合逻辑中,由于多少输入信号变化先后不同、信号传输的路径不同,或是各种器件延迟时间不同(这种现象称为竞争)都有可能造成输出波形产生不应有的尖脉冲(俗称毛刺) ,这种现象成为冒险。3.3 如何解决亚稳态亚稳态是

9、指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。解决方法:1 降低系统时钟频率 2 用反应更快的 FF3 引入同步机制,防止亚稳态传播 4 改善时钟质量,用边沿变化快速的时钟信号关键是器件使用比较好的工艺和时钟周期的裕量要大。亚稳态寄存用 d 只是一个办法,有时候通过 not,buf 等都能达到信号过滤的效果,3.4 多时域设计中,如何处理信号跨时域不同的时钟域之

10、间信号通信时需要进行同步处理,这样可以防止新时钟域中第一级触发器的亚稳态信号对下级逻辑造成影响,其中对于单个控制信号可以用两级同步器,如电平、边沿检测和脉冲,对多位信号可以用 FIFO,双口 RAM,握手信号等。跨时域的信号要经过同步器同步,防止亚稳态传播。例如:时钟域 1 中的一个信号,要送到时钟域 2,那么在这个信号送到时钟域 2 之前,要先经过时钟域 2 的同步器同步后,才能进入时钟域 2。这个同步器就是两级 d 触发器,其时钟为时钟域 2 的时钟。这样做是怕时钟域 1 中的这个信号,可能不满足时钟域 2 中触发器的建立保持时间,而产生亚稳态,因为它们之间没有必然关系,是异步的。这样做只

11、能防止亚稳态传播,但不能保证采进来的数据的正确性。所以通常只同步很少位数的信号。比如控制信号,或地址。当同步的是地址时,一般该地址应采用格雷码,因为格雷码每次只变一位,相当于每次只有一个同步器在起作用,这样可以降低出错概率,象异步 FIFO 的设计中,比较读写地址的大小时,就是用这种方法。如果两个时钟域之间传送大量的数据,可以用异步 FIFO来解决问题。我们可以在跨越 Clock Domain 时加上一个低电平使能的Lockup Latch 以确保 Timing 能正确无误。3.5 复位信号 reset 信号的处理在设计时应尽量保证有一全局复位信号,或保证触发器、计数器在使用前已经正确清零和状

12、态机处于确知的状态。寄存器的清除和置位信号,对竞争条件和冒险也非常敏感。在设计时,应尽量直接从器件的专用引脚驱动。另外,要考虑到有些器件上电时,触发器处于一种不确定的状态,系统设计时应加入全局复位/Reset。这样主复位引脚就可以给设计中的每一个触发器馈送清除或置位信号,保证系统处于一个确定的初始状态。需要注意的一点是:不要对寄存器的置位和清除端同时施加不同信号产生的控制,因为如果出现两个信号同时有效的意外情况,会使寄存器进入不定状态。3.6 全局信号处理全局信号处理的原则是:时钟信号、异步清零、置位信号上不允许存在毛刺;不允许异步清零、置位信号同时有效。在下述几种情况下,时钟信号、异步清零、

13、置位信号上可能会有毛刺:(1) 时钟信号、异步清零、置位信号为组合逻辑输出 由于组合逻辑是电平敏感的,比较容易产生毛刺,而组合逻辑的细小毛刺一旦经过时序电路则其对电路的影响则会放大。因此在设计中对时钟信号、异步清零、置位信号这些对时序电路来讲非常重要的信号应尽量采用同步电路,而对于非用组合逻辑不行的地方则必须用卡诺图严格的分析时序电路,确定彻底消除竞争与冒险后才可引入到时序电路中使用。3.7 常用逻辑电平常用逻辑电平:TTL、CMOS、LVTTL 、LVCMOS、ECL(Emitter Coupled Logic) 、PECL(Pseudo/Positive Emitter Coupled L

14、ogic) 、LVDS(Low Voltage Differential Signaling) 、GTL(Gunning Transceiver Logic) 、BTL(Backplane Transceiver Logic) 、ETL(enhanced transceiver logic) 、GTLP(Gunning Transceiver Logic Plus) ;RS232、RS422、RS485 (12V,5V,3.3V) ;TTL 和 CMOS 不可以直接互连,由于 TTL 是在 0.3-3.6V 之间,而 CMOS 则是有在 12V 的有在 5V 的。CMOS 输出接到 TTL 是

15、可以直接互连。TTL 接到 CMOS 需要在输出端口加一上拉电阻接到 5V 或者 12V。cmos 的高低电平: Vih=0.7VDD,Vil=0.9VDD,Vol=2.0v,Vil=2.4v,VolZ); Dout1 );程序中 DataB 为双向端口,编程时应注意的是,当 DataB 作为输出且空闲时,必须将其设为高阻态挂起,即有类似第行的语句,否则实现后会造成端口死锁。而当 DataB 作为有效输入时, DataB 输出必须处于高阻态,对于该例子中即,当 CE=1 and Rd=1时,输出 DataB 应处于高阻态。3.9 信号和变量常数、信号和变量是 VHDL 中最主要的对象,分别代表

16、一定的物理意义。常数对应于数字电路中的电源或地;信号对应某条硬件连线;变量通常指临时数据的局部存储。信号和变量功能相近,用法上却有很大不同。信号 变量赋值延迟至少有延时 无,立即变化相关信息有,可以形成波形 无,只有当前值进程敏感是 否全局性 具有全局性,可存在于多个进程中只能在某个进程或子程序中有效相互赋值关系信号不能给变量赋值 变量可以给信号赋值表 1 信号与变量主要区别对于变量赋值操作无延迟,初学者认为这个特性对 VHDL 设计非常有利,但这只是理论上的。基于以下几点原因,我们建议,编程时还是应以信号为主,尽量减少变量的使用。(1)变量赋值无延时是针对进程运行而言的,只是一个理想值,对于变量的操作往往被综合成为

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

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