




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机接口实验报告院系:计算机科学与技术完成时间:2012-6-1实验一 IO地址译码器编程一、 实验题目使用一片74LS00(4 X二输入与非门),一片74LS30(八输入与非门)和一片74LS138(3-8译码器)设计一个固定地址译码器.1)使用10位地址线(A0 A9)2)译码器对以下8个地址段产生CS信号:280H287H,288H28FH,290H297H,298H29FH 2A0H2A7H,2A8H2AFH,2B0H2B7H, 2B8H2BFH3)控制信号AEN, IOR, IOW(三个信号均为低电平有效)参与译码, 可实现对指定单元的读写.二、实验要求1)所有地址段的CS信号,都要经过仿真验证.2)验证控制信号AEN, IOR, IOW的作用.三、实验分析1、IO地址译码地址译码是指通过CPU发出的地址码来识别和确认与之交换信息的端口。译码电路的具体功能是,将CPU发出的地址码经过译码产生选择I/O接口的片选信号。只有当I/O端口所在的I/O接口与译码电路相连接的片选信号CS有效时,该接口电路上的I/O端口才能被CPU访问,从而实现CPU和I/O设备之间的信息交换。PC机I/O端口地址译码器的设计遵循以下两个设计原则:第一,正确识别I/O端口操作周期。由于PC机中I/O端口操作和DMA操作使用相同的地址线、数据线和读/写控制信号。区别这两种操作的信号是AEN。在DMA操作周期时,AEN有效,为高电平;而在I/O端口操作时,AEN无效,为低电平。第二,减少译码电路器件的延时。在系统中,IOR或者IOW信号的有效仅比端口地址有效落后半个时钟周期。如果译码电路过长将导致输出无效信号等等后果,这种情况下可采用的方法是减少译码电路门级数或者高速门电路。固定式端口地址译码器可以采用集成译码器辅以门电路译码来获得多个端口地址。最常用的3-8译码器74LS138,它有A,B,C共三个输入端和Y0Y7共8个输出端,其输出端为低电平有效。3-8译码器的芯片引脚图和真值表如图1和表1.图1中A,B和C为输入端,G3和G2A、G2B为控制端,其他的Y为输出端。真值表中,三个输入端共有8种组合,每一种情况对应于一个输出端为低电平,此外,还有三个控制端,只有G1为高电平,另两个控制信号为低电平时有效。图 1 3-8译码器G1G2AG2BCBA输出1 0 01 0 01 0 01 0 01 0 01 0 01 0 01 0 00 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1仅Y0为0仅Y1为0仅Y2为0仅Y3为0仅Y4为0仅Y5为0仅Y6为0仅Y7为0其他状态XXX全检出1表 1 3-8译码器真值表2、固定地址译码器由74LS00和74LS30、74LS138组成的固定地址译码器的电路如图2所示。输出信号cs(0 to 7)由输入端信号A3-A5和控制信号控制,其他的4个输入信号A6-A9全为低时整个电路有效。当AEN为低时,整个电路可以进行片选,对应的输入信号(A3-5)与输出信号001-11111101011-11110111,100-11101111,101-11011111,110-10111111,111-01111111。读信号为上升脉冲时有效,可进行译码。当AEN为高时,整个电路不可以进行译码,输出信号均为111111111。图 2固定地址译码器由上述逻辑电路,可以推导出以下逻辑表达式:E2=AENIORIOW即E2=AEN+IORIOW。因此,只有当片选信号AEN为低时可以进行译码。四、实验步骤及截图1、ISE新建工程(1)启动ISE13.1软件;(2)新建工程,路径为file-new project,在弹出的窗口中输入要新建工程的名字和地址,各个参数设置如下:family(Automotive Spartan3)device(XA3S200)package(PQG208)speed(-4Q)Synthesis Tool(XST)Simulator(Isim)在Preferred Language中选择VHDL一栏,点击next可以查看工程信息,建立完毕;(3)给工程添加新的文件。右键单击工程,然后添加需要添加的文件,这里应该只需添加基本的文件和测试文件即可,或者先建立文件,再将代码修改在基本文件中即可;(4)在Synthesize中选择check进行编译,出现绿色对勾即可;(5)添加测试文件。路径为project-new source,选择VHDL Test文件,然后编写测试文件;(6)双击process窗口的Simulator Behavior可以查看仿真图形。2、实验截图。实验代码截图:实验测试文件截图:实验结果仿真截图:五、实验源代码程序源代码:- Company: - Engineer: - - Create Date: 13:21:58 04/17/2012 - Design Name: - Module Name: ad - ad_Behavioral - Project Name: - Target Devices: - Tool versions: - Description: - Dependencies: - Revision: - Revision 0.01 - File Created- Additional Comments: -library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;- Uncomment the following library declaration if instantiating- any Xilinx primitives in this code.-library UNISIM;-use UNISIM.VComponents.all;entity ad is Port ( addr : in STD_LOGIC_VECTOR (3 to 9); aen, iow, ior : in STD_LOGIC; cs : out STD_LOGIC_VECTOR (7 downto 0);end ad;architecture ad_Behavioral of ad issignal en: std_logic;signal out_temp: std_logic_vector (7 downto 0);begin out_temp(7 downto 0) =11111110 when addr (3 to 5) = 000 else11111101 when addr (3 to 5) = 100 else11111011 when addr (3 to 5) = 010 else11110111 when addr (3 to 5) = 110 else11101111 when addr (3 to 5) = 001 else 11011111 when addr (3 to 5) = 101 else10111111 when addr (3 to 5) = 011 else01111111 when addr (3 to 5) = 111 ;process (addr, aen, iow,ior)begin en = not (not addr(6) and addr(7) and (not addr(8) and addr(9) and (not aen) and (not (iow and ior); for i in 7 downto 0 loopcs(i) 0); signal aen : std_logic := 0; signal iow : std_logic := 0; signal ior : std_logic := 0; -Outputs signal cs : std_logic_vector(7 downto 0); - No clocks detected in port list. Replace below with - appropriate port name BEGIN - Instantiate the Unit Under Test (UUT) uut: ad PORT MAP ( addr = addr, aen = aen, iow = iow, ior = ior, cs = cs ); - Clock process definitions - Stimulus process stim_proc: process begin - hold reset state for 100 ns. - insert stimulus here aen =1;iow =1;addr (3 to 9) = 0000101; ior=0; wait for 1 ns; ior=1;wait for 9 ns;addr (3 to 9) = 1000101; ior=0; wait for 1 ns; ior=1;wait for 9 ns;addr (3 to 9) = 0100101; ior=0; wait for 1 ns; ior=1;wait for 9 ns;addr (3 to 9) = 1100101; ior=0; wait for 1 ns; ior=1;wait for 9 ns;addr (3 to 9) = 0010101; ior=0; wait for 1 ns; ior=1;wait for 9 ns;addr (3 to 9) = 1010101; ior=0; wait for 1 ns; ior=1;wait for 9 ns;addr (3 to 9) = 0110101; ior=0; wait for 1 ns; ior=1;wait for 9 ns;addr (3 to 9) = 1110101; ior=0; wait for 1 ns; ior=1;wait for 9 ns;addr (3 to 9) = 0000101; ior=0; wait for 1 ns; ior=1;wait for 9 ns; wait; end process;END;实验二 简易中断优先权分析器编程一、 实验内容及要求用VHDL语言设计一个简易中断优先权分析器。1) 参考教材8259A优先权分析器逻辑框图.2) 不考虑IMR屏蔽功能, 8路中断直接进入优先权分析器.3) ISR的内容以3位二进制编码,从外部输入比较器4) 不考虑多重中断. 既假定每次只有一个中断发生.要求仿真验证优先权分析器的实际效果。二、实验分析1、中断CPU在正常运行程序时,由于内部/外部事件或程序本身的原因等中断正在运行的程序,转到为中断事件服务的程序中去执行,而在服务完毕后再返回执行源程序,这一过程称为中断。现代微机的中断有外部硬件中断、非屏蔽中断、软件中断和内部中断与异常四种类型。系统对于中断按其优先级的高低依次提供服务。每个中断和异常都指定了一个类型号代表不同的优先级,类型0代表最高优先级的中断,类型255代表最低优先级的中断。优先级的重要性在于,如果已经启动了某些优先级的中断服务程序,那么只要更高优先级的中断请求才允许打断该服务程序的运行。低优先级的中断请求将等待,直到当前中断服务程序结束。出于这个原因,用户通常将不能经常被打断的任务指定较高优先级,而可以被打断的则指定较低优先级。IMR是中断屏蔽寄存器,它对中断请求IR起屏蔽作用,这里忽略它的影响。ISR是中断服务寄存器,在中断响应之后,第一个获准中断请求的中断级在相应的ISR中置1。ISR用来存放正在被服务的中断,包括尚未服务完而被优先级更高的中断打断的中断。2、中断优先权分析器8路中断直接进入优先权分析器,设定ISR值,如果进入优先权分析器的中断级别比ISR高,则将结果INT置为1,否则将INT置为0。例如,8路中断为0001100,ISR设置为011,显然不能发生中断响应,即INT的值为0;如果8路中断为00000010,那么优先级比ISR高,就会发生中断响应,同等优先级不能发生中断响应。三、实验截图四、实验代码1主程序源代码- Company: - Engineer: - - Create Date: 20:37:30 05/22/2012 - Design Name: - Module Name: MY8259A - Behavioral - Project Name: - Target Devices: - Tool versions: - Description: - Dependencies: - Revision: - Revision 0.01 - File Created- Additional Comments: -library IEEE;use IEEE.STD_LOGIC_1164.ALL;- Uncomment the following library declaration if using- arithmetic functions with Signed or Unsigned values-use IEEE.NUMERIC_STD.ALL;- Uncomment the following library declaration if instantiating- any Xilinx primitives in this code.-library UNISIM;-use UNISIM.VComponents.all;entity MY8259A is Port ( IR0 : in STD_LOGIC; IR1 : in STD_LOGIC; IR2 : in STD_LOGIC; IR3 : in STD_LOGIC; IR4 : in STD_LOGIC; IR5 : in STD_LOGIC; IR6 : in STD_LOGIC; IR7 : in STD_LOGIC; ISR : in STD_LOGIC_VECTOR (2 downto 0); INT : out STD_LOGIC);end MY8259A;architecture Behavioral of MY8259A isSIGNAL BIG, MORE1 :STD_LOGIC;begin PROCESS(IR0,IR1,IR2,IR3,IR4,IR5,IR6,IR7) VARIABLE A :STD_LOGIC_VECTOR (2 downto 0); BEGIN IF (IR0 = 1) then A := 000 ; MORE1 = 1; ELSIF (IR1 = 1) then A := 001 ; MORE1 = 1; ELSIF (IR2 = 1) then A := 010 ; MORE1 = 1; ELSIF (IR3 = 1) then A := 011 ; MORE1 = 1; ELSIF (IR4 = 1) then A := 100 ; MORE1 = 1; ELSIF (IR5 = 1) then A := 101 ; MORE1 = 1; ELSIF (IR6 = 1) then A := 110 ; MORE1 = 1; ELSIF (IR7 = 1) then A := 111 ; MORE1 = 1; ELSE A := 111; MORE1 = 0; END IF; IF(A ISR) then BIG = 1; ELSEBIG = 0;END IF; end PROCESS; INT 0); -Outputs signal INT : std_logic; - No clocks detected in port list. Replace below with - appropriate port name BEGIN - Instantiate the Unit Under Test (UUT) uut: MY8259A PORT MAP ( IR0 = IR0, IR1 = IR1, IR2 = IR2, IR3 = IR3, IR4 = IR4, IR5 = IR5, IR6 = IR6, IR7 = IR7, ISR = ISR, INT = INT ); - Stimulus process stim_proc: process begin - hold reset state for 100 ns. - insert stimulus here wait for 10 ns; IR0 = 0; IR1 = 0; IR2 = 0; IR3 = 0; IR4 = 0; IR5 = 1; IR6 = 0; IR7 = 0; ISR = 100; wait for 10 ns; IR0 = 1; IR1 = 0; IR2 = 1; IR3 = 0; IR4 = 1; IR5 = 1; IR6 = 0; IR7 = 0; ISR = 111; wait for 10 ns; IR0 = 0; IR1 = 0; IR2 = 0; IR3 = 0; IR4 = 1; IR5 = 1; IR6 = 0; IR7 = 0; ISR = 000; wait for 10 ns; IR0 = 0; IR1 = 0; IR2 = 0; IR3 = 0; IR4 = 0; IR5 = 0; IR6 = 0; IR7 = 0; ISR = 011; wait; end process;END;五、实验体会关于本次实验,对于第一个的地址译码器,不是很清楚原理,片选信号和控制信号的作用以及为什么需要脉冲才能进行译码,都是不知道的,应该是上课没有认真听讲的缘故,在老师的指导下才成功的做出了结果。第二个的中断分析,原理很清楚,但是实际的编程却是感觉困难重重,如何将8路中断转化为相应的信号来与ISR比较并输出响应信号很模糊。通过此次实验,对8259A的认识更加深刻,能够利用Vhdl语言设计简单的中断优先权分析器,对8259A的工作方式,操作指令字,以及编程都有了不少认识,对接口课程的学习有了实践上的帮助。袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学信息技术第一册下 第12课 网上学习 2 教学设计 泰山版
- 高中语文课内古诗文(新教材统编版)《庖丁解牛》知识点+专项练习(原卷版)
- 企业办公大楼装修改造工程合同
- 合作协议合同范本与商业伙伴
- 数字一体化手术室培训
- 小学语文人教部编版四年级下册17 记金华的双龙洞教案及反思
- 尿路感染的用药与护理
- 技术合同的简化版
- 人防工程防护设备销售与安装合同
- 慢阻肺护理新进展
- 集团公司重大经营决策法律审核管理办法
- PANTONE潘通色卡TPX颜色在线查询(1-2部分)
- 酒鬼酒财务报表分析报告
- 2024麒麟操作系统培训手册
- 人美版初中美术八年级下册教案 全册
- 上海市五年级数学上学期期中考试真题重组卷(沪教版)
- 体格检查:腹部检查(一)
- 网络舆情风险评估与预警
- 全国飞盘运动裁判法(试行)
- 浙江省土地整治项目预算定额
- GA 2139-2024警用防暴臂盾
评论
0/150
提交评论