毕业论文基于fpga的dct处理器设计内容摘要:

区用 ALTERA 的人多,在美国则是平分秋色。 全球 PLD/FPGA 产品 60%以上是由 Altera 和 Xilinx 提供的。 可以讲 Altera 和 Xilinx 共同决定了 PLD 技术的发展方向。 当然还有许多其它类型器件,如: Lattice, Vantis, Actel, Quicklogic, Lucent 等。 ALTERA 的 FPGA 产品 Altera 公司生产的 FLEX 10K 系列的 FPGA,具有规模覆盖范围广、布线资源丰富、时间可预测性好的优点,在数字通信系统设计中得到了广泛的 应用。 由于在信道编码中,没有过多存储器的要求,它只是需要很多的 D触发器和一些常用的门电路,而 FLEX 10K芯片有一定的片内 EAB 资源,另外实现信道编码的时序控制逻辑不太复杂,大概需要 2万门左右的资源就够了,再加上系统其它功能块也不过几万门。 考虑到方案的性价比以及将来的功能的增加,本方案的 FPGA 选用 Cyclone 芯片,实现了系统的单片设计,从而大大减小电路的复杂度和体积。 此外 Altera 公司的 Cyclone 系列的 FPGA 在通信行业具有广泛的应用,这是一款低成本的 FPGA 产品。 电子科技大学成都学院本科毕业设计 8 MaxPlusII、 QuartusII 介绍 MaxPlusII 是 ALTERA 公司较早的一款软件,它的界面非常的简单,是初学者比较容易接受的一款软件,但是 Altera 公司已经停止了对其的升级,所以 MaxPlusII 所支持的器件比较少,而且对于一些大型项目开发就不太适用了。 图 21 MaxPlusII界面 QuartusII 是 ALTERA 公司的新一代开发软件,它拥有两种界面,一种是 QuartusII的界面,另一种是用有 QuartusII 全部功能的 MaxPlusII 界面,从而使原有的 MaxplusII的用户更快的适应新的开发 环境。 目前 QuartusII 最高版本好似。 相对于 MaxPlusII, QuartusII支持更多的器件,而且也支持 Altera最新的一些器件如 Straix、Straix GX 系列。 在本课题中,我们采用 QuartusII 开发软件,在功能上比 MAXplusII更加强大,在本课题,我使用的是 QuartusII。 图 22 QUARTUSII 文中,对于一些简单的小模块,给出的仿真图是用 maxplusII 的,而对于一些较大的模块和最后结果仿真,则采用 QuartusII 给出。 第二章 FPGA技术简介 9 MODELSIM 的使用 ModelSim 是业界最优秀的 HDL 语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持 VHDL 和 Verilog 混合仿真的仿真器。 它采用直接优化的编译技术、 Tcl/Tk 技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护 IP 核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是 FPGA/ASIC 设计的首选仿真软件。 主要特点: • RTL和门级优化,本地编译结构,编译仿真速度快,跨平台跨版本仿真; • 单内核 VHDL 和 Verilog 混合仿真; • 源代码模版和助手,项目管理; • 集成了性能分析、波形比较、代码覆盖、数据流 ChaseX、 Signal Spy、虚拟对象 Virtual Object、 Memory 窗口、 Assertion 窗口、源码窗口显示信号值、信号条件断点等众多调试功能; • C 和 Tcl/Tk 接口, C 调试; • 对 SystemC 的直接支持,和 HDL 任意混合 • 支持 SystemVerilog 的设计功能; • 对系统级描述语言的最全面支持, SystemVerilog, SystemC, PSL。 • ASIC Sign off。 ModelSim 分几种不同的版本: SE、 PE、 LE 和 OEM,其中 SE 是最高级的版本 ,而集成在 Actel、 Atmel、 Altera、 Xilinx 以及 Lattice 等 FPGA 厂商设计工具中的均是其 OEM 版本。 SE 版和 OEM 版在功能和性能方面有较大差别,比如对于大家都关心的仿真速度问题,以 Xilinx 公司提供的 OEM 版本 ModelSim XE 为例,对于代码少于 40000 行的设计, ModelSim SE 比 ModelSim XE 要快 10 倍;对于代码超过 40000 行的设计, ModelSim SE 要比 ModelSim XE 快近 40 倍。 ModelSim SE 支持 PC、 UNIX 和 LINUX 混合平台;提供全面完善以及高性能的验证功能;全面支持业界广泛的标准; Mentor Graphics 公司提供业界最好的技术支持与服务。 硬件描述语言 —— Verilog HDL 所谓硬件描述语言,就是可以描述硬件电路的功能,信号连接关系及定时关系的语言。 其中 Verilog HDL 是一种应用广泛的硬件描述语言,可用于算法级、门级到开关级的多种抽象层次的数字系统设计。 从语法结构来讲, Verilog HDL 和 C语言有许 多相似之处,它能够形式化地表示电电子科技大学成都学院本科毕业设计 10 路的结构和行为,可以借用高级语言的结构和语句,能够在多个层次上对所设计的系统加以描述。 Verilog HDL 最大的特点就是易学易用,由于 Verilog HDL 的各种优越性,使它广泛流行,尤其在 ASIC 领域,更是处于主流地位。 在美国、日本等国家, Verilog HDL 语言一直是使用最为广泛的硬件描述语言。 那么为什么要使用 Verilog HDL 呢。 首先,考虑到 Verilog HDL 与 C语言有着密切的联系,而 C 语言很灵活,查错功能强,可以通过 PLI(编程语言接口)编写自己的系统任务直接与硬件仿真器(如 VerilogXL)结合使用。 C 语言是目前世界上应用最为广泛的一种编程语言,因而 C 程序的设计环境比 Verilog HDL 的完整。 此外, C 语言可应用于许多领域,有可靠的编译环境,语法完备,缺陷较少。 比较起来, Verilog 语言只是针对硬件描述的,在别处使用(如用于算法表达等)并不方便。 而且 Verilog 的仿真、综合、查错工具等大部分软件都是商业软件,与 C 语言相比缺乏长期大量的使用,可靠性较差,亦有很多缺陷。 所以,只有在 C 语言的配合使用下, Verilog 才能更好地发挥作用。 C 语言与 Verilog 语言相辅相成,互相配合使用。 这就是既要利用 C 语言的完整性,又要结合 Verilog 对硬件描述的精确性,来更快更好地设计出符合性能要求的硬件电路系统。 利用 C 语言完善的查错和编译环境,设计者可以先设计出一个功能正确的设计单元,以此作为设计比较的标准。 然后,把 C 程序一段一段地改写成用并型结构(类似于Verilog)描述的 C程序,此时还是在 C 的环境里,使用的依然是 C 语言。 将测试输入同时加到 C 与 Verilog 两个单元,将其输出做比较。 这样很容易发现问题的所在,然后更正,再做测试,直至正确无误。 剩 下的工作就交给后面的设计工程师继续做。 第三章 DCT 的算法理论简介 11 第三章 DCT 的算法理论简介 自从离散余弦变换被提出来以来, DCT 已经被广泛的应用在数字信号处理中,特别是语音及图象数据压缩,自适应滤波以及通信系统等领域。 目前基于 8 8的二维离散余弦变换( 2DDCT)被广泛的应用在各种图象和视频压缩标准中,诸如 JPEG,MPEG1,MPEG2, ,+和 MPEG4。 DCT 是如图 21 所示的图象和视频压缩系统中的一个核心部分,它主要是完成数据变换的功能。 类似于离散傅立叶变换, DCT 也是把一个信号或者 图象从空域变换到频域中。 DCT 根据图象内容的重要性把图象分成不同的部分。 对于大多数的图象来说,信号能量主要集中在低频部分。 压缩一般都是通过丢弃高频信息来实现的,因为高频信息的损失不容易被人的视觉系统察觉。 在选取均方差准则下,KarhunenLoeve 变换 (简称 KLT)是信号处理的最佳变换,但是 KLT 没有快速算法,且计算困难,没有实用价值。 在有快速算法的次最佳变换中, DCT 基向量最接近 KLT,因而发展很快。 由于 DCT 的变换矩阵是用浮点数表示,浮点运算量较大,占用较多系统资源。 为了提高变换效率, DCT 又发展 出用定点计算或者较大的整型变换逼近浮点运算,由于存在精度误差,即使没有经过量化,反变换后也不能完全恢复图像数据,也就是编码的可逆性不强。 整数变换的产生,同时解决了计算精度误差大和编码效率低的问题,其特点是用整数变换矩阵代替 DCT 的浮点数变换矩阵,这样变换过程完全是整数运算,不存在精度误差,保证了编码的可逆性;同时整数乘法可用加减法和位移代替,因此变换过程可以完全通过加减法和位移实现,运算量大幅度减少。 在这章中先对离散余弦变换算法的发展作简单介绍,然后以此为基础讨论了适合于硬件实现的整数 DCT 算法结构,最后 介绍了本设计所采用的整数 DCT 算法结构。 图像编码过程中的离散余弦变换编码包括两个阶段:离散余弦变换和量化编码。 离散余弦变换属于一种正交变换,就是把信号分解为余弦函数系的线性叠加,藉此可以通过处理系数来代替处理信号。 它的作用是使空间域的能量重新分布,降低信号的相关性,它的变换是可逆的。 然而离散余弦变换本身并不能达到数据压缩的作用,而要实现数据压缩,就要选择适当的比特分配方案和量化方法,量化过程是不可逆的或者说是有损压缩。 目前广泛使用的压缩算法采用的都是 8 8的二维 DCT 变换,二维 DCT 变换可通过行列分解的方法 ,变换成两重的一维 DCT 变换。 虽然人们对于一维 DCT 算法已经有了非常多的研究, Loeffler 算法的乘法计算次数已经减少到了理论极限值,研究似乎已经到了尽头。 电子科技大学成都学院本科毕业设计 12 DCT 快速算法简介 一维离散余弦变换( 1D DCT)的快速算法 DCT 首先由 等人于 1974 年提出, N 点 1D DCT{Y(k):k=[0,N1]}对应{X(n):n=[0,N1]}定义如下 : 102 ( 2 1 )( ) ( ) ( ) c o s ( )Nnkny k b k X nNN   N 阶 DCTI 矩阵(第一类): 0 , 12 [ c o s ]11I N k n k n NnkC b bNN      N 阶 DCT II 矩阵(第二类): 0 , 12 ( 2 1 )[ c o s ]2II N k k n NnkCbNN     N 阶 DCT III 矩阵(第三类): 0 , 12 ( 2 1 )[ c o s ]2III N k k n NnnCbNN     N 阶 DCT IV 矩阵(第四类): 0 , 12 ( 2 1 ) ( 2 1 )[ c o s ]4IV N k k n NnkCb NN     为了有效的计算 DCT,许多算法被提出,一般 DCT 快速算法分为两种:间接算法和直接算法,两种算法都是集中在蝶型结构上,且目的都是为了减少乘法和加法的计算量。 间接算法是利用 DCT 和 DFT, DHT 等正交变换之间的 关系,用 DFT 或 DHT快速算法来计算DCT。 间接算法过程简单,主要工作是处理算法间的转换,因此往往需要加一些额外的操作步骤,由于将其他变换的快速算法应用在 DCT 中总有其自身的局限性,所以现在算法上已很少有人采用间接算法来计算 DCT。 直接算法包括 DCT 变换矩阵分解,递归算法两种技术,不同之处在于矩阵分解是利用稀疏矩阵分解法将变换矩阵分解,而递归算法是由较低阶 DCT 矩阵递归产生较高阶 DCT 矩阵,可以说递归算法是分解算法的逆算法,但递归算法较矩阵分解算法有良好的数值稳定性。 四类 DCT 算法的引入是由于对 DFT 的分 解和四种 DWT 的存在 ,因为 DCT 算法和 DFT、DWT 算法可以进行互相转换,因此借由 DFT、 DWT 算法的不同形式,引入四类 DCT 算法。 第 I类 DCT 算法的定义是针对 N1 阶,它是在第 II 类 DCT 算法提出后不久由王中德教授提出的,同样的也被应用于数字信号处理中,但是相比较第 II 类 DCT 算法,它所需要的计算量更少。 第 I类和第 II类 DCT 算法非常相象,只是针对不同的输入情况。 第 III类DCT算法和第 II类 DCT算法的不同之处就是将 k ,n互换,因此 DCTIII可以看作是 DCTII第三章 DCT 的算法理论简介 13 的逆变换 (再乘一个系数的话 ),这 种变形通常被简单的称为逆离散余弦变换。 一般的,第 III 类 DCT 算法的计算也都是考虑转换成第 II类 DCT 的计算问题,从第 II 类快速 DCT算法可以很直接地得到第 III 类 DCT 算法,但是对于多维的第 III 类 DCT 算法,由于其转化为第 II 类 DCT需要大量预加法并且只有简单的计算结构,所以一般多维的第 III类DCT 算法利用多项式变换将其分解为一维变换,再利用对称性来减少所需的计算量。 第IV 类 DCT 算法有很。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。