实验四可编程中断控制器芯片8259A的设计_第1页
实验四可编程中断控制器芯片8259A的设计_第2页
实验四可编程中断控制器芯片8259A的设计_第3页
实验四可编程中断控制器芯片8259A的设计_第4页
实验四可编程中断控制器芯片8259A的设计_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机接口与通信实验2022-6-261计算机接口与通信实验计算机接口与通信实验实验四实验四 可编程中断控制器芯片可编程中断控制器芯片8259A的设计的设计北京航空航天大学计算机学院北京航空航天大学计算机学院傅翠娇计算机接口与通信实验2022-6-262主要内容主要内容v实验目的实验目的v预习要求预习要求v实验要求实验要求v实验原理实验原理 v实验步骤实验步骤/ /指导指导v实验报告要求实验报告要求 计算机接口与通信实验2022-6-263实验目的实验目的l学习了解可编程中断控制器芯片8259A的内部结构和工作过程l掌握采用PLD实现8259A的设计方法计算机接口与通信实验2022-6-264

2、预习要求预习要求l仔细阅读实验指导,了解8259A的控制原理,掌握8259A控制电路的设计思路和设计方法l设计中断请求存放器、中断效劳存放器、中断屏蔽存放器、优先级判别器、读写控制电路,并对几局部电路进行时序仿真l设计8259A顶层图形文件,进行时序仿真l修改读写控制电路和8259A顶层图形文件l对顶层设计文件进行引脚锁定,再编译计算机接口与通信实验2022-6-265实验要求实验要求 使用Verilog HDL语言设计设计一个可编程中断控制器芯片,使之具有与8259A芯片相似的功能在DE2教学开发实验板上进行设计的下载和验证设置8259A的初始化命令,写入操作命令字,并查看中断输出请求和中断

3、屏蔽存放器,中断效劳存放器中断请求存放器的内容计算机接口与通信实验2022-6-266三、实验原理三、实验原理1/718259A是一个中断控制器,它协助CPU进行中断处理。主要功能有:中断优先级的排队管理,接受和扩充外部设备的中断请求,提供中断类型号和进行中断的屏蔽和开放。8259A内部逻辑框图计算机接口与通信实验2022-6-267实验原理实验原理2/71数据总线缓冲器这是一个8位双向三态缓冲器,通常与数据总线的8位相连,是8259A与CPU间数据传送的接口,CPU向8259A发送的数据、命令、控制字及8259A向CPU输入的数据,回送的状态信息都要经过数据总线缓冲器。2读/写控制电路读/写

4、控制电路接收CPU送来的读/写命令、片选信号以及端口选择信号,以实现CPU对8259A的读写操作。当CPU执行OUT指令时,信号有效并与配合,使8259A接收CPU由数据总线送来的初始化命令(ICW);当CPU执行IN指令时,信号有效并与配合,将8259A的内部状态经数据总线传送给CPU。计算机接口与通信实验2022-6-268实验原理实验原理3/7CS,RD,WR,A0四个信号对四个信号对8259A的读的读/写控制写控制csRDWRA0D4D3读/写操作指令0100XXCPUICW1(初始化命令字初始化命令字)OUT0101XXCPUICW2,ICW3,ICW4,OCW1010000CPUO

5、CW2(操作命令字操作命令字)010001CPUOCW3(操作命令字操作命令字)00108259A中中IRR/ISRCPUIN0011IMR(屏蔽寄存器屏蔽寄存器)CPU1XXX高阻态高阻态X11X计算机接口与通信实验2022-6-269实验原理实验原理4/73级联缓冲器/比较器级联/缓冲器主要用于多片8259A级联和数据缓冲方式。多片级联时,总是连成主从结构,一片主片,最多8片从片供管理64级硬件中断。主片的级联信号CAS2CAS0作为输出连到每个从片的CAS2CAS0,作为从片的片选信号。当某一从片有中断申请时需要经过主片向CPU发出请求;当CPU响应中断时在第一个中断响应周期主片通过级联

6、端输出被选中从片的标识(ID),通过CAS2CAS0传送到各个从片,通知从片的中断申请已被响应。而从片收到标识号后,与自身的标识号相比较,如果符合就在第二个负脉冲到来时,将中断类型号送到数据总线。因此,级联缓冲器/比较器模块就是用来存放和比较设备标识码(ID)的。计算机接口与通信实验2022-6-2610实验原理实验原理5/74中断请求存放器IRR(Interupt Request Reg)中断请求存放器IRR是一个具有锁存功能的8位存放器,用来存放外部输入的中断请求信号IR7IR0。每一位对应一个外部中断请求信号IRi当某个IR端有中断请求,IRR中的相应位置“1“,其内容可用操作命令字OC

