数字系统设计技术实验指导书

合集下载

SOPC实验指导书

SOPC实验指导书

SOPC实验指导书电信学院实验中心目录第一章EL-SOPC4000实验系统的资源介绍 (1)一、系统功能概述 (1)二、系统硬件资源 (2)三、特别说明 (11)第二章数字可编程设计实验 (12)实验一组合逻辑3-8译码器的设计 (12)第三章基于NIOS的软核设计实验 (23)实验一 Nios软核的设计 (23)实验二外设模块的设计 (27)实验三 SOPC应用系统的生成 (40)实验四 Nios II软核验证以及Nios II IDE软件的介绍 (46)实验五 SOPC系统的PIO验证 (52)实验六基于NIOS的交通灯实验 (55)实验七 7段数码管显示实验 (59)实验八按键及拨码开关实验 (61)实验九 16×16 LED点阵实验 (62)实验十 UART与PC机通信实验 (64)第一章EL-SOPC4000实验系统的资源介绍一、系统功能概述EL-SOPC4000实验箱是集EDA 和SOPC 开发为一体的综合性实验箱,它不仅可以独立完成各种EDA 设计,也可以完成多种SOPC开发。

主CPU适配器E-PLAY-SOPC配合EL-SOPC4000底板,可完成各种基本的EDA实验。

在实验板上有丰富的外围扩展资源,有常用的按键,拨码开关,LED灯,蜂鸣器,交通灯,16x16点阵,数码管,4x4矩阵键盘,AD/DA,CAN功能单元,RS232,RS485,可调时钟输出。

实验板上还集成了一个8寸的VGA接口的液晶屏,可完成视频图像的显示。

由于CPU 适配器E-PLAY-SOPC本身具有E_PLAY接口,只需提供电源即可独立完成功能测试,也可控制用户开发的E_PLAY接口模块。

由于EL-SOPC4000底板加入了两路E_LAB外扩接口,可以配合公司现有的多种E_LAB模块,来完成大学生毕业设计、电子设计竞赛、及创新设计,同时该系统也是从事教学及科研的广大教师和工程师们的理想开发工具,具有极高的灵活性,开放性和可开发性。

《计算机操作系统》实验指导书

《计算机操作系统》实验指导书

《计算机操作系统》实验指导书(适合于计算机科学与技术专业)湖南工业大学计算机与通信学院二O一四年十月前言计算机操作系统是计算机科学与技术专业的主要专业基础课程,其实践性、应用性很强。

实践教学环节是必不可少的一个重要环节。

计算机操作系统的实验目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握操作系统的基本原理,加深对操作系统基本方法的理解,加深对课堂知识的理解,为学生综合运用所学知识,在Linux环境下调用一些常用的函数编写功能较简单的程序来实现操作系统的基本方法、并在实践应用方面打下一定基础。

要求学生在实验指导教师的帮助下自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个实验解决一类问题。

要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,并且能够进行简单分析和判断;能够熟练使用Linux用户界面;掌握操作系统中进程的概念和控制方法;了解进程的并发,进程之间的通信方式,了解虚拟存储管理的基本思想。

同时培养学生进行分析问题、解决问题的能力;培养学生完成实验分析、实验方法、实验操作与测试、实验过程的观察、理解和归纳能力。

为了收到良好的实验效果,编写了这本实验指导书。

在指导书中,每一个实验均按照该课程实验大纲的要求编写,力求紧扣理论知识点、突出设计方法、明确设计思路,通过多种形式完成实验任务,最终引导学生有目的、有方向地完成实验任务,得出实验结果。

任课教师在实验前对实验任务进行一定的分析和讲解,要求学生按照每一个实验的具体要求提前完成准备工作,如:查找资料、设计程序、完成程序、写出预习报告等,做到有准备地上机。

进行实验时,指导教师应检查学生的预习情况,并对调试过程给予积极指导。

实验完毕后,学生应根据实验数据及结果,完成实验报告,由学习委员统一收齐后交指导教师审阅评定。

实验成绩考核:实验成绩占计算机操作系统课程总评成绩的20%。

指导教师每次实验对学生进行出勤考核,对实验效果作记录,并及时批改实验报告,综合评定每一次的实验成绩,在学期终了以平均成绩作为该生的实验成绩。

