




已阅读5页,还剩81页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于 fpga 的数字调制解调器设计 基于 fpga 的数字调制解调器设计 摘要摘要 本设计使用 fpga 在 eda 技术开发软件 quartus上实现以正弦信号为 载波的三种调制信号 ask、fsk、psk 的调制和解调。系统采用 altera 公司生产的 de2 开发板,cyclone ii ep2c35f672c6 型号的 fpga 和 epcs16 系列的配置驱动,使用 vhdl 硬件描述语言实现,系统时钟为 50mhz,经 四分频产生一路时钟信号经过 dds 波形发生器形成 ask,psk 及 fsk 的一 路载波,fsk 的另一路载波由系统时钟经八分频后经过 dds 波形发生器后 产生。由于 ask 和 psk 调制特性相近,载波都为一路信号。因此在设计时 将 ask 和 psk 调制放在同一模块里设计,用一个选择键和两个基带信号控 制端来控制。系统时钟经过 512 分频后经过随机信号模块产生一路周期为 15 的伪随机序列作为数字调制的基带信号。在解调时,用非相干解调法解调 ask 和 psk 信号,用过零检测法解调 fsk 信号。经过功能仿真和验证后, 测试输出信号与基带信号是否相符。 关键词:关键词:fpga, ask, psk, fsk digital modulation and demodulation based on fpga abstract this design uses fpga on eda technology development platform quartus to achieve the generation and the demodulation of three modulation signal ask,fsk,psk as carrier through sinusoidal signals.the system uses the altera companys de2 development board,fpga of type cyclone ii ep2c35f672c6fpga and driver configuration of epcs16 series.this system is realized in vhdl hardware description language,whose ask,psk and fsk carrier is generated when the four frequency produces a clock signal through the dds waveform generator,and the system clock is 50mhz.because the characteristics of ask and psk modulation are similar to each other,which means their carrier are both one way signal,the modulation of ask and psk are put on the same model when designed,with a selection key and the two baseband signal control ends controlling.system clock generates pseudo random sequence baseband signals whose one road cycle is 15 as baseband signals through random signal model after the 512 frequency division.when in modulation,we use non coherent demodulation to demodulate ask and psk signal,and the zero crossing detection method for fsk signal demodulation.after the system is tested through the function simulation and verification,whether the output signal and the baseband signal are conformed to each other or not will be tested key words: fpga, ask, psk, fsk 目录目录 1 1 绪论绪论1 1 1.1 课题背景与研究现状 1 1.1.1 数字调制解调背景知识.1 1.1.2 fpga 背景知识2 1.2 课题的主要研究工作 4 1.3 本论文的结构 4 2.eda2.eda 技术简介技术简介 6 6 2.1 quartus ii 简介.6 2.1.1 quartus ii 的使用及主要设计流程7 2.1.2 quartus ii 的原理图输入设计流程.10 2.1.2 signaltap ii 逻辑分析仪的使用.11 2.2 vhdl 语言简介 13 2.2.1 vhdl 的基本结构.14 2.2.2 vhdl 的基本语法.19 3.3.数字调制解调原理数字调制解调原理2121 3.1 ask 的调制与解调 .21 3.1.1 ask 调制原理21 3.1.2 ask 解调原理23 3.2 psk 的调制与解调 .23 3.2.1 psk 调制原理23 3.2.2 psk 解调原理25 3.3 fsk 的调制与解调 .26 3.3.1 fsk 调制原理26 3.3.2 fsk 解调原理27 4 4 硬件模块方案设计与实现硬件模块方案设计与实现 3030 4.1 dds(直接数字式频率合成器) 30 4.1.1 dds 原理30 4.1.2 硬件模块设计图31 4.1.3 频率控制模块 .32 4.1.4 波形选择模块 .32 4.1.5 波形存储模块 .33 4.1.6 顶层实体模块 .34 4.1.7 程序及仿真结果分析 .35 4.2 m序列发生器36 4.2.1 m 序列原理36 4.2.2 m 序列发生器设计38 4.2.3 m 序列产生模块41 4.2.4 m 序列仿真结果分析41 4.3 分频器设计 .43 4.4 ask/psk 调制与解调 .43 4.4.1 ask/psk 调制方案43 4.4.2 ask/psk 调制模块44 4.4.3 ask/psk 调制仿真结果分析45 4.4.4 ask/psk 解调方案46 4.4.5 ask/psk 解调模块47 4.4.6 ask/psk 解调仿真结果分析48 4.5 fsk 调制与解调 .49 4.5.1 fsk 调制方案49 4.5.2 fsk 调制模块50 4.5.3 fsk 仿真结果分析50 4.5.4 fsk 解调方案51 4.5.5 fsk 解调模块52 4.5.6 fsk 解调仿真结果分析52 5 5 系统调试系统调试5454 5.1 系统电路图 54 5.2 系统仿真结果 54 结论结论5757 致谢致谢5858 参考文献参考文献5959 附录:源代码附录:源代码4646 外文资料翻译外文资料翻译( (附原文附原文) )6666 1 1 绪论 1.1 课题背景与研究现状 1.1.1 数字调制解调背景知识 如今社会通信技术的发展速度可谓日新月异,计算机的出现在现代通信 技术的各种媒体中占有独特的地位,计算机在当今社会的众多领域里不仅为 各种信息处理设备所使用,而且它与通信向结合,使电信业务更加丰富。随 着人类经济和文化的发展,人们对通信技术性能的需求也越来越迫切,从而 又推动了通信科学的发展。 在通信理论上,先后形成了“过滤和预测理论” 、 “香浓信息论” , “纠错 编码理论” , “信源统计特性理论” , “调制理论”等。通信作为社会的基本设 施和必要条件,引起的世界各国的广泛关注,通信的目的就是从一方向另一 方传送信息,给对方以信息,但是消息的传送一般都不是直接的,它必须借 助于一定形式的信号才能便于远距离快速传输和进行各种处理。 虽然基带信号可以直接传输,但是目前大多数信道不适合传输基带信号。 现有通信网的主体为传输模拟信号而设计的,基带数字信号不能直接进入这 样的通信网。基带信号一般都包含有较低的频率,甚至是直流的分量,很难 通过有限尺寸的天线得到有效辐射,因而无法利用无线信道来直接传播。对 于大量有线信道,由于线路中多半串接有电容器或并接有变压器等隔直流元 件,低频或直流分量就会受到很大限制。因此,为了使基带信号能利用这些 信道进行传输,必须使代表信息的原始信号经过一种变换得到另一种新信号, 2 这种变换就是调制。实际中一般选正弦信号为载波信号。代表所传信息的原 始信号,是调制载波的信号。 数字调制传输在现代通信中发挥着越来越重要的作用,主要是因为数字 通信有以下优点: 数字信号便于存储、处理 、抗干扰能力强; 数字信号便于交换和传输; 可靠性高,传输过程中的差错可以设法控制; 数字信号易于加密且保密性强; 通用性和灵活性好。经过调制后,各路信号可已搬移到更高不重叠的 频段去传输,从而避免多路传输中的相互干扰。基于这种目的,信号 经调制后再传输的方式又称为频带传输。 二进制数字调制所用调制信号由“0”和“1”代表的数字信号脉冲序列 组成。因此,数字调制信号也成为键控信号。在二进制振幅调制、频率调制 和相位调制分别称为振幅键控(ask) 、频移键控(fsk) 、相移键控(psk) 。 数字调制产生模拟信号,其载波参量的离散状态是与数字数据相对应的,这 种信号适宜于在带通型的模拟信道上传输。虽然三种调制解调的原理比较简 单,但作为数字通信原理的入门学,理解 ask,psk,fsk 后可以容易理解 其他更复杂的调制系统,为以后的进一步发展打下基础。 1.1.2 fpga 背景知识 现场可编程门阵列(fpga)是在专用asic的基础上发展出来的,它克 服了专用asic不够灵活的缺点。与其他中小规模集成电路相比,其优点主 要在于它有很强的灵活性,即其内部的具体逻辑功能可以根据需要配置,对 3 电路的修改和维护很方便。随着vlsi(very large scale ic,超大规模集成电 路)工艺的不断提高,单一芯片内部可以容纳上百万个晶体管,fpga/cpld 芯片的规模也越来越大,目前,fpga的容量已经跨过了百万门级,使得 fpga 成为解决系统级设计的重要选择方案之一。和其他通用 dsp相比, fpga在处理方式上和设计编程上有很大的区别,它更强调数据的平行处理 和流水线处理并且有更强的灵活性和可编程型,所以fpga在定点数据处理 方面有很大的优势。fpga/cpld可容纳上百万个晶体管,芯片的规模也越 来越大。为了满足设计需求,以可编程门阵列fpga为代表的器件得到了广 泛的应用,器件的集成度和运行速度都在高速增长。基于fpga的数字调制 解调器与模拟电路调制解调器相比,具有功耗低、结构简单、性能优越等特 点,故在实际工程中得到了广泛的应用。针对传统用硬件实现数字调制解调 的方法,特别是相干解调需要提取载波,设备相对复杂、成本较高的特点,研 究了基于fpga芯片的调制解调系统,即通过quartus ii软件,采用vhdl硬 件描述语言,利用de2开发板设计并实现ask,fsk,psk的调制解调器。 由于fpga的调制解调技术在通信系统中占据非常重要的地位,它的优劣决 定了通信系统的性能。 本设计用到的是 altera 公司的 fpga 器件 ep2c35f672c6,该器件隶属于 cyclone ii 系列,具有更大的容量和极低的单位逻辑单元成本。从结构上看, 该器件具有多达 150 个嵌入 1818 乘法器,适合于实现低成本数字信号处理 (dsp)应用;它包含每块具有 4608 bit 的 m4k 存储块,提供高达 1.1mbit 的片内存储器,支持多种配置;它能以 688 mbps 的速率同 ddr、ddr ii 和 sdr sdram 器件及 qdrii sram 器件相连接,并支持多种单端和差分 i/ o 标 准;支持 nios ii 系列嵌入式处理器,具有低成本和完整的软件开发工具。 4 altera 也为 cylcone ii 器件客户提供了 40 多个可定制 ip 核,altera 和 altera megafunction 伙伴计划(amppsm)合作者提供的不同的 ip 核是专为 cyclone ii 架构优化的,包括:nios ii 嵌入式处理器;ddr sdram 控制器; fft/ifft;pci 编译器;fir 编译器;nco 编译器;pos-phy 编译器;reed solomon 编译器;viterbi 编译器等。 1.2 课题的主要研究工作 课题主要研究二进制 ask,psk,fsk 调制解调系统的实现,完成对数 字信号的调制与解调,在简化系统的前提下,根据系统的总体功能与硬件特 点,设计总体框图,根据 vhdl 语言的特点,对 vhdl 建模并进行具体语 言设计,让系统的解调结果准确,进行波形仿真与调试,完成调制解调任务。 本系统设计的重点在于作为载波的正弦波,由正弦信号发生其产生,在一个 周期内完成 256 次采样。另外,三种数字信号的解调方法也不完全相同。由 于利用相干解调方法需要本地载波参与解调,会使系统复杂且准确度降低, 因此采用非相干解调,以正确解调出基带信号。 1.3 本论文的结构 第一章阐述了数字调制解调的背景知识和现状,以及 fpga 的基本概念。 第二章介绍了 eda 以及开发 fpga 的软件的基本知识和主要使用方法, 并介绍了 vhdl 语言的设计流程和基本语法。 第三章分析了 ask,psk,fsk 的调制解调原理理论分析。 5 第四章结合硬件平台进行方案选择,设计数字调制解调系统,包括程序 的编写及硬件模块设计,以及仿真结果。 第五章给出了调制解调器调制解调信号的测试结果和程序仿真结果。 第六章为本论文的结束语。 6 2.eda 技术简介 eda 是电子设计自动化(electronic design automation)的缩写,在 20 世纪 90 年代初从计算机辅助设计(cad) 、计算机辅助制造(cam) 、计算 机辅助测试(cat)和计算机辅助工程(cae)的概念发展而来的,eda 技术就 是依靠功能强大的电子计算机,在 eda 工具软件平台上,对以硬件描述语言 hdl(hardware description language)为系统逻辑描述手段完成的设计文 件,自动地完成逻辑编译、化简、分割、综合、优化、仿真,直至下载到可 编程逻辑器件 cpld/fpga 或专用集成电路 asic(application specific integrated circuit)芯片中,实现既定的电子电路设计功能。eda 技术可 把数字通信技术,微电子技术和现代电子设计自动技术结合起来,实现硬件 设计软件化,加速了数字通信系统设计的效率,降低了设计成本。 利用 eda 技术进行电子系统的设计,具有以下几个特点:(1) 用软件的 方式设计硬件;(2) 用软件方式设计的系统到硬件系统的转换是由有关的开 发软件自动完成的;(3) 设计过程中可用有关软件进行各种仿真;(4) 系统 可现场编程,在线升级;(5) 整个系统可集成在一个芯片上,体积小、功耗 低、可靠性高。因此,eda 技术是现代电子设计的发展趋势。 2.1 quartus ii 简介 quartus ii 是 altera 公司继 maxplus ii 后,所提供的 fpga/cpld 开 发集成环境,主要针对本公司新器件和大规模 fpga 的开发。quartus ii 提 供一个容易适应特定设计所需要的完整的多平台设计环境。它不仅包括 7 fpga/cpld 设计所有阶段的解决方案,而且也提供可编程片上系统 (sopc)设计的综合性环境。quartus ii 除了保留有 maxplus ii 的特色 外,也可以利用第三方的综合工具,如 synopsys、nativelink、仿真工具 modelsim 等。设计者可以通过传统原理图输入法(gdf)或硬件描述语言 (vhdl)设计一个数字系统,通过软件仿真我们可以事先验证设计正确性, 在 pcb 完成后还可以利用 cpld 的在线修改能力随时修改设计而不必改动硬 件电路。 电路设计与输入是指通过某些规范的描述方式,将工程师电路构思输入 给 eda 工具。常用的设计方法有硬件描述语言(hdl)和原理图设计输入方法 等。原理图设计输入法在早期应用的比较广泛,它根据设计要求,选用器件、 绘制原理图、完成输入过程。这种方法的优点是直观、便于理解、元器件库 资源丰富。但是在大型设计中,这种方法的可维护性较差,不利于模块构造 与重用。更主要的缺点就是当所选用芯片升级换代后,所有的原理图都要做 相应的改动。目前进行大型工程设计时,最常用的设计方法是 hdl 设计输入 法,其中影响最为广泛的 hdl 语言是 vhdl 和 verilog。他们的共同特点是利 用由顶向下设计,利于模块的划分与复用,可移植性好,通用性好,设计不 因芯片的工艺与结构不同而变化,更利于向 asic 的移植。波形输入和状态机 输入方法是两种常用的辅助设计输入方法:使用波形输入时,绘制出激励波 形与输出波形,eda 软件就能自动地根据响应关系进行设计;使用状态机输 入法时,设计者只需要画出状态转移图,eda 软件就能生成相应的 hdl 代码 或原理图,使用十分方便。 8 2.1.1 quartus ii 的使用及主要设计流程 quartus ii 可以使设计者完成设计输入、分析与综合、仿真、布局布线、 时序分析及编程下载等工作。quartus支持多种编辑输入法,包括图形编辑 输入法,vhdl、verilog hdl 和 ahdl 的文本编辑输入法,符号编辑输入 法,以及内存编辑输入法。quartus与 matlab 和 dsp builder 结合可以进 行基于 fpga 的 dsp 系统开发,是 dsp 硬件系统实现的关键 eda 工具,与 sopc builder 结合,可实现 sopc 系统开发。 quartus ii 的设计流程与过去传统意义的电子设计大不相同。尤其表现在: 传统设计是自底向上的设计,合格产品的设计总要反复多次试验,次数主要 取决于经验而且必须制成成品才能进行仪器测量。而 quartus ii 采用的是自 顶向下的设计,缩减了设计成本,缩短了设计周期,更接近于常规思维方式, 标准产品方便测试,对设计者经验要求低,保密性强集成度高。图 2.1 显示 了使用 quartus ii 进行设计的各主要环节。 图 2.1 quartus ii 主要设计环节 9 这几个环节分别介绍如下: (1)设计输入: 设计输入包括图形输入和硬件描述语言(hdl)文本输入两大类型。本 次实验中主要用到其中的原理图输入和 vhdl 输入两种方式。hdl 设计方 式是现今设计大规模数字集成电路的常用形式,除 ieee 标准中 vhdl 与 verilog hdl 两种形式外,还有各自 fpga 厂家推出的专用语言,如 quartus ii 下的 ahdl。hdl 语言描述在状态机、控制逻辑、总线功能方面较强;而 原理图输入在顶层设计、数据通路逻辑等方面具有图形化强、功能明确等特 点。quartus ii 支持层次化设计,可以在一个新的输入编辑环境中调用不同 输入设计方式完成的模块,从而完成混合输入设计以发挥二者各自特色。 (2)分析与综合: 在完成设计输入之后,即可对其进行分析与综合。其中先进行语法的分 析与校正,然后依据逻辑设计的描述和各种约束条件进行编译、优化、转换 和综合。最终获得门级电路甚至更底层的电路网表描述文件。因此,综合就 是将电路的高级语言(如行为描述)转换成低级的,可与 fpga/cpld 的基 本结构相映射的网表文件或程序,既可以使用 quartus ii 中的综合器来分析 设计文件和建立工程数据库,也可使用其他 eda 综合工具综合设计文件, 然后产生与 quartus ii 软件配合使用的网表文件。 (3)仿真: 仿真包括功能仿真和时序仿真。进行功能仿真,即直接对 vhdl、原理 图描述或其他描述形式的逻辑功能进行测试模拟,以了解其实现的功能否满 足原设计的要求,仿真过程没有加入时序信息,不涉及具体器件的硬件特性。 而时序仿真接近真实器件运行特性的仿真,仿真精度高。quartus ii 可以通过 10 建立和编辑波形文件,来执行仿真波形的模拟分析。 (4)布局布线: 若功能仿真结果满足逻辑设计,则可执行布局布线。它的目的是将综合 后产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件。在 quartus ii中,是使用由综合中建立的数据库,将工程的逻辑和时序要求与器 件的可用资源相匹配。它将每个逻辑功能分配给最好的逻辑单元位置,进行 布线和时序,并选择相应的互连路径和引脚分配。 (5)时序分析 quartus ii中的时序分析功能可以分析设计中所有逻辑的性能,并协助引 导适配器满足设计中的时序分析要求。还可以进行最少的时序分析,报告最 佳情况时序结果,验证驱动芯片外信号的时钟至管脚延时。 (6)引脚锁定及下载 为了对设计工程进行硬件测试,应将其输入输出信号锁定在芯片确定的 引脚上。最后是将下载或配置文件通过编程电缆向 fpga 或 cpld 进行下载, 以便进行硬件调试和验证。 2.1.2 quartus ii 的原理图输入设计流程 应用数字逻辑电路的基本知识,使用 quartus ii 原理图输入法可以非常方 便地进行数字系统的设计,应用 quartus ii 原理图输入法,还可以把原有的 使用中小规模的通用数字集成电路设计的数字系统移植到 fpga 中。设计流 程可以分为: (1)建立工程文件夹,包括工程目录、名称和选择合适器件。 (2)编辑设计图形文件,放置元件、连线、设定输入输出管教名称。 11 (3)对图形文件进行编译,检查电路是否有误。 (4)时序仿真设计文件,得到方针波形验证设计结果。 (5)编程下载设计文件,包括引脚锁定和编程下载。 2.1.2 signaltap ii 逻辑分析仪的使用 伴随着 eda 工具的快速发展,一种新的调试工具 quartus ii 中的 signaltap ii 满足了 fpga 开发中硬件调试的要求,它具有无干扰、便于升 级、使用简单、价格低廉等特点。signaltap ii 嵌入逻辑分析仪集成到 quartus ii 设计软件中,能够捕获和显示可编程单芯片系统(sopc)设计中 实时信号的状态,这样开发者就可以在整个设计过程中以系统级的速度观察 硬件和软件的交互作用。它支持多达 1024 个通道,采样深度高达 128kb, 每个分析仪均有 10 级触发输入/输出,从而增加了采样的精度。signaltap ii 为设计者提供了业界领先的 sopc 设计的实时可视性,能够大大减少验证过 程中所花费的时间。目前 signaltap ii 逻辑分析仪支持的器件系列包括: apext ii,apex20ke,apex20kc,apex20k,cyclone,excalibur,mercury ,stratix gx,stratix。signaltap ii 嵌入式逻辑分析器,提供了芯片测试的 一个很好的途径。通过 signaltap ii 测试芯片无需外接专用仪器,它在器件 内部捕获节点进行分析和判断系统故障。本文通过对 cyclone ep2c35f672c6 器件的实验证实该测试手段大大提高系统的调试能力,具有 很好的效果。图 2.2 是 signaltap ii 嵌入到 fpga 的结构图: 12 图 2.2 将逻辑分析仪嵌入到 fpga 中 使用 signaltap ii 的一般流程是:设计人员在完成设计并编译工程后, 建立 signaltap ii (.stp)文件并加入工程、配置 stp 文件、编译并下载设计 到 fpga、在 quartus ii 软件中显示被测信号的波形、在测试完毕后将该逻 辑分析仪从项目中删除。以下描述设置 signaltap ii 文件的基本流程: (1)设置采样时钟:采样时钟决定了显示信号波形的分辨率,它的频率 要大于被测信号的最高频率,否则无法正确反映被测信号波形的变化。 signaltap ii 在时钟上升沿将被测信号存储到缓存。 (2)设置被测信号:可以使用 node finder 中的 signaltap ii 滤波器 查找所有预综合和布局布线后的 signaltap ii 节点,添加要观察的信号。逻 辑分析器不可测试的信号包括:逻辑单元的进位信号、pll 的时钟输出、 jtag 引脚信号、lvds(低压差分)信号。 (3)配置采样深度、确定 ram 的大小。 (4)设置 buffer acquisition mode:buffer acquisition mode 包括循环采 样存储、连续存储两种模式。循环采样存储也就是分段存储,将整个缓存分 13 成多个片段(segment),每当触发条件满足时就捕获一段数据。该功能可以去 掉无关的数据,使采样缓存的使用更加灵活。 (5)触发级别:signaltap ii 支持多触发级的触发方式,最多可支持10 级触发。 (6)触发条件:可以设定复杂的触发条件用来捕获相应的数据,以协助 调试设计。当触发条件满足时,在 signaltap 时钟的上升沿采样被测信号。 完成 stp 设置后,将 stp 文件同原有的设计下载到 fpga 中,在 quartus ii 中 signaltap ii 窗口下查看逻辑分析仪捕获结果。signaltap ii 可将数据通 过多余的 i/o 引脚输出,以供外设的逻辑分析器使用;或输出为 csv、tbl、vcd、vwf 文件格式以供第三方仿真工具使用。 2.2 vhdl 语言简介 vhdl 的英文全名是 very-high-speed integrated circuit hardware description language,诞生于 1982 年。1987 年底,ieee 将 vhdl 替代了原 有的非标准的硬件描述语言,并被美国国防部确认为标准硬件描述语言。 vhdl 主要用于描述数字系统的结构,行为,功能和接口。除了含有许 多具有硬件特征的语句外,vhdl 的语言形式和描述风格与句法十分类似于 一般的计算机高级语言。vhdl 的程序结构特点是将一项工程设计,或称设 计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视 部分,及端口)和内部(或称不可视部分) ,既涉及实体的内部功能和算法完成 部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他 的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是 vhdl 系统设计的基本点。 14 vhdl 语言的基本结构:一个完整的 vhdl 语言程序通常包括实体声明 (entity declaration) 、结构体(architecture body) 、配置(configuration) 、 程序包(package)和库(library)五个组成部分。其中实体和结构体是不可 缺少的。前 4 种分别是编译的源设计单元。 库存放已编译的实体,结构体,配置和包;实体用于描述系统内部的结 构和行为;包存放各设计模块都能共享的数据类型,常数和子程序等;配置 用于从库中选取所需要单元来支持系统的不同设计,即对库的使用。库可由 用户生成或芯片制造商提供,以便共享。 实体是描述系统的外部端口,实体说明用于描述设计系统的外部端口输 入、输出特征; 结构体是描述系统内部的结构和行为,即用于描述设计系统的行为、系 统数据的流程和系统内部的结构及其实现的功能。 配置为属性选项,描述层与层之间、实体与结构体之间的连接关系,比 如高层设计需要将低层实体作为文件加以利用,这就要用到配置说明,用于 从库中选取所需设计单元来组成系统设计的不同版本。 程序包为属性选项,用于把共享的定义放置其中,具体地说主要用来存 放各种设计的模块都能共享的数据类型、常量和子程序等。 库主要用于存放已经编译的实体、结构体、程序包和配置,可由用户自 主生成或有 asic 芯片制造商提供相应的库,以便于设计中为大家所共享。 2.2.1 vhdl 的基本结构 一个vhdl设计由若干个vhdl文件构成,每个文件主要包含如下三个部分 中的一个或全部: 15 (1)程序包(package); (2) 库(library) (3)实体(entity); (4)结构体(architecture)。 图2.3 vhdl组成示意图 一个完整的vhdl设计必须包含一个实体和一个与之对应的结构体,一个 实体可对应多个结构体,以说明采用不同方法来描述电路。 (1)程序包(package) 程序包是用来单纯罗列vhdl语言中所要用到的信号定义、常数定义、数 据类型、元件语句、函数定义和过程定义等,它是一个可编译的设计单元, 也是库结构中的一个层次。要使用程序包时,可以用use语句说明。例如: use ieee.std_logic_1164.all; 该语句表示在vhdl程序中要使用名为std_logic_1164的程序包中所有定 义或说明项。 一个程序包由两大部分组成:包头(header)和包体(package body), 其中包体是一个可选项,也就是说,程序包可以只由包头构成。一般包头列 出所有项的名称,而在包体具体给出各项的细节。 (2)库(library) 库是专门存放预先编译好的程序包(package)的地方。在vhdl语言中, 库的说明总是放在设计单元的最前面: library 库名; vhdl 设计 vhdl 文件 程序包(packages) 声明在设计或实体中将要用到的常数,数据类型,元件及子程 序等 实体(entities) 声明到其他实体及其他设计 的接口,即定义本设计输入 输出端口 结构体(architectures) 定义了实体的实现,即电 路的具体描述 16 这样,在设计单元内的语句就可以使用库中的数据。由此可见,库的好 处就在于使设计者可以共享已经编译过的设计结果。在vhdl语言中可以存在 多个不同的库,但是库和库之间是独立的,不能互相嵌套。实际中一个库就 对应一个目录,预编译程序包的文件就放在此目录中。用户自建的库即为设 计文件所在目录,库名与目录名的对应关系可在编译软件中指定。 库说明语句的作用范围从一个实体说明开始到它所属的构造体、配置为止。 当一个源程序中出现两个以上的实体时,两条作为使用库的说明语句应在每 个实体说明语句前重复书写。 表2.1是ieee两个标准库“std”与“ieee”中所包含的程序包的简单解释。 表2.1 std与ieee的程序包 库名程序包名包中预定义内容 stdstandard vhdl类型,如bit, bit_vector ieeestd_logic_1164 定义std_ logic, std_ logic_ vector等 ieeenumeric std 定义了一组基s td_logic_1164中定 义的类型上的算术运算符,如 “+”、“-”、shl、shr等 ieeestd_ logic arith 定义有符号与无符 号类型,及基于这些类型上的算术运算 17 ieeestd_ logic_ signed 定义了基于std_logic与 std_logic_vector 类型上的有符号的算 术运算 ieeestd_ logic_ unsigned 定义了基于std_logic与std_logic_vector 类型上的无符号的算术运 算 (3)实体(entity) 实体是vhdl设计中最基本的模块,vhdl表达的所有设计均与实体有关。 设计的最顶层是顶层实体。如果设计分层次,那么在顶层实体中将包含较低 级别的实体。 实体中定义了该设计所需的输入/输出信号,信号的输入/输出类型被称 为端口模式,同时实体中还定义他们的数据类型。 任何一个基本设计单元的实体说明都具有如下的结构: entity is port ( 信号名,信号名:端口模式 端口类型; 信号名,信号名:端口模式 端口类型 ); end ; 每个端口所定义的信号名在实体中必须是唯一的,说明信号名的属性包 括端口模式和端口类型,端口模式决定信号的流向,端口类型决定端口所采 用的数据类型。 端口模式(mode)有以下几种类型: 18 in 信号进入实体但并不输出; out 信号离开实体但并不输入;并且不会在内部反馈使用;inout 信号 是双向的(既可以进入实体,也可以离开实体); buffer 信号输出到实体外部,但同时也在实体内部反馈。 端口类型(type)有以下几种类型: integer:可用作循环的指针或常数,通常不用于i/o信号; bit:可取值“0”或“1”; std_ logic:工业标准的逻辑类型,取值“0”,“1”,“x” 和“z” ; std_ logic_ vector:std_ logic的组合,工业标准的逻辑类型。 由此看出,实体(entity)类似于原理图中的符号,它并不描述模块的具 体功能。实体的通信点是端口(port),它与模块的输入/输出或器件的引脚 相关联。 (4)结构体(architecture) 结构体是vhdl设计中最主要部分,它具体地指明了该基本设计单元的行 为、元件及内部的连接关系,也就是说它定义了设计单元具体的功能。结构 体对其基本设计单元的输入输出关系可以用3种方式进行描述,即行为描述 (基本设计单元的数学模型描述)、寄存器传输描述(数据流描述)和结构 描述(逻辑元件连接描述)。不同的描述方式,只体现在描述语句上,而结 构体的结构是完全一样的。 一个完整的、能被综合实现的vhdl设计必须有一个实体和对应的结构体, 一个实体可以对应一个或多个结构体,由于结构体是对实体功能的具体描述, 因此它一定要跟在实体的后面,通常先编译实体后才能对结构体进行编译。 19 2.2.2 vhdl 的基本语法 (1) vhdl语言的客体及其分类 在vhdl语言中凡是可以赋予一个值的对象就称为客体(object)。客体主 要包括以下3种:信号、常数、变量(signal、constant、variable)。在电 子线路中,这3类客体通常都具有一定的物理含义。 常数(constant) 常数是一个固定的值。所谓常数说明就是对某一常数名赋予一个固定的 值。通常赋值在程序开始前进行,该值的数据类型则在说明语句中指明。常 数说明的一般格式如下: constant 常数名:数据类型:=表达式; 常量在定义时赋初值,赋值符号为“:=”。 变量(variable) 变量只能在进程语句、函数语句和过程语句中使用,它是一个局部量。在 仿真过程中它不像信号那样,到了规定的仿真时间才进行赋值,变量的赋值 是立即生效的。变量说明语句的格式如下: variable 变量名:数据类型 约束条件:=表达式; 变量的赋值符号“:=”。 信号(signal) 信号是电子线路内部硬件连接的抽象。它除了没有数据流动方向说明外, 其它性质几乎和“端口”一致。信号通常在构造体、程序包和实体中说明。 信号说明语句的格式如下: signal 信号名:数据类型 约束条件0); else 47 count =pk then s0); else s s s s sclock,a=pk,b=m); u1:adderful port map(clk=clock,wp=wk,p=m,q=qk); end rets; data_romdata_rom 模块代码:模块代码: - megafunction wizard: %rom: 1-port% - generation: standard - version: wm1.0 - module: altsyncram - = - file name: data_rom.vhd - megafunction name(s): - altsyncram - - simulation library files(s): - altera_mf - = - * - this is a wizard-generated file. do not edit this file! 52 - - 9.0 build 132 02/25/2009 sj full version - * -copyright (c) 1991-2009 altera corporation -your use of altera corporations design tools, logic functions -and other software and tools, and its ampp partner logic -functions, and any output files from any of the foregoing -(including device programming or simulation files), and any -associated documentation or information are expressly subject -to the terms and conditions of the altera program license -subscription agreement, altera megacore function license -agreement, or other applicable license agreement, including, -without limitation, that your use is for the sole purpose of -programming logic devices manufactured by altera and sold by -altera or its authorized distributors. please refer to the -applicable agreement for further details. library ieee; use ieee.std_logic_1164.all; 53 library altera_mf; use altera_mf.all; entity data_rom is port ( address: in std_logic_vector (9 downto 0); clock: in std_logic ; q: out std_logic_vector (7 downto 0) ); end data_rom; architecture syn of data_rom is signal sub_wire0 : std_logic_vector (7 downto 0); component altsyncram generic ( clock_enable_input_a: string; clock_enable_output_a: string; 54 init_file: string; intended_device_family: string; lpm_hint: string; lpm_type: string; numwords_a: natural; operation_mode: string; outdata_aclr_a: string; outdata_reg_a: string; widthad_a: natural; width_a: natural; width_byteena_a: natural ); port ( clock0 : in std_logic ; address_a : in std_logic_vector (9 downto 0); q_a : out std_logic_vector (7 downto 0) ); end component; begin q “bypass“, clock_enable_output_a = “bypass“, init_file = “sin3.mif“, intended_device_family = “cyclone ii“, lpm_hint = “enable_runtime_mod=no“, lpm_type = “altsyncram“, numwords_a = 1024, operation_mode = “rom“, outdata_aclr_a = “none“, outdata_reg_a = “clock0“, widthad_a = 10, width_a = 8, width_byteena_a = 1 ) port map ( clock0 = clock, address_a = address, q_a = sub_wire0 ); 56 end syn; - = - cnx file retrieval info - = - retrieval info: private: addressstall_a numeric “0“ - retrieval info: private: aclraddr numeric “0“ - retrieval info: private: aclrbyte numeric “0“ - retrieval info: private: aclroutput numeric “0“ - retrieval info: private: byte_enable numeric “0“ - retrieval info: privat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年学校物业管理合同协议书范本
- 2025至2031年中国定柱式全回转悬臂起重机行业投资前景及策略咨询研究报告
- 2025版标准个人购房合同样本
- 2025至2031年中国双位坐推训练器行业投资前景及策略咨询研究报告
- 2025至2031年中国仿古铜银包剑行业投资前景及策略咨询研究报告
- 计量仪表安装施工方案
- 2025至2030年中国茸参胶囊数据监测研究报告
- 惠城区路面施工方案
- 2025至2030年中国电子遥控自动收缩门数据监测研究报告
- 2025至2030年中国楼寓访客对讲系统数据监测研究报告
- (中职)电子技术基础与技能(电子信息类)教案
- 企业数字化转型解决方案
- 三晶变频器说明书SAJ系列简约
- MATLAB_第6讲_GUI界面设计
- 第三章煤层气的储层压力及赋存状态
- 高中英语北师大版(2019)必修第一册 Unit3Lesson1SpringFestival
- 《公输》(共44张PPT)
- 鸽巢原理例1、例2
- 飞剪机传动装置的设计机械CAD图纸
- 阿里巴巴OfferLetter
- 自卸车生产过程检验表
评论
0/150
提交评论