1.(大疆2020数字芯片)下列关于多bit数据跨时钟域的处理思路,错误的有()     A. 发送方给出数据,接收方用本地时钟同步两拍再使用;    B. 发送方把数据写到异步fifo,接收方从异步fifo里读出;    C. 对于连续变化的信号,发送方转为格雷码发送,接收方收到后再转为二进制;    D. 发送方给出数据,发送方给出握手请求,接收方收到后回复,发送方撤销数据。    答案:A    解析:多bit跨时钟域不能简单使用打两拍,打拍后可能数据错乱;       CDC(Clock Domain Conversion)跨时钟域分单bit和多bit传输,其中:   单bit(慢时钟域到快时钟域):用快时钟打两拍,直接采一拍大概率也是没问题的,两拍的主要目的是消除亚稳态;   单bit(快时钟域到慢时钟域):握手、异步FIFO、异步双口RAM;快时钟域的信号脉宽较窄,慢时钟域不一定能采到,可以通过握手机制让窄脉冲展宽,慢时钟域采集到信号后再“告诉”快时钟域已经采集到信号,确保能采集到;   多bit:异步FIFO、异步双口RAM、握手、格雷码;      多bit中,强烈推荐异步FIFO,我在实际工程中使用多次,简单方便。        2. 关于异步处理,以下说法正确的是:     A、静态配置信号可以不做异步处理    B、异步FIFO采用格雷码的原因是为了提高电路速度    C、异步处理需要考虑发送和接收时钟之间的频率关系    D、单比特信号打两拍后可以避免亚稳态的发生    答案:AC    解析:    A. 静态不变,直接采,不会出现亚稳态,因为不会在采集时钟的边沿处发生变化;    B. 异步 FIFO 中确实采用了异步 FIFO,但是目的是为了跨时钟传输,不是为了提高电路速度;    将多 bit 的自然二进制读写地址转成格雷码,相邻数据仅有 1 bit 的不同,可以使用“打两拍”的二级同步器进行读写地址传输;    C. 异步处理需要考虑两个时钟的频率,比如前面提到的                单bit(慢时钟域到快时钟域):             快的一定能采到慢的,用快时钟打两拍;                   单bit(快时钟域到慢时钟域):             快时钟域的信号脉宽较窄,慢时钟域不一定能采到,可以通过握手机制让窄脉冲展宽,慢时钟域采集到信号后再“告诉”快时钟域已经采集到信号,确保能采集到;            D. 这里的说法有几个问题    (1)像 C 里提到的,快到慢就没办法只使用“打两拍”;    (2)慢到快的单比特信号打两拍,仅仅是降低了亚稳态发生的概率,但是没有消除亚稳态;   亚稳态无法消除,只能降低发生的概率,二级同步不够的时候可以使用三级甚至四级,具体相关的参数是 MTBF 平均无故障时间(Mean Time Between Failure),可以去查阅一下相关的。                欢迎留言讨论、咨询。           FPGA探索者:FPGA和数字IC求职必备向导~ ~           祝大家都能找到满意的实习和秋招offer!                 【收藏!】FPGA数字IC求职必备知识点目录——持续更新 https://www.nowcoder.com/discuss/959891?source_id=profile_create_nctrack&channel=-1         本文正在参与【内行知多少】 征文活动,一起来聊聊内行人才懂的那些事吧,高额牛币和百元京东卡等你来领~  
点赞 14
评论 5
全部评论

相关推荐

积极的小学生不要香菜:你才沟通多少,没500不要说难
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务