EDA技术与应用 教学课件 ppt 作者 陈海宴 第10章 C C++语言开发可编程逻辑器件

上传人:E**** 文档编号:89155473 上传时间:2019-05-19 格式:PPT 页数:38 大小:2.62MB
返回 下载 相关 举报
EDA技术与应用 教学课件 ppt 作者 陈海宴 第10章 C C++语言开发可编程逻辑器件_第1页
第1页 / 共38页
EDA技术与应用 教学课件 ppt 作者 陈海宴 第10章 C C++语言开发可编程逻辑器件_第2页
第2页 / 共38页
EDA技术与应用 教学课件 ppt 作者 陈海宴 第10章 C C++语言开发可编程逻辑器件_第3页
第3页 / 共38页
EDA技术与应用 教学课件 ppt 作者 陈海宴 第10章 C C++语言开发可编程逻辑器件_第4页
第4页 / 共38页
EDA技术与应用 教学课件 ppt 作者 陈海宴 第10章 C C++语言开发可编程逻辑器件_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《EDA技术与应用 教学课件 ppt 作者 陈海宴 第10章 C C++语言开发可编程逻辑器件》由会员分享,可在线阅读,更多相关《EDA技术与应用 教学课件 ppt 作者 陈海宴 第10章 C C++语言开发可编程逻辑器件(38页珍藏版)》请在金锄头文库上搜索。

1、第10章 C/C+语言开发可编程逻辑器件,10.1基于C/C+的硬件设计方法 随着设计规模和复杂度增加的使得设计者需要考虑的问题越来越多,而激烈的市场竞争也使得电子产品上市时间的压力越来越大,采用传统的RTL级的Verilog设计已导致了许多估计不到的难度: (1)如何能够在上市时间的巨大压力之下,快速的找到一种优化的结构来实现? (2)由于系统设计和RTL设计之间存在鸿沟,如何避免理解上的偏差,减少RTL设计中的错误? (3)如何根据接口定义和要求的变化,快速实现RTL设计? (4)如何快速验证RTL是否与原有的算法匹配? (5)如何进行产品的差异化开发,如何真正做到IP的Reuse?,因此

2、,需要采用更高抽象层次的设计方法来满足新的设计需求。而原来的RTL级描述可由高层次综合技术得到,硬件设计人员根据设计约束既能利用系统设计人员产生的算法源程序自动产生一条精确的、可重复性的途径,也能由算法模型产生RTL描述,且速度远快于传统的人工方法。 Calypto 公司的Catapult Synthesis 高层次综合工具是业内第一个也是最成熟的综合无定时的ANSI C+的产品,它采用自动生成的方法,避免了手工编码引入设计的错误,且速度比手工编码的方法快10-20倍。,传统的C/C+的程序设计中,一般采用bool, char, short int, int, float, double 等常

3、规的数据类型,如果直接综合成RTL代码,其硬件开销较大,而实际的设计可能是7, 13,或任意位宽的数据,为了生成更有效的Verilog代码,硬件设计人员需将参数的数据类型由整型、浮点或双精度的数据类型改为Calypto公司的定点算法C数据类型即可进行硬件实现。该数据类型采用C+语言常用的模板技术,具有参数化、可配置性高、信息隐藏等优点,其位宽、舍入方式、溢出处理等均为模板参数,可以灵活修改,可从Calypto网站免费下载。,Calypto公司提供了两种算法C数据类型:ac_int和ac_fixed, 其仿真速度要比相应的SystemC的数据类型(sc_int,sc_bigint、sc_fixe

4、d,sc_fixed_fast)的仿真速度要快 3100倍。 10.2.1 ac_int型 ac_int表示的是W位的无符号整数,其数值范围为02W-1,而ac_int表示的是W位的有符号整数,其数值范围为-2W-12W-1-1。,10.2.2 ac_fixed型 Calypto算法C的定点数据类型可以使得设计者将一个有符号或无符号的位向量定义为静态定点精确的类型,这是RTL描述不能直接做到的,也是高层次综合的一个好处。由于RTL描述中采用的整型数据,需要设计者自己追踪小数点的位置,进行相应的移位操作和舍入操作,而带小数点的数据类型ac_fixed会自动处理。,ac_fixed,W为所需表示的

5、定点数的位宽,I代表整数的位宽,S为布尔类型,代表是有符号数还是无符号数,Q代表量化的类型,O代表溢出处理方式。 ac_fixed表示的是总共有W位无符号的定点数,其中整数为I位,小数有W-I位,其数值范围为0(1-2-W)2I,而ac_fixed表示的是总共有W位有符号的定点数,其中整数为I位,小数有W-I位,其数值范围为(-0.5)2I(0.5-2-W)2I。 ac_fixed类型缺省的舍入方式是截取最低位AC_TRAN,其误差范围为一个量化区间,而AC_RND为四舍五入,其误差范围为半个量化区间。如果将一个变量1.5赋给采用不同舍入方式的ac_fixed类型的话,其结果也是不同的。 ac

6、_fixed a = 1.5; /a = 1,10.3 C/C+ FIR滤波器设计 10.3.1 直接型FIR滤波器 有限冲激响应(FIR)滤波器又称为移动均值滤波器,用当前和过去输入样值的加权和来形成它的输出,滤波器的每一级都保存了一个已延时的输入样值,各级的输入连接和输出连接被称为抽头,并且系数集合hk称为滤波器的抽头系数。一个M阶的滤波器有M+1个抽头,它对一个离散事件冲激的响应在M个时钟周期之后为零,以M=27阶为例,其前馈差分方程如下所示。,10.3.2奇对称FIR滤波器 采用用C/C+来描述硬件,使得设计更快速,效率更高。如果抽头系数以coeffesTAPS_SIZE为奇对称,则可