最新UML程序设计实验指导书

最新UML程序设计实验指导书

《UML程序设计》实验指导教程课程与实验综述第一部分实验综述一.课程简介及实践要求:《UML程序设计》是以介绍面向对象的统一建模语言UML为主,使学生了解面向对象技术的基本概念,掌握UML的分析和设计方法,同时掌握在Enterprise Architect环境下用UML进行分析和设计的技术。

本课程在教学内容方面着重基本理论、基本知识和基本方法,在培养实践能力方面着重设计构思和设计技能的基本训练,熟练的上机操作能力和分析能力。

实验实践训练是UML程序设计教学的重要技能环节。

通过实验,使学生加深理解、验证、巩固课堂教学内容,特别是通过设计和综合实验,发挥学生的想象力和创新能力。

二.课程实验目的要求:通过UML的实验,学生应该:1.学会用UML进行面向对象的思想去分析和设计相关系统;2.学会用Rose建模工具进行软件建模。

三.课程实验参考资料1.(美)Joseph Schmuller著.UML基础、案例与应用.人民邮电出版社,20042.(美)Hans-Erik Eriksson.UML 2工具箱. 电子工业出版社,20043.吴际,金茂忠.UML面向对象分析.北京航空航天大学出版社,20024.赵从军.UML设计及应用.机械工业出版社,20045.Grady Booch,James Rumbaugh,Ivar Jacobson.UML用户指南.机械工业出版社,20016.吴建,郑潮,汪杰.UML基础与Rose建模案例.人民邮电出版社,2004第二部分实验实践指导实验一构建用例图一、实验目的1.学会分析系统中的参与者和用例2.掌握用例图的绘制方法二、实验器材1. 计算机一台;2. Enterprise Architect 工具软件;三、实验内容1、分析ATM系统需求,按要求画出用例图;2、建立一个学生管理信息系统的需求3、建立设计一个学生管理信息系统的完整的用例图四、实验步骤(一)ATM系统的用例图1.分析ATM自动取款机:客户可以取钱,存钱,查询余额,转帐,修改密码。

TEC-8实验指导书

TEC-8实验指导书

2
前 言……………………………………………………………………………………..1 第 1 章 TEC-8 计算机硬件综合实验系统…………………………………………….…..5 1.1 TEC-8 实验系统的用途…………………………………………………………….…5 1.2 TEC-8 实验系统技术特点…………………………………………………….………5 1.3 TEC-8 实验系统组成………………………………………………………….………6 1.4 逻辑测试笔……………………………………………………………………………6 1.5 TEC-8 实验系统结构和操作……………………………………………….…………7 1.5.1 模型计算机时序信号………………………………………………………………7 1.5.2 模型计算机组成……………………………………………………………………7 1.6 模型计算机指令系统………………………………………………………………… 10 1.7 开关、按钮、指示灯……………………………………………………..…………11 1.8 数字逻辑和数字系统实验部分…………………………………..…………………12 1.8.1 基本实验通用区…………………………………………………………………...12 1.8.2 大型综合设计实验装臵………………………………………………………..….13 2 1.9 E PROM 中微代码的修改………………………………………………….……….…13 第 2 章 计算机组织与体系结构基本实验………………………………………………18 2.1 运算器组成实验……………………………………………………………………..18 2.2 双端口存储器实验…………………………………………………………………..22 2.3 数据通路实验………………………………………………………………………..26 2.4 微程序控制器实验…………………………………………………………………..30 2.5 CPU 组成与机器指令的执行…………………………………………………………36 2.6 中断原理实验………………………………………………………………………..39 第 3 章 课程综合设计…………………………………………………………………....43 3.1 模型机硬连线控制器设计…………………………………………………………..43 3.2 模型机流水微程序控制器设计……………………………………………………..47 3.3 模型机流水硬连线控制器设计……………………………………………………..50 3.4 含有阵列乘法器的 ALU 设计………………………………………………………..51 第 4 章 数字逻辑与数字系统基本实验…………………………………………………55 4.1 基本逻辑门逻辑实验………………………………………………………………..55 4.2 TTL、HC 和 HCT 器件的电压传输特性实验………………………………………..56 4.3 三态门实验…………………………………………………………………….…….59 4.4 数据选择器和译码器实验……………………………………………………….….61 4.5 全加器构成及测试实验………………………………………………………….….63 4.6 组合逻辑中的冒险现象实验…………………………………………………….….64 4.7 触发器实验……………………………………………………………………….….66 4.8 简单时序电路实验…………………………………………………………………..69 4.9 计数器和数码管实验………………………………………………………………..70 4.10 四相时钟分配器实验………………………………………………………………74 第 5 章 数字逻辑与数字系统综合设计实验…………………………………………...76 5.1 简易电子琴实验……………………………………………………………………..76

