现代计算机组成原理实验讲义.doc
《现代计算机组成原理实验讲义.doc》由会员分享,可在线阅读,更多相关《现代计算机组成原理实验讲义.doc(101页珍藏版)》请在咨信网上搜索。
现代计算机组成原理实验讲义 杭州康芯电子有限公司 www.kx- 目 录 前 言 1 实验一 QUARTUSII EDA工具与VHDL基础实验 4 1-1. 应用QuartusII完成基本组合电路设计 4 1-2. 应用QuartusII完成基本时序电路的设计 5 1-3. 设计含异步清0和同步时钟使能的加法计数器 6 1-4. 7段数码显示译码器设计 7 1-5. 8位数码扫描显示电路设计 8 1-6. 数控分频器的设计 9 1-7. 32位并进/并出移位寄存器设计 10 1-8. 在QuartusII中用原理图输入法设计8位全加器 10 1-9. 在QuartusII中用原理图输入法设计较复杂数字系统 11 1-10. 用QuartusII设计正弦信号发生器 11 1-11. 8位16进制频率计设计 13 1-12. 序列检测器设计 16 1-13. VHDL状态机A/D采样控制电路实现 17 实验二 运算器组成实验 19 1.算术逻辑运算实验 19 2.带进位算术运算实验 22 3. 移位运算器实验 23 实验三 存储器实验 24 1、FPGA中LPM_ROM定制与读出实验 24 2.FPGA中LPM_RAM读写实验 26 3.FIFO定制与读/写实验 27 4.FPGA与外部16位RAM接口实验 28 实验四 微控制器实验 30 1 节拍脉冲发生器时序电路实验 30 2. 程序计数器PC与地址寄存器AR实验 32 3.微控制器组成实验 34 实验五 总线控制实验 36 实验六 基本模型机设计与实现 39 实验七 带移位运算的模型机设计与实现 47 实验八 复杂模型机的设计与实现 52 实验九.较复杂CPU设计示例 56 实验十.16位精简指令CPU设计实验 58 实验十一 32位NIOS CPU嵌入式系统软硬件设计实验 67 1 NIOS软硬件开发流程 67 3 SOPC整体系统生成 73 4 Nios硬件系统生成 74 实验十二 32位NIOS CPU测控系统串口接收程序设计 77 实验十三 GSM短信模块程序设计 77 实验十四 基于32位NIOS CPU 的秒表程序设计 78 实验十五 NIOS AVALON SLAVE总线外设(PWM模块)设计 81 实验十六 NIOS AVALON SLAVE总线外设(数码管动态扫描显示模块)设计 81 实验十七 基于NIOS的VGA显示终端设计 81 实验十八 DMA应用和俄罗斯方块游戏设计 82 实验十九 为NIOS嵌入式系统增加算法加速协处理模块控制指令 82 实验二十. 计算机体系结构实验 82 实验二十一. 89K51单片机核应用系统软硬件设计实验 82 附录:GW48 EDA/SOPC主系统使用说明 82 99 - - 前 言 随着大规模集成电路技术和计算机技术的不断发展,在涉及通信、国防、工业自动化、计算机应用、仪器仪表等领域的电子系统设计工作中,现场可编程(FPGA)技术含量正以惊人的速度上升。电子类的新技术项目的开发也更多地依赖于FPGA技术的应用,特别是随着VHDL等硬件描述语言综合工具功能和性能的提高,计算机中许多重要的元件,包括CPU都用硬件描述语言来设计和表达,许多CPU(如8051单片机、8086等),硬核嵌入式系统(如ARM、Excalibue系列FPGA)、软核嵌入式系统(如Nios),微机CPU,乃至整个计算机系统都用FPGA来实现,即所谓的单片系统:SOC和SOPC(System On a Chip、System On a Programmerble Chip )。计算机和CPU的设计技术及其现方法进入了一个全新的时代!不但如此,传统的CPU结构模式,纽曼结构和哈佛结构正在受到巨大的挑战。 例如,美国赢通系统公司(Wincom Systems)推出一款令人惊叹的服务器,其核心部分由FPGA完成的超强功能CPU。该系统工作能力超过50台戴尔或IBM计算机,或Sun Microsytems公司的服务器。该服务器的处理速度要比传统服务器快50到300倍。我们知道,传统的个人电脑及服务器通常采用英特尔的奔腾处理器或SUN公司的SPARC芯片作为中央处理单元,而赢通的这一产品却没有采用微处理器,而是由FPGA芯片驱动。FPGA芯片的运行速度比奔腾处理器慢,但可并行处理多项任务,而微处理器一次仅能处理一项任务。因此,赢通公司的服务器只需配置几个价格仅为2000多美元的FPGA芯片,便可击败SUN公司的服务器或采用英特尔处理器的电脑。 50多年前,匈牙利数学家纽曼(John von Neumann)提出了电脑的设计构想:通过中央处理器从存储器中存取数据,并逐一处理各项任务。现在,通过采用FPGA,SOPC及顺序与并行方式相结合的软核嵌入式系统取代传统微处理器,导致Xlinx的CEO Willem Roelandts所说的“由纽曼提出的电脑架构已经走到尽头”,“可编程芯片将掀起下一轮应用高潮。 FPGA芯片以操作灵活著称,可以重复擦写无限次,而微处理器均采用固定电路,只能进行一次设计。设计人员可通过改变FPGA中晶体管的开关状态对电路进行重写,即重配置。从而,尽管FPGA芯片的时钟频率要低于奔腾处理器,但是由于FPGA芯片可并行处理各种不同的运算,所以可完成许多复杂的任务。例如网页显示,全球天气建模及基因组合核对等,而且处理速度比奔腾处理器或数字信号处理器快得多。 戴尔和SUN公司生产的某些标准服务器也采用了ALTERA公司的FPGA芯片。时代逻辑公司对这些标准服务器加以改进之后,生产了一种用于基因研究的高速处理设备。时代逻辑公司总监Christopher Hoover说该设备比原来的产品至少快1000倍。 美国的Annapolis Micro Systems公司在其电脑芯片电路板中也集成了FPGA芯片,以便提高其产品性能。该公司首席执行官Jane Donaldson指出,相关产品的销售量与前两年相比翻了一番。 IBM和Xilinx公司正在合力开发一种混合芯片,以整合前者的PowerPC微处理器和后者的FPGA芯片。这种芯片的好处是:一台网络服务器的FPGA部分可以根据不同的标准进行订制,而不用为每个国家开发一种新的芯片。 美国Star Bridge Systems公司也声称已在进行一项技术尝试,即采用FPGA芯片和该公司自己的Viva编程语言开发出“超级电脑(hypercomputer)”,对该超级电脑进行测试的美国国家航空航天局(NASA)科学家表示“其运行速度无与伦比,这一产品的性能令人过目难忘”。 超级电脑是科技世界中的极品:售价奇高、速度飞快、集成了数以千计的微处理器。但这种超级电脑也浪费了非常多的芯片资源,每个处理器只能进行单任务操作,大部分功能难以充分发挥。现在有了另一种更为简洁的设计:设计工程师采用FPGA芯片来武装超级电脑,取代了原先大量的英特尔奔腾处理器。经过使用硬件描述语言和相关软件语言的设计,FPGA芯片可并行处理多项任务,从而使所有电路都能随时发挥作用。又由于FPGA芯片可以反复编程培植,而且几乎可瞬时完成。例如可通过利用FPGA的重配置功能,在某一时刻它可以用来预报全球天气状况,而下一时刻又可根据某公司做的主要利率对冲情况来评估债券市场的风险,或是转而去做图象信息处理。 其它公司或机构的研究人员,如美国加州大学伯克利分校(University of California, Berkeley)和杨百翰大学(Brigham Young University)的研究员也正在设计基于FPGA的电脑,这些电脑可在运行中实现动态重配置。这对定位危险目标等军事应用和面容识别一类的计算密集型安全应用十分有用。 不言而喻,全新的计算机设计技术和实现技术向传统的计算机组成原理的教学内容和实验方式提出尖锐的挑战。相形之下,传统的计算机组成原理实验方式已显得十分不合时宜。显然,传统的实验方式,就教学实验内容上看,与现代的计算机组成模式、理念、基本理论和构成形式及方案上都无任何吻合之处;就实验方法上看,完全是一种脱离现代计算机实际组成技术和测试技术(现代测试技术包括JTAG、嵌入式逻辑分析仪等)的,由实验系统设计者一相情愿的构建,难免引出诸多对初学者产生误导的实验方法;就实验模式和模型上看,与真实的现代计算机组成和构建方式相去更远。现代计算机,包括嵌入式系统绝不可能是由一大堆独立的、低速的、传统逻辑器件连接而成,而是由硬件描述语言来表达,由ASIC或FPGA来实现的计算机系统;就教学实验内容上看,传统的计算机组成原理实验只能模拟普通CPU的工作,然而现代计算机应用领域,RSIC精简指令CPU的设计和应用正以前所未有的巨大规模向前发展,当前,无论在开发技术的投入还是应用市场的开拓都远远超过了基于传统构架的CPU(国内绝大多数学校仍然基于此CPU的教学)。 不久前,清华大学对美国一些知名大学计算机实验室(如斯坦富大学)的调研表明,那里计算机方面的硬件实验,包括计算机组成原理实验早已不用那种传统接插式实验,而是全部采用EDA技术进行所有的软硬件实验!!! 显然,使用大规模FPGA、EDA软件工具和IEEE标准硬件描述语言构建的现代计算机组成原理实验系统取代传统的计算机组成原理实验已成为势在必行。 利用FPGA技术,在实验中能方便灵活地设计出简单完整的CPU模型机。基于查找表硬件结构的商用FPGA是当前进行快速系统原型设计最流行的ASIC手段。ALTERA的ACEX系列FPGA产品具有片上EAB,可以构成构成各种类型的存储器结构,利用在其内部的LPM可以实现微程序控制和管理复杂逻辑电路。 现代计算机组成原理实验为实验者提供了全新的学习平台,彻底克服传统组成原理实验项目与实际CPU设计技术完全脱钩,学用脱节,甚至误导的缺陷。让学生有机会接触到最新的计算机组成与设计方面的知识,使学习与工程实际相结合。 传统计算机组成原理实验系统与现代计算机组成实验系统性能特点比较 结构与功能特点 传统计算机组成原理实验系统 现代计算机组成原理实验系统 实验特点 本身只是一验证性模型,与实际的计算机设计模型无关 真实反映了现代计算机设计工程实现原理、测试方法和设计技术 结构特点 由规模不等的离散集成电路块和CPLD等器件构成CPU模型 整个CPU,乃至RAM、ROM和通信接口可在单片FPGA中实现 实验CPU总线控制方式 采用三态门控制,仅适用于74系列小规模集成电路构成方式 采用总线多路开关,适于VLSI和FPGA等大规模集成电路工程 CPU指令与微指令存储与形成方式 通过外部ROM或EEPROM构成,指令的数量和微指令的宽度受到限制,难以扩展,CPU模型结构被限制。 既可以采用传统的ROM或EEPROM存储,又可以采用FPGA中的EAB嵌入式方式,构成单片系统,更符合现代CPU设计理念。 CPU指令和微指令的实现方式 手工设计、画微指令流程图;手工(烧写或键入)输入方式实现。设计效率低、可靠性低,查错、排错、调试困难,耗时费力。 利用计算机输入,形成专用文件格式,由EDA工具自动配置进FPGA中设定的RAM、ROM中,便捷、高效、实用,规范 可用硬件资源 采用中小规模集成电路,硬件资源非常有限,且结构固定,不便于系统扩展、设计思路受限制,有创意的设想无从得到验证 采用FPGA超大规模集成电路,可利用资源丰富,灵活,设计者可根据需要反复调整和改变电路结构,创新设想易得到验证和实现 观察计算机内部指令执行情况,及软硬件排错 通过有限的发光二极管和数码管设置观察点,难以观察指令执行的细节情况,如竞争、毛刺等。硬件电路和软件排错都十分困难 除了能在PC上对整个软硬件系统进行时序仿真外,还可通过JTAG口使用嵌入式逻辑分析仪对CPU内部任意点,跟踪指令与测试。 实验设计、连线方式 及可靠性 元件间通过硬件连线,手工完成,费时费力,效率低、可靠性差。外部连线过多、导线与器件反复插拔,导致导线内部折断损伤。 各功能部件间无外部连线,几乎所有接线都在FPGA片内通过计算机连接实现,并自动检测排错,现场配置,可靠性高,无寿命限制。 设计可移植性和可保存性 由于需当场连线,故功能模型无可移植性和保存性,且必须有实验系统才能做实验,所以绝难保证每一同学给出自己特色的设计 可保存,可移植,可在自己的PC上设计和软硬件仿真。最后到实验室在实验系统上作硬件测试即可,每一同学的设计都有自己特点 各功能模块可改进性 基本不能 各模块功能都可改变,如ALU,移位器,RAM/ROM的容量位宽等 工作速度 由于大多采用74系列、TTL器件,工作速度低 采用高速、低压、低功耗FPGA,速度可达100MHzà真实CPU 嵌入式模块的利用 不能利用 Nios、各种I/O接口模块,如并行接口、串行通信接口,VGA等 可扩展性 不能 可扩展形成计算机构成中不同CPU结构,总线宽,及实用接口等 多功能性 只能对计算机组成原理作传统方式的验证性实验,功能单一、模式陈旧,国外一流大学,如斯坦福大学计算机系完全不用此类实验方式,而用EDA技术完成相关的实验, 可实现现代计算机组成原理实验、EDA实验、硬件描述语言VHDL、Verilog教学实验、电子设计竞赛开发、实用CPU或单片机设计或验证等等 RSIC CPU设计实验 完全不能 实现容易 嵌入式系统硬件实现和软件开发实验 完全不能 利用QuartusII、SOPC Builder和 嵌入式软核Nios可以实现。 现代计算机组成原理实验系统GW-48 CCP的CPU核心部分由FPGA设计实现,通过FPGA与单片机的接口,将CPU核心部件中的指令寄存器、程序计数器、地址寄存器、暂存寄存器、运算寄存器、缓冲寄存器、存储器、微地址寄存器、输入缓冲寄存器等大量的数据实时地在数码管和LCD液晶显示屏显示出来。各类操作指示、数据动态流向显示,直观明了,一目了然,摆脱了与电脑联机的麻烦。该实验仪采用FPGA设计CPU内部结构,采用模块化设计,单元电路分开,模块间连接通过内部总线和总线选择多路开关连接相,不必进行硬件连线,从而大大提高了实验的成功率。 传统的计算机组成原理实验台体积庞大,使用的芯片种类繁多,实验中需要花许多时间进行大量的连线,系统的可靠性低,由于芯片或连线出现的各种故障排查困难。 GW48 C+计算机组成原理实验台采用模块化的系统结构,学生可通过一系列基本单元实验和模型计算机综合设计实验,对CPU的运算功能、控制功能、总线结构、指令系统的设计和微指令的实现,以及CPU内部是如何工作的,有直观、深刻的认识。学生在进行各个单元实验和综合实验时,既可以通过系统计算机进行综合设计,系统软件仿真、观察仿真波形,更重要的是可以在GW48 CP+实验平台上,将自己设计的CPU电路下载到FPGA中进行硬件仿真。观察CPU内部的各种信息:包括数据总线、地址寄存器、程序计数器、指令译码器、指令寄存器、控制信号、内部寄存器、数据寄存器、微指令存储器LPM_ROM中的数据等,都实时、直观地显示在LCD屏幕上,使学生实时观察每条指令及微指令的执行情况,从而对计算机的原理、结构,从部件到系统,直到计算机整机有一个形象的、生动的、本质的认识。 通过利用GW48 CP+现代计算机组成原理实验系统的学习,还能使学生在VHDL语言、EDA软件工具和FPGA的应用方面获得大量实用的技术。 本实验的先期课程为不少于20学时的EDA技术课,包括FPGA应用技术、MaxplusII/QuartusII软件、原理图输入设计方法,以及VHDL基础。推荐选择用科学出版社的《EDA技术实用教程》或清华大学出版社的《EDA技术与VHDL》一书。 实验一 QuartusII EDA工具与VHDL基础实验 本实验中所配的13个实验主要作为计算机组成原理实验的前期练习,以便熟悉VHDL语言、原理图输入方法,以及EDA工具和EDA实验系统的使用方法。主要参考清华大学出版社的《EDA技术与VHDL》或《现代计算机组成原理》一书。 实验内容和数量可根据实际需要选择,每一个实验,在所配的光盘中都有对应的实验示例和实验指导课件。 1-1. 应用QuartusII完成基本组合电路设计 《示例程序和实验指导课件位置》: \Experiments\Expmt1\chpt4\Ep1c6_41_mux21A\ 工程mux21A (1) 实验目的:熟悉QuartusⅡ的VHDL文本设计流程全过程,学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。 (2) 实验内容1:首先利用QuartusⅡ完成2选1多路选择器(例3-3)的文本编辑输入(mux21a.vhd)和仿真测试等步骤,给出图3-3所示的仿真波形。最后在实验系统上进行硬件测试,验证本项设计的功能。 (3) 实验内容2:将此多路选择器看成是一个元件mux21a,利用元件例化语句描述图3-18,并将此文件放在同一目录中。以下是部分参考程序: ... COMPONENT MUX21A PORT ( a,b,s : IN STD_LOGIC; y : OUT STD_LOGIC); END COMPONENT ; ... u1 : MUX21A PORT MAP(a=>a2,b=>a3,s=>s0,y=>tmp); u2 : MUX21A PORT MAP(a=>a1,b=>tmp,s=>s1,y=>outy); END ARCHITECTURE BHV ; 【例3-3】 ENTITY mux21a IS PORT ( a, b, s: IN BIT; y : OUT BIT ); END ENTITY mux21a; ARCHITECTURE one OF mux21a IS BEGIN PROCESS (a,b,s) BEGIN IF s = '0' THEN y <= a ; ELSE y <= b ; END IF; END PROCESS; END ARCHITECTURE one ; 图3-18 双2选1多路选择器 3-3 mux21a功能时序波形 按照本章给出的步骤对上例分别进行编译、综合、仿真。并对其仿真波形作出分析说明。 (4) 实验内容3:引脚锁定以及硬件下载测试。若选择目标器件是EP1C3,建议选实验电路模式5(附录图7),用键1(PIO0,引脚号为1)控制s0;用键2(PIO1,引脚号为2)控制s1;a3、a2和a1分别接clock5(引脚号为16)、clock0(引脚号为93)和clock2(引脚号为17);输出信号outy仍接扬声器spker(引脚号为129)。通过短路帽选择clock0接256Hz信号,clock5接1024Hz,clock2接8Hz信号。最后进行编译、下载和硬件测试实验(通过选择键1、键2,控制s0、s1,可使扬声器输出不同音调)。 (5) 实验报告:根据以上的实验内容写出实验报告,包括程序设计、软件编译、仿真分析、硬件测试和详细实验过程;给出程序分析报告、仿真波形图及其分析报告。 (6) 附加内容:根据本实验以上提出的各项实验内容和实验要求,设计1位全加器。首先用QuartusⅡ完成3.3节给出的全加器的设计,包括仿真和硬件测试。实验要求分别仿真测试底层硬件或门和半加器,最后完成顶层文件全加器的设计和测试,给出设计原程序,程序分析报告、仿真波形图及其分析报告。 (7) 实验习题:以1位二进制全加器为基本元件,用例化语句写出8位并行二进制全加器的顶层文件,并讨论此加法器的电路特性。 1-2. 应用QuartusII完成基本时序电路的设计 (1) 实验目的:熟悉QuartusⅡ的VHDL文本设计过程,学习简单时序电路的设计、仿真和测试。 (2) 实验内容1:根据实验4-1的步骤和要求,设计触发器(使用例3-6),给出程序设计、软件编译、仿真分析、硬件测试及详细实验过程。 【例3-6】 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF1 IS PORT (CLK : IN STD_LOGIC ; D : IN STD_LOGIC ; Q : OUT STD_LOGIC ); END ; ARCHITECTURE bhv OF DFF1 IS SIGNAL Q1 : STD_LOGIC ; --类似于在芯片内部定义一个数据的暂存节点 BEGIN PROCESS (CLK,Q1) BEGIN IF CLK'EVENT AND CLK = '1' THEN Q1 <= D ; END IF; END PROCESS ; Q <= Q1 ; --将内部的暂存数据向端口输出(双横线--是注释符号) END bhv; (3) 实验内容2:设计锁存器(使用例3-14),同样给出程序设计、软件编译、仿真分析、硬件测试及详细实验过程。 【例3-14】 ... PROCESS (CLK,D) BEGIN IF CLK = '1' --电平触发型寄存器 THEN Q <= D ; END IF; END PROCESS ; (4) 实验内容3:只用一个1位二进制全加器为基本元件和一些辅助的时序电路,设计一个8位串行二进制全加器,要求: 1、能在8-9个时钟脉冲后完成8位二进制数(加数被加数的输入方式为并行)的加法运算,电路须考虑进位输入Cin和进位输出Cout; 2、给出此电路的时序波形,讨论其功能,并就工作速度与并行加法器进行比较; 3、在FPGA中进行实测。对于GW48 EDA实验系统,建议选择电路模式1(附录图3),键2,键1输入8位加数;键4,键3输入8位被加数;键8作为手动单步时钟输入;键7控制进位输入Cin;键9控制清0;数码6和数码5显示相加和;发光管D1显示溢出进位Cout。 4、键8作为相加起始控制,同时兼任清0;工作时钟由clock0自动给出,每当键8发出一次开始相加命令,电路即自动相加,结束后停止工作,并显示相加结果。就外部端口而言,与纯组合电路8位并行加法器相比,此串行加法器仅多出一个加法起始/清0控制输入和工作时钟输入端。(提示:此加法器有并/串和串/并移位寄存器各一)。 (5) 实验报告:分析比较实验内容1和2的仿真和实测结果,说明这两种电路的异同点。详述实验内容3。 1-3. 设计含异步清0和同步时钟使能的加法计数器 《示例程序和实验指导课件位置》:\Experiments\ Expmt1\chpt4\Ep1c6_43_cnt10\ 工程:cnt10 (1) 实验目的:学习计数器的设计、仿真和硬件测试,进一步熟悉VHDL设计技术。 (2) 实验原理:实验程序为例3-22,实验原理参考3.4节,设计流程参考本章。 【例3-22】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS PORT (CLK,RST,EN : IN STD_LOGIC; CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC ); END CNT10; ARCHITECTURE behav OF CNT10 IS BEGIN PROCESS(CLK, RST, EN) VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST = '1' THEN CQI := (OTHERS =>'0') ; --计数器异步复位 ELSIF CLK'EVENT AND CLK='1' THEN --检测时钟上升沿 IF EN = '1' THEN --检测是否允许计数(同步使能) IF CQI < 9 THEN CQI := CQI + 1; --允许计数, 检测是否小于9 ELSE CQI := (OTHERS =>'0'); --大于9,计数值清零 END IF; END IF; END IF; IF CQI = 9 THEN COUT <= '1'; --计数大于9,输出进位信号 ELSE COUT <= '0'; END IF; CQ <= CQI; --将计数值向端口输出 END PROCESS; END behav; (3) 实验内容1:在QuartusⅡ上对例3-22进行编辑、编译、综合、适配、仿真。说明例中各语句的作用,详细描述示例的功能特点,给出其所有信号的时序仿真波形。 (4) 实验内容2:引脚锁定以及硬件下载测试(参考4.2节)。引脚锁定后进行编译、下载和硬件测试实验。将实验过程和实验结果写进实验报告。 (5) 实验内容3:使用SignalTap II对此计数器进行实时测试,流程与要求参考4.3节。 (6) 实验内容4:从设计中去除SignalTap II,要求全程编译后生成用于配置器件EPCS1编程的压缩POF文件,并使用ByteBlasterII,通过AS模式对实验板上的EPCS1进行编程,最后进行验证。 (7) 实验内容4:为此项设计加入一个可用于SignalTap II采样的独立的时钟输入端(采用时钟选择clock0=12MHz,计数器时钟CLK分别选择256Hz、16384Hz、6MHz),并进行实时测试。 (8) 思考题:在例3-22中是否可以不定义信号 CQI,而直接用输出端口信号完成加法运算,即: CQ <= CQ + 1?为什么? (9) 实验报告:将实验原理、设计过程、编译仿真波形和分析结果、硬件测试实验结果写进实验报告。 1-4. 7段数码显示译码器设计 《示例程序和实验指导课件位置》:\Experiments\ Expmt1\chpt4\Ep1c6_51_DECL7S\ 工程:DECL7S (1) 实验目的:学习7段数码显示译码器设计;学习VHDL的CASE语句应用及多层次设计方法。 (2) 实验原理:7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中来实现。例5-18作为7段译码器,输出信号LED7S的7位分别接如图5-18数码管的7个段,高位在左,低位在右。例如当LED7S输出为“1101101”时,数码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管显示“5”。注意,这里没有考虑表示小数点的发光管,如果要考虑,需要增加段h,例5-18中的LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)应改为…(7 DOWNTO 0) 。 (3) 实验内容1:说明例5-18中各语句的含义,以及该例的整体功能。在QuartusII上对该例进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形。 提示:用输入总线的方式给出输入信号仿真数据,仿真波形示例图如图5-17所示。 图5-17 7段译码器仿真波形 【例5-18】 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DECL7S IS PORT ( A : IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ) ; END ; ARCHITECTURE one OF DECL7S IS BEGIN PROCESS( A ) BEGIN CASE A IS WHEN "0000" => LED7S <= "0111111" ; WHEN "0001" => LED7S <= "0000110" ; WHEN "0010" => LED7S <= "1011011" ; WHEN "0011" => LED7S <= "1001111" ; WHEN "0100" => LED7S <= "1100110" ; WHEN "0101" => LED7S <= "1101101" ; WHEN "0110" => LED7S <= "1111101" ; WHEN "0111" => LED7S <= "0000111" ; WHEN "1000" => LED7S <= "1111111" ; WHEN "1001" => LED7S <= "1101111" ; WHEN "1010" => LED7S <= "1110111" ; WHEN "1011" => LED7S <= "1111100" ; WHEN "1100" => LED7S <= "0111001" ; WHEN "1101" => LED7S <= "1011110" ; WHEN "1110" => LED7S <= "1111001" ; WHEN "1111" => LED7S <= "1110001" ; WHEN OTHERS => NULL ; END CASE ; END PROCESS ; END ; (4) 实验内容2:引脚锁定及硬件测试。建议选GW48系统的实验电路模式6(参考附录图8),用数码8显示译码输出(PIO46-PIO40),键8、键7、键6和键5四位控制输入,硬件验证译码器的工作性能。 (5) 实验内容3:用第3章介绍的例化语句,按图5-19的方式连接成顶层设计电路(用VHDL表述),图中的CNT4B是一个4位二进制加法计数器,可以由例3-22修改获得;模块DECL7S即为例5-18实体元件,重复以上实验过程。注意图5-19中的tmp是4位总线,led是7位总线。对于引脚锁定和实验,建议选电路模式6,用数码8显示译码输出,用键3作为时钟输入(每按2次键为1个时钟脉冲),或直接接时钟信号clock0。 (6) 实验报告:根据以上的实验内容写出实验报告,包括程序设计、软件编译、仿真分析、硬件测试和实验过程;设计程序、程序分析报告、仿真波形图及其分析报告。 图5-18共阴数码管及其电路 图5-19 计数器和译码器连接电路的顶层文件原理图 1-5. 8位数码扫描显示电路设计 《示例程序和实验指导课件位置》:\Experiments\Expmt1\chpt5\Ep1c6_52_SCAN\ 工程:SCAN_LED (1) 实验目的:学习硬件扫描显示电路的设计。 (2) 实验原理:图5-20所示的是8位数码扫描显示电路,其中每个数码管的8个段:h、g、f、e、d、c、b、a(h是小数点)都分别连在一起,8个数码管分别由8个选通信号k1、k2、…k8来选择。被选通的数码管显示数据,其余关闭。如在某一时刻,k3为高电平,其余选通信号为低电平,这时仅k3对应的数码管显示来自段信号端的数据,而其它7个数码管呈现关闭状态。根据这种电路状况,如果希望在8个数码管显示希望的数据,就必须使得8个选通信号k1、k2、…k8分别被单独选通,并在此同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫描显示的目的。 例5-19是扫描显示的示例程序,其中clk是扫描时钟;SG为7段控制信号,由高位至低位分别接g、f、e、d、c、b、a 7个段;BT是位选控制信号,接图5-20中的8个选通信号:k1、k2、…k8 。程序中CNT8是一个3位计数器,作扫描计数信号,由进程P2生成;进程P3是7段译码查表输出程序,与例5-18相同;进程P1是对8个数码管选通的扫描程序,例如当CNT8等于"001" 时,K2对应的数码管被选通,同时,A被赋值3,再由进程P3译码输出"1001111",显示在数码管上即为“3”;当CNT8扫变时,将能在8个数码管上显示数据:13579BDF 。 图5-20 8位数码扫描显示电路 【例5-19】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SCAN_LED IS PORT ( CLK : IN STD_LOGIC; SG : OUT STD_LOGIC_VECTOR(6 DOWNTO 0); --段控制信号输出 BT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );--位控制信号输出 END; ARCHITECTURE one OF SCAN_LED IS SIGNAL CNT8 : STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL A : INTEGER RANGE 0 TO 15; BEGIN P1:PROCESS( CNT8 ) BEGIN CASE CNT8 IS WHEN "000" => BT <= "00000001" ; A <= 1 ; WHEN "001" => BT <= "00000010" ; A <= 3 ; WHEN "010" => BT <= "00000100" ; A <= 5 ;- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现代 计算机 组成 原理 实验 讲义
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文