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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5893|回复: 11

[求助] 反向的数字网表做FPGA验证

[复制链接]
发表于 2013-1-10 14:52:24 | 显示全部楼层 |阅读模式

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

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

x
反向出来的6万门左右的数字电路网表:……………………
……………………
aoi21X1 X12335 ( .A1(X7804_Y), .A2(X6876_Y), .B(X9756_Y),
     .Y(X12335_Y));
or2X4 X12294 ( .A(X11949_Y), .B(X7565_Q), .Y(C59));
nor3X2 X12328 ( .A(X10949_Y), .B(X10967_Y), .C(X8651_Y),
     .Y(X12328_Y));

……………………
……………………

全芯片做SPIC仿真功能OK
想在系统上做FPGA验证,为了用ISE综合,对网表中每个cell建了模型,如:

`timescale 1ns/10ps
`celldefine
module aoi21X1 (output Y, input  A1, A2, B);
    assign Y = !( (A1 && A2) || B );
    specify
    (A1, A2, B *> Y) = (0.185,0.072);
    endspecify
endmodule
`endcelldefine


`celldefine
module or2X4 (output Y, input  A, B);
    assign Y = A || B;
    specify
    (A, B *> Y) = (0.108,0.084);
    endspecify
endmodule
`endcelldefine

     之前在一个只有几千门并且只有一个慢速(200K)时钟的数字电路项目用这种方法做FPGA验证没有问题,后端实现流片也OK,但现在这个项目规模较大,而且内部时钟使用较为复杂,非单一时钟,时钟频率也较高,20M左右。在FPGA验证过程中发现behavioral仿真没问题,但FPGA功能实现不了,于是做了FPGA综合后,布局布线后之类的仿真,发现已经出错,没有功能,发现和模型中的延时参数有关,因为这个延时参数只在行为仿真中有效,如果把模型中的延时参数去掉或改为0,连behavioral仿真都过不了,时序出错了。
     后来用behavioral仿真通过一个个cell试,发现总共有十来个cell的延时参数不能去掉,去掉时序就会出错,仿真就过不了。
     为了解决这个问题,人为地将必须有延时的cell输入端口加入一定delay(如2输入与非门,将A和B都用FPGA板的高频时钟打一拍,延时大概10ns),这个方法用整个网表中的一个小模块实验成功,FPGA实现也OK。但是对于整个网表,有些CELL必须有延时,但是延时又不能太大,只能0.15ns左右,否则行为仿真时序都会出错,FPGA后端实现肯定失败了,这么小的延时很难控制了,也没办法通过高频时钟打一拍实现了。
      请教各位大神,对这种情况有什么好的建议。对这种规模的反向数字电路做FPGA验证有什么好的方法和经验。

PS:最终流片会用和原芯片同级别工艺的另一公司的标准单元库,这样需要把提出来的这个网表中的单元替换成我们将要流片使用的标注单元,然后跑PR,请问这个流程中,有什么要注意的,尤其用反提出来的网表跑PR,想把原网表中的一堆buffer都去掉,在APR时约束该如何写,如何处理最好,请有经验的人不吝赐教!!!!!
 楼主| 发表于 2013-1-10 17:00:39 | 显示全部楼层
自己顶顶
发表于 2013-1-10 18:17:19 | 显示全部楼层
你是用什么仿真的呢?
 楼主| 发表于 2013-1-11 10:09:32 | 显示全部楼层
因为用的xilinx FPGA,有加了RAM,DCM,所以直接用的modelsim仿的
发表于 2013-1-11 11:33:36 | 显示全部楼层
回复 1# belamy


    仿真用ASIC的库,你要自己写个等效库替换ASIC的,写完后可以做个formal,然后仿真用Asic的,做FPGA用FPGA的,就可以了
 楼主| 发表于 2013-1-11 13:42:21 | 显示全部楼层
回复 5# jerry365

你好,我没太理解,能否讲详细点,或者举个例子你所说的自己写的等效库是起什么作用,还有现在仿真所用的库(就是我建的那些带延时参数的cell仿真模型)如果只是仿真的话没有问题,问题就是综合成FPGA的东西后就会有问题,时序错了。
发表于 2013-1-11 23:18:49 | 显示全部楼层
什么意思,不太懂啊。
发表于 2013-1-12 19:56:54 | 显示全部楼层
高人这么多啊。。。
发表于 2013-1-14 10:19:02 | 显示全部楼层
做过类似项目。
(1)spice仿真功能OK,我不熟悉你的这个spice仿真的操作OK是什么概念。虽然我也曾经做过不少纯数字、纯模拟、数模混合的操作,但我始终不敢说OK;而且对于超过6万门、达到24万晶体管,spice仿真工具能否吃进、即使快速仿真工具如ultrasim/nanosim能够吃下来但仿真的时间有多少,实在难以判断
(2)是否分割了异步电路、不可综合电路?曾经发现某芯片中的I2C的起始停止判断电路、时钟发生电脑,在同步时钟约束下,综合后的功能是失败的情况
(3)人工对标准单元建模,出错概率很高。
(4)没有做过库的直接到工艺的映射。操作是对反提的网表经过较严格的验证之后,重新综合映射到新的工艺库后实现的
(5)我当初使用的是Actel的FPGA,内置配置ROM。如果是Xinix的外部配置的FPGA,是否还要考虑上电与配置过程中的差异?
 楼主| 发表于 2013-1-17 14:35:18 | 显示全部楼层
回复 9# Pasingen
"对反提的网表经过较严格的验证之后,重新综合映射到新的工艺库后实现的"请问这步在已经是门级网表的情况下怎么实现重新综合映射到新库。


“我当初使用的是Actel的FPGA,内置配置ROM。如果是Xinix的外部配置的FPGA,是否还要考虑上电与配置过程中的差异?”
你怎么使用门级网表来综合到FPGA里
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-21 21:32 , Processed in 0.029819 second(s), 8 queries , Gzip On, Redis On.

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