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

上传人:夏** 文档编号:560396961 上传时间:2022-09-08 格式:DOCX 页数:10 大小:161.09KB
返回 下载 相关 举报
东南大学信息学院计算结构POC实验报告_第1页
第1页 / 共10页
东南大学信息学院计算结构POC实验报告_第2页
第2页 / 共10页
东南大学信息学院计算结构POC实验报告_第3页
第3页 / 共10页
东南大学信息学院计算结构POC实验报告_第4页
第4页 / 共10页
东南大学信息学院计算结构POC实验报告_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《东南大学信息学院计算结构POC实验报告》由会员分享,可在线阅读,更多相关《东南大学信息学院计算结构POC实验报告(10页珍藏版)》请在金锄头文库上搜索。

1、POC 实验报告目录目录 1-11实验目的 1-12实验任务 2-13架构说明 3-24仿真信号设计与结果分析 4-34.1 打印机模块 4-34.1.1仿真信号说明与设计 4-34.1.2仿真结果与分析 4-34.2 POC 模块 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、2 实验任务利用ISE和VHDL语言设计出POC模块和打印机模块,并且通过仿真测试并验证其主要功能的实现。仿真主要以中断响应工作模式为主。而查询模式也需要了解,这部分分析内容都将放在 总结环节。3架构说明top:1top整体由POC、Printer两个模块组成,整体的输入端口有:CS:片选,实际情况为地址总线13A:寄存器选取;D_bus :数据总线;CLK :时间信号;R_W:读取/写入控制,0为读取,1为写入;输出端口为:IRQ:中断请求信号,低电平有效;CNT:计数器,用于模拟打印机的忙碌情况。4仿真信号设计与结果分析41打印机模块411仿真信号说明与设计RDY:输出信号,当Printe

3、r处于空闲状态时为1,工作状态为0;TR:输入信号,表示准备传输数据,设置为保持一个时钟周期;PD:输入信号,表示当前准备打印的数据;CLK:时钟信号,虽然设计图上没有,但为了模拟打印机工作采用了计数器,相应的也 暂时引入了时钟信号。CNT :输出信号,用以模拟打印机的过程,输出用以更直观的表示。4.1.2仿真结果与分析 当PD数据填充完毕后,TR脉冲信号到来; TR脉冲上升沿到来的同时,RDY信号置为0,表示正在忙碌; 此时打印机开始打印,表示为ent计数,当计数完毕后RDY信号重新为1。4.2 POC模块4.2.1仿真信号说明与设计RDY:输入信号,用以判断打印机是否空闲CS:输入信号,表

4、示片选,实际使用时为CPU是否选中该芯片(用前13根地址线) A:输入信号,地址线的后3位,表示实际选择哪个寄存器,本次设计001为选取数据 寄存器,010为选取状态寄存器。CLK:时钟信号。CNT :输出信号,用以模拟打印机的过程,输出用以更直观的表示。oooooaDi11OLO1DOHOLClDa1CJOOO P54.2.2仿真结果与分析IMamgI $ -I ”工 sr_te:L7.C、弔 d_bus7:0i叫、弔 SB j _ : ; :il 初始状态时,POC未被选中,打印机处于空闲状态,因此SR7被置为1,又由于默认工作在中断方式,因此在时钟上升沿之时便发出IRQ中断请求(低电平)

5、; 发送请求后,CPU选中芯片(即前13地址线选中CS),将数据总线的数据准备好, 之后选中数据寄存器(A为001),并将POC的读写状态设置为写; 经过一个时钟周期后tr脉冲输出表示数据准备传送,并且数据输出口准备好数据, 打印机也回到忙碌状态。4.3整体模块Namea2:Gd_busJMjValue000111010100101ooaaloooa输入信号和POC模块大致相同,因此直接进行结果分析。jr Ckirq cnt3.O j dk_periodl首先,IRQ信号产生,CPU选中POC芯片,随后选中数据寄存器并写入数据,之后经 过几个时钟后,打印机开始工作,计数器开始计数。而CPU又去

6、处理其他的工作(中断工 作模式的体现)。当打印机打印结束时,IRQ信号再度发出,等待CPU响应与再度传送数据。由于CPU 当前也许正在进行不可中断的原子性操作,所以等待响应后再传送数据、再度打印是必要的。由此仿真了整个工作流程。由于更复杂的仿真过程需要CPU的设计与介入,在此无法 展示,我将在下文做相关文字补充。5总结与补充通过仿真,我们对POC的工作方式和细节有了进一步的了解。然而,由于本次实验没 有对CPU的特殊要求和说明,导致无法通过仿真的方式清晰的体现出中断方式和查询方式 的具体区别。所有本应CPU输出、处理、反馈的信号都由人手工输入代替。因此,下面将 对两种工作模式结合CPU作进一步

