| |
Bruce Zhan
个人空间:http://www.socvista.com/?uid/260
http://brucezhan.spaces.eepw.com.cn/spacemanage
http://www.eetop.cn/blog/?7952/spacelist-bbs.html
邮件:zhanbin.dsp@gmail.com
Version 1-0-0
History:
Version 1-0-0, released initiailly
(0) 逻辑设计基本思想
ü 逻辑表达式:yout = F(xin1, xin2, ... )
ü 乘积项表达:例子
上图的逻辑表达为: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结构,
² 基于门阵列
² 基于RAM
² 其他
ü 与IC区别
² 时钟树固定
² 资源数量/种类(乘法器,memory),位置固定;资源使用效率不同
² 用途,成本
ü 开发Flow与IC区别
² 总的步骤基本一样(工具不同);但是根据FPGA的特点,除非特殊情况,在仿真阶段不会对FPGA的PC simulation象IC的那么严格
² 设计输入形式有更多的选择(c,hdl,原理图,状态机)
² 仿真形式有更多选择(画波形,写testbench)
² 系统级的验证任务比较重(软,硬,逻辑设计结合)
² 与IC设计的库的选择不同
² RTL设计风格有所区别
² 与IC设计的时序有所不同(FPGA验证着重逻辑的功能和系统验证,而非与芯片要求真实的时序)
ü 与IC共同点
² 都有自己的methodology(工具链组合,signoff的条件)
² 平台建设(平台的内涵不同),自动化与效率
² 门级仿真难(速度慢,信号不好观察)
ü FPGA验证的局限性
² 无法反映芯片的时序问题
² 规模有限,可能无法放下整个设计
² 速度有限,可能无法进行实时系统验证
²
ü
(2) 设计手段
ü 原理图,适合建立基本硬件概念(从学习角度用)和简单设计
ü 硬件语言(基本手段)
ü C(算法建模验证)
ü 在做IC验证时,最主要的是,要了解IC和FPGA所使用的不同的库,了解差别;另外就是要注意代码的风格
ü Lint工具,最好IC和FPGA能使用同样风格的RTL及lint设置
ü 多种工具组合使用,例如synplicity(lint,综合)+ quartus(布局布线)+ ncverilog + formality(一致性检查)
(3) 验证手段
ü RTL仿真(与IC flow不同的是,使用FPGA的库做RTL仿真)
ü 综合后仿真。使用综合工具(quartus或synplicity)综合生成的.vqm netlist文件仿真(较难debug)
ü Gate level仿真。用布局布线工具(quartus)生成的.vo文件仿真(较慢,难debug)
ü 反标的gate level仿真。用布局布线工具(quartus)生成的.vo和.sdo文件配合仿真(很慢,难debug)
ü 对于难debug的问题,解决,
² 借助一些工具,例如qutarus的signaltap,能够在一定程度的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综合)
² ConvergenSC(systemC综合)
ü 布局布线
² quartus
ü 时序分析
² Primetime
² Quartus
点赞