原创 【原创】FPGA/ASIC设计小比较

2009-2-26 18:46 3094 7 8 分类: FPGA/CPLD

(0) 逻辑设计基本思想


ü         逻辑表达式:yout = F(xin1, xin2, ... )


ü         乘积项表达:例子



上图的逻辑表达为:f=(A+B)*C*(!D)


转化为乘积项表达为:f=A*C*!D + B*C*!D


<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 


ü         设计对象:组合逻辑,时序逻辑


ü         设计思想:Data path + State Machine,高阶段还需要有同IC一样的时序分析思想


ü         设计手段:高层次语言(架构描述语言,状态机输入,c语言输入),硬件语言,电路图


ü         验证手段:仿真,仿真的基本思想,Delta延迟步


ü         c程序开发主要的思想区别


 


 


(1) FPGA/CPLD基本思想及与芯片设计Flow的区别


ü         FPGA/CPLD结构,


2        基于门阵列



 


2        基于RAM


2        其他


 


ü         IC区别


2        时钟树固定


2        资源数量/种类(乘法器,memory),位置固定;资源使用效率不同


2        用途,成本


 


ü         开发FlowIC区别


2        总的步骤基本一样(工具不同);但是根据FPGA的特点,除非特殊情况,在仿真阶段不会对FPGAPC simulationIC的那么严格


2        设计输入形式有更多的选择(chdl,原理图,状态机)


2        仿真形式有更多选择(画波形,写testbench


2        系统级的验证任务比较重(软,硬,逻辑设计结合)


2        IC设计的库的选择不同


2        RTL设计风格有所区别


2        IC设计的时序有所不同(FPGA验证着重逻辑的功能和系统验证,而非与芯片要求真实的时序)


 


ü         IC共同点


2        都有自己的methodology(工具链组合,signoff的条件)


2        平台建设(平台的内涵不同),自动化与效率


2        门级仿真难(速度慢,信号不好观察)


 


ü         FPGA验证的局限性


2        无法反映芯片的时序问题


2        规模有限,可能无法放下整个设计


2        速度有限,可能无法进行实时系统验证


2       

 


 


ü        

 


 


(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的问题,解决,


2        借助一些工具,例如qutarussignaltap,能够在一定程度的RTL级插入,保证要观察的信号能够在gate level保持住。


2        写一个通用的debug逻辑插入脚本。基本思想是,把要debug的信号,在RTL级别全部引到顶层模块的port。因为最深入的模块的内层要观察的信号要一层一层逐级引出,手动修改比较麻烦,所以要用脚本的方法。我不知道这个类似思想,是否有现成工具可以使用


2        跟上一个方法类似,但不用扩展模块的port,用module.inst.inst0.signal的方法饮用底层要观察的信号,但很多综合布局不支持(象quartus工具顶多支持引用两级深度)


2        其他办法(?)


 


ü        

 


 


(4) 主要工具


ü         设计输入


2        Quartus


2        Ultraedit


2        Vim


2        Synplicity


2        Modelsim


2        Visual c++/GNU (systemc)


 


ü         代码检查


2        nLint


2        synplicity


 


ü         仿真


2        Modelsim


2        Ncverilog


2        QuestaSim


 


ü         综合


2        Quartus


2        Synplicity


2        Fpga advantage


2        Presision


2        Catapult c/systemc综合)


2        Celoxica c fpga综合)


2        ConvergenSCsystemC综合)


 


ü         布局布线


2        quartus


 


ü         时序分析


2        Primetime


2        Quartus自带


2        Timequest


 


ü        

 


 


(5) FPGA在验证中的应用与挑战


ü         在验证中


2        如何保证FPGA综合布局布线后的逻辑和RTL级别的一致性


2        如何根据FPGA自身的特点确保自己的时序正确(解决FPGA验证阶段的时序冲突,这个时序冲突只是与FPGA综合布局布线相关,和IC的时序问题不是一个问题,但需要尽量解决,否则很难保证FPGA能够工作起来)


2        如何选择验证case


2        如何得到测试覆盖率,即保证足够的覆盖,又保证效率


2        如何自动化;自动化本身需要花很多资源去做


2        其他(?)


 


ü        

 

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

文章评论1条评论)

登录后参与讨论

用户1651241 2009-12-4 21:51

挺不错的,受教了
相关推荐阅读
用户462845 2009-02-26 18:44
【原创】FPGA时序分析之Gated Clock 1
(一)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />FPGA设计一条原则是尽量使用...
用户462845 2009-02-26 18:39
pipeline RISC设计(11)--优化Multiplexer(三)--一步一步优化FPGA
pipeline RISC设计(11)--优化Multiplexer(三)--一步一步优化FPGA RISC<?xml:namespace prefix = o ns = "urn:schema...
用户462845 2009-02-26 18:37
pipeline RISC设计(10)--优化Multiplexer(二)--利用FPGA LE结构
pipeline RISC设计(10)--优化Multiplexer(二)--利用FPGA LE结构实现MUX<?xml:namespace prefix = o ns = "urn:schem...
用户462845 2009-02-26 18:36
pipeline RISC设计(10)--优化Multiplexer(一)--FPGA LE结构
pipeline RISC设计(10)--优化Multiplexer(一)--FPGA LE结构<?xml:namespace prefix = o ns = "urn:schemas-micr...
用户462845 2009-02-26 18:34
【心得笔记】pipeline RISC设计(9)--改进流水线冲突
pipeline RISC设计(9)--改进流水线冲突<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:offi...
EE直播间
更多
我要评论
1
7
关闭 站长推荐上一条 /3 下一条