《数字信号处理的FPGA实现》读书笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
<数字信号处理的FPGA实现>
Verilog写状态机大概有这样几点要求:
1、组合逻辑完成状态转移的条件判断,时序逻辑完成状态机的状态转移。
2、组合逻辑和时序逻辑分别在两个不同的always块中完成,根据状态机状态通过译码逻辑产生的与状态机无关的逻辑部分不要放在专用的状态机always块中。
3、状态编码预先定义为parameter,状态较少的状态机推荐使用one-hot方式编码,以减小译码逻辑的复杂度,提高性能。
4、建议单独使用一个模块来描述状态机。
5、状态机应有一个default状态,在上电复位的时候作为初始状态。
6、注意状态机组合逻辑中的if...else语句,不要出现latch。
7、对于复杂状态机,最好采用状态机嵌套方式完成。
其实上面很多都是按照Synopsys LEDA的coding style的要求的,状态机的写法相对固定,因此很多Design entry的工具可以自动生成状态机代码,Xilinx也有工具支持直接由状态转移图输入完成状态机的编码。所以关键还是画好状态转移图,其他就相对简单了。
visual hdl+ISE+synplify Pro+modelsim!
1.设计输入
1)设计的行为或结构描述。
2)典型文本输入工具有UltraEdit-32和Editplus.exe.。
3)典型图形化输入工具-Mentor的Renoir。
4)我认为UltraEdit-32最佳。
2.代码调试
1)对设计输入的文件做代码调试,语法检查。
2)典型工具为Debussy。
3.前仿真
1)功能仿真
2)验证逻辑模型(没有使用时间延迟)。
3)典型工具有Mentor公司的ModelSim、Synopsys公司的VCS和VSS、Aldec公司的Active、Cadense公司的NC。
4)我认为做功能仿真Synopsys公司的VCS和VSS速度最快,并且调试器最好用,Mentor 公司的ModelSim对于读写文件速度最快,波形窗口比较好用。
4.综合
1)把设计翻译成原始的目标工艺
2)最优化
3)合适的面积要求和性能要求
4)典型工具有Mentor公司的LeonardoSpectrum、Synopsys公司的DC、Synplicity公司的Synplify。
5)推荐初学者使用Mentor公司的LeonardoSpectrum,由于它在只作简单约束综合后的速度和面积最优,如果你对综合工具比较了解,可以使用Synplicity公司的Synplify。
5.布局和布线
1)映射设计到目标工艺里指定位置
2)指定的布线资源应被使用
3)由于PLD市场目前只剩下Altera,Xilinx,Lattice,Actel,QuickLogic,Atmel六家公司,其中前5家为专业PLD公司,并且前3家几乎占有了90%的市场份额,而我们一般使用Altera,Xilinx公司的PLD居多,所以典型布局和布线的工具为Altera公司的Quartus II和Maxplus II、Xilinx公司的ISE和Foudation。
4)Maxplus II和Foudation分别为Altera公司和Xilinx公司的第一代产品,所以布局布线一般使用Quartus II和ISE。
6.后仿真
1)时序仿真
2)验证设计一旦编程或配置将能在目标工艺里工作(使用时间延迟)。
3)所用工具同前仿真所用软件。
7.时序分析
4)一般借助布局布线工具自带的时序分析工具,也可以使用Synopsys公司的PrimeTime软件和Mentor Graphics公司的Tau timing analysis软件。
8.验证合乎性能规范
1)验证合乎性能规范,如果不满足,回到第一步。
9.版图设计
1)验证版版图设计。
2)在板编程和测试器件。
FPGA to ASIC有很多问题都要重新考虑。
随便举几个例子:
1。时钟设计:FPGA一般使用全局时钟资源,严格避免使用门控时钟。而ASIC考虑到功耗等因素,应该建立时钟树结构。
2。RAM,FIFO等基本模块;FPGA设计一般用vendor提供的IP,认为vendor的IP的效率、稳定性、健壮性都很好。但是ASCI中除非你购买,一般是没有免费的RAM,FIFO等IP,自己用HDL语言描述,要考虑很多问题,比如bist等,要对RAM的健壮性等加以测试,保障。
3。同步时序设计:FPGA提倡使用全同步时序设计,因为FPGA的基本可编程单元都是由固定比例的FF和4-LUT构成的。而ASCI一切都是用逻辑门实现的,一个D触发器大概要消耗7个门左右(最少),而一个与非门用一个逻辑门就够了,所以大量使用FF,会造成规模的大幅度膨胀。所以ASCI经常要使用大面积的组合逻辑。
4。实现约束和设计思想,由于3所述的原因,ASIC与FPGA在时序约束和设计思想上都有很大的差异。
以前由于工作的需要,花了一些时间看了加法器设计方面的资料,当时就想稍为整理一下,只是太忙顾不上。前几天有网友想讨论一下加法器的设计问题,我觉得讨论最好有个基础,于是整理出《加法器介绍》一文,希望起到抛砖引玉的作用,请大家批评指正。
加法器设计介绍(1)
随着大规模、高速度FPGA的广泛应用,基于FPGA的定制DSP应用日渐普遍,与传统DSP 处理方法相比较具有更高的速度、设计灵活、易于更改等优点。常常应用于对设计方案和关键算法的验证。定制DSP应用使设计者可以为特定的设计提供最佳的实现方案并缩短了开