7、W3读出5中断屏蔽存放器IMRIMR存放器可以对各个中断源进行屏蔽或开放。它与8级中断源IR7IR0相对应,可用软件将IMR中的某一位置“0“,表示对应的中断IRi被允许。反之,将IMR中的某一位IMRi置1“,表示对应的IRi被屏蔽。屏蔽功能由操作字OCW1实现计算机接口与通信实验2022-6-2611实验原理6/76中断效劳存放器中断效劳存放器ISR(Interupt Service Reg)ISR存放器是一个存放器是一个8位存放器,与位存放器,与8级中断级中断IR7IR0相对应,相对应,用来记录正在处理中的中断请求的优先级,当任何一级中用来记录正在处理中的中断请求的优先级,当任何一级中断

8、被响应后,在第一个负脉冲到来时,断被响应后,在第一个负脉冲到来时,ISR中的相应为置中的相应为置“1“。ISR中的内容可用操作命令字中的内容可用操作命令字OCW3读出读出7优先级判别器优先级判别器PR(Priority Resover)优先级判别器的主要功能包括:对优先级判别器的主要功能包括:对IRR存放器送来的中断申存放器送来的中断申请信号进行优先级判别,选出优先级最高的中断申请;当请信号进行优先级判别,选出优先级最高的中断申请;当出现多重中断时,出现多重中断时,PR将新出现的中断请求和正在被效劳将新出现的中断请求和正在被效劳的中断优先级进行比较,确定新的优先级是否高于正在处的中断优先级进行

9、比较,确定新的优先级是否高于正在处理中的中断级,当一个中断请求被判定为具有最高优先级理中的中断级,当一个中断请求被判定为具有最高优先级时,时,PR通过控制电路向通过控制电路向CPU发出中断请求信号发出中断请求信号INT,并在,并在8259A获得第一个中断响应信号时使获得第一个中断响应信号时使ISR存放器中相应位存放器中相应位置置“1“计算机接口与通信实验2022-6-2612实验原理7/78控制电路控制电路 1.控制电路根据控制电路根据IRR存放器中的置位情况和中断屏蔽存存放器中的置位情况和中断屏蔽存放器放器IMR的设置情况,通过优先级判别器的设置情况,通过优先级判别器PR进行优先级进行优先级

10、判别,并根据判别结果向判别,并根据判别结果向8259A内部各部件发出控制信内部各部件发出控制信号号 2.向向CPU发出中断申请信号发出中断申请信号INT和接收和接收CPU的中断响的中断响应信号应信号 3.使中断效劳存放器使中断效劳存放器ISR的相应位置的相应位置“1“,使,使IRR存放器存放器中相应位清中相应位清0“ 4. 当第二个中断响应信号到来时,控制当第二个中断响应信号到来时,控制8259A向数据向数据总线送出中断类型号,以便总线送出中断类型号,以便CPU形成中断效劳程序的入形成中断效劳程序的入口地址口地址计算机接口与通信实验2022-6-2613实验步骤实验步骤/指导指导1. 总体设计

11、思路 根据设计要求,要实现一个全功能的8259A中断控制器,其控制逻辑局部非常复杂。因此,为了防止设计文件过于庞大而带来的干扰,将控制逻辑与操作器件的设计分开。按照模块化设计思想,根据前面的实验原理局部的介绍,我们将整个8259A划分成以下五大模块来进行设计。中断请求存放器模块(IMR)中断效劳存放器模块(ISR)中断屏蔽存放器模块(IRR)优先级判断模块PR控制模块 在设计的过程中,先实现四个主要部件IMR,ISR,IRR和PR。每个部件不仅要有相应的数据接口,更重要的是要有与设备功能相应的完备的控制信号,可以完成对器件的全部操作。计算机接口与通信实验2022-6-2614实验步骤/指导 在

12、控制逻辑模块中,首先必须实现在控制逻辑模块中,首先必须实现4个初始化命令字的存放器实个初始化命令字的存放器实现,模块的所有工作方式都是根据这现,模块的所有工作方式都是根据这4个存放器的值实现的。至于操个存放器的值实现的。至于操作命令字,那么不需要专门设计存放器,因为它们完成操作后就没作命令字,那么不需要专门设计存放器,因为它们完成操作后就没有意义了。下面的工作就是要完成对初始化命令字读写的控制,以有意义了。下面的工作就是要完成对初始化命令字读写的控制,以期能够实现期能够实现8259A的初始化。由于,初始化命令是按规定的顺序输的初始化。由于,初始化命令是按规定的顺序输入的,所以在设计命令输入的时

13、候使用了一个自动机,正确的模拟入的,所以在设计命令输入的时候使用了一个自动机,正确的模拟了初始化的流程了初始化的流程8259A的初始化流程图 计算机接口与通信实验2022-6-26152中断请求存放器电路的设计中断请求存放器电路的设计1/4功能:中断请求存放器是一个具有锁存功能的8位存放器,用来存放外部输入的中断请求信号IR7IR0。设计思路该模块主要由irr模块和三态门、双向输入输出端口组成的。中断请求存放器irr.v:该模块是中断存放器模块最主要的局部,主要用来存放IR7IR0的中断请求。输入输出信号定义:input ir0,ir1,ir2,ir3,ir4,ir5,ir6,ir7;/中断请