7、以简单改动如下。,10.3.3转置型FIR滤波器 转置型FIR滤波器是将乘法器的结果进行寄存,而不是寄存输入的数据。其基本的实现方法是将输入的数据input和每一个系数都进行相乘,然后将乘得的结果暂存在寄存器中。其好处是相对于直接型FIR滤波器,转置型FIR滤波器是延迟小,不管是多少阶数FIR,都可以在1个周期完成1次滤波。其代码描述如下:,10.4.1 C+ FIR滤波器的实现 以直接型FIR的实现为例,FIR滤波器的实现通常有并行和串行两种实现方法。第一种方法采用多个乘加器(MAC)并行运算,能以很高的吞吐率进行运算,延迟较小,代价是其硬件规模较大,串行方法用一个乘加器完成FIR的各级运算

8、,使用的硬件资源较少,但相应的延迟较长。采用传统的设计方法学,如果要实现FIR的话,需要根据特定的应用,决定采用串行或并行的架构,再编写相应的RTL代码,如果根据前一个项目的串行要求编写的代码,需要复用与下一个要求高吞吐率的项目中时,就不能满足应用的要求。这也是采用Verilog代码描述不能进行真正IP复用的主要原因。,FIR的硬件实现流程如下。 (1)导入函数实现的CPP文件(fir_fixed.cpp),如图10.4.1所示,(2)指定期望的可编程器件的类型和工作频率,如Altea Stratix II,100MHz,如图10.4.2所示。,(3)直接生成Verilog代码,得到延迟、吞吐

9、率和面积的信息,本例中缺省采用的是串行结构,有82个时钟周期的延迟,每84个周期可处理完一次27阶滤波,如图10.4.3所示。,(4)改变硬件微架构约束,采用部分并行,如8份硬件来完成标号为MAC的循环,如图10.4.4所示。,(5)直接生成Verilog代码,并得到延迟为10、吞吐率为11个时钟周期硬件实现,如图10.4.5所示。,(6) 改变硬件微架构约束,采用完全并行,如27份硬件来完成标号为MAC的循环,如图10.4.6所示。,(7) 直接生成Verilog代码,并得到延迟为2、吞吐率为3个时钟周期硬件实现,如图10.4.7所示。,(8) 改变硬件微架构约束,采用流水架构,每隔一个时钟

10、周期进行新的操作,如图10.4.8所示。,(9)直接生成Verilog代码,并得到延迟为2、吞吐率为1个时钟周期硬件实现,如图10.4.9所示。,(10)同样,可以导入奇对称的FIR代码,并导入testbench代码,但在综合阶段将其排除,指定FPGA型号,期望的工作频率和微架构约束,如图10.4.10所示。,(11)直接生成Verilog代码,并得到延迟为2、吞吐率为1个时钟周期硬件实现,但考虑到系数的对称性,其面积比上文的FIR小40%左右,如图10.4.11所示。,(12)同样,可以导入转置型的FIR代码,指定FPGA型号,期望的工作频率和微架构约束,如图10.4.12所示。,(13)直

11、接生成Verilog代码,并得到延迟为2、吞吐率为1个时钟周期硬件实现,如图10.4.13所示。,(14)双击综合脚本,可自动调用Mentor FPGA综合工具Precision RTL Plus将生成Verilog代码直接综合为门级网表。,(15)综合后可在Precision RTL Plus界面下,如图10.4.15所示,直接调用Altera Quartus进行布局布线,生成sof文件,进行第三章描述板级下载。,10.4.2 FIR滤波器的验证 设计复杂度的日益增加使得验证的时间越来越长,大约占项目开发的60%左右的时间,因而如何提高验证的效率,减少验证的时间就显得尤为重要。Catapul

12、t Synthesis通过生成SystemC事务处理器提供了集成的模块级验证环境,而这些事务处理器把事务或顺序检测与时序的RTL同步起来。这种集成的验证流程使得设计者可方便地复用原始的C+测试程序验证C+设计和输出的RTL代码功能的一致性,也在特定的同步点为混合的语言仿真提供了先进分析和调试手段。它自动为后续的RTL验证提供仿真的Makefile,双击该Makefile就会自动调用Questa/Modelsim/NC-Sim/VCS仿真器进行仿真并自动比对C+仿真结果和RTL仿真结果,减少了脚本和Testbench的编写量。,(1)使能自动验证流程,如图10.4.16所示。,(2)双击RTL和

13、C+验证的Makefile,会自动调用Mentor Questa/Modelsim进行编译,如图10.4.17所示。,(3)Mentor Questa/Modelsim仿真结果为”Simulation PASSED”,则说明C/C+设计与生成的Verilog代码的功能一致,如图10.4.18所示。,10.5 小结 本章描述的FIR采用C/C+语言实现,利用Calypto高层次综合工具Catapult Synthesis,针对不同应用而施加不同的约束,迅速综合出四种不同性能的硬件,其吞吐率分别为84、11、3、1个 时钟周期。利用Catapult Synthesis提供的集成仿真和逻辑综合环境,复用原有的C+测试平台,进行了C+源码和生成的RTL代码的验证,保证了FIR功能的正确性。并自动调用Mentor公司Precision RTL Plus软件进行FPGA 逻辑设计综合。因此,采用C/C+语言结合高层次综合技术进行IP的设计与实现,可以真正实现设计复用,做到一次开发多次受益。,10.6习题 1 利用FIR C+代码来实现脉动型FIR 2 利用高层次综合技术实现256点基2FFT 3 将代码参数化,实现128到8192 2的幂次方点的FFT,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号