东南大学信息学院计算结构POC实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2-1POC实验报告目录目录..............................................................................................................................................1-11实验目的...............................................................................................................................1-12实验任务...............................................................................................................................2-13架构说明...............................................................................................................................3-24仿真信号设计与结果分析...................................................................................................4-34.1打印机模块...............................................................................................................4-34.1.1仿真信号说明与设计...................................................................................4-34.1.2仿真结果与分析...........................................................................................4-34.2POC模块..................................................................................................................4-34.2.1仿真信号说明与设计...................................................................................4-34.2.2仿真结果与分析...........................................................................................4-44.3整体模块...................................................................................................................4-45总结与补充...........................................................................................................................5-45.1查询模式...................................................................................................................5-55.2中断模式...................................................................................................................5-56附录.......................................................................................................................................6-61实验目的本实验的目的是设计一块简易的POC(并行输出控制器),从而连接系统总线和打印机。通过本次实验,可以初步了解输入输出、存储模块的设计,为接下来CPU的设计奠定良好的基础。2实验任务利用ISE和VHDL语言设计出POC模块和打印机模块,并且通过仿真测试并验证其主要功能的实现。仿真主要以中断响应工作模式为主。而查询模式也需要了解,这部分分析内容都将放在总结环节。3-23架构说明整体由POC、Printer两个模块组成,整体的输入端口有:CS:片选,实际情况为地址总线13A:寄存器选取;D_bus:数据总线;CLK:时间信号;R_W:读取/写入控制,0为读取,1为写入;输出端口为:IRQ:中断请求信号,低电平有效;CNT:计数器,用于模拟打印机的忙碌情况。4-34仿真信号设计与结果分析4.1打印机模块4.1.1仿真信号说明与设计RDY:输出信号,当Printer处于空闲状态时为1,工作状态为0;TR:输入信号,表示准备传输数据,设置为保持一个时钟周期;PD:输入信号,表示当前准备打印的数据;CLK:时钟信号,虽然设计图上没有,但为了模拟打印机工作采用了计数器,相应的也暂时引入了时钟信号。CNT:输出信号,用以模拟打印机的过程,输出用以更直观的表示。4.1.2仿真结果与分析①初始状态时打印机显然不处于工作状态,因而RDY信号保持为1;②当PD数据填充完毕后,TR脉冲信号到来;③TR脉冲上升沿到来的同时,RDY信号置为0,表示正在忙碌;④此时打印机开始打印,表示为cnt计数,当计数完毕后RDY信号重新为1。4.2POC模块4.2.1仿真信号说明与设计RDY:输入信号,用以判断打印机是否空闲CS:输入信号,表示片选,实际使用时为CPU是否选中该芯片(用前13根地址线)A:输入信号,地址线的后3位,表示实际选择哪个寄存器,本次设计001为选取数据寄存器,010为选取状态寄存器。CLK:时钟信号。CNT:输出信号,用以模拟打印机的过程,输出用以更直观的表示。5-44.2.2仿真结果与分析①初始状态时,POC未被选中,打印机处于空闲状态,因此SR7被置为1,又由于默认工作在中断方式,因此在时钟上升沿之时便发出IRQ中断请求(低电平);②发送请求后,CPU选中芯片(即前13地址线选中CS),将数据总线的数据准备好,之后选中数据寄存器(A为001),并将POC的读写状态设置为写;③经过一个时钟周期后tr脉冲输出表示数据准备传送,并且数据输出口准备好数据,打印机也回到忙碌状态。4.3整体模块输入信号和POC模块大致相同,因此直接进行结果分析。首先,IRQ信号产生,CPU选中POC芯片,随后选中数据寄存器并写入数据,之后经过几个时钟后,打印机开始工作,计数器开始计数。而CPU又去处理其他的工作(中断工作模式的体现)。当打印机打印结束时,IRQ信号再度发出,等待CPU响应与再度传送数据。由于CPU当前也许正在进行不可中断的原子性操作,所以等待响应后再传送数据、再度打印是必要的。由此仿真了整个工作流程。由于更复杂的仿真过程需要CPU的设计与介入,在此无法展示,我将在下文做相关文字补充。5总结与补充通过仿真,我们对POC的工作方式和细节有了进一步的了解。然而,由于本次实验没有对CPU的特殊要求和说明,导致无法通过仿真的方式清晰的体现出中断方式和查询方式的具体区别。所有本应CPU输出、处理、反馈的信号都由人手工输入代替。因此,下面将对两种工作模式结合CPU作进一步阐述与补充。5-55.1查询模式首先,CPU收到有关程序的请求,准备通过I/O接口联系POC模块,试图打印有关内容。CPU访问POC的相关状态寄存器(SR7),查看POC目前是否处于空闲状态。如果是,那就准备打印,否则,CPU处于轮询的状态。该进程内的每一个指令周期,CPU都在查询POC是否空闲,并不做其他的事情,直到POC处于空闲,并允许传输数据为止。当CPU了解POC已准备就绪时,CPU便将有关内容分块传输到POC的数据缓存中。由于实际文件数据量较大,CPU将持续处于“轮询—传输—轮询—传输”直到文件打印完毕为之。对于已经传输到POC的数据段,POC并不能立刻将其提交给打印机,因为当前打印机可能处于忙碌状态。当打印机用完当前数据(可能仅为一行)后,RDY信号为高电平,POC再将本段数据提交给打印机继续操作。通过POC的TR信号和PD数据输出传送给打印机,再通过RDY信号判断当前打印机是否用完目前的数据。如果用完了,就将SR7置为空闲状态,以方便CPU提供新数据,否则SR7处于忙碌状态。至此,整个查询模式的工作方式描述完毕。5.2中断模式首先,CPU在某个时间点将POC的SR0置为1,即命令POC工作在中断模式。之后的前小部分和查询模式相同,CPU收到有关程序的请求,准备通过I/O接口联系POC模块,试图打印有关内容。CPU访问POC的相关状态寄存器(SR7),查看POC目前是否处于空闲状态,如果是,那就准备打印。如果POC忙碌,CPU则继续忙其他的工作。由于POC事先已被CPU设置为中断模式,一旦POC处于空闲态,则会向CPU发出中断请求。此时,CPU会通过查中断向量表得知,是POC模块发出的请求,处理完当前的原子性操作或更高级的中断请求后,则响应POC中断,选中POC芯片进行有关操作。由于实际文件数据量较大,CPU仍然会分块传输数据。此时CPU传完数据后继续忙其他工作,直到下一个中断来临。整个工作将持续处于“中断—传输—中断—传输”直到文件打印完毕为之。具体的POC处理和前文类似,不再多言。最后需要额外指出的是,对于多文档打印,打印队列由更高一层的操作系统控制,无关物理底层的实现,因此可不用在此讨论。5.3结论本项仿真设计完成了任务的基本要求,实现了POC和Printer的设计,并且通过了测试,达到了预期的效果。6-66附录/***************top.vhd****************/----------------------------------------------------------------------------------libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;--UncommentthefollowinglibrarydeclarationifusinglibraryIEEE;useIEEE.STD_LOGIC_1164.ALL;entitytopisPort(CS:inSTD_LOGIC;A:inSTD_LOGIC_VECTOR(2downto0);D_bus:inSTD_LOGIC_VECTOR(7downto0):=00000000;R_W:inSTD_LOGIC;CLK:inSTD_LOGIC;IRQ:outSTD_LOGIC:='1';CNT:outSTD_LOGIC_VECTOR(3downto0));endtop;architectureBehavioraloftopiscomponentpocPort(CS:inSTD_LOGIC;A:inSTD_LOGIC_VECTOR(2downto0);D_bus:inSTD_LOGIC_VECTOR(7downto0):=00000000;

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功