14、求input ltim;/触发方式选择input freeze; input rd;计算机接口与通信实验2022-6-26162中断请求存放器电路的设计中断请求存放器电路的设计2/4input rd;input7.0 setzero;/去除中断请求去除中断请求output7.0 data;/中断请求输出中断请求输出output7.0 busdata;output en;程序框架如下:程序框架如下:assign data = irrreg;assign busdata = irrreg;assign en = rd;/设置设置irr存放器存放器/其中其中ltim为为1时表示电平触发,为时表示电平

15、触发,为0时表示边沿触发。时表示边沿触发。assign irrreg0 = freeze ? (senselatch0 & ir0) | (ltim & ir0) : irrreg0;/设置设置irr存放器存放器0assign senselatch0 = setzero0 ? 0 : (ir0 ? 1 : senselatch0);/设置设置irr1irr7计算机接口与通信实验2022-6-26172中断请求存放器电路的设计中断请求存放器电路的设计3/4对对irr.v进行时序仿真,验证设计的正确性进行时序仿真,验证设计的正确性(2)中断请求存放器顶层模块的设计中断请求存放器顶层模块的设计在在i

16、rr.v子模块的根底上我们只需要加上相应的输入输出端口子模块的根底上我们只需要加上相应的输入输出端口以及三态们就完成了中断请求存放器以及三态们就完成了中断请求存放器irr_a.bdf的顶层模块的的顶层模块的设计设计计算机接口与通信实验2022-6-26182中断请求存放器电路的设计中断请求存放器电路的设计4/4中断请求存放器模块中断请求存放器模块(irr_a.bdf)对中断请求存放器进行时序仿真验证是否满足设计要求对中断请求存放器进行时序仿真验证是否满足设计要求计算机接口与通信实验2022-6-26193中断效劳存放器电路的设计中断效劳存放器电路的设计1/43中断效劳存放器电路的设计中断效劳存

17、放器电路的设计功能:中断效劳存放器是一个功能:中断效劳存放器是一个8位存放器,与位存放器,与8级中断级中断IR7IR0相对应,用来记录正在处理中的中断请求的优先级。相对应,用来记录正在处理中的中断请求的优先级。设计思路设计思路该模块主要由该模块主要由isr模块和三态门、双向输入输出端口组成。模块和三态门、双向输入输出端口组成。中断效劳存放器中断效劳存放器isr.v:输入输出信号定义:输入输出信号定义:input rd;input7.0 set;/中断置位信号中断置位信号input7.0clr;/中断去除信号中断去除信号output7.0 data;/正在效劳中断输出正在效劳中断输出output

18、7.0 busdata;output en;计算机接口与通信实验2022-6-26203中断效劳存放器电路的设计中断效劳存放器电路的设计2/4其中其中rd信号由控制模块发出,当信号由控制模块发出,当rd有效时,有效时,en信号有效,信号有效,set和和clr信号分别是由优先级分析器发出的正在效劳中断信号分别是由优先级分析器发出的正在效劳中断置位信号和去除中断效劳信号,程序框架如下置位信号和去除中断效劳信号,程序框架如下/输出中断效劳信号输出中断效劳信号assign data = isrreg;assign busdata = isrreg;assign en = rd; /设置设置isr存放器

19、存放器assign isrreg0 = clr0 ? 0 : (set0 ? 1 : isrreg0);/设置设置isr1isr7对对isr.v进行时序仿真,验证设计的正确性进行时序仿真,验证设计的正确性计算机接口与通信实验2022-6-26213中断效劳存放器电路的设计中断效劳存放器电路的设计3/4(2)中断效劳存放器顶层模块的设计中断效劳存放器顶层模块的设计在在isr.v子模块的根底上我们只需要加上相应的输入输出子模块的根底上我们只需要加上相应的输入输出端口以及三态们就完成了中断效劳存放器端口以及三态们就完成了中断效劳存放器isr_a.bdf的顶的顶层模块的设计层模块的设计计算机接口与通信

20、实验2022-6-26223中断效劳存放器电路的设计中断效劳存放器电路的设计4/4对中断效劳存放器进行时序仿真,验证是否满足设计要求对中断效劳存放器进行时序仿真,验证是否满足设计要求4中断屏蔽存放器电路的设计中断屏蔽存放器电路的设计功能:中断屏蔽存放器功能:中断屏蔽存放器IMR是一个是一个8位存放器,与位存放器,与8259A处理的处理的8级中断源级中断源IR7IR0相对应。通过相对应。通过IMR存放器可以对各个中断源进行存放器可以对各个中断源进行屏蔽或开放。屏蔽或开放。设计思路:该模块主要由设计思路:该模块主要由imr模块和三态门、双向输入输出端口组模块和三态门、双向输入输出端口组成。成。中断

