版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、POC实验报告目录目录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-51 实验目的本实验的目的是设计一块简易的POC(并行输出控制器),从而连接系统总线和打印机。通过本次实验,可以初步了解输入输出、存储模块的设计,为接下来CPU的设计奠定良好的基础。2 实验任务利用ISE和VHDL语言设计出POC模块
2、和打印机模块,并且通过仿真测试并验证其主要功能的实现。仿真主要以中断响应工作模式为主。而查询模式也需要了解,这部分分析内容都将放在总结环节。3 架构说明整体由POC、Printer两个模块组成,整体的输入端口有:CS:片选,实际情况为地址总线13A:寄存器选取;D_bus:数据总线;CLK:时间信号;R_W:读取/写入控制,0为读取,1为写入;输出端口为:IRQ:中断请求信号,低电平有效;CNT:计数器,用于模拟打印机的忙碌情况。4 仿真信号设计与结果分析4.1 打印机模块4.1.1 仿真信号说明与设计RDY:输出信号,当Printer处于空闲状态时为1,工作状态为0;TR:输入信号,表示准备
3、传输数据,设置为保持一个时钟周期;PD:输入信号,表示当前准备打印的数据;CLK:时钟信号,虽然设计图上没有,但为了模拟打印机工作采用了计数器,相应的也暂时引入了时钟信号。CNT:输出信号,用以模拟打印机的过程,输出用以更直观的表示。4.1.2 仿真结果与分析 初始状态时打印机显然不处于工作状态,因而RDY信号保持为1; 当PD数据填充完毕后,TR脉冲信号到来; TR脉冲上升沿到来的同时,RDY信号置为0,表示正在忙碌; 此时打印机开始打印,表示为cnt计数,当计数完毕后RDY信号重新为1。4.2 POC模块4.2.1 仿真信号说明与设计RDY:输入信号,用以判断打印机是否空闲 CS:输入信号
4、,表示片选,实际使用时为CPU是否选中该芯片(用前13根地址线)A:输入信号,地址线的后3位,表示实际选择哪个寄存器,本次设计001为选取数据寄存器,010为选取状态寄存器。CLK:时钟信号。CNT:输出信号,用以模拟打印机的过程,输出用以更直观的表示。4.2.2 仿真结果与分析 初始状态时,POC未被选中,打印机处于空闲状态,因此SR7被置为1,又由于默认工作在中断方式,因此在时钟上升沿之时便发出IRQ中断请求(低电平); 发送请求后,CPU选中芯片(即前13地址线选中CS),将数据总线的数据准备好,之后选中数据寄存器(A为001),并将POC的读写状态设置为写; 经过一个时钟周期后tr脉冲
5、输出表示数据准备传送,并且数据输出口准备好数据,打印机也回到忙碌状态。4.3 整体模块输入信号和POC模块大致相同,因此直接进行结果分析。首先,IRQ信号产生,CPU选中POC芯片,随后选中数据寄存器并写入数据,之后经过几个时钟后,打印机开始工作,计数器开始计数。而CPU又去处理其他的工作(中断工作模式的体现)。当打印机打印结束时,IRQ信号再度发出,等待CPU响应与再度传送数据。由于CPU当前也许正在进行不可中断的原子性操作,所以等待响应后再传送数据、再度打印是必要的。由此仿真了整个工作流程。由于更复杂的仿真过程需要CPU的设计与介入,在此无法展示,我将在下文做相关文字补充。5 总结与补充通
6、过仿真,我们对POC的工作方式和细节有了进一步的了解。然而,由于本次实验没有对CPU的特殊要求和说明,导致无法通过仿真的方式清晰的体现出中断方式和查询方式的具体区别。所有本应CPU输出、处理、反馈的信号都由人手工输入代替。因此,下面将对两种工作模式结合CPU作进一步阐述与补充。5.1 查询模式首先,CPU收到有关程序的请求,准备通过I/O接口联系POC模块,试图打印有关内容。CPU访问POC的相关状态寄存器(SR7),查看POC目前是否处于空闲状态。如果是,那就准备打印,否则,CPU处于轮询的状态。该进程内的每一个指令周期,CPU都在查询POC是否空闲,并不做其他的事情,直到POC处于空闲,并
7、允许传输数据为止。当CPU了解POC已准备就绪时,CPU便将有关内容分块传输到POC的数据缓存中。由于实际文件数据量较大,CPU将持续处于“轮询传输轮询传输”直到文件打印完毕为之。对于已经传输到POC的数据段,POC并不能立刻将其提交给打印机,因为当前打印机可能处于忙碌状态。当打印机用完当前数据(可能仅为一行)后,RDY信号为高电平,POC再将本段数据提交给打印机继续操作。通过POC的TR信号和PD数据输出传送给打印机,再通过RDY信号判断当前打印机是否用完目前的数据。如果用完了,就将SR7置为空闲状态,以方便CPU提供新数据,否则SR7处于忙碌状态。至此,整个查询模式的工作方式描述完毕。5.
8、2 中断模式首先,CPU在某个时间点将POC的SR0置为1,即命令POC工作在中断模式。之后的前小部分和查询模式相同,CPU收到有关程序的请求,准备通过I/O接口联系POC模块,试图打印有关内容。CPU访问POC的相关状态寄存器(SR7),查看POC目前是否处于空闲状态,如果是,那就准备打印。如果POC忙碌,CPU则继续忙其他的工作。由于POC事先已被CPU设置为中断模式,一旦POC处于空闲态,则会向CPU发出中断请求。此时,CPU会通过查中断向量表得知,是POC模块发出的请求,处理完当前的原子性操作或更高级的中断请求后,则响应POC中断,选中POC芯片进行有关操作。由于实际文件数据量较大,C
9、PU仍然会分块传输数据。此时CPU传完数据后继续忙其他工作,直到下一个中断来临。整个工作将持续处于“中断传输中断传输”直到文件打印完毕为之。具体的POC处理和前文类似,不再多言。最后需要额外指出的是,对于多文档打印,打印队列由更高一层的操作系统控制,无关物理底层的实现,因此可不用在此讨论。5.3 结论本项仿真设计完成了任务的基本要求,实现了POC和Printer的设计,并且通过了测试,达到了预期的效果。6 附录/*top.vhd*/-library IEEE;use IEEE.STD_LOGIC_1164.ALL;- Uncomment the following library declar
10、ation if usinglibrary IEEE;use IEEE.STD_LOGIC_1164.ALL;entity top is Port ( CS : in STD_LOGIC; A : in STD_LOGIC_VECTOR (2 downto 0); D_bus : in STD_LOGIC_VECTOR (7 downto 0):=; R_W : in STD_LOGIC; CLK : in STD_LOGIC; IRQ : out STD_LOGIC:=1; CNT: out STD_LOGIC_VECTOR (3 downto 0) );end top;architectu
11、re Behavioral of top iscomponent poc Port ( CS : in STD_LOGIC; A : in STD_LOGIC_VECTOR (2 downto 0); D_bus : in STD_LOGIC_VECTOR (7 downto 0):=; 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
12、: out STD_LOGIC_VECTOR(7 downto 0);end component ; component printer Port ( RDY : out STD_LOGIC; TR : in STD_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;s
13、ignal 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_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结束*/*poc.vhd*/library IEEE;use IEEE.STD_LOGIC_11
14、64.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity poc is Port ( CS : in STD_LOGIC; A : in STD_LOGIC_VECTOR (2 downto 0); D_bus : in STD_LOGIC_VECTOR (7 downto 0):=; 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
15、_LOGIC; SR_Test : out STD_LOGIC_VECTOR(7 downto 0);end poc;architecture Behavioral of poc issignal SR: STD_LOGIC_VECTOR (7 downto 0) := ; -默认中断工作状态signal BR: STD_LOGIC_VECTOR (7 downto 0) := ;signal DataInReady:STD_LOGIC :=0;signal m_work:STD_LOGIC :=0;signal m_cnt:STD_LOGIC :=0;signal m_hasRDY:STD_
16、LOGIC :=0;beginSR_Test=SR;process(SR,CS)begin-if(CS=1) then-if(rising_edge(CLK) thenif(SR(0)=1 and SR(7)=1) thenIRQ=0; -IRQ低电平表示中断elseIRQ=1;end if;-end if;-end if;end process;process(RDY,m_hasRDY)beginend process;process(R_W,D_bus,CS,SR,m_cnt,m_work,m_hasRDY,RDY,CLK,DataInReady,BR)beginif(rising_edg
17、e(RDY) thenm_hasRDY=1;end if;if(rising_edge(CLK) then-if(CS=1) thenif(m_hasRDY=1) thenm_hasRDY=0;SR(7)=1;m_cnt=0;m_work=1;end if;if(m_work=1) thenif(m_cnt=0) thenm_cnt=1;elseSR(7)=0;end if;if(CS=1) thenif(R_W=1) then -1为写数据if(A=001) then -001为BRBR=D_bus;DataInReady=1;m_work=0;elsif (A=010) thenSR=D_
18、bus; end if;else -if(A=001) then -010为SR-D_bus=BR;-elsif (A=010) then-D_bus=SR;-end if;end if;end if;end if;-if(rising_edge(CLK) then if(DataInReady=1) thenDataInReady=0;TR=1;D_out=BR;elseTR=0;end if;-end if;end if;end process;end Behavioral;/*poc.vhd结束*/*printer.vhd*/library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山西中医药大学《货币金融学》2025-2026学年期末试卷
- 上海音乐学院《社会语言学》2025-2026学年期末试卷
- 徐州工程学院《数值分析》2025-2026学年期末试卷
- 上海科创职业技术学院《中国近现代外交史》2025-2026学年期末试卷
- 通化医药健康职业学院《免疫学》2025-2026学年期末试卷
- 山西工程科技职业大学《普通逻辑学》2025-2026学年期末试卷
- 上海对外经贸大学《创新创业导论》2025-2026学年期末试卷
- 邢台新能源职业学院《电气工程基础》2025-2026学年期末试卷
- 七台河职业学院《社会学概论(1)》2025-2026学年期末试卷
- 上海海事大学《公司战略与风险管理》2025-2026学年期末试卷
- 人教统编版六年级语文下册第二单元《习作:写作品梗概》公开课教学课件
- 2026年3月山东济南轨道交通集团运营有限公司社会招聘备考题库附参考答案详解(典型题)
- 2026内蒙古环投集团社会招聘17人笔试备考试题及答案解析
- 2026年高考物理二轮复习:专题16 热学(复习讲义)(全国适用)(原卷版)
- TSG 08-2026 特种设备使用管理规则
- 2023年中国兽医药品监察所第二批招聘应届高校毕业生等人员补充笔试备考题库及答案解析
- JJF 1059.1-2012测量不确定度评定与表示
- 河北唐山遵化经济开发区工作岗位竞聘【共500题含答案解析】模拟检测试卷
- 第二章 运动的守恒量和守恒定律
- 冷轧厂产线流程图课件
- 压铸机常见故障分析课件
评论
0/150
提交评论