微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > QUARTUS 中能固定输出延时吗

QUARTUS 中能固定输出延时吗

时间:10-02 整理:3721RD 点击:

我对SRAM进行读写操作(异步),简化如下:reg [1:0] cnt;
always @ (posedge clk or posedge rst) if(rst) cnt<= 0;   else    cnt<= cnt+1;
always @ (posedge clk or posedge rst) if(rst) ram_addr <= 0;   else    ram_addr <= (&cnt) ? ram_addr+1 : ram_addr;
always @ (posedge clk or posedge rst) if(rst) data_from_ram<= 0;   else    data_from_ram<= (cnt == ?) ram_data : data_from_ram;

现在的问题是:
1,cnt=3的时候产生RAM的读地址,ram_addr从clk沿产生后,经过N ns到达输出引脚,这个N可能每次编译还不一样;
2,忽略电路板上的延时,RAM在读信号及地址有效后的M ns内将数据送出;
3,从FPGA的输出引脚经过P ns延时到达采集时钟所在的寄存器;这个P也可能每次编译不一样;
这样的话,相当于在产生有效地址的时钟沿后,经过N+M+P ns之后,有效的数据到达采集时钟,
M的话可以由RAM手册确定,可是这个N+P无法确定,这样的话,我怎么才能保证采集到有效的数据,之前是实验在产生有效地址后的第2个时钟采集,可是这样我觉得不可靠,
可不可以设置什么约束,使N和P成为一个固定值,还是有什么更有效的方式?

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

网站地图

Top