21、屏蔽存放器中断屏蔽存放器imr.v计算机接口与通信实验2022-6-26234中断屏蔽存放器电路的设计中断屏蔽存放器电路的设计1/3输入输出信号定义:输入输出信号定义:input clr;/去除中断屏蔽存放器去除中断屏蔽存放器input writemask; /写入屏蔽信号写入屏蔽信号input7.0 datain;/输入中断屏蔽字输入中断屏蔽字output7.0 imrreg; /输出中断屏蔽字输出中断屏蔽字程序框架如下:程序框架如下:/输出输出imr存放器内容存放器内容assign imrreg = clr ? 8b0: (writemask ? datain : imrreg); 当当c

22、lr信号有效时,去除中断屏蔽字内容,即开放信号有效时,去除中断屏蔽字内容,即开放所有中断,否那么根据当前是否允许输出中断屏蔽所有中断,否那么根据当前是否允许输出中断屏蔽信号输出中断屏蔽信号。信号输出中断屏蔽信号。计算机接口与通信实验2022-6-26244中断屏蔽存放器电路的设计中断屏蔽存放器电路的设计2/3对对imr.v进行时序仿真,验证其功能的正确性进行时序仿真,验证其功能的正确性中断屏蔽存放器顶层模块的设计中断屏蔽存放器顶层模块的设计在在imr.v子模块的根底上我们只需要加上相应的输入输出端口以及三态子模块的根底上我们只需要加上相应的输入输出端口以及三态们就完成了中断效劳存放器们就完成了

23、中断效劳存放器imr_a.bdf的顶层模块的设计的顶层模块的设计对中断屏蔽存放器顶层文件进行时序仿真,验证其功能的正确性对中断屏蔽存放器顶层文件进行时序仿真,验证其功能的正确性计算机接口与通信实验2022-6-26254中断屏蔽存放器电路的设计中断屏蔽存放器电路的设计3/35优先级判别电路的设计优先级判别电路的设计功能:管理和识别各中断申请信号的优先级别,并选出优先级最高的中断申请,功能:管理和识别各中断申请信号的优先级别,并选出优先级最高的中断申请,向向CPU发中断申请信号发中断申请信号设计思路设计思路 :PR负责检查中断源的中断请求的优先级并和负责检查中断源的中断请求的优先级并和“正在效劳

24、中的中断正在效劳中的中断进行比较,确定是否某个中断请求送给处理器。假设中断源的中断比正在效劳中进行比较,确定是否某个中断请求送给处理器。假设中断源的中断比正在效劳中的中断有更高的优先级,那么的中断有更高的优先级,那么PR就使就使INT线变为高电平,送给线变为高电平,送给CPU,为它提出申,为它提出申请,并且在进入中断时将相应的请,并且在进入中断时将相应的ISR位置位。假设中断源的中断等级等于或低于位置位。假设中断源的中断等级等于或低于正在效劳中的中断等级,那么正在效劳中的中断等级,那么PR不为其提出申请。在非特定屏蔽时,将不为其提出申请。在非特定屏蔽时,将IRR的输的输出的最高优先级与出的最高

25、优先级与ISR的最高优先级比较,在特定屏蔽时,那么直接选出的最高优先级比较,在特定屏蔽时,那么直接选出IRR中中优先级最高的。该分析器相当于一个优先级编码器和一个比较器电路,可实现中优先级最高的。该分析器相当于一个优先级编码器和一个比较器电路,可实现中断判优及屏蔽的功能断判优及屏蔽的功能计算机接口与通信实验2022-6-26265优先级判别电路的设计优先级判别电路的设计1/6优先级判别器优先级判别器pr.v:输入输出信号定义:输入输出信号定义:input7:0 mask;/屏蔽信号屏蔽信号input7:0 request;/中断请求信号中断请求信号input7:0 isr;/中断效劳信号中断效

26、劳信号input2:0 sp;/优先级设置信号优先级设置信号input7:0 eoi;/中断结束信号中断结束信号output7:0 isr_set; /设置中断效劳存放器设置中断效劳存放器output7:0 isr_clr;/去除中断效劳去除中断效劳output intr;/发中断请求发中断请求output2:0 code;/正在进行效劳的中断源正在进行效劳的中断源计算机接口与通信实验2022-6-26275优先级判别电路的设计优先级判别电路的设计2/6 从各输入输出信号的定义我们不难知道各信号的作用,首先从中断请求从各输入输出信号的定义我们不难知道各信号的作用,首先从中断请求存放器中选出当前

