持续更新——FPGA(ISE和Modelsim) 随笔记录

1、FPGA资源消耗分析

不同系列的FPGA着眼点主要是器件的尺寸,嵌入式存储器、嵌入式乘法器或者DSP模块等逻辑器件资源,以及器件是否包含了处理器内核(注意,当处理器内核不存在时,仍然可以通过逻辑器件资源实现软处理器)。在逻辑单元数量方面,1k代表1000单元。RAM的大小按比特位来计算,其中1K=1024比特位。RAM的总数代表了FPGA上可用的专用RAM模块,但并不包括交织型RAM。

资源消耗包括占用基本单元数量和片上存储空间数量。Xilinx公司系列的FPGA中,基本单元由若干slices组成。基本单元主要包括:加法器、乘法器、比较器、移位寄存器。

系统运行时间会越来越短,而资源消耗则越来越大。

以Kintex-7系列的芯片XC7K410T为例,查看主要的资源:

持续更新——FPGA(ISE和Modelsim) 随笔记录

持续更新——FPGA(ISE和Modelsim) 随笔记录

在ISE中,查看资源消耗一般看以下三项:

Number of Slice Registers(切片寄存器数量)
Number of Slice LUTs(切片LUT数量)
Number of Block RAM/FIFO(该项主要包含Number of RAMB36E1/FIFO36E1 s与Number of RAMB18E1/FIFO18E1 s)

在ISE中查看各个模块的资源消耗:

持续更新——FPGA(ISE和Modelsim) 随笔记录

硬件平台的规模大小,最通用的评断标准是逻辑门数(MOS管的数目)。不同的可编程逻辑器件厂家对各自芯片的资源定义也是不一样的,一般有两种方法对其进程粗略评估。(1)第一,把FPGA基本单元(如LUT+FF、ESB/BRAM)和实现相同功能的标准门阵列比较,门阵列中包含的门数即为该FPGA基本单元的等效门数,然后乘以基本单元的数目就可以得到FPGA门数估计值;(2)第二,分别用FPGA和标准门阵列实现相同的功能,从中统计出FPGA的等效门数,这种方法比较多地依赖于经验数据。但是门数是一种等效概念,大约需要7个门来实现一个D触发器,而一个门即可实现一个2输入与非门。其它RAM等都可以进行等效。 但是准确评估规模不用门数,而用基本可编程配置单元的数量。对于Xilinx器件,一个底层可编程单元Slice包含2个触发器(FF)和2个查找表(LUT);对于Altera器件,一个底层可编程单元LE包含1个触发器(FF)和1个查找表(LUT)。

Verilog HDL程序的优劣判断指标包括“面积”、“速度”、和功耗指标,这三者之间并不是相互独立的,可以相互转换。

a、“面积”主要是指设计所占用的FPGA逻辑资源数目,利用所消耗的触发器(FF)、查找表(LUT)以及各类嵌入式硬核来衡量。

b、时序性能即“速度”,是指芯片上稳定运行时所能达到的最高频率。

面积与速度是矛盾的。一方面,要提高速度,就需要消耗更多的资源,即需要更大的面积;另一方面,为了减少面积,就需要降低处理速度。但在实际中,总是存在两者之间的平衡,也意味着两者可以互换。比如,模块复用、乒乓结构、串并变换以及流水线操作。

c、功耗性能

设计的功耗由两部分组成:静态功耗和动态功耗。前者是由静态电流引起的;后者是电路工作时消耗的功率。

2、Modelsim中wave窗口工具使用技巧

(1)Zoom Full,信号的所有周期变化在wave中显示

持续更新——FPGA(ISE和Modelsim) 随笔记录

(2)统计前后时钟周期之差

a.将黄色竖线移动到起始时钟处,点击左下角黄色小锁,锁定,黄色竖线变成红色竖线。

持续更新——FPGA(ISE和Modelsim) 随笔记录

持续更新——FPGA(ISE和Modelsim) 随笔记录

 b.点击左下角绿色加号,再添加一条黄色竖线。此时,wave中存在一条黄线和一条红线。

持续更新——FPGA(ISE和Modelsim) 随笔记录

持续更新——FPGA(ISE和Modelsim) 随笔记录

 c.将新添加的黄线移动到终点时钟处,点击左下角黄色小锁,锁定。

持续更新——FPGA(ISE和Modelsim) 随笔记录

 如图所示,可以看到两条线之间的周期之差为500ms。

(3)修改wave上时间单位

a.在wave窗口的下方时间轴上右击,点击Grid & Timeline Properties。

持续更新——FPGA(ISE和Modelsim) 随笔记录

b.在Time units中选择合适的时间单位。

持续更新——FPGA(ISE和Modelsim) 随笔记录

(4)Modelsim打开的情况下,ISE中测试文件被修改,如何在不关闭Modelsim的情况下,重新编译仿真?

a.点击"Library",在"work"列表下,找到测试文件,右击,选择"Recomple"。

持续更新——FPGA(ISE和Modelsim) 随笔记录

 b.点击"Restart",再点击"Run-All",仿真开始。

持续更新——FPGA(ISE和Modelsim) 随笔记录

 3、FPGA主要有三种设计方式

a.原理图:通过在原理图内输入各种与门、非门、或门逻辑,进行连线,最终得到设计。当设计到较大系统时,设计非常复杂,所以不推荐。

b.Verilog HDL设计方式。

c.IP核输入方式。

一般设计时,会将Verilog HDL设计方式和IP核输入方式结合使用。

4、频率f(HZ)与时间T(s)的转换

持续更新——FPGA(ISE和Modelsim) 随笔记录

例如:10HZ 对应0.1s(100ms)

50MHZ 对应0.00002s(20ns)

100MHZ对应0.00001s(10ns)