电子系统设计实验指导书(FPGA基础篇Vivado版)

电子系统设计实验指导书(FPGA基础篇Vivado版)
电子系统设计
实验指导书(FPGA 基础篇 Vivado 版)
东南大学 电子科学 ........................................................................................................................................................... 1
安全使用规范
东南大学 电子科学与工程学院
无论何时,外部电源供电与 USB 两种供电方式只能用其中一种,避免因为电压有所差别而烧坏电路板。 采用电压高于5.5V的任何电源连接器可能造成永久性的损害。 插拔接插件前请关闭电路板总开关,否则易损坏器件。 电路板应在绝缘平台上使用,否则可能引起电路板损坏。 不同编码机制不要混接。 安装设备需防止静电。 液晶显示器件或模块结雾时,不要通电工作,防止电极化学反应,产生断线。 遇到正负极连接时需谨慎,避免接反引起开发板的损坏。 保持电路板的表面清洁。 小心轻放,避免不必要的硬件损伤。
实验目的 ....................................................................................................................................................... 17 实验内容 ....................................................................................................................................................... 17 实验要求 ....................................................................................................................................................... 17 实验步骤 ....................................................................................................................................................... 17 实验结果 ....................................................................................................................................................... 22

操作系统实验指导书

操作系统实验指导书

操作系统实验指导书一、实验说明1、实验目的实验是操作系统原理课程中不可缺少的重要教学环节,实验目的是使学生理论联系实际,使学生在实践探索中去发现问题、去解决问题,提高了学生获取知识和应用技术的能力,培养了学生分析和解决问题的能力。

《操作系统原理》要求理论与实践相结合,本门实验课程是对《操作系统原理》课堂教学的一个重要补充,与理论学习起着相辅相成的作用,是实施《操作系统原理》教学的一个重要组成部分。

通过本实验课的实践学习,可以增强本专业的学生对系统实现的认识。

对加深理解和掌握操作系统相关原理有重要帮助。

2、实验要求进一步了解和掌握操作系统原理,提高系统设计的能力。

对每一实验题目,应独立完成,并要求:·上机前,学生必须做好充分的实验准备工作,掌握与实验相关的背景知识,用任一种高级语言编写程序。

·上机时,认真调试,并观察、记录程序运行过程中出现的现象和问题。

·上机后,分析实验结果并写出实验报告。

3、实验报告要求每个实验(包括选做的)均应编写实验报告,学生实验后要写出严谨的、实事求是的、文字通顺的、字迹公整的实验报告。

实验报告应包括以下内容:(1)实验题目(2)实验目的(3)实验内容●程序中使用的数据结构及符号说明●流程图●源程序清单并附上注释(4)实验结果及分析●运行结果(必须是上面程序清单所对应输出的结果)●对运行情况所作的分析以及本次调试程序所取得的经验。

如果程序未能通过,应分析其原因。

二、实验内容实验一熟悉使用计算机系统一、实验名称:熟悉使用计算机系统二、实验目的与要求通过对Windows操作系统的使用,熟悉Windows操作系统中的基本概念,如单用户、多任务、进程和文件等,熟悉Windows中命令行方式下常用命令的使用方法;进一步熟悉TC语言与开发环境,为以后的实验打好基础。

三、实验内容1.开机后,熟悉Windows的界面(桌面、任务栏、开始按钮<点击后出现“开始”菜单>、我的电脑图标、回收站、我的文档)。

CS2000DCS实验指导书

