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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 18430|回复: 78

【原创】ASIC/FPGA随笔

[复制链接]
发表于 2009-2-27 14:13:23 | 显示全部楼层 |阅读模式

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

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

x
(0) 逻辑设计基本思想
ü
逻辑表达式:yout = F(xin1, xin2, ... )
ü
乘积项表达:例子
file:///C:/DOCUME~1/user/LOCALS~1/Temp/msohtml1/01/clip_image001.gif
上图的逻辑表达为:f=(A+B)*C*(!D)
转化为乘积项表达为:f=A*C*!D + B*C*!D

ü
设计对象:组合逻辑,时序逻辑
ü
设计思想:Data path + State Machine,高阶段还需要有同IC一样的时序分析思想
ü
设计手段:高层次语言(架构描述语言,状态机输入,c语言输入),硬件语言,电路图
ü
验证手段:仿真,仿真的基本思想,Delta延迟步
ü
c程序开发主要的思想区别


(1) FPGA/CPLD基本思想及与芯片设计Flow的区别
ü
FPGA/CPLD结构,
²
基于门阵列
file:///C:/DOCUME~1/user/LOCALS~1/Temp/msohtml1/01/clip_image002.gif


²
基于RAM
²
其他

ü
IC区别
²
时钟树固定
²
资源数量/种类(乘法器,memory),位置固定;资源使用效率不同
²
用途,成本

ü
开发FlowIC区别
²
总的步骤基本一样(工具不同);但是根据FPGA的特点,除非特殊情况,在仿真阶段不会对FPGAPC simulationIC的那么严格
²
设计输入形式有更多的选择(chdl,原理图,状态机)
²
仿真形式有更多选择(画波形,写testbench
²
系统级的验证任务比较重(软,硬,逻辑设计结合)
²
IC设计的库的选择不同
²
RTL设计风格有所区别
²
IC设计的时序有所不同(FPGA验证着重逻辑的功能和系统验证,而非与芯片要求真实的时序)

ü
IC共同点
²
都有自己的methodology(工具链组合,signoff的条件)
²
平台建设(平台的内涵不同),自动化与效率
²
门级仿真难(速度慢,信号不好观察)

ü
FPGA验证的局限性
²
无法反映芯片的时序问题
²
规模有限,可能无法放下整个设计
²
速度有限,可能无法进行实时系统验证
²


ü


(2) 设计手段
ü
原理图,适合建立基本硬件概念(从学习角度用)和简单设计
ü
硬件语言(基本手段)
ü
C(算法建模验证)
ü
在做IC验证时,最主要的是,要了解ICFPGA所使用的不同的库,了解差别;另外就是要注意代码的风格
ü
Lint工具,最好ICFPGA能使用同样风格的RTLlint设置
ü
多种工具组合使用,例如synplicitylint,综合)+ quartus(布局布线)+ ncverilog + formality(一致性检查)

(3) 验证手段
ü
RTL仿真(与IC flow不同的是,使用FPGA的库做RTL仿真)
ü
综合后仿真。使用综合工具(quartussynplicity)综合生成的.vqm netlist文件仿真(较难debug
ü
Gate level仿真。用布局布线工具(quartus)生成的.vo文件仿真(较慢,难debug
ü
反标的gate level仿真。用布局布线工具(quartus)生成的.vo.sdo文件配合仿真(很慢,难debug
ü
对于难debug的问题,解决,
²
借助一些工具,例如qutarussignaltap,能够在一定程度的RTL级插入,保证要观察的信号能够在gate level保持住。
²
写一个通用的debug逻辑插入脚本。基本思想是,把要debug的信号,在RTL级别全部引到顶层模块的port。因为最深入的模块的内层要观察的信号要一层一层逐级引出,手动修改比较麻烦,所以要用脚本的方法。我不知道这个类似思想,是否有现成工具可以使用
²
跟上一个方法类似,但不用扩展模块的port,用module.inst.inst0.signal的方法饮用底层要观察的信号,但很多综合布局不支持(象quartus工具顶多支持引用两级深度)
²
其他办法(?)

ü


(4) 主要工具
ü
设计输入
²
Quartus
²
Ultraedit
²
Vim
²
Synplicity
²
Modelsim
²
Visual c++/GNU (systemc)

ü
代码检查
²
nLint
²
synplicity

ü
仿真
²
Modelsim
²
Ncverilog
²
QuestaSim

ü
综合
²
Quartus
²
Synplicity
²
Fpga advantage
²
Presision
²
Catapult c/systemc综合)
²
Celoxica c fpga综合)
²
ConvergenSCsystemC综合)

ü
布局布线
²
quartus

ü
时序分析
²
Primetime
²
Quartus自带
²
Timequest

ü


(5) FPGA在验证中的应用与挑战
ü
在验证中
²
如何保证FPGA综合布局布线后的逻辑和RTL级别的一致性
²
如何根据FPGA自身的特点确保自己的时序正确(解决FPGA验证阶段的时序冲突,这个时序冲突只是与FPGA综合布局布线相关,和IC的时序问题不是一个问题,但需要尽量解决,否则很难保证FPGA能够工作起来)
²
如何选择验证case
²
如何得到测试覆盖率,即保证足够的覆盖,又保证效率
²
如何自动化;自动化本身需要花很多资源去做
²
其他(?)

ü

(6) 系统验证-多部门协同,接口

FPGA_ASIC simple training.pdf (87.81 KB, 下载次数: 235 )

[ 本帖最后由 brucezhan 于 2009-2-27 14:19 编辑 ]
发表于 2009-2-27 14:51:32 | 显示全部楼层
学习一下,呵呵。
发表于 2009-2-28 04:01:28 | 显示全部楼层
Pretty good summary.
发表于 2009-2-28 11:54:53 | 显示全部楼层
呵呵,俺还是新手,学习了,下来看看
发表于 2009-2-28 21:25:29 | 显示全部楼层
学习!!!
发表于 2009-2-28 22:16:36 | 显示全部楼层
学习中
发表于 2009-3-7 22:25:34 | 显示全部楼层
学习!!!
发表于 2009-3-8 21:35:31 | 显示全部楼层

挺好的

学习一下
发表于 2009-3-9 10:38:24 | 显示全部楼层
真是好东西!
发表于 2009-3-9 11:03:06 | 显示全部楼层
谢谢分享,学习一下了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-27 05:08 , Processed in 0.029828 second(s), 11 queries , Gzip On, Redis On.

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