武汉理工大学《硬件描述语言与数字系统》课程设计说明书.docx_第1页
武汉理工大学《硬件描述语言与数字系统》课程设计说明书.docx_第2页
武汉理工大学《硬件描述语言与数字系统》课程设计说明书.docx_第3页
武汉理工大学《硬件描述语言与数字系统》课程设计说明书.docx_第4页
武汉理工大学《硬件描述语言与数字系统》课程设计说明书.docx_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

此文档收集于网络,如有侵权,请联系网站删除学 号: 0121309341112课 程 设 计课程名称硬件描述语言与数字系统题 目设计一个 2568 的ROM学 院信息工程学院专 业电子科学与技术班 级电子1303班姓 名指导教师韩屏2016年1月20日此文档仅供学习与交流课程设计任务书学生姓名: 专业班级:电子1303班 指导教师: 韩屏 工作单位:信息工程学院 题 目: 设计一个 2568 的ROM初始条件:可用条件:1、Quartus II 14.0 基础版2、FPGA实验箱要求完成的主要任务:1、在设计ROM时,根据ROM的大小,可以采用不同的方法进行设计,比如48、88或168的ROM可以采用数组描述或WHEN-ELSE。2、然而数组描述ROM在面积上是最有效的,在用数组描述时,常把数组常量描述的ROM放在一个程序包中,这种方法可以提供ROM的重用,在程序包中应当用常量定义ROM的大小。3、用WHEN-ELSE描述一个ROM,它却是最直观的,它是类似查表的方式来设计的,如下面的例程就是一个用WHEN-ELSE设计的168的ROM。4、对于MAXPLUS II这个软件,对于用数组描述的ROM在编译过程中会出错,有可能MAXPLUS II在语法支持上不太全面,但可以用其他的VHDL语言仿真综合工具进行仿真或综合,如ACTIVE VHDL、MODELSIM、LEONARDO等。时间安排:1、2016 年 1 月 15日集中,作课设具体实施计划与课程设计报告格式的要求说明。2、2016 年 1 月 15日,查阅相关资料,学习Quartus软件的程序编写方法。3、2016 年 1 月 16 日 至 2016 年 1 月 17日,方案选择和程序设计。4、2016 年 1 月 18 日 至 2016 年 1 月 19 日,代码调试和设计说明书撰写。5、2016 年 1 月 20 日上交课程设计成果及报告,同时进行答辩。指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日摘要本文介绍了一种采用LPM宏模块设计的存储器ROM, LPM是Altera提供的可参数化宏功能模块和LPM函数均基于Altera FPGA的结构优化设计。宏功能模块的调用使得基于EDA的技术的电子设计的效率和系统性能有了很大的提高。只读存储器ROM是一种半导体内存,其特性是一旦储存数据就无法更改或删除。本设计通过使用VHDL编程语言,采用数组的的描述方法设计出一个2568的ROM。经过Quartus II软件仿真,完成了设计要求。关键词: ROM; LPM; Quartus II; VHDLAbstractThis paper presents a modular design using LPM macro memory ROM, LPM is Altera provides parameterizable megafunctions and LPM functions are Altera FPGA-based structural optimization. Call megafunctions make based electronic design EDA technology efficiency and system performance has been greatly improved. ROM read-only memory is a semiconductor memory, its characteristics are once stored data can not be changed or deleted. This design by using VHDL programming language, using an array of methods designed to describe a 256 8 of ROM. After Quartus II software simulation, the completion of the design requirements.Key Words: ROM; LPM; Quartus II; VHDL目 录第1章 绪论1第2章 设计内容及要求22.1设计的目的及主要任务22.1.1设计目的22.1.2设计任务及主要技术指标22.2设计思想2第3章 设计原理及程序设计33.1设计原理及方法33.2程序设计步骤43.2.1存储器初始化文件的配置43.2.2 LPM_ROM的设置和调用53.2.2.1 LPM_ROM的参数设置53.2.2.2 .mif文件的导入及代码的生成6第4章 电路仿真及分析84.1仿真测试ROM宏模块84.2结果分析8第5章 硬件调试95.1调试方法95.2调试结果分析9第6章 心得体会10致 谢11参考文献12附录13本科生课程设计成绩评定表16第1章 绪论21世纪将以科学技术的高速发展为其特征,现代电子设计技术的核心已日趋转向基于计算机的电子设计自动化技术(Electronic Design Automation, EDA)。EDA技术依赖功能强大的计算机,在EDA工具软件平台上VHDL作为一种规范语言和建模语言,具有与具体硬件电路无光和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力。按照设计目的,VHDL程序可以划分为面相仿真和面向综合两类,而面向综合的VHDL程序分别面向FPGA和ASIC开发两个领域。EDA技术的发展自20世纪70年代以来,经历了PAL、GAL、CPLD、FPGA几个发展阶段,其中CPLD、FPGA属高密度可编程逻辑器件,特别适合于样品研制和小批量产品开发,使产品能以最快的速度上市,而当市场扩大时,它可以和容易地转由ASIC实现,因此开发风险也大为降低。CPLD/FPGA器件已成为现代高层次电子设计方法的实现载体。VHDL是IEEE标准的硬件描述语言,是现代电子系统设计的首选硬件设计计算机语言。VHDL具有以下优点:VHDL的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心转移到了系统功能的实现和调试上,只需要花较少的精力用于物理实现;VHDL可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用;VHDL的设计不依赖于特定的器件,方便了工艺的转换。VHDL是一个标准语言,为众多的EDA场上支持,因此移植性好。第2章 设计内容及要求2.1设计的目的及主要任务2.1.1设计目的 学会在Quartus II环境中运用VHDL语言设计方法构建具有一定逻辑功能的模块,并调用LPM模块类存储器完成设计。 掌握LPM_ROM的调用方法,并完成仿真实现功能。2.1.2设计任务及主要技术指标 在设计ROM时,根据ROM的大小,可以采用不同的方法进行设计,比如48、88或168的ROM可以采用数组描述或WHEN-ELSE。 在用数组描述时,常把数组常量描述的ROM放在一个程序包中,这种方法可以提供ROM的重用,在程序包中应当用常量定义ROM的大小。2.2设计思想本次设计将调用LPM模块类存储器,调用LPM模块类存储器是在涉及ROM的EDA设计开发中最方便、最经济、最高效的途径。包括仿真测试、初始化配置文件的生成、例化程序表述及相关属性应用。ROM的初始化文件选择 .mif 格式文件,并采用直接编辑法产生。随后设置和调用LPM_POM,并调用其功能,最后运用Quartus中的仿真功能对其予以仿真,从仿真的结果中分析程序的正确性。待所有模块的功能正确之后,运用原理图搭建顶层电路并进行整体仿真直至达到最初的设计要求,最后再在实验箱上检验设计的正确与否。 第3章 设计原理及程序设计3.1设计原理及方法本次设计的原理如下图3-1所示,该ROM的顶层设计有8位的输入地址线输入端、时钟控制输入端以及8位数据的输出端,时钟输入控制的控制锁存器读取地址。8位地址线的寻址范围位0到255,实现了2568的储存功能。由于输出端 q 没有接锁存器,因此ROM的数据可以方便的读取。图3-12568 ROM的原理图3.2程序设计步骤3.2.1存储器初始化文件的配置新建一个工程,命名为ROM256_8,初始化文件选择生成 .mif格式的文件,在Quartus II中打开 .mif文件编辑窗口,选择File New命令,并在New窗口中选择Memory File栏的Memory Initialization File项,单击OK后生成 .mif数据文件大小选择窗口。根据储存器的地址和数据宽度选择参数。选Number为256,Word size为8位。在生成的 .mif数据表格中输入需要定制的ROM中的数据,最后保存文件,命名为data256_8.mif。.mif文件中的内容见图3-2-1所示的文本编辑窗。图3-2-1.mif文本编辑窗3.2.2 LPM_ROM的设置和调用3.2.2.1 LPM_ROM的参数设置选择Tool IP Catalog Library Basic Functions On Chip Memory ROM: 1-PORT,打开MegaWizard Plug-In Manager管理界面,进入如图3-2-2.1所示的LPM模块编辑调用窗口。文件命名为ROM256_8,保存在工程中。在窗口中可以设定ROM的参数。图3-2-2.1设定ROM参数3.2.2.2 .mif文件的导入及代码的生成在设定初始化文件的对话框中,在如图3-2-2.3所示的窗口Do you want to specify the initial content of the memory栏中选 Yes, use this file for the memory content data单选按钮,并单击Browse按钮,选择指定路径的初始化文件data256_8.mif。最后完成设置,生成所需要的代码,生成的代码见图3-2-2.2中,详细代码见附录。图3-2-2.2生成的程序代码图3-2-2.3设定初始化文件和允许在系统编辑第4章 电路仿真及分析4.1仿真测试ROM宏模块测试ROM模块主要是了解其各信号线的功能和加载与其中的初始化文件数据是否成功,图4-1是此模块的仿真波形图。地址address从0开始,读出ROM中的数据。随着地址的递增,对应的每一个时钟的上升沿,ROM的数据被读出,它们分别是255、13、77、99正好与写入 .mif文本编辑框中的数据相符合。说明初始化数据能被正常调入。图4-1ROM模块的仿真波形图4.2结果分析由程序仿真的结果可以看出,在inclock的每一个时钟的上升沿到来时生好对应着地址address的增加,即读取下一个地址中的内容,q的输出端输出的数据是对应的地址中的数据,最后对照 .mif文本编辑框中的数据,可以看出所有的数据都可以遍历,程序的仿真结果符合预期。第5章 硬件调试5.1调试方法仿真结果正确后,就可将文件下载到芯片中,本次调试用试验箱上的拨码开关和LED灯来完成,用8各拨码开关来表示ROM的地址,用8各LED灯来表示每个地址中的数据。开关的闭合表示相应地址位为1,开关的断开表示相应地址位为0;LED灯的亮表示相应数据位为1,LED灯的表示相应数据位为0。对照图5-1查表验证结果。图5-1ROM中地址对应的数据5.2调试结果分析连接硬件系统后,通上电源,经Quartus中的“programmer”菜单,调出编程器窗口。一切就绪后,按下编程器窗口中的“START”按钮,设计的内容就开始下载到芯片中。实验测试表明:该2568ROM实现了储存自定义数据的功能,并在输入相应的地能够输出对应的数据。第6章 心得体会本次课程设计内容丰富,涉及的知识面较广。在设计前期,通过查找资料为设计准备,使我对所学专业方面的许多知识又温习了一遍,许多以前很模糊、很孤立的部分知识通过这次设计得以贯穿,而且掌握得更加地稳固了;此外,通过这次课程设计,在软件编程方面,使我了解到了自己的许多不足之处,通过查找参考资料逐渐熟悉了以前有关于MATLAB的编程知识。在之前EDA课程的学习以及完成实验的过程中,已经使用过Quartus 14.0,对其有了一些基础的了解和认识。通过这次的课程设计使我进一步了解了硬件设计思路,VHDL程序编程方法。让我感受到只有在了解课本知识的前提下,才能更好的应用这个工具,并且熟练的应用Quartus也可以很好的加深我对课程的理解,方便我的思维。这次课程设计使我加深了Quartus的使用方法,提高了自己的分析和动手实践能力。但在设计过程中也出现了不少问题,设计前期在利用Quartus软件工具设计ROM时,由于Quartus II 14.0与以前的版本有区别,我没能找到MegaWizard Plug-In Manager管理界面。除了这些之外,还有编程上的逻辑问题,但最终都一个模块一个模块认真分析,最终解决了问题,将模块的程序连在一起,最终结果可以成功运行并仿真出波形图。通过这次课程设计,我不仅加深了VHDL编程的理解,将理论很好地应用到实际当中去,通过分部完成程序将程序分为几个部分完成,然后再将程序整合在一起,每部分可以进行独立编程。这次设计中我也自己认真独立思考,了解了每一步的程序编程,对于数字信号处理的有关知识有了进一步认识和理解,自己之后需要多多注重锻炼自己的动手能力,讲所学到的知识运用到实际中,加深自己对于知识的理解。通过这次课程设计实践,我更深刻的了解了FPGA的运用,重新复习了相关知识,对课本上的知识有了更深的理解。致 谢在这次课程设计的撰写过程中,我得到了许多人的帮助。首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次设计的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得更加完善。在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。同时,在课程设计中,老师严谨的治学态度、丰富渊博的知识、敏锐的学术思维、精益求精的工作态度以及侮人不倦的师者风范是我终生学习的楷模,老师们的高深精湛的造诣与严谨求实的治学精神,将永远激励着我。在此,谨向老师们致以衷心的感谢和崇高的敬意!另外,感谢校方给予我这样一次机会,让我能够独立地完成一次课程设计,并在这个过程当中,给予我们各种方便,使我们在这学期快要结课的时候,能够将学到的知识应用到实践中,增强了我们实践操作和动手应用能力,提高了独立思考的能力。感谢所有任课老师和所有同学在这三年来给自己的指导和帮助,是他们教会了我专业知识,教会了我如何学习,教会了我如何做人。正是由于他们,我才能在各方面取得优异的成绩,在此向他们表示我由衷的谢意。感谢寝室里的舍友,是你们三年来对我的关照使我的拥有一个良好的学习环境是我能专心学习生活。最后,我要向百忙之中抽时间对本文进行审阅,评议的各位老师表示感谢。参考文献1周立功等著.EDA实验与实践.北京:航空航天大学出版社出版,2007.92潘松,黄继业.EDA技术实用教程.北京:科学出版社,2002.3徐刚.Altera Quartus II软件使用教程.芳元电子工作室,2006. 4.章彬宏.EDA应用技术.北京:北京理工大学出版社,2007.7.5 刘艳萍,高振斌,李志军EDA实用技术及应用北京:国防工业出版社,2006.1附录- =- *- THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!- 14.0.0 Build 200 06/17/2014 SJ Full Version- *-Copyright (C) 1991-2014 Altera Corporation. All rights reserved.-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, the Altera Quartus II License Agreement,-the 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;LIBRARY altera_mf;USE altera_mf.altera_mf_components.all;ENTITY ROM256_8 ISPORT(address: IN STD_LOGIC_VECTOR (7 DOWNTO 0); inclock: IN STD_LOGIC := 1; q: OUT STD_LOGIC_VECTOR (7 DOWNTO 0);END ROM256_8;ARCHITECTURE SYN OF rom256_8 ISSIGNAL sub_wire0: STD_LOGIC_VECTOR (7 DOWNTO 0);BEGINq NONE,clock_enable_input_a = BYPASS,clock_enable_output_a = BYPASS,init_file = data256_8.mif,intended_device_family = Cyclone V,lpm_hint = ENABLE_RUNTIME_MOD=YES,INSTANCE_NAME=NONE,lpm_type = altsyncram,numwords_a = 256,operation_mode = ROM,outdata_aclr_a = NONE,outdata_reg_a = UNREGISTERED,widthad_a = 8,width_a = 8,width_byteena_a = 1)PORT MAP (address_a = address, clock0 = inclock, q_a = sub_wire0);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: PRIVATE: BYTE_SIZE NUMERIC 8- Retrieval info: PRIVATE: BlankMemory NUMERIC 0- Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_A NUMERIC 0- Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_A NUMERIC 0- Retrieval info: PRIVATE: Clken NUMERIC 0- Retrieval info: PRIVATE: IMPLEMENT_IN_LES NUMERIC 0- Retrieval info: PRIVATE: INIT_FILE_LAYOUT STRING PORT_A- Retrieval info: PRIVATE: INIT_TO_SIM_X NUMERIC 0- Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING Cyclone V- Retrieval info: PRIVATE: JTAG_ENABLED NUMERIC 1- Retrieval info: PRIVATE: JTAG_ID STRING NONE- Retrieval info: PRIVATE: MAXIMUM_DEPTH NUMERIC 0- Retrieval info: PRIVATE: MIFfilename STRING data256_8.mif- Retrieval info: PRIVATE: NUMWORDS_A NUMERIC 256- Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC 0- Retrieval info: PRIVATE: RegAddr NUMERIC 1- Retrieval info: PRIVATE: RegOutput NUMERIC 0- Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING 0- Retrieval info: PRIVATE: SingleClock NUMERIC 0- Retrieval info: PRIVATE: UseDQRAM NUMERIC 0- Retrieval info: PRIVATE: WidthAddr NUMERIC 8- Retrieval info: PRIVATE: WidthData NUMERIC 8- Retrieval info: PRIVATE: rden NUMERIC 0- Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all- Retrieval info: CONSTANT: ADDRESS_ACLR_A STRING NONE- Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_A STRING BYPASS- Retrieval info: CONSTANT: CLOCK_ENABLE_OUTPUT_A STRING BYPASS- Retrieval info: CONSTANT: INIT_FILE STRING data256_8.mif- Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING Cyclone V-Retrieval info:CONSTANT:LPM_HINTSTRING ENABLE_RUNTIME_MOD=YES,INSTANCE_NAME=NONE- Retrieval info: CONSTANT: LPM_TYPE STRING altsyncram- Retrieval info: CONSTANT: NUMWORDS_A NUMERIC 256- Retrieval info: CONSTANT: OPERATION_MODE STRING ROM- Retrieval info: CONSTANT: OUTDATA_ACLR_A STRING NONE- Retrieval info: CONSTANT: OUTDATA_REG_A STRING UNREGISTERED- Retrieval info: CONSTANT: WIDTHAD_A NUMERIC 8- Retrieval info: CONSTANT: WIDTH_A NUMER

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论