CS2000DCS实验指导书
上式表示h(t)若以在原点时的速度h(∞)/T恒速变化,即只要花T秒时间就可达到稳态值h(∞)。
五.实验内容步骤
1)对象的连接和检查:
(1)将CS2000 实验对象的储水箱灌满水(至最高高度)。
(2)打开以水泵、电动调节阀、孔板流量计组成的动力支路至上水箱的出水阀门.关闭动力支路上通往其他对象的切换阀门。
如图2-1所示:这是由两个一阶非周期惯性环节串联起来,输出量是下水箱的水位h2。当输入量有一个阶跃增加 Q1时,输出量变化的反应曲线如图2-2所示的 h2曲线。它不再是简单的指数曲线,而是就使调节对象的飞升特性在时间上更加落后一步。在图中S形曲线的拐点P上作切线,它在时间轴上截出一段时间OA。这段时间可以近似地衡量由于多了一个容量而使飞升过程向后推迟的程度,因此,称容量滞后,通常以τC代表之。设流量Q1为双容水箱的输入量,下水箱的液位高度h2为输出量,根据物料动态平衡关系,并考虑到液体传输过程中的时延,其传递函数为:
CS2000实验对象的检测及执行装置包括:
检测装置:扩散硅压力变送器。分别用来检测上水箱、下水箱液位的压力;孔板流量计、涡轮流量计分别用来检测单相水泵支路流量和变频器动力支路流量;Pt100热电阻温度传感器分别用来检测锅炉内胆、锅炉夹套和强制对流换热器冷水出口、热水出口。
执行装置:单相可控硅移相调压装置用来调节单相电加热管的工作电压;电动调节阀调节管道出水量;变频器调节副回路水泵的工作电压。
二.实验设备
CS2000型过程控制实验装置, PC机,DCS控制系统与监控软件。
三、系统结构框图
单容水箱如图1-1所示:
图1-1、 单容水箱系统结构图
四、实验原理
阶跃响应测试法是系统在开环运行条件下,待系统稳定后,通过调节器或其他操作器,手动改变对象的输入信号(阶跃信号),同时记录对象的输出数据或阶跃响应曲线。然后根据已给定对象模型的结构形式,对实验数据进行处理,确定模型中各参数。

广工数字逻辑及系统设计实验

广工数字逻辑及系统设计实验

实验报告课程名称_数字逻辑及系统设计实验学生学院____计算机____________ 专业班级 _ 学号学生姓名指导教师年月日一、 实验目的1. 熟练掌握基本门电路的主要用途以及验证它们的逻辑功能。

2. 熟练掌握常用组合逻辑电路的基本原理及其逻辑电路功能。

3. 熟练掌握常用时序逻辑电路的基本原理及其逻辑电路功能。

4. 掌握Libero IDE 基于FPGA 的设计流程。

5. 熟悉FPGA 的设计与开发流程。

熟悉芯片烧录的流程及步骤。

二、 实验要求1. 要求每人能独立完成实验。

严禁抄袭。

2. 能独立搭建Libero IDE 软件基础环境,掌握FPGA 的开发流程。

3. 按照实验指导书中P56-69的实验步骤进行设计,每一步骤均需要截图显示。

4. 完成3次仿真(综合前,综合后,布局布线后),并将仿真波形截图显示。

5. 将程序烧录到Actel Proasic3 A3P030 FPGA 核心板,在数字逻辑及系统实验箱上完成连线,验证代码的正确性。

6. 纸制版的封面单面打印,其他页面必须双面打印。

全班刻一张光盘。

三、 实验内容1. 设计题目:用3-8译码器74HC138实现举重比赛的裁判表决电路的组合逻辑函数,写出模块代码和测试平台代码。

2. 74HC138功能表参照教材中P53表2-9,引脚图参照实验指导书中P30图2-16。

3. 把每一个步骤的实验结果截图,按实验指导书中P6图1-7中所列FPGA 引脚,手工分配引脚,最后通过烧录器烧录至FPGA 核心板上。

4. 按分配的引脚连线,实测相应功能并记录结果。

四、 实验结果与截图1. 模块及测试平台代码清单。

AC BC AB Y ++=2. 第一次仿真结果。

(将波形窗口背景设为白色..,调整窗口至合适大小,使波形能完整显示,对窗口截图..。

)3. 综合结果(截图..)。

(将相关窗口调至合适大小,使RTL图能完整显示,对窗口截图。

)..)。

