微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > Xilinx ISE时序约束问题

Xilinx ISE时序约束问题

时间:10-02 整理:3721RD 点击:
我写了一个测试程序,输入为数据信号,数据有效信号及随路时钟24MHz  经过FPGA后,转换成198M的时钟频率输出。代码如下:
module      Test(
                    iClk,
                    
                    iDval,
                    iData_2,
                    
                    oDval,
                    oData_2
);
input               iClk;
input               iDval;
input       [1:0]   iData_2;
output  reg         oDval;
output  reg [1:0]   oData_2;
wire        Clk198M;
PLL_Cfg pll0(
                        .iClk(iClk),        //24M
                        
                        .oClk1(Clk198M),    //198M
                        .oClk2(),
                        .oClk3(),
                        .oClk4(),
                        .oClk5(),
                        .oClk6(),
                        .oPllLocked()
);
reg                 Dval0;
reg         [1:0]   Data0;
always @ (posedge iClk)
begin
    Dval0 <= iDval;
    Data0 <= iData_2;
end
wire                prog_empty;
reg                 RdFifoEn;
wire        [1:0]   FifoOut;
TsetFifo    fof0(
  .rst          (1'b0),
  .wr_clk       (iClk),
  .rd_clk       (Clk198M),
  .din          (iData_2),
  .wr_en        (iDval),
  .rd_en        (RdFifoEn),
  .dout         (FifoOut),
  .full         (),
  .empty        (),
  .prog_empty   (prog_empty)
);
always @ (posedge Clk198M)
begin
    if(!prog_empty)
        RdFifoEn <= 1'b1;
    else
        RdFifoEn <= 1'b0;
end
always @ (posedge Clk198M)
begin
    oData_2 <= FifoOut;
    oDval   <= RdFifoEn;
end
endmodule
对于输入端的时序约束我用如下方式实现:
;时钟周期约束
NET "iClk" TNM_NET = iClk;
TIMESPEC TS_iClk = PERIOD "iClk" 41.667 ns HIGH 50%;
;OFFSET_IN约束
INST "iData_2<0>" TNM = group_in;
INST "iData_2<1>" TNM = group_in;
INST "iDval" TNM = group_in;
TIMEGRP "group_in" OFFSET = IN 10 ns BEFORE "iClk" RISING;
现在我想对输出端做OFFSET_OUT约束,但是相应的时钟已经变为了Clk198M,请教各位大神,该如何OFFSET_OUT的约束?

问题还没有解决,自己顶一下。
    代码可能有点长,我大概做一些说明。就是我以24M的时钟输入两位的数据(iData_2)和一位的数据有效信号(iDval).    在FGPA内部,24M时钟经过PLL倍频,产生198M的时钟作为输出的时钟。而同时输入的数据,先写入FIFO中,然后以198M的时钟读出,最后再输出。
    各位大神,麻烦给点建议啊。

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

网站地图

Top