27、未被屏蔽掉的,且优先级最高的中断请求,并设置中断存放器中选出当前未被屏蔽掉的,且优先级最高的中断请求,并设置中断请求类型号,程序框架如下请求类型号,程序框架如下always (sp)/ 中断优先级改变中断优先级改变beginif(nmr != 0)/ 有中断请求且没有被屏蔽掉有中断请求且没有被屏蔽掉begincase(sp)/ 不同优先级排队管理不同优先级排队管理7 : / IR0的中断优先级最高,其余依次递减的中断优先级最高,其余依次递减beginif(nmr0 = 1)/ IR0有中断请求,以下类推有中断请求,以下类推begin计算机接口与通信实验2022-6-26285优先级判别电路的设

28、计优先级判别电路的设计3/6position = 0; hp_nmr = 0;end else if(nmr1 = 1)begin position = 1;hp_nmr = 1;/其设置类似其设置类似IR1中断请求中断请求end /处理处理IR2到到IR7的中断请求的中断请求end/60,对优先级进行轮询对优先级进行轮询计算机接口与通信实验2022-6-26295优先级判别电路的设计优先级判别电路的设计4/6 在选出了当前中断存放器中具有最高优先级的中断请求后,还在选出了当前中断存放器中具有最高优先级的中断请求后,还需要从中断效劳存放器中选出当前正在进行效劳的最高优先级的需要从中断效劳存放器

29、中选出当前正在进行效劳的最高优先级的中断请求,程序框架如下:中断请求,程序框架如下:if(isr != 0)/断效劳存放器不为断效劳存放器不为0,有中断处理正在进行,有中断处理正在进行begincase(sp)/不同优先级排队管理不同优先级排队管理7 : beginif(isr0 = 1)hp_isr = 0;else if(isr1 = 1)hp_isr = 1;end/60输出当前正在进行中断效劳位输出当前正在进行中断效劳位计算机接口与通信实验2022-6-26305优先级判别电路的设计优先级判别电路的设计5/6 在选出了最高优先级的中断请求以及正在进行中断效劳的中断之后,在选出了最高优先

30、级的中断请求以及正在进行中断效劳的中断之后,就需要根据他们优先级上下的比较结果来决定是否向就需要根据他们优先级上下的比较结果来决定是否向CPU发送中断请求发送中断请求以及并根据是否设置特殊屏蔽方式来决定回送中断效劳存放器内容等,以及并根据是否设置特殊屏蔽方式来决定回送中断效劳存放器内容等,程序框架如下。程序框架如下。assign isr_clr = eoi; /向中断效劳存放器发中断去除位向中断效劳存放器发中断去除位/设置中断效劳位设置中断效劳位assign isr_set0 = (sm & hp_nmr!= 8 & position = 0) | (sm & hp_nmr hp_isr &

31、position = 0) ? 1 : 0;/设置设置isr_set1isr_set7/输出中断请求类型号输出中断请求类型号assign code = (isr = 0) ? 3b000 : position;/向向CPU发送中断请求发送中断请求assign intr = (hp_nmr != 8 & sm) | (hp_nmr != 8 & sm & hp_nmr hp_isr) ? 1 : 0;计算机接口与通信实验2022-6-26315优先级判别电路的设计优先级判别电路的设计6/6设计仿真设计仿真对优先级判别器进行时序仿真,验证设计的正确性对优先级判别器进行时序仿真,验证设计的正确性6读

32、写控制电路的设计读写控制电路的设计功能:读写控制电路是功能:读写控制电路是8259A的内部控制器,控制的内部控制器,控制8259A的内部工作过程。的内部工作过程。整个整个8259A芯片就是在控制电路的控制下构成一个有机的整体并完成中断优芯片就是在控制电路的控制下构成一个有机的整体并完成中断优先级的管理功能。先级的管理功能。设计思路设计思路:控制电路根据控制电路根据IRR存放器中的置位情况和中断屏蔽存放器存放器中的置位情况和中断屏蔽存放器IMR的设的设置情况,通过优先级判别器置情况,通过优先级判别器PR进行优先级判别,并根据判别结果向进行优先级判别,并根据判别结果向8259A内内部各部件发出控制

33、信号,并向部各部件发出控制信号,并向CPU发出中断申请信号发出中断申请信号INT和接收和接收计算机接口与通信实验2022-6-26326读写控制电路的设计读写控制电路的设计1/16CPU的中断响应信号,使中断效劳存放器的中断响应信号,使中断效劳存放器ISR存放器中的相应位置存放器中的相应位置“1,使使IRR存放器中中相应的位清存放器中中相应的位清“0。当第二个中断响应信号到来时,控。当第二个中断响应信号到来时,控制制8259A向数据总线送出中断类型号,以便向数据总线送出中断类型号,以便CPU形成中断效劳程序的形成中断效劳程序的入口地址。入口地址。读写控制电路有一个读写控制电路有一个core控制