回答输出信号是否有延迟,延迟时间约为多少答:有延迟, 延迟时间约为400ps5.第三次仿真结果(布局布线后)(截图..)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Experiment 2 Designing Number Comparer实验目的: 熟悉QuartusII 的开发环境熟练掌握编程开发流程 学习VHDL 的基本语法 学习VHDL 编程设计实验内容:数值比较器设计实验要求:熟练掌握QuartusII 开发环境下对可编程逻辑器件进行程序化设计的整套流程设计输入使用插入模板(Insert Template )在QuartusII 开发环境下对设计程序进行时序仿真将生成的配置文件下载到实验板,进行最终的实物测试验证实验原理:根据两位二进制数的大小得到对应的比较结果,其电路示意图及电路特性表为:比较器特性表比较器电路示意图实验报告内容要求:(1) 实验目的;(2) 实验内容; (3) 实验要求; (4) 实验原理; (5) 程序编写; (6) 程序编译(首先选择器件具体型号); (7) 功能仿真和芯片时序仿真; (8) 芯片引脚设定; (9) 适配下载结果及结论。

NumberComparerA(3..0) B(3..0)In_s In_l In_eYl YeYs YExperiment 3 Designing 8 to1-Multiplxer实验目的:熟悉QuartusII的开发环境熟练掌握编程开发流程学习VHDL的基本语法学习VHDL编程设计实验内容:八选一数据选择器设计。

实验要求:熟练掌握QuartusII开发环境下对可编程逻辑器件进行程序化设计的整套流程设计输入使用插入模板(Insert Template)在QuartusII开发环境下对设计程序进行时序仿真将生成的配置文件下载到实验板,进行最终的实物测试验证实验原理:电路功能表及其电路外部符号如下:电路功能表实验报告内容要求:(1)实验目的;(2)实验内容;(3)实验要求;(4)实验原理;(5)程序编写;(6)程序编译(首先选择器件具体型号);(7)功能仿真和芯片时序仿真;(8)芯片引脚设定;(9)适配下载结果及结论。

Experiment 4 Designing module _60实验目的:熟悉QuartusII的开发环境熟练掌握编程开发流程学习数字系统中层次化设计技巧学习显示译码电路分频电路、计数电路的VHDL程序设计学习结构化设计的VHDL程序设计实验内容:基于数码管显示的60进制计数器设计实验要求:熟练掌握QuartusII开发环境下对可编程逻辑器件进行程序化设计的整套流程将50MHz信号分频为1Hz信号以1Hz为60进制计数器使能信号,实现60进制计数功能计数结果用两位数码管显示计数进位持续时间1s用LED显示设计位同步时序电路在QuartusII开发环境下对设计程序进行时序仿真将生成的配置文件下载到实验板,进行最终的实物测试验证实验原理:先对50MHz时钟信号分频得到1Hz,然后调用两个10进制计数器,计数到59时回到初始0的计数状态,每个10进制计数的技术结果通过显示译码送到两位数码管上显示,结构框图如下:50MHz数码管数码管(1) 实验目的; (2) 实验内容; (3) 实验要求; (4) 实验原理; (5) 程序编写;(6) 程序编译(首先选择器件具体型号); (7) 功能仿真和芯片时序仿真; (8) 结论。

Experiment 5 Designing shift_register实验目的: 熟悉QuartusII 的开发环境熟练掌握编程开发流程 学习VHDL 的基本语法学习数字系统中移位寄存器设计及其VHDL 编程实验内容:移位寄存器设计实验要求:熟练掌握QuartusII 开发环境下对可编程逻辑器件进行程序化设计的整套流程设计输入使用插入模板(Insert Template )在QuartusII 开发环境下对设计程序进行时序仿真将生成的配置文件下载到实验板,进行最终的实物测试验证实验原理:根据两位二进制数的大小得到对应的比较结果,其电路示意图及电路特性表为:比较器特性表比较器电路示意图Shift_registerSr slData_in(3..0) clk clr load ctrData_q(3..0)(9)实验目的;(10)实验内容;(11)实验要求;(12)实验原理;(13)程序编写;(14)程序编译(首先选择器件具体型号);(15)功能仿真和芯片时序仿真;(16)芯片引脚设定;(17)适配下载结果及结论。

