FPGA经典基础问题汇总-2|一日十题|学习笔记

一、跨时钟域对单bit信号要求:
慢时钟域同步到快时钟域时需要保持数据宽度能够被三个快时钟域的时钟沿识别到。快时钟域同步到慢时钟域时需要对信号进行脉宽展宽。

二、跨时钟域解决方法:
单bit:慢时钟域到快时钟域可以采用打两拍的操作同步;电平同步器、脉冲同步器、边沿同步器;快到慢可进行脉冲展宽。
多bit:握手协议、异步fifo、多bit mux、双口ram、格雷码转换。

三、异步FIFO如何进行跨时钟域处理:
①异步fifo中使用了存储器RAM能将两个时钟域的时序路径隔开。
②异步fifo的读写控制中,引入了格雷码同步。由于格雷码相邻两个码之间只有一位发生变化,因此在指针跨时钟域传递时如果发生亚稳态,指针要么是变化后的地址,要么是与同步前的指针保持一致。因此这不会引起fifo的功能紊乱,只是影响了其读写效率。

四、FIFO对前后级的握手信号:
当FIFO没有满时,与上级的的应答信号ready一直有效,可以写入数据;当FIFO不为空时,与下级的握手信号valid一直有效,可以发送数据。

五、input delay和output delay的区别:
input delay是从上游器件时钟沿开始到FPGA输入端口之间的延时;output delay是从FPGA端口输出数据开始到下游器件时钟沿之间的延时。前者包括触发器的输出延迟、走线延迟;后者包括走线延迟、下游器件第一级寄存器的建立时间。

六、竞争和冒险的区别以及处理方法:
竞争:不同路径输入信号变化传输到同一点门级电路,时间上有先后,这种现象称为竞争;
冒险:由于竞争存在,输出信号要经过一段时间才达到期望状态,过渡时间内可能产生瞬间的错误输出,这种现象称为冒险。冒险是在竞争的基础上产生的。 
解决:①增加滤波电容,滤除窄脉冲; ②修改逻辑,增加冗余项;③使用时序同步电路,利用触发器进行拍打延迟;④用格雷码计数器;⑤引入选通信号。

七、流水线的含义:
主旨是将一条指令分成多段,并行执行,拿面积换速度。举个三级流水例子:一条操作指令分三段成取址、译码、执行。正常执行完一条指令需要3T时间,n条指令需要3nT时间,但采用流水线操作时,三部分并行执行,在A指令译码的同时可以进行B指令的取址操作,在A指令执行的同时进行B指令的译码操作,以达到节约时间的目的。

八、FPGA中的RAM:
RAM有两种,静态存储器SRAM和动态存储器DRAM。
SRAM集成度低,不适合做大容量内存。只要一上电,SRAM里面的数据就会一直保存着,直到SRAM掉电。
DRAM价格相对低,隔一段时间就要刷新一次数据,才能保存数据,也是掉电丢失。
SDRAM是DRAM的升级版,比DRAM多了一个与CPU时钟同步的时钟线。

九、单口RAM:
读写不能同时进行,读写共用一根地址线。有一个写指针和一个读指针,空满判断:空则两指针相等,满则两指针最高位相反(加1bit),其他位一样。读信号需要比写信号滞后,读地址也要比写地址慢。

十、状态机用格雷码来编码时的影响:
在状态机中使用格雷码编码可以减少编码寄存器的个数,单步自增的特性也降低额亚稳态发生的概率,同时降低了翻转功耗。
但是编码方式比较复杂,当状态数目不是2^n次时,可能会出现空位,需要对格雷码做裁剪,具体操作是以中间值为跳变,选取两边对称的数值。

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值