在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3843|回复: 9

[求助] 异步模块综合

[复制链接]
发表于 2011-11-18 11:15:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
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 <= #1  wr_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综合的约束脚本该怎么写
谢谢了
 楼主| 发表于 2011-11-18 14:48:46 | 显示全部楼层
坐等各版主
发表于 2011-11-18 16:27:33 | 显示全部楼层
create_clock -name wclk .........
........
create_clock -name rclk ........
........
set_clock_groups -asynchronous -group wclk -group rclk
.........
 楼主| 发表于 2011-11-18 22:29:05 | 显示全部楼层
回复 3# keelinx


   能详细一点么? 需要设置false_path么?谢谢
发表于 2011-11-18 23:02:41 | 显示全部楼层
综合我不懂,sorry
 楼主| 发表于 2011-11-19 10:04:39 | 显示全部楼层
求大神指点啊
发表于 2011-11-21 17:58:04 | 显示全部楼层
回复 4# calvinleo258

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


我就是这么做,也许有更好的方案。
 楼主| 发表于 2011-11-21 21:53:48 | 显示全部楼层
回复 7# keelinx


   其他的 比如说 input output delay   max min delay 或者 disable timing 需要设置么?
发表于 2011-11-22 10:16:32 | 显示全部楼层
回复 8# calvinleo258
这么小的东西不用设那么麻烦,ideal network不用设,如果时序较紧,可以设input/output delay。个人理解。
 楼主| 发表于 2011-11-22 13:15:54 | 显示全部楼层
回复 9# keelinx


    恩 好的 谢谢你了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-9-21 01:51 , Processed in 0.020209 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表