实验2考程序Library ieee;Use ieee.std_logic_1164.all;Entity compare_2 isPort( data_a,data_b:in std_logic_vector(3 downto 0);In_s,In_l,In_e:in std_logic;Ys,Yl,Ye:out std_logic);End compare_2;Architecture rtl of compare_2 isSignal tmps,tmpe: std_logic;BeginYs<=tmps;Ye <= tmpe;Yl <= tmps nor tmpe;Aa:process(data_a,data_b, In_e)BeginIf(data_a = data_b and In_e = ‘1’) thentmpe<=’1’;elsetmpe<=’0’;End if;End process aa;bb:process(data_a,data_b, In_s)BeginIf(data_a<data_b) thentmps<=’1’;elsif(data_a=data_b and In_s=’1’) thentmps<=’1’;Elsetmps<=’0’;End if;End process bb;End rtl;实验3参考程序ENTITY mux8_1 ISPORT(d : IN STD_LOGIC_VECTOR(7 DOWNTO 0);sel : IN STD_LOGIC_VECTOR(2 DOWNTO 0);sb : IN STD_LOGIC;y : OUT STD_LOGIC);END mux8_1;ARCHITECTURE rtl OF mux8_1 ISBEGINPROCESS (d, sel,sb)BEGINIf(sb=’0’) thenCase(sel)When "000" => y<=d(0);When "001" => y<=d(1);When "010" => y<=d(2);When "011" => y<=d(3);When "100" => y<=d(4);When "101" => y<=d(5);When "110" => y<=d(6);When "111" => y<=d(7);When others => y<=’X’;end case;elsey<=’0’;end if;END PROCESS;END rtl;实体(entity)名称与文件名称一致;时序仿真时,波形编辑后先保存波形文件再进行时序仿真;分配管脚后,需要重现编译,然后才能下载。