34、模块和三态门以及输入输出端口组成。控制模块和三态门以及输入输出端口组成。读写控制器读写控制器core.v:主要输入输出端口定义:主要输入输出端口定义:input cs;/片选信号片选信号input rd, wr;/读写信号读写信号intput inta;/中断响应中断响应intput a0;/奇偶地址选择奇偶地址选择input reset;/重置重置 计算机接口与通信实验2022-6-26336读写控制电路的设计读写控制电路的设计2/16input7:0 isrset;/中断效劳存放器中断效劳存放器input2:0 code;/中断源编号中断源编号input7:0 datain,busdata

35、in;output ltim;/中断触发方式中断触发方式output sm;/中断屏蔽方式中断屏蔽方式output rd_isr;/读中断效劳存放器读中断效劳存放器/读,写,去除中断屏蔽存放器读,写,去除中断屏蔽存放器output rd_imr, wr_imr, clr_imr; ouput rd_irr;/读中断请求存放器读中断请求存放器ouput7:0 eoi/发中断结束发中断结束output7:0 setzero;/去除中断请求存放器去除中断请求存放器output2:0 sp;/中断优先级设置中断优先级设置计算机接口与通信实验2022-6-26346读写控制电路的设计读写控制电路的设计3

36、/16读读/ /写控制电路的设计比较复杂,下面介绍其实现过程。写控制电路的设计比较复杂,下面介绍其实现过程。8259A8259A的编程由编程命令实现。其编程命令有两类:初始化的编程由编程命令实现。其编程命令有两类:初始化命令字命令字ICW1-ICW4ICW1-ICW4和操作命令字和操作命令字OCW1-OCW3OCW1-OCW3。在中断系统进。在中断系统进入正常运行之前,系统需要对每一个入正常运行之前,系统需要对每一个8259A8259A都进行初始化都进行初始化/初始化自动机初始化自动机always (posedge clk or posedge reset)beginif(reset) sta

37、te = 1;elsebegincase(state)1 : / 初始化初始化ICW1过程,设置芯片控制初始化命令字过程,设置芯片控制初始化命令字if(write2)/ 进入初始化进入初始化ICW2过程过程2 : 计算机接口与通信实验2022-6-26356读写控制电路的设计读写控制电路的设计4/16beginif(icw11)/ 级联使用级联使用if(edge1 = 2b01)state = 3;/ 进入初始化进入初始化ICW3过程过程else if(icw10)/ 需要设置需要设置ICW4else if(edge1 = 2b01)/ 设置命令操作字设置命令操作字end3 : / 初始化初始

38、化ICW3过程,设置主从片初始化命令字过程,设置主从片初始化命令字beginif(icw10)/ 需要设置需要设置ICW4else if(edge1 = 2b10)state = 5; end4 :/ 初始化初始化ICW4过程过程if(edge1 = 2b11)state = 5;5 : / 设置操作命令字设置操作命令字if(write1 & datain4)state = 1;计算机接口与通信实验2022-6-26366读写控制电路的设计读写控制电路的设计5/16控制器根据当前所处状态和控制器根据当前所处状态和CPU以及用户设置的编程命令来分以及用户设置的编程命令来分别设置别设置ICW1IC

39、W4和和OCW1OCW3,程序框架如下:,程序框架如下:/设定设定ICW、OCWassign icw1 = reset ? 8h00 : (state = 1 & write1 ? datain : icw1);assign icw2 = reset ? 8h00 : (state = 2 & write2 ? datain : icw2);assign icw3 = reset ? 8h00 : (state = 3 & write2 ? datain : icw3);assign icw4 = reset ? 8h00 : (state = 4 & write2 ? datain : ic

40、w4);assign ocw1 = reset ? 8h00 : (state = 5 & write2 ? datain : ocw1); assignocw2=reset?8h00:(state=5&write1&datain4:3=2b00?datain:ocw2);assign ocw3=reset?8h00:(state=5&write1&datain4:3=2b01?datain:ocw3);计算机接口与通信实验2022-6-26376读写控制电路的设计读写控制电路的设计6/16 8259A的初始化命令字的初始化命令字ICW1芯片控制初始化命令字芯片控制初始化命令字icw13用来设

41、定中断申请的信号的触发方式,用来设定中断申请的信号的触发方式,1表示电平表示电平触发,触发,0表示边沿触发。该位用来设置表示边沿触发。该位用来设置ltim信号,如下:信号,如下:/ ltim 中断触发方式,中断触发方式,1为电平触发,为电平触发,0为边沿触发为边沿触发assign ltim = icw13;ICW2设置中断类型码基值初始化命令字设置中断类型码基值初始化命令字icw27:3提供中断类型号的高提供中断类型号的高5位,当位,当CPU发读发读IMR、ISR或或IRR信号时,信号时,icw27:3将与中断请求将与中断请求IRi组合成中断组合成中断类型号一起回送给类型号一起回送给CPU,如

