华为海思数字芯片设计笔试第八套

声明

下面的题目作答都是自己认为正确的答案,并非官方答案,如果有不同的意见,可以评论区交流。
这些题目也是笔者从各个地方收集的,感觉有些题目答案并不正确,所以在个别题目会给出自己的见解,欢迎大家讨论。
因为这里我只会设计的题目,所以验证的题目我就没放上去了

题目

1、下列说法正确的是()
A.设计异步 FIFO 时采用格雷码的原因主要是为了省功耗
B.对单比特控制信号打两拍后可以完全避免了亚稳态
C.异步处理需要考虑发送和接收时钟之间的频率关系
D.尽量将异步逻辑和同步逻辑剥离开,分别在不同的模块中实现

C
选项C是正确的。在处理异步信号时,确实需要考虑发送和接收时钟之间的频率关系,因为这影响到信号同步策略的选择和可能出现的亚稳态问题。不同频率的时钟之间传递信号时,若没有适当的同步机制,可能导致数据损坏或系统不稳定。因此,设计时需考虑这些时钟之间的关系,以选择合适的同步方法。
选项A不正确。设计异步FIFO时采用格雷码的主要原因是为了确保每次计数器值变化时只有一个比特发生变化,这减少了在不同时钟域之间传递计数器值时发生多比特变化的可能性,降低了数据一致性错误的风险,并非主要为了省功耗。
选项B不正确。对单比特控制信号打两拍(通过两级触发器)可以大大降低亚稳态持续存在的概率,但理论上不能完全避免亚稳态。尽管这是一种常用的同步方法,但在极端条件下仍然有可能发生亚稳态。
选项D有一定的误导性。虽然将异步逻辑和同步逻辑分开处理是一种好的设计实践,以减少设计中的亚稳态风险,并使得系统更加模块化,易于理解和维护。但这个选项表述得好像异步逻辑和同步逻辑应该物理上或逻辑上完全隔离,在不同模块中实现,这不一定是正确的或可行的。在实际设计中,异步和同步逻辑可能需要紧密协作,特别是在处理信号同步和通信接口时。正确的做法是通过适当的同步策略和设计技巧来管理异步和同步逻辑之间的交互,而不一定是完全剥离它们。
因此,最正确的选项是C。

2、从综合出电路的电路看第一段代码比第二段代码优化的地方是()
第一段代码:
always @(posedge ck clk or negedge rst_n) beign
if(‐rst_n)
D<=1b0;
else if(A& B)
D<= A+B:
end
第二段代码:
always @(posedge clk or negedge rst_n)beign
if(‐rst_n)
D<=1’b0;
else if(A&B)
D <=A+B;
else
D<= 1’b0;
end
A 第一段代码比第二段代码简练,方便综合;
B.第一段代码比第二段代码省功耗;
C.第一段代码比第二段代码的电路简单;
D.第一段代码比第二段代码易于理解和实现;
B

3、logic [1:0] a; logic [1:0] b; logic result; a=2’b1z; b=2’b10; result=(ab);在 sv 中,上述代码执 行完后,result 的值为 1’b0()
A.正确
B.错误
B
解析:a
b 得到结果为 x

4、以下不能抑制异步电路问题的是()
A 寄存三拍
B.双向握手
C.格雷码转换
D.缓存输出

D
在处理异步电路问题,特别是在两个不同的时钟域之间传递信号时,常用的方法包括寄存三拍(Triple Synchronizer)、双向握手(Handshakingÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值