设计流程:新建项目→新建源文件→输入语言→编译→仿真→分配管脚→编译→下载仿真流程:新建波形文件→导入管脚信号并编辑输入信号→仿真下载的时候选择硬件为:BytebBlaster[LPT1]实验4参考程序library ieee;use ieee.std_logic_1164.all;entity count_60 isport(clk,rst:in std_logic;count_data10,count_data1: out std_logic_vector(6 downto 0);en_out :out std_logic);end count_60;architecture rtl of count_60 iscomponent sec_out port(clk,rst:in std_logic;en_out :out std_logic);end component;component count_10 port(clk,rst,en_in,ld:in std_logic;data_in:in std_logic_vector(3 downto 0);data_out:out std_logic_vector(3 downto 0);en_out :out std_logic);end component;component dis_decode port(data_in:in std_logic_vector(3 downto 0);dis_num :out std_logic_vector(6 downto 0));end component;signal cont_tmp10,cont_tmp1,data_in:std_logic_vector(3 downto 0);signal ld,sec_en,sec_en10,min_out:std_logic;beginld<=sec_en10 and cont_tmp10(2) and cont_tmp10(0);data_in<="0000";en_out<=cont_tmp10(2) and cont_tmp10(0) and cont_tmp1(3) and cont_tmp1(0); U0:sec_out port map(clk,rst,sec_en);U1:count_10 port map(clk,rst,sec_en,ld,data_in,cont_tmp1,sec_en10);U2:count_10 port map(clk,rst,sec_en10,ld,data_in,cont_tmp10,min_out);U3:dis_decode port map(cont_tmp1,count_data1);U4:dis_decode port map(cont_tmp10,count_data10);end rtl;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity count_10 isport(clk,rst,en_in,ld:in std_logic;data_in:in std_logic_vector(3 downto 0);data_out:out std_logic_vector(3 downto 0);en_out :out std_logic);end count_10;architecture rtl of count_10 issignal cont_tmp:std_logic_vector(3 downto 0); beginen_out<=en_in and cont_tmp(3) and cont_tmp(0); data_out<=cont_tmp;process(clk,rst)beginif(rst='0')thencont_tmp<="0000";elsif(clk'event and clk='1')thenif(ld='1')thencont_tmp<=data_in;elsif(en_in='1')thenif(cont_tmp="1001")thencont_tmp<="0000";elsecont_tmp<=cont_tmp+'1';end if;end if;end if;end process;end rtl;library ieee;use ieee.std_logic_1164.all;entity dis_decode isport(data_in:in std_logic_vector(3 downto 0);dis_num :out std_logic_vector(6 downto 0)end dis_decode;architecture rtl of dis_decode isbeginwith data_in selectdis_num<="0111111" WHEN "0000","0000110" WHEN "0001","1011011" WHEN "0010","1001111" WHEN "0011","1100110" WHEN "0100","1101101" WHEN "0101","1111101" WHEN "0110","0000111" WHEN "0111","1111111" WHEN "1000","1100111" WHEN "1001","0000000" WHEN others;end rtl;library ieee;use ieee.std_logic_1164.all;entity sec_out isport(clk,rst:in std_logic;en_out :out std_logic);end sec_out;architecture rtl of sec_out iscomponent divide_5 port(clk,rst,en_in:in std_logic;en_out :out std_logic);end component;component divide_10 port(clk,rst,en_in:in std_logic;en_out :out std_logic);end component;signal en0,en1,en2,en3,en4,en5,en6:std_logic; beginU0:divide_5 port map(clk,rst,'1',en0);U1:divide_10 port map(clk,rst,en0,en1);U2:divide_10 port map(clk,rst,en1,en2);U3:divide_10 port map(clk,rst,en2,en3);U4:divide_10 port map(clk,rst,en3,en4);U5:divide_10 port map(clk,rst,en4,en5);U6:divide_10 port map(clk,rst,en5,en6);U7:divide_10 port map(clk,rst,en6,en_out); end rtl;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity divide_5 isport(clk,rst,en_in:in std_logic;en_out :out std_logic);end divide_5;architecture rtl of divide_5 issignal cont_tmp:std_logic_vector(2 downto 0); beginen_out<=en_in and cont_tmp(2);process(clk,rst)beginif(rst='0')thencont_tmp<="000";elsif(clk'event and clk='1')thenif(en_in='1')thenif(cont_tmp="100")thencont_tmp<="000";elsecont_tmp<=cont_tmp+'1';end if;end if;end if;end process;end rtl;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity divide_10 isport(clk,rst,en_in:in std_logic;en_out :out std_logic);end divide_10;architecture rtl of divide_10 issignal cont_tmp:std_logic_vector(3 downto 0);beginen_out<=en_in and cont_tmp(3) and cont_tmp(0); process(clk,rst)beginif(rst='0')thencont_tmp<="0000";elsif(clk'event and clk='1')thenif(en_in='1')thenif(cont_tmp="1001")thencont_tmp<="0000";elsecont_tmp<=cont_tmp+'1';end if;end if;end if;end process;end rtl;实验5参考程序library ieee;use ieee.std_logic_1164.all;ENTITY shift ISPORT(clr,clk,load,shift_en,ctr,sr,sl : IN STD_LOGIC;data_in : IN STD_LOGIC_VECTOR(7 downto 0);data_q : OUT STD_LOGIC_VECTOR(7 downto 0)); END shift;ARCHITECTURE arc OF shift ISSIGNAL data_tmp : STD_LOGIC_VECTOR(7 downto 0);Signal en_tmp1, en_tmp2, en_tmp: std_logic;BEGINPROCESS(clr,clk)BEGINIF (clr='0') THENen_tmp1 <=’0’;elseen_tmp1 <=shift_en;end if;end process;PROCESS(clr,clk)BEGINIF (clr='0') THENen_tmp2 <=’0’;elseen_tmp2<= en_tmp1;end if;end process;en_tmp<= (not en_tmp1) and en_tmp2;data_q<= data_tmp;PROCESS(clr,clk)BEGINIF (clr='0') THENdata_tmp <="00000000";ELSIF (clk'EVENT AND clk='1') THENIF load='0' THENdata_tmp <= data_in;ELSIF (en_tmp ='1' AND ctr='0') THENdata_tmp <=sr& data_tmp (7 downto 1);ELSIF (en_tmp ='1' AND ctr='1') THENdata_tmp <= data_tmp (6 downto 0) & sl;END IF;END IF;END PROCESS;END arc;。

相关文档
最新文档