42、下:,如下:/ 读读IMR或或IRR或或ISR存放器或中断类型号存放器或中断类型号assign dataout = (read2 | (read1 & ocw31 = 1) ? busdatain : (flag2 = 0 & flag1 = 1) ? icw27:3, code2:0 : 8b0);计算机接口与通信实验2022-6-26386读写控制电路的设计读写控制电路的设计7/16ICW3标识主片标识主片/从片初始化命令从片初始化命令ICW3应写入奇地址端口,当采用多片级联方式时,当前片假设应写入奇地址端口,当采用多片级联方式时,当前片假设为主片,那么为主片,那么icwi为为1表示表示I

43、Ri端上接有端上接有8259A从片,为从片,为0表示表示IRi端上未接从片。假设为从片,那么端上未接从片。假设为从片,那么icw32:0表示从片连接表示从片连接在主片的哪个中断请求输入端在主片的哪个中断请求输入端IRi上上ICW4方式控制初始化命令字方式控制初始化命令字icw44表示全嵌套方式,为表示全嵌套方式,为1时表示特殊全嵌套方式,为时表示特殊全嵌套方式,为0时时表示非特殊全嵌套方式。表示非特殊全嵌套方式。icw43设置设置8259A与系统连接方式。与系统连接方式。为为0表示非缓冲方式,为表示非缓冲方式,为1表示缓冲方式。当采用缓冲方式时,表示缓冲方式。当采用缓冲方式时,icw42设置级

44、联方式,当设置级联方式,当icw42为为1时表示该片为主片,时表示该片为主片,否那么为从片。否那么为从片。Icw41设置中断结束方式,为设置中断结束方式,为1表示自动表示自动EOI方式,为方式,为0表示非自动表示非自动EOI方式。关于方式。关于ICW4的程序代码我的程序代码我们将在后面的操作命令字局部加以介绍们将在后面的操作命令字局部加以介绍计算机接口与通信实验2022-6-26396读写控制电路的设计读写控制电路的设计8/168259A的操作命令字的操作命令字OCW1中断屏蔽操作命令字中断屏蔽操作命令字OCW1用来实现对中断源的屏蔽功能,用来实现对中断源的屏蔽功能,OCW1的内容被置入的内容

45、被置入IMR屏蔽屏蔽存放器,并且必须写入奇地址端口。每位对应一个中断请求存放器,并且必须写入奇地址端口。每位对应一个中断请求IRi,当某,当某位为位为1时,表示相应的中断请求被屏蔽,反之该中断请求被允许。时,表示相应的中断请求被屏蔽,反之该中断请求被允许。输出端口输出端口busdataout用来输出中断屏蔽操作命令字,代码如下:用来输出中断屏蔽操作命令字,代码如下:/ 输出中断屏蔽操作命令字输出中断屏蔽操作命令字assign busdataout = o1 ? ocw1 : 8b0;OCW2优先级循环方式和中断结束方式操作命令字优先级循环方式和中断结束方式操作命令字OCW2有两个功能:设置中断

46、结束方式和优先级循环方式。要有两个功能:设置中断结束方式和优先级循环方式。要求写入偶地址。求写入偶地址。计算机接口与通信实验2022-6-26406读写控制电路的设计读写控制电路的设计9/16ocw27决定系统中优先级是否按循环方式设置,为决定系统中优先级是否按循环方式设置,为1表示中断优先级表示中断优先级按循环方式设置,为按循环方式设置,为0表示设置为固定优先级,即表示设置为固定优先级,即IR0最高,最高,IR7最低。最低。ocw26指明指明ocw22ocw20是否有效,为是否有效,为1表示有效,反之表示有效,反之无效。无效。ocw2 5中断结束命令位,为中断结束命令位,为1表示中断效劳程序

47、结束后需要表示中断效劳程序结束后需要发送中断结束命令,为发送中断结束命令,为0那么不需要发送中断结束命令。那么不需要发送中断结束命令。ocw24和和ocw23为标志位,均为为标志位,均为0。假设。假设ocw26有效,那么有效,那么ocw22 ocw20指出要去除指出要去除ISR存放器中的哪一位或当存放器中的哪一位或当OCW2设置为特殊优设置为特殊优先级循环方式时,指明循环开始时哪个中断源的优先级最低。先级循环方式时,指明循环开始时哪个中断源的优先级最低。中断结束方式的设置。程序框架如下:中断结束方式的设置。程序框架如下:/处理中断结束处理中断结束assign codeocw2 = code,

