微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > 异步模块综合

异步模块综合

时间:10-02 整理:3721RD 点击:
module Afifo_sync_w2r(
// Outputs
wr_ptr_sync,
// Inputs
wrClk,
wrReset,
rdClk,
rdReset,
wr_ptr
);
parameter DATASIZE = 32;//Memory data width
parameter DEPTH = 5;//Afifo depth

input wrClk;//Write clock domain
input wrReset;//Write reset "1" is valid
input rdClk;//Read clock domain
input rdReset;//Read reset "1" is valid
input [DEPTH-1:0] wr_ptr;//Read pointer
output [DEPTH-1:0] wr_ptr_sync;//Write pointer sync to read clock domain
wire [DEPTH-1:0] wr_ptr_gray_D;
reg [DEPTH-1:0] wr_ptr_gray;
reg [DEPTH-1:0] wr_ptr_sync;
reg [DEPTH-1:0] wr_ptr_sync1;
//Bin to Gray
assign wr_ptr_gray_D = (wr_ptr >> 1) ^ wr_ptr;

//one level register in write clock domain
always @ (posedge wrClk)begin
if(wrReset)
wr_ptr_gray <= #1{DEPTH{1'b0}};
else
wr_ptr_gray <= #1wr_ptr_gray_D;
end
//two level register in write clock domain
always @ (posedge rdClk)begin
if(rdReset)
wr_ptr_sync1 <= #1 {DEPTH{1'b0}};
else
wr_ptr_sync1 <= #1 wr_ptr_gray;
end
always @ (posedge rdClk)begin
if(rdReset)
wr_ptr_sync <= #1 {DEPTH{1'b0}};
else
wr_ptr_sync <= #1 wr_ptr_sync1;
end
endmodule
一个异步FIFO里面的一个同步模块,请各位小编大虾们指点一下,这个模块DC综合的约束脚本该怎么写
谢谢了

坐等各小编

create_clock -name wclk .........
........
create_clock -name rclk ........
........
set_clock_groups -asynchronous -group wclk -group rclk
.........

能详细一点么? 需要设置false_path么?谢谢

综合我不懂,sorry

求大神指点啊

我水平也不高,这个小的异步逻辑设置好时钟和false path就可以了。set_clock_groups -asynchronous -group wclk -group rclk 这句话相当于设置false path。

我就是这么做,也许有更好的方案。

其他的 比如说 input output delaymax min delay 或者 disable timing 需要设置么?

这么小的东西不用设那么麻烦,ideal network不用设,如果时序较紧,可以设input/output delay。个人理解。

恩 好的 谢谢你了

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

网站地图

Top