微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请教大家一个问题。为什么不建议用同时带异步复位和置位的flip-flop?

请教大家一个问题。为什么不建议用同时带异步复位和置位的flip-flop?

时间:10-02 整理:3721RD 点击:
请教大家一个问题。为什么不建议用同时带异步复位和置位的flip-flop?是scan的考虑么还是担心这两个信号同时有效导致问题?

我的理解是,在xilinx的lib中一个标准的d flip-flop有5个端子:D,CLk,Q,CLR,PRE
CLR是用作清零的,所以只应有一个清零信号

ASIC的库中也有既带S端,又带R端的flip-flop吧。一个清零,一个置一。(都是异步的)
但为什么实际中很少用这个cell?

我知道的一个问题是仿真有可能出错 
always @(posedge clk or negedge rst_n or negedge set_n)
if (!rst_n) q <= 0; // asynchronous reset
else if (!set_n) q <= 1; // asynchronous set
else q <= d;

initial begin
  reset_n = 1'b0;
  set_n = 1'b0;
  #5 reset_n = 1'b1;
end
就是当reset和set同时有效没有问题,但是5ns的时候,reset无效,set有效,不过因为此时set不在有效沿,
q不能被置1。
详细请看Asynchronous & Synchronous Reset Design Techniques P15

偶尔用一下也是可以的,但要考虑好R、S的逻辑关系。同时有效肯定是要禁止的

学习了谢谢

东莞演出工程19

主要是...有时候综合器会把这个异步信号当做组合逻辑的一部分输入...也就是说...某些时候这个异步信号输入LUT去了,而不是FF的清除段.

kankan

一般采用的方式是异步复位和同步置位。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top