← 2022 · ZEKU 笔试

推荐答案 测试一下

①: always @(posedge clk or negedge rst_n) begin

A.②属于无复位寄存器,其PPA更优 B.①属于异步复位逻辑 C.同步复位和异步复位都是在复位时将寄存器状态初始化,所以没有区别 D.③属于同步复位逻辑,rst_n可能通过组合逻辑连接到寄存器D端。
单选题 中等 笔试真题单选

参考答案

我们分析题目:三段代码,问说法正确的是。选项分析: A. ②属于无复位寄存器,其PPA更优:代码②没有复位,确实是无复位寄存器,通常无复位面积小、功耗低,PPA(性能、功耗、面积)更优,但需要确认是否绝对正确。但要注意,代码②没有if(!rst_n)复位,但always @(posedge clk)中只有din_dly <= din; 没有复位逻辑,所以正确。但选项说“其PPA更优”是相对于有复位而言,一般正确。 B. ①属于异步复位逻辑:代码①的敏感列表有posedge clk and negedge rst_n,并且体内if(!rst_n)判断,是典型的异步复位逻辑。正确。 C. 同步复位和异步复位都是在复位时将寄存器状态初始化,所以没有区别:错误,两者有区别,异步复位立即复位,同步复位需要在时钟边沿采样复位信号。 D. ③属于同步复位逻辑,rst_n可能通过组合逻辑连接到寄存器D端。代码③:always @(posedge clk) begin If(!rst_n)din_dly <= 'h0; else din_dly <= din; end 这里rst_n在always块内使用,且敏感列表只有clk,所以是同步复位。但描述"rst_n可能通过组合逻辑连接到寄存器D端":同步复位时,复位信号通常与数据一起组合到D端,正确。但注意:这里的rst_n是异步信号,但在同步复位中需要同步化,但代码中直接使用,可能引入亚稳态。不过从逻辑上,确实是通过组合逻辑连接到D端。所以D也正确。 但题目是单选题,只能选一个最正确的。需要判断哪个是绝对正确且没有歧义。A说②属于无复位寄存器,其PPA更优——无复位寄存器确实PPA更优,但实际中有时需要复位,所以这里描述正确。B正确。D正确。C错误。那么有三个正确?注意:题目是单选题,可能只有一个正确。再仔细看: A选项:“②属于无复位寄存器,其PPA更优” 这句话前半句对,后半句“更优”是相对于有复位而言,通常无复位面积小、功耗低、性能好,但也要看应用场景,有时复位会带来额外逻辑,所以一般正确。但在严格意义上,无复位寄存器不一定在所有方面都优,比如可测试性等。但通常PPA更优是成立的。 B选项:“①属于异步复位逻辑”完全正确。 D选项:“③属于同步复位逻辑,rst_n可能通过组合逻辑连接到寄存器D端。” 描述也是正确的,因为同步复位的实现通常将复位信号与数据通过组合逻辑(如MUX)连接到寄存器D端。 那么三个正确选项,题目应该只有一个正确。可能需要仔细辨别语义上的细微差别。 再看代码③:注意写法中,if(!rst_n) din_dly <= 'h0; else din_dly <= din; 这里rst_n在同步逻辑中,但rst_n是异步信号,通常需要同步处理,否则可能造成亚稳态。但题目说“rst_n可能通过组合逻辑连接到寄存器D端”,这是对的。但是,严格来说,同步复位逻辑是指复位信号只影响时钟边沿触发的赋值,即复位只在时钟有效沿采样时起作用。这里代码③确实是同步复位逻辑。所以D也正确。 会不会题目认为A不对?因为②是无复位寄存器,但PPA更优有时是相对的,比如无复位寄存器在低功耗设计中有优势,但面积更小是肯定的。但有些设计需要复位保证初始状态,所以无复位不一定更好。但这里“更优”是广义上比较?可能出题者意图是②没有复位,所以没有复位逻辑,PPA确实更优,这是对的。 考虑考点:常见面试题中,常问异步复位、同步复位的区别,以及无复位寄存器的特点。可能正确答案是A或B或D。再读题目:“上面三段代码,说法正确的是”,注意①代码中有笔误?①中“din_ dly”有空格?但忽略。①的写法是异步复位,B正确。②无复位,A正确。③同步复位,D正确。C明显错误。所以多个正确,但单选题只能一个,可能是题目要求选择“最准确”或“唯一正确”?或者有个选项有陷阱。 检查A的后半句:“其PPA更优”,PPA指性能、功耗、面积。对于无复位寄存器,面积确实更小(少了一个mux),功耗也可能更低(不需要复位逻辑翻转),性能可能更好(因为复位逻辑引入延迟),所以通常认为PPA更优。但这个“更优”是比较对象,与有复位的寄存器相比,所以正确。 但注意:②的写法是 always @(posedge clk) din_dly <= din; 这个确实没有复位,但寄存器初始值不定,在一些设计中可能会出问题,但PPA更优是事实。A应该是正确的。 B明显正确。 D中“rst_n可能通过组合逻辑连接到寄存器D端”这句话是准确的,因为同步复位通常是通过一个多路选择器(组合逻辑)来选择数据或复位值。所以D正确。 那么为什么是单选题?可能是出题者认为只有一个是正确的,或者有错误选项。再仔细看D的表述:“③属于同步复位逻辑,rst_n可能通过组合逻辑连接到寄存器D端。” 注意“可能”这个词,实际上同步复位中,复位信号一定通过组合逻辑连接到D端,而不是可能。但这里的“可能”表达的是实现方式,也可以理解为“会”的意思,没有错误。 或许陷阱在于:③中复位信号rst_n并没有在敏感列表中,所以是同步复位,但在实际电路中,如果rst_n是异步信号,直接使用会导致亚稳态,但逻辑上仍是同步复位。这个描述是正确的。 考虑常见笔试题目中,这类题有时候会问“哪个说法正确”,有些选项会故意误导。比如A中②属于无复位寄存器正确,但“其PPA更优”可能太绝对?其实有复位寄存器会增加额外逻辑,PPA会变差,所以无复位更优,这是对的。 也许题目本意是单选,但答案可能有多个?或者要根据IC设计最佳实践判断。比如,异步复位(代码①)需要保证复位信号的glitch free等,但这里只是问说法正确与否。 再检查代码①:always @(posedge clk or negedge rst_n) begin if(!rst_n) din_dly <= 'h0; else

涉及知识点

  • 复位
  • 功耗
  • 时钟
  • 组合逻辑
← 上一题
登录后反馈错题
下一题 →