48、ocw22:0;always (codeocw2)begin计算机接口与通信实验2022-6-26416读写控制电路的设计读写控制电路的设计10/16if(reset | mclr)er = 8hff;else if(icw41)/ 自动结束方式自动结束方式beginif(flag2) begincase(code)0 : er = 8h01;/ 0号存放器,号存放器,17存放器类似存放器类似else if(o2) beginif(ocw25) begin/ 中断效劳程序结束后需要发送中断结束命令中断效劳程序结束后需要发送中断结束命令if(ocw26) begin/ ocw26 = 1,sl位

49、指明位指明L2,L1,L0是否有效是否有效case(ocw22:0)/ 0号存放器,号存放器,17号存放器类似号存放器类似0 : er = 8h01;elsebegin/ ocw26 = 0, L2,L1,L0无效。无效。case(code)/ 按按code提供的存放器号来中断提供的存放器号来中断0 : er = 8h01;计算机接口与通信实验2022-6-26426读写控制电路的设计读写控制电路的设计11/16优先级循环方式的设置。程序框架如下:优先级循环方式的设置。程序框架如下:assign erocw2 = er, ocw22:0;/优先级设置优先级设置always (erocw2)be

50、ginif(reset | mclr)pri = 7;else if(icw41) begin/ 自动自动EOI方式方式if(ocw27) begin/ 自动循环方式自动循环方式case(er)8h01 : pri = 0;else if(o2 & ocw27) begin/ 非自动非自动EOI循环方式循环方式if(ocw26) begin/ 指定专门的优先级指定专门的优先级case(ocw22:0)/ IR0, 以下类推以下类推0 : pri = 0;elsebegin/ 无专门指定的优先级无专门指定的优先级case(er)8h01 : pri = 0;else pri = pri;计算机接

51、口与通信实验2022-6-26436读写控制电路的设计读写控制电路的设计12/16OCW3特殊屏蔽方式和中断查询方式操作命令字特殊屏蔽方式和中断查询方式操作命令字OCW3有三个功能:设置和撤消特殊屏蔽方式;设置中断查询方式;设有三个功能:设置和撤消特殊屏蔽方式;设置中断查询方式;设置读出置读出ISR或或IMR存放器的内容。必须写入偶地址端口。存放器的内容。必须写入偶地址端口。ocw36,ocw35设置或取消特殊屏蔽方式,当设置或取消特殊屏蔽方式,当ocw36和和ocw35为为0X时无效,为时无效,为10时撤消特殊屏蔽方式,为时撤消特殊屏蔽方式,为11时将时将8259A设置为特殊屏蔽方式。设置设

52、置为特殊屏蔽方式。设置8259A的屏蔽方式控制。的屏蔽方式控制。程序框架如下:程序框架如下:/ 特殊屏蔽方式复位特殊屏蔽方式复位assign sm = (ocw36:5 = 2b10) ? 1 : 0;计算机接口与通信实验2022-6-26446读写控制电路的设计读写控制电路的设计13/16OCW3的查询功能:的查询功能:ocw32为中断查询方式位,为为中断查询方式位,为1使使8259A处于处于中断查询方式,此时中断查询方式,此时CPU向向8259A偶地址写入查询命令偶地址写入查询命令OCW3=0CH后,再执行一条输入指令,后,再执行一条输入指令,CPU便可读入便可读入8259A提供的查询字。

53、提供的查询字。OCW3的读操作功能:的读操作功能:OCW3中的中的ocw31和和ocw30用来指明读用来指明读哪个存放器,当为哪个存放器,当为11时表时表CPU下一条指令读取下一条指令读取ISR存放器中的内容存放器中的内容 ,为为10时表示时表示CPU下一条指令读取下一条指令读取IRR存放器中的内容。注意存放器中的内容。注意IMR存放存放器的内容可有器的内容可有OCW1读奇地址端口直接读出。程序框架如下:读奇地址端口直接读出。程序框架如下:/ 读中断屏蔽存放器读中断屏蔽存放器assign rd_irr = (read1 & ocw31:0 = 2b10) ? 1 : 0;/ 读中断请求存放器读

54、中断请求存放器assign rd_isr = (read1 & ocw31:0 = 2b11) ? 1 : 0;计算机接口与通信实验2022-6-26456读写控制电路的设计读写控制电路的设计13/16读写控制器的仿真读写控制器的仿真对读写控制局部初始化名字的时序仿真对读写控制局部初始化名字的时序仿真对读写控制局部操作命令字的时序仿真对读写控制局部操作命令字的时序仿真计算机接口与通信实验2022-6-26466读写控制电路的设计读写控制电路的设计14/16计算机接口与通信实验2022-6-26476读写控制电路的设计读写控制电路的设计15/16中断屏蔽存放器顶层模块的设计中断屏蔽存放器顶层模块的设计在在core.v子模块的根底上我们只需要加上相应的输入输出端口以及子模块的根底上我们只需要加上相应的输入输出端口以及三态们就完成了读写控制器三态们就完成了读写控制器core_final.bdf的顶层模块的设计的顶层模块的设计计算机接口

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论