FPGA笔试必会知识点1--数字电路基本知识
FPGA笔试必会知识点1--数字电路基本知识
组合逻辑与时序逻辑
组合逻辑电路:任意时刻电路输出的逻辑状态仅仅取决于当时输入的逻辑状态,而与电路过去的工作状态无关。
时序逻辑电路:任意时刻电路输出的逻辑状态不仅取决于当时输入的逻辑状态,而与电路过去的工作状态有关。
在电路的结构上,时序逻辑电路肯定包含有存储电路,而且输出一定与存储电路的状态有关。
COMS与TTL电平
常用逻辑电平:12V,5V,3.3V;TTL和CMOS不可以直接互连,由于TTL是在0.3-3.6V之间,而CMOS则是有在12V的有在5V的。CMOS输出接到TTL是可以直接互连。TTL接到CMOS需要在输出端口加一上拉电阻接到5V或者12V。
CMOS的高低电平分别为:Vih>=0.7VDD,Vil<=0.3VDD;Voh>=0.9VDD,Vol<=0.1VDD。
TTL的为:Vih>=2.0v,Vil<=0.8v;Voh>=2.4v,Vol<=0.4v。
用CMOS可直接驱动TTL。
TTL加上拉后可驱动CMOS。
上拉电阻作用
1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。
2、OD、OC门电路必须加上拉电阻,以提高输出的高电平值。
3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。
4、在COMS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗,提供泄荷通路。
5、芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限增强抗干扰能力。
6、提高总线的抗电磁干扰能力,管脚悬空就比较容易接受外界的电磁干扰。
7、长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波干扰。
时序逻辑电路的三大方程与设计
描述一个时序逻辑电路时,主要由驱动方程、状态方程(由驱动方程代入时序器件的特性方程得到)、输出方程这三大方程进行描述。
详细过程参考《数字电子技术基本教程》P181—gary计数器的设计
在设计时序逻辑电路时可以采用以下流程:
- 找出电路的状态转换图或者状态转换表;
- 从状态转换图或者状态转换表中画出次态与输出的卡诺图,并进行化简;
- 由化简的卡诺图得出状态方程,再由状态方程得出驱动方程和输出方程;
- 由驱动方程和输出方程画出电路结构图;
- 检查电路能否自启动。
同步逻辑与异步逻辑
同步逻辑:时钟之间有固定的因果关系;
异步逻辑:时钟之间没有固定的因果关系,电路中的触发器的状态不仅仅由时钟决定;
同步电路与异步电路
同步电路:电路中所有触发器的时钟输入端都接至统一的时钟信号(并且同一触发沿触发),并且所有触发器的输出与统一的时钟有效沿下保持同步输出。
异步电路:电路中所有触发器的时钟没有统一的时钟信号,所有触发器的输出不与统一的时钟有效沿下保持同步输出。
同步设计的优点:
- 使用同步电路可以避免器件受温度T,电压V,工艺P的影响,避免毛刺/亚稳态,使设计更可靠,单板更稳定;
- 逻辑设计不依赖于每个逻辑器件的布线延迟,有利于器件的移植;
- 同步电路可以很容易地组织流水线,提高芯片的运行速度,设计容易实现;
- 有利于静态时序分析,验证时序的性能;
异步设计的缺点:
- 容易产生毛刺/亚稳态;
- 异步逻辑时序的正确性依赖于每个逻辑器件的布线延迟,不利于器件的移植;
- 不利于静态时序分析,验证时序性能;
同步复位与异步复位
同步复位:复位信号与时钟信号同时有效时进行复位动作;
优点:
- 保证100%的同步,综合成同步时序电路;
- 同步复位仅在时钟信号有效沿时有效,可以消除毛刺
缺点:
- 在FPGA中,同步设计需要采用组合逻辑进行设计,增加逻辑资源;
- 需要进行复位信号脉冲展宽,保证复位信号时间足够长,以保证所有触发器都能有效复位;
- 必须需要时钟信号才能完成复位,当电路存在门控时钟或使能时钟时,可能出现复位信号有效而时钟信号被禁止;
异步复位:只要复位信号有效就进行复位动作,与时钟信号无关;
优点:
- 复位动作与时钟无关;
- 在FPGA内部有专用的GSR资源,使复位信号的偏斜最小,无需组合逻辑,节省逻辑资源;
缺点:
- 当复位信号撤除时,可能和时钟信号有效沿同时有效,容易造成触发器出现亚稳态;
- 异步复位对毛刺敏感,当复位信号出现毛刺时,容易造成虚假复位;
- 进行STA分析时比较困难;
建议采用的复位电路:分布式异步复位同步方法,将异步复位同步电路放在每个模块的复位信号输入端。
复位毛刺的消除:采用等价与门,对复位信号和经过延迟的复位信号进行相与操作,完成毛刺的滤除。
竞争与冒险
组合逻辑电路的竞争冒险
竞争与冒险:组合电路中由于信号到某一电路节点的时间不一致或者输入信号的电平往相反的方向变化叫竞争,由于竞争现像导致毛刺的产生称为冒险。
竞争不一定导致冒险:当组合逻辑器件采用的工艺比较好,逻辑器件的速度快,由于竞争导致的毛刺现像很快就被消除掉。
时序逻辑电路的竞争冒险
由于时序逻辑电路主要由两部分组成:组合电路和存储电路,所以时序逻辑电路的竞争冒险也分为两种:一种为组合逻辑电路的竞争冒险引起,其由于竞争冒险产生的输出脉冲噪声不仅影响整个电路的输出,还影响存储电路产生误动作;另一种由存储电路的触发器的输入信号和时钟信号在状态变化时配合不当(不满足建立时间和保持时间)引起,可能引起电路产生误动作。
竞争与冒险的消除
- 添加布尔式消去项(卡诺图、公式进行化简);
- 输出端添加RC电容滤波;
- 使用使能/选通信号;
- 采用gary码或者独热码;
亚稳态
亚稳态:触发器无法在某个规定的时间内达到一个确认的状态;
亚稳态的消除:
- 单信号时采用两级同步寄存器;
- 降低时钟频率;
- 用反应更快的触发器;
- 用边沿快速变化的时钟信号;
阻塞与非阻塞
参考《Verilog数字系统设计教程》
阻塞
逻辑模式:wire线型,由此在某一个模块中进行赋值操作,需要综合器进行逻辑模式的化简。如b=a;b的值在赋值语句执行完成之后就立刻改变。
赋值时先计算右边部分的值,这时不允许其他的赋值语句的干扰,即其他赋值语句不进行赋值操作(区别于非阻塞的地方),只有完成将右边的值赋到左边,才开始下一条的赋值语句的执行。
非阻塞
逻辑模式:reg寄存器型,由此在某一个模块中进行赋值操作,采用寄存器对赋值进行寄存。
赋值时先计算右边部分的值,这时允许其他的赋值语句的同时进行(区别于非阻塞的地方),所以整个模块的所有赋值语句同时计算右边的值,然后又同时将计算出的值赋到左边。
所以在某一模块中,上面语句所赋的值不能立刻就为下面的语句所使用。模块结束后,才完成赋值操作,所赋的值是上一次赋值所得到的。
阻塞与非阻塞的区别
常用编码
Gray码
Gray码:任何两个相邻的代码只有一位的状态不同。
优点:
- 任何两个相邻的代码只有一位的状态不同,可以减少竞争冒险的发生;
- 翻转次数减少,速度快,可以降低功耗;
缺点:
(1)占用较多的组合逻辑;
独热码
独热码:有多少个状态就有多少比特,而且只有一个比特为1,其他全为0的一种码制。
优点:one-hot 编码的最大优势在于状态比较时仅仅需要比较一个bit,一定程度上从而简化了比较逻辑,减少了毛刺产生的概率。
缺点:占用较多的触发器(可以利用FPGA内部触发器资源丰富的特点);
二进制码
二进制码:采用二进制格式进行编码的码。
优点:
(1)采用组合逻辑进行设计,节省触发器资源;
缺点:
- 容易造成竞争冒险的发生;
- 占用组合逻辑,延迟大,速度慢;
Johnson码
Johnson counter也叫扭环计数器,是把n位移位寄存器的串行(高位bit)输出取反,反馈到串行的输入端(低位bit),构成具有2n种状态的计数器,相邻位只有1bit的不同,可以用于实现跨时域的编码操作,避免亚稳态的问题,速度快,缺点就是占用触发器。
000à001à011à111à110à100à000à……..
Moore型状态机和mealy型状态机
状态机一般分为三种类型:
- Moore型状态机:下一状态/输出只由当前状态决定,即次态=f(现状),输出=f(现状);
- Mealy型状态机:下一状态/输出不但与当前状态有关,还与当前输入值有关,即次态=f(现状,输入),输出=f(现状,输入);
- 混合型状态机
Moore型状态机的输出信号是直接由当前状态寄存器译码得到,相比mealy要多等一个时钟周期,而Mealy型状态机则是以现时的输入信号结合即将变成次态的现态,编码成输出信号。
锁存器、触发器、寄存器
锁存器:电平敏感器件,电平触发,组合逻辑器件;
触发器:边沿敏感器件,边沿触发,时序逻辑器件;
寄存器:存储二值信息代码,无论使用电平触发的触发器还是使用边沿触发的触发器都可以组成寄存器。
可编程逻辑器件类型
PLA(可编程逻辑阵列)、
PAL(可编程阵列逻辑)、
GAL(通用逻辑阵列)、
CPLD(复杂可编程逻辑器件)、
FPGA(现场可编程逻辑器件);
PLD与ASIC
PLD优点:配置灵活,集成度高可满足一般的数字系统设计,开发周期短,设计成本低;
缺点:相比ASIC体积大,功耗高,成本高;
ASIC优点:批量生产时相比PLD成本低,功耗低,可靠性高,性能高,成本低;
缺点:功能固定,后期无法修改,灵活性差,开发周期长,设计成本高;
SoC
片上系统,将微处理器、模拟IP核、数字IP核和存储器集成在单一芯片上。
关键技术:总线架构技术、IP核可复用技术、软硬件协同设计技术,SoC验证技术、可测性技术、低功耗技术等。
存储器
SRAM,FALSH, MEMORY,DRAM,SSRAM及SDRAM的区别?
SRAM:静态随机存储器,存取速度快,但容量小,掉电后数据会丢失,不像DRAM 需要不停的REFRESH,制造成本较高,集成度低,通常用来作为快取(CACHE) 记忆体使用。
FLASH:闪存,存取速度慢,容量大,掉电后数据不会丢失。
NAND FLASH用于数据存储,广泛用于多媒体移动设备;
NOR FLASH用于程序存储。
DRAM:动态随机存储器,必须不断的重新的加强(REFRESHED) 电位差量,否则电位差将降低至无法有足够的能量表现每一个记忆单位处于何种状态。价格比SRAM便宜,但访问速度较慢,耗电量较大,常用作计算机的内存使用,集成度高。
SSRAM:即同步静态随机存取存储器。对于SSRAM的所有访问都在时钟的上升/下降沿启动。地址、数据输入和其它控制信号均于时钟信号相关。
SDRAM:即同步动态随机存取存储器。
反馈电路
反馈,就是在电路系统中,把输出回路中的电量(电压或电流)输入到输入回路中去。
反馈的类型:电压串联负反馈、电流串联负反馈、电压并联负反馈、电流并联负反馈。
负反馈的优点:降低放大器的增益灵敏度,改变输入电阻和输出电阻,改善放大器的线性和非线性失真,有效地扩展放大器的通频带,自动调节作用。
电压负反馈的特点:电路的输出电压趋向于维持恒定。
电流负反馈的特点:电路的输出电流趋向于维持恒定。
数字IC设计流程
1、需求分析(制定规格书)。分析用户或市场的需求,并将其翻译成对芯片产品的技术需求。
2、算法设计。设计和优化芯片钟所使用的算法。这一阶段一般使用高级编程语言(如C/C++),利用算法级建模和仿真工具(如MATLAB,SPW)进行浮点和定点的仿真,进而对算法进行评估和优化。
3、构架设计。根据设计的功能需求和算法分析的结果,设计芯片的构架,并对不同的方案进行比较,选择性能价格最优的方案。这一阶段可以使用SystemC语言对芯片构架进行模拟和分析。
4、RTL设计(代码输入)。使用HDL语言完成对设计实体的RTL级描述。这一阶段使用VHDL和Verilog HDL语言的输入工具编写代码。
5、 RTL验证(功能仿真)。使用仿真工具或其他RTL代码分析工具,验证RTL代码的质量和性能。
6、综合。从RTL代码生成描述实际电路的门级网表文件。
7、门级验证(综合后仿真)。对综合产生的门级网表进行验证。这一阶段通常会使用仿真、静态时序分析和形式验证等工具。
8、布局布线。后端设计对综合产生的门级网表进行布局规划(Floorplanning)、布局(Placement)、布线(Routing),生成生产用的版图。
9、电路参数提取确定芯片中互连线的寄生参数,从而获得门级的延时信息。
10、版图后验证。根据后端设计后取得的新的延时信息,再次验证设计是否能够实现所有的功能和性能指标。
11、芯片生产。生产在特定的芯片工艺线上制造出芯片。
12、 芯片测试。对制造好的芯片进行测试,检测生产中产生的缺陷和问题。
本文档为大西瓜FPGA所有,淘宝地址:https://daxiguafpga.taobao.com,
(如需转载或使用,请注明作者信息和出处,谢谢!)
,