7、阐述与补充。5.1 查询模式首先,CPU收到有关程序的请求,准备通过I/O接口联系POC模块,试图打印有关内 容。CPU访问POC的相关状态寄存器(SR7),查看POC目前是否处于空闲状态。如果是, 那就准备打印,否则,CPU处于轮询的状态。该进程内的每一个指令周期,CPU都在查询 POC是否空闲,并不做其他的事情,直到POC处于空闲,并允许传输数据为止。当 CPU 了解 POC 已准备就绪时, CPU 便将有关内容分块传输到 POC 的数据缓存中。 由于实际文件数据量较大, CPU 将持续处于“轮询传输轮询传输”直到文件打印完 毕为之。对于已经传输到POC的数据段,POC并不能立刻将其提交给

8、打印机,因为当前打印机 可能处于忙碌状态。当打印机用完当前数据(可能仅为一行)后, RDY 信号为高电平, POC 再将本段数据提交给打印机继续操作。通过POC的TR信号和PD数据输出传送给打印机,再通过RDY信号判断当前打印机 是否用完目前的数据。如果用完了,就将SR7置为空闲状态,以方便CPU提供新数据,否 则 SR7 处于忙碌状态。至此,整个查询模式的工作方式描述完毕。5.2 中断模式首先,CPU在某个时间点将POC的SR0置为1,即命令POC工作在中断模式。之后 的前小部分和查询模式相同,CPU收到有关程序的请求,准备通过I/O接口联系POC模块, 试图打印有关内容。CPU访问POC的

9、相关状态寄存器(SR7),查看POC目前是否处于空 闲状态,如果是,那就准备打印。如果POC忙碌,CPU则继续忙其他的工作。由于POC事先已被CPU设置为中断模式, 一旦POC处于空闲态,则会向CPU发出中断请求。此时,CPU会通过查中断向量表得知, 是POC模块发出的请求,处理完当前的原子性操作或更高级的中断请求后,则响应POC中 断,选中 POC 芯片进行有关操作。由于实际文件数据量较大,CPU仍然会分块传输数据。此时CPU传完数据后继续忙其 他工作,直到下一个中断来临。整个工作将持续处于“中断传输中断传输”直到文件 打印完毕为之。具体的 POC 处理和前文类似,不再多言。最后需要额外指出

10、的是,对于多文档打印,打印队列由更高一层的操作系统控制,无关 物理底层的实现,因此可不用在此讨论。5.3 结论本项仿真设计完成了任务的基本要求,实现了 POC和Printer的设计,并且通过了测试, 达到了预期的效果。6 附录library IEEE;use IEEE.STD_LOGIC_1164.ALL;- Uncomment the following library declaration if using library IEEE;use IEEE.STD_LOGIC_1164.ALL;entity top isPort ( CS : in STD_LOGIC;A : in STD_L

11、OGIC_VECTOR (2 downto 0);D_bus : in STD_LOGIC_VECTOR (7 downto 0):=00000000; R_W : in STD_LOGIC;CLK : in STD_LOGIC;IRQ : out STD_LOGIC:=1;CNT: out STD_LOGIC_VECTOR (3 downto 0) );end top;architecture Behavioral of top iscomponent pocPort (CS : in STD_LOGIC;A : in STD_LOGIC_VECTOR (2 downto 0);D_bus

12、: in STD_LOGIC_VECTOR (7 downto 0):=00000000; R_W : in STD_LOGIC;CLK : in STD_LOGIC;IRQ : out STD_LOGIC:=1;D_out : out STD_LOGIC_VECTOR (7 downto 0); TR : out STD_LOGIC;RDY : in STD_LOGIC;SR_Test : out STD_LOGIC_VECTOR(7 downto 0); end component ;component printerPort ( RDY : out STD_LOGIC;TR : in S

13、TD_LOGIC;PD : in STD_LOGIC_VECTOR (7 downto 0); CNT: out STD_LOGIC_VECTOR (3 downto 0) ; CLK : in STD_LOGIC);end component ; signal m_D_out:STD_LOGIC_VECTOR (7 downto 0); signal m_TR:STD_LOGIC;signal m_RDY:STD_LOGIC;beginpoc_inst :poc port map(CS=CS,A=A,D_bus=D_bus,R_W=R_W,CLK =CLK ,IRQ =IRQ,D_out=m

14、_D_out,TR =m_TR,RDY =m_RDY);printer_inst :printer port map(RDY=m_RDY,TR =m_TR,PD=m_D_out,CNT=CNT,CLK =CLK);end Behavioral;/*top.vhd 结束*/library IEEE;use IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity poc isPort ( CS : in STD_LOGIC;A : in STD_LOGIC_VECTOR (2 downto 0);D_bus : in STD_L

15、OGIC_VECTOR (7 downto 0):=00000000; R_W : in STD_LOGIC;CLK : in STD_LOGIC;IRQ : out STD_LOGIC:=1;D_out : out STD_LOGIC_VECTOR (7 downto 0);TR : out STD_LOGIC;RDY : in STD_LOGIC;SR_Test : out STD_LOGIC_VECTOR(7 downto 0);end poc;architecture Behavioral of poc issignal SR: STD_LOGIC_VECTOR (7 downto 0) := 00000001; -默认中断工作状态 signa

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号