把这个拉出来,先做双边沿、双时钟触发器。首先使用双时钟D触发器Patent US6320442 B1。现在用双沿D触发器Patent US5793236 A或Patent US5327019 A替换子触发器。每一项专利都有电路设计图。
使用自定义触发器,创建一个小管道来采样时钟的历史记录。寻找从零到一的过渡。
示例:
代码语言:javascript复制wire [1:0] historyA, historyB;
// dualedge_dualclock_dff ( output Q, input D, clkA, clkB, rst_n)
dualedge_dualclock_dff dedc_histA1( .Q(historyA[1]), .D(historyA[0]), .* );
dualedge_dualclock_dff dedc_histA0( .Q(historyA[0]), .D(clkA), .* );
dualedge_dualclock_dff dedc_histB1( .Q(historyB[1]), .D(historyB[0]), .* );
dualedge_dualclock_dff dedc_histB0( .Q(historyB[0]), .D(clkB), .* );
wire dual_posedge_match = ({historyA,historyB} == 4'b0101);双边沿触发器和双时钟触发器不是常见的设计实践。将需要过多的时序分析,并且工具可能会抱怨单元。此外,需要采取措施使专利使用符合法律。