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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
123
返回列表 发新帖
楼主: helimpopo

[求助] 二维reg和FPGA里面的RAM,行为模型为什么有差异?

[复制链接]
发表于 2021-11-7 23:04:10 | 显示全部楼层
仿真时钟设置成了:
`timescale 1ps/1ps
always #100 clka = ~clka; ???
发表于 2021-11-8 08:51:54 | 显示全部楼层
xilinx fpga的sram仿真模型里的timescale是1ps/1ps的,如果tb是希望1ns/1ps的话,需要注意加载顺序,或者在sram仿真模型的结尾或者tb开头的地方重新声明一下timescale,避免受到sram仿真模型的影响。
发表于 2021-11-8 09:25:33 | 显示全部楼层
写成二维reg形式,Xilinx不会默认综合成BRAM吗?
发表于 2021-11-8 10:57:25 | 显示全部楼层
有没有可能是软件本身(vivado)的问题,或者编译库的问题,我之前遇到过quartus软件出问题,官方给打了个补丁才解决。
 楼主| 发表于 2021-11-8 11:35:31 | 显示全部楼层


coolbear2021 发表于 2021-11-8 08:51
xilinx fpga的sram仿真模型里的timescale是1ps/1ps的,如果tb是希望1ns/1ps的话,需要注意加载顺序,或者在 ...


对,有可能是timescale没设置对!
发表于 2021-11-8 13:02:55 | 显示全部楼层


helimpopo 发表于 2021-11-8 11:35
对,有可能是timescale没设置对!


哎。。。
大家别把这个问题想得那么复杂,那么神秘。既不是Xilinx Block RAM仿真模型有问题或是很难使用(或者说有啥特别的使用技巧),也不是楼主使用的仿真软件(Modelsim?)在这里有问题。
就是咱们在写仿真激励文件时,一不小心生成了一个100GHz(周期10ps)的时钟,用这个时钟去驱动Block RAM IP(其实在11#的时候已经在开始分析验证是不是送到RAM IP的clka有问题了,原以为是分频后送进去的,确实没想到是送进去的时钟频率太高),而Xilinx 为其Block RAM的仿真模型建立了100ps的TCKO(输出有效时间)参数,并且Block RAM仿真模型分别为第一级输出Latch和第二级Primitive Output Register(可选的)建立了100ps的TCKO参数。所以,当我们以10ps周期的时钟去驱动这个IP时,在某个时钟沿采样到需要改变输出,加上100ps输出延迟,可不是要10个周期后我们才能看到嘛。楼主9#贴出的图,反映出添加primitive output register后,延迟了20个时钟才有效,其实仔细去数图中,实际上是21个周期,第一级latch延时100ps,到第二级primitive output register本身一级寄存器流水线延迟1个周期10ps,再加上此寄存器输出延迟100ps,共210ps,21个周期。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-20 04:35 , Processed in 0.021614 second(s), 7 queries , Gzip On, Redis On.

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