读后感.doc

28.基于FPGA上的FFT实现

收藏

压缩包内文档预览:
预览图 预览图 预览图 预览图
编号:511932    类型:共享资源    大小:580.40KB    格式:RAR    上传时间:2015-11-11 上传人:QQ28****1120 IP属地:辽宁
6
积分
关 键 词:
毕业设计
资源描述:
28.基于FPGA上的FFT实现,毕业设计
内容简介:
江苏大学本科毕业论文读书笔记 1 浅谈数字系统的 Verilog HDL 实现 读数字系统设计与 Verilog HDL有感 考虑到我们的毕业设计 FFT 的 FPGA 实现最后在 FPGA 上进行定点程序的设计需要,我去了解了这本电子工业出版社的 EDA 应用工具丛书之一的数字系统设计与Verilog HDL,读完后对使用 Verilog 进行数字系统设计有了一些了解,并借以此去解决具体的毕业设计的应用。 随着数字时代的到来,我们生活的各个层面都发生了巨大的变 化。使用数字技术对信息进行处理,传输的电子系统皆可称为数字系统,相对于模拟系统,它具有工作稳定可靠,抗干扰能力强;精确度高;便于大规模集成,易于实现小型化;便于模块化;便于加密,解密。著名的 Moores law 曾经预言:大约每 18个月,芯片的集成度提高一倍,而功耗下降一半。几十年的半导体电路的发展印证了定律的正确性,经历了 SSI,MSI,LSI 到VLSI,直到现在的 SOC,人们已经能够把一个完整的电子系统集成在一块芯片上了。数字系统的设计理念也随之发生着深刻的变化, PLD 器件和 EDA 技术给今天的硬件设计人员提供了强有力的工具。自下而上的传统设计方法被自上而下的设计方法取代,在自上而下的设计中,将设计分为几个不同的层次:系统级,功能级和门级等,然后,按照自上而下的顺序,在不同的层次上对系统进行设计,描述和仿真。自上而下的设计方法也不是绝对的,在设计过程中,有时候也需要使用自下而上的方法。这种方法是在系统划分和分解的基础上,先进行底层单元的设计,然后再逐步向上进行功能块和子系统的设计,直至构成整个的系统。 图形设计方式是设计较小的电路与系统时经常采用的方法,这种方法直接把设计的系统用原理图表现出来,具 有直观,形象的优点。但是图形法遇到设计系统的规模比较的大,或设计软件不能提供设计者所需要的库单元时,这种方法就显得很受限制了,而且用原理图表示的设计,通用性,可移植性差,所以在现代的设计中,越来越多的采用硬件描述语言的设计方法。 Verilog HDL 是目前应用最为广泛的硬件描述语言。 Verilog HDL 可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合,仿真验证和时序分析等。 Verilog HDL适合算法级,寄存器传输级,逻辑级,门级,版图级等各个层次的设计和描述。 采用 Verilog HDL 进行设计的最大优点是其工艺的无关性。这使得工程师在功能设计,逻辑验证阶段可以不必过多的考虑门级及工艺实现的具体细节,只需要根据系统的设计要求施加不同的约束条件,即可设计出实际的电路。实际上,这是利用了计算机的强大功能,在 EDA 工具的帮助下,把逻辑验证与具体的工艺库结合起来,将布线及时延计算分成不同的阶段来实现。 因为 Verilog HDL 近似 c 语言的表达习惯,而且 c 语言的语法和编程规则我们比较熟悉,所以对 Verilog 语言本身是比较容易接受的,关键在于理解其作为一种硬件描述语言的特点,通过学 习加上前期课程数字逻辑的基础,我对 Verilog 有了一定的了解。 模块是 verilog 的基本单元,它代表某些逻辑实体,这些逻辑实体也就是通常在设计中常用的硬件部件。例如,一个模块可以代表一个简单的门,一个 32 位计数器,一个存储器子系统,一个计算机系统,或者一个网络计算机等。在我们进入具体的语言结构之前,让我们看一个模块定义的例子 (例 4 1)。 nts江苏大学本科毕业论文读书笔记 2 例 2 1 模块定义 module add2bit (inl,in2,sum); intput in1,in2; output 1:0 sum; wire inl, in2 ; reg1:0 sum; always (inl or in2) begin sum inl + in2 ; $display (“ The sum of %b and %b is %0d(time=%0d)”,in1,in2,sum,$time); end endmodule 每个模块都有一个模块头。模块头包含模块名和输入输出的列表。这些是用来与环境交互信息的。所有的 (外部 )输入输出和内部变量一样都要被声明。一般来说,它们 被声明为线或者寄存器。前者只提供了模块于单元之间的相互连接,而后者可以保持状态信息。状态信息的值可以通过状态行为来改变。模块主体的核可用“ ”代替。这些条目可以有两三种不同的类型,最通常的是持续赋值、结构实体和行为实体。持续赋值是模块中组合部分的简单描述。 与大多数编程语言一样, verilog 支持保持不变的常量和在仿真中可以修改的变量。verilog 中的常量可以是十进制、十六进制、八进制或者二进制,且有如下格式 widthradix value “ width”是一个描述常量宽度的可选十进制整数。“ radix”是可选的,且是 b、 B,d, D, o、 O, h 和 H 中之一。其中 B 和 b 指明是二进制常量; 0 和 o 指明是八进制常量; D 和 d 指明是十进制常量; H 和 h 指明是十六进制常量。 如果没有说明宽度,那么可以由常量的值推断得到。如果宽度的基没有说明,一般都假设为十进制的。例如如下例子: 15 (十进制 15) hl5 (十进制 21,十六进制 15) 5blO011 (十进制 19,二进制 10011) nts江苏大学本科毕业论文读书笔记 3 12h01F (十进制 31,十六进制 01F) 字符串 常量写在双引号中间,并转换成相应的 ASCII 二进制格式。例如,字符串 ab等于 16h5758。 verilog 中的变量可以分类为寄存器、线、整数、实数、事件和时间。整数、浮点数、时间和事件类变量代表抽象概念,而寄存器和线可以直接映射到硬件。线代表单元之间的互连,寄存器代表存储单元。寄存器和线都有宽度,宽度在声明时定义或者默认为 1。寄存器和线变量中的每一位可以是 1、 0、 x 和 z 四种值之一。 x 代表一个没有初始化或者有冲突的变量,例如当两个输出连在一起且分别试图驱动为不同值的信号时。z 代表高阻或者悬空,一般用在三 态总线中。寄存器和线可以用在算法表达式中且由仿真器解释为无符号整数。 verilog 语言从 c 语言中借鉴了许多操作语法和语义。但有一个显著的例外,即在verilog 中没有自动加 (十十 )和自动减 (一一 )操作符。 用数据流描述方式对一个设计建模的最基本的机制就是使用连续赋值语句。在连续赋值语句中,某个值被指派给线网变量。连续赋值语句的语法为: assign delay LHS_net =RHS_sepression; 右边表达式使用的操作数无论何时变化,右边表达式都重新计算,并且在指定的时延后变化值被赋予左边 表达式的线网变量。时延定义了右边表达式操作数变化与赋值给左边表达式之间的持续时间。如果没有定义时延值,缺省值为 0。 设计的行为功能使用下述的过程语句结构描述: 1) initial 语句:此语句只执行一次。 2) always 语句:此语句总是循环执行,或者说此语句重复执行。 只有寄存器类型数据能够在这两种语句中被赋值。寄存器类型数据在被赋新值前保持原有值不变。所有的初始化语句和 always 语句在 0 时刻并发执行。 在顺序过程中出现的语句是过程赋值模块化的实例。模块化过程赋值在下一条语句执行前完成。过程赋值可以有一 个可选的时延。 时延可以细分为两种类型: 1)语句间时延:这是时延语句执行的时延; 2)语句内时延:这是右边表达式数值计算与左边表达式赋值间的时延。 在这次毕业设计中我们要使用 Verilog HDL 来实现基 -2 时分的 8 点 FFT 算法,考虑到硬件描述语言与 c 语言的差异性,我们重新回到 8 点 FFT 的流程图,这次从电路的角度分析这张图的电路实现的大概形式,考虑清楚后使用 verilog 进行电路描述以解决软件算法最终在硬件器件上的落实。 在 C 语言中我们是以测试算法为目的,所以数据直接定义在数组中,直接是程序的一部分。而真正的 FFT 硬件系统是个绝对的实时处理系统,所以在硬件中设计的整体概念中,首先建立的如何将数据打入硬件系统,如何将数据结果输出硬件系统。再者计算模块也不是像 C 语言的那样的情况,不适合像 C 语言那样进行级的叠代,看成三层级连的组合电路。硬件系统存在数据溢出的危险,但经过 C 定点的仿真,我们已经把这个问题排除nts江苏大学本科毕业论文读书笔记 4 在外,可以专注电路的语言描述。整个流程包括,数据打入,填满 8 个缓冲区
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:28.基于FPGA上的FFT实现
链接地址:https://www.renrendoc.com/p-511932.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!