IC/FPGA秋招准备中遇到的有意思的题

欢迎讨论


1 写一个64位的计数器,由于器件和时钟频率的限制,当计数器位宽大于17位时时序无法收敛。因此内部每一个计数器的位宽不能超过17位。可以采用拆分加法器的方式实现。计数器的使能信号为CntEn,高电平时开始计数,低电平时计数值保持。模块接口如下,请补全代码。

(诺瓦星云FPGA23)

module Counter(
input InClk,
input InRst,
input CntEn,
output[64-1:0] Cnt);

题解:
将64位的Cnt,分为四个16位计数器,Cnt <= {cnt3,cnt2.cnt1,cnt0}。当cnt0计满,cnt1加一;当cnt1计满,cnt2加一;当cnt2计满,cnt3加一。


2 复位

以下说法正确的是:

  • 同步复位增加了时序收敛的难度
  • 同步化异步复位可以保证逻辑正确复位
  • 从使用资源的角度看,应候使用异步复位
  • 异步复位可能会导致逻辑错误
    (诺瓦星云FPGA23)

题解:
只要存在复位都会增加布局布线的负担,因为复位会连接到每一个寄存器中,会增加时序收敛的难度。
同步化异步复位结合了异步复位和同步复位的优势,因此可以保证逻辑正确复位。 异步复位容易使寄存器出现亚稳态,可能导致逻辑错误。
第三个选项要看 FPGA 。对于 Xilinx 来说,官方文档明确表示尽量避免使用异步复位,如果适应复位就用高复位,这与Altera的规则相反,这是因为内部结构决定的。对于 Altera 器件来说,使用同步复位会造成资源的浪费,所以才会有习惯性的思维(negedge rst_n)。

  • 同步复位增加了时序收敛的难度
  • 同步化异步复位可以保证逻辑正确复位
  • 从使用资源的角度看,应候使用异步复位
  • 异步复位可能会导致逻辑错误
    参考博文

3 竞争冒险

3.1 引起组合逻辑电路发生竞争冒险的原因是()

  • 信号串扰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值