具体实施方式
结合附图1,说明本发明的Multibus总线到ISA总线的读写操作转换电路的组成。
本发明的一种Multibus总线到ISA总线的读写操作转换电路,包括时钟分频与取沿电路、状态转移电路、时序处理电路、复位电路、中断电路;时钟分频与取沿电路接收系统时钟与系统复位信号,输出ISA总线时钟边沿信号到状态转移电路和时序处理电路,并输出ISA总线时钟到ISA总线,Multibus总线的核心部分Multibus三总线(控制总线、地址总线、数据总线)与状态转移电路和时序处理电路相连,Multibus总线中断信号与中断电路相连,状态转移电路输出时序控制信号到时序处理电路;ISA总线的核心部分ISA三总线与状态转移电路和时序处理电路相连,ISA总线中断信号与中断电路相连,复位电路接收Multibus总线复位信号和系统复位信号,输出总复位信号到状态转移电路和时序处理电路,并输出ISA总线复位信号到ISA总线。
时钟分频与取沿电路对系统时钟进行分频得到ISA总线时钟,并对ISA总线时钟进行取沿操作,输出ISA总线时钟边沿信号给状态转移电路和时序处理电路使用。
状态转移电路采用系统时钟作为状态机的工作时钟,通过同步有限状态机进行状态转移处理,输出时序控制信号到时序处理电路。
时序处理电路根据状态转移电路提供的时序控制信号对Multibus三总线进行时序处理,实现Multibus三总线到ISA三总线的读写操作的时序转换。
中断电路从ISA总线接收ISA总线中断信号,输出Multibus总线中断信号至Multibus总线,实现中断信号的中转处理。
复位电路实现Multibus总线复位信号到ISA总线复位信号的转换,并提供状态转移电路和时序处理电路使用的总复位信号。
本发明中,相同名称的信号标识表示同一电气连接,Multibus总线简称M总线。
结合附图1、附图2,说明时钟分频与取沿电路的组成与工作原理。
时钟分频与取沿电路的输入信号包括系统时钟(sys_clk)和系统复位(sys_rst,低有效),时钟分频与取沿电路的输出信号包括ISA总线时钟(isa_bclk)、ISA总线时钟上升沿(isa_bclk_pedge,高有效)和ISA总线时钟下降沿(isa_bclk_nedge,高有效),ISA总线时钟(isa_bclk)输出到ISA总线,ISA总线时钟上升沿(isa_bclk_pedge)和ISA总线时钟下降沿(isa_bclk_nedge)输出到状态转移电路和时序处理电路;
时钟分频与取沿电路包括第一加法器[A01]、第一D触发器[D01]、第一等于比较器[E01]、第二等于比较器[E02];上述加法器的A输入端的信号值每变化一次,OUT输出端的信号值即变为A输入端的信号值加上B输入端的增量值;上述等于比较器的A输入端和B输入端相等时输出高电平,不相等输出低电平;第一加法器[A01]、第一D触发器[D01]的数据端、第一等于比较器[E01]的输入端、第二等于比较器[E02]的输入端均为2位宽度;
第一加法器[A01]的B输入端从高位到低位连接到电平状态2’b01,第一加法器[A01]的OUT输出端连接到第一D触发器[D01]的D输入端,第一D触发器[D01]的时钟端连接到系统时钟sys_clk,第一D触发器[D01]的CLR复位端连接到系统复位sys_rst,第一D触发器[D01]的Q输出端信号为clk_div_cnt(从高位到低位包括clk_div_cnt[1]、clk_div_cnt[0]),与第一加法器[A01]的A输入端、第一等于比较器[E01]的A输入端、第二等于比较器[E02]的A输入端的对应位相连,clk_div_cnt信号中的高位信号clk_div_cnt[1]即为ISA总线时钟isa_bclk,第一等于比较器[E01]的B输入端从高位到低位连接到电平状态2’b01,第一等于比较器[E01]的OUT输出端信号即为ISA总线时钟上升沿isa_bclk_pedge,第二等于比较器[E02]的B输入端从高位到低位连接到电平状态2’b11,第二等于比较器[E02]的OUT输出端信号即为ISA总线时钟下降沿isa_bclk_nedge。
第一加法器[A01]与第一D触发器[D01]组成2位时钟计数器,第一D触发器[D01]的Q输出端信号clk_div_cnt的高位信号clk_div_cnt[1]是系统时钟sys_clk的四分频信号,作为ISA总线时钟isa_bclk;clk_div_cnt电平状态为2’b01时对应ISA总线时钟上升沿isa_bclk_pedge,clk_div_cnt电平状态为2’b11时对应ISA总线时钟下降沿isa_bclk_nedge。
结合附图1、附图3、附图5和附图6,说明状态转移电路的外部连接、组成和工作原理。
状态转移电路输入的系统信号包括系统时钟(sys_clk)与总复位(rst,高有效),状态转移电路输入的来自时钟分频与取沿电路的信号包括ISA总线时钟上升沿(isa_bclk_pedge,高有效)和ISA总线时钟下降沿(isa_bclk_nedge,高有效),状态转移电路与Multibus三总线相连的信号包括M总线存储器读(m_mrdc,低有效)、M总线存储器写(m_mwtc,低有效)、M总线I/O读(m_iorc,低有效)、M总线I/O写(m_iowc,低有效),状态转移电路与ISA三总线相连的信号包括ISA总线锁存(isa_bale,高有效)、ISA总线从设备就绪(isa_chrdy,高电平表示就绪),状态转移电路输出到时序处理电路的时序控制信号包括M总线读(m_rd,高有效)、M总线写(m_wt,高有效)、M总线读/写(m_rd_wt,高有效)、M总线读写无效(m_rd_wt_end,高有效)、ISA总线锁存(isa_bale,高有效)、状态信号IDLE、BALE、RD_WT、CHRDY、DATA、XACK、BT_END(状态信号均为高有效);
状态转移电路包括第三等于比较器[E03]、第四等于比较器[E04]、第五等于比较器[E05]、第六等于比较器[E06]、第七等于比较器[E07]、第八等于比较器[E08]、第一小于比较器[LT01]、第一或门[OR01]、第二或门[OR02]、第三或门[OR03]、第一与门[AND01]、第二与门[AND02]、第一多路复用器[M01]、第二多路复用器[M02]、第三多路复用器[M03]、第四多路复用器[M04]、第五多路复用器[M05]、第二D触发器[D02]、第三D触发器[D03]、第二加法器[A02]、第一状态机模块[U01];
上述第一小于比较器[LT01]的A输入端的值小于B输入端的值时输出高电平,否则输出低电平;上述多路复用器均为二选一复用器,二选一复用器的S选择端为低电平时D0输入端与Q输出端连通,二选一复用器的S选择端为高电平时D1输入端与Q输出端连接;第三等于比较器[E03]、第四等于比较器[E04]、第五等于比较器[E05]、第六等于比较器[E06]、第七等于比较器[E07]的输入端均为4位宽度,第一或门[OR01]、第二或门[OR02]、第三或门[OR03]、第一与门[AND01]、第二与门[AND02]以及第一状态机模块[U01]的外部接口均为1位宽度,第一多路复用器[M01]、第二多路复用器[M02]、第二D触发器[D02]的数据端均为1位宽度,第三D触发器[D03]的数据端、第二加法器[A02]的输入端、第一小于比较器[LT01]的输入端、第八等于比较器[E08]的输入端、第三多路复用器[M03]、第四多路复用器[M04]、第五多路复用器[M05]的数据端均为2位宽度;
第三等于比较器[E03]、第四等于比较器[E04]、第五等于比较器[E05]、第六等于比较器[E06]、第七等于比较器[E07]的A输入端相连,从高位到低位依次连接到M总线I/O写m_iowc、M总线存储器写m_mwtc、M总线I/O读m_iorc、M总线存储器读m_mrdc,第三等于比较器[E03]的B输入端从高位到低位连接到电平状态4’hE,第四等于比较器[E04]的B输入端从高位到低位连接到电平状态4’hD,第五等于比较器[E05]的B输入端从高位到低位连接到电平状态4’hB,第六等于比较器[E06]的B输入端从高位到低位连接到电平状态4’h7,第七等于比较器[E07]的B输入端从高位到低位连接到电平状态4’hF;第三等于比较器[E03]的OUT输出端连接到第一或门[OR01]输入端1,第四等于比较器[E04]的OUT输出端连接到第一或门[OR01]输入端2,第一或门[OR01]的输出端信号为M总线读(m_rd),连接到第三或门[OR03]的输入端1并输出到时序处理电路,第五等于比较器[E05]的OUT输出端连接到第二或门[OR02]输入端1,第六等于比较器[E06]的OUT输出端连接到第二或门[OR02]输入端2,第二或门[OR02]的输出端信号为M总线写(m_wt),连接到第三或门[OR03]的输入端2并输出到时序处理电路,第三或门[OR03]的输出端信号为M总线读/写(m_rd_wt),连接到第一状态机模块[U01]的T1输入端并输出到时序处理电路;第七等于比较器[E07]的OUT输出端信号为M总线读写无效(m_rd_wt_end),连接到第一状态机模块[U01]的T6输入端并输出到时序处理电路;
第一多路复用器[M01]的D0输入端连接到第二D触发器[D02]的Q输出端,第一多路复用器[M01]的D1输入端连接到低电平,第一多路复用器[M01]的S选择端连接到ISA总线时钟上升沿isa_bclk_pedge,第一多路复用器[M01]的Q输出端连接到第二多路复用器[M02]的D0输入端,第二多路复用器[M02]的D1输入端连接到高电平,第二多路复用器[M02]的S选择端连接到ISA总线时钟下降沿isa_bclk_nedge,第二多路复用器[M02]的Q输出端连接到第二D触发器[D02]的D输入端,第二D触发器[D02]的时钟端连接到系统时钟sys_clk,第二D触发器[D02]的EN使能端连接到状态信号BALE,第二D触发器[D02]的CLR复位端连接到总复位rst,第二D触发器[D02]的Q输出端信号即为ISA总线锁存isa_bale;第一与门[AND01]的输入端1连接到ISA总线时钟上升沿isa_bclk_pedge,第一与门[AND01]的输入端2连接到ISA总线锁存isa_bale,第一与门[AND01]的输出端连接到第一状态机模块[U01]的T2输入端;
第三D触发器[D03]的D输入端与第五多路复用器[M05]的Q输出端相连,第三D触发器[D03]的时钟端连接到系统时钟sys_clk,第三D触发器[D03]的EN使能端连接到状态信号CHRDY,第三D触发器[D03]的CLR复位端连接到总复位rst,第三D触发器[D03]的Q输出端与第一小于比较器[LT01]的A输入端、第三多路复用器[M03]的D0输入端、第二加法器[A02]的A输入端、第八等于比较器[E08]的A输入端、第五多路复用器[M05]的D0输入端相连,第一小于比较器[LT01]的B输入端从高位到低位连接到电平状态2’b11,第一小于比较器[LT01]的OUT输出端连接到第四多路复用器[M04]的S选择端,第三多路复用器[M03]的D1输入端从高位到低位连接到电平状态2’b00,第三多路复用器[M03]的Q输出端连接到第四多路复用器[M04]的D0输入端,第二加法器[A02]的B输入端从高位到低位连接到电平状态2’b01,第二加法器[A02]的OUT输出端连接到第四多路复用器[M04]的D1输入端,第四多路复用器[M04]的Q输出端连接到第五多路复用器[M05]的D1输入端,第五多路复用器[M05]的S选择端与第二与门[AND02]的输入端1相连并连接到ISA总线时钟上升沿isa_bclk_pedge,第八等于比较器[E08]的B输入端从高位到低位连接到电平状态2’b11,第八等于比较器[E08]的OUT输出端连接到第二与门[AND02]的输入端3,第二与门[AND02]的输入端2连接到ISA总线从设备就绪isa_chrdy,第二与门[AND02]的输出端连接到第一状态机模块[U01]的T4输入端;
第一状态机模块[U01]的T3输入端连接到ISA总线时钟下降沿isa_bclk_nedge,第一状态机模块[U01]的T5输入端连接到ISA总线时钟上升沿isa_bclk_pedge,第一状态机模块[U01]的CLK时钟端连接到系统时钟sys_clk,第一状态机模块[U01]的CLR复位端连接到总复位rst,第一状态机模块[U01]的state输出端信号包括状态信号IDLE、BALE、RD_WT、CHRDY、DATA、XACK、BT_END,分别输出到时序处理电路;
所述第一状态机模块[U01]采用系统时钟sys_clk作为状态机的工作时钟,第一状态机模块[U01]的状态转移条件包括T1、T2、T3、T4、T5、T6,有效状态包括state1、state2、state3、state4、state5、state6、state7,分别对应状态信号IDLE、BALE、RD_WT、CHRDY、DATA、XACK、BT_END(均为高电平有效),总复位rst有效时系统处于state1状态,状态信号IDLE有效,在总复位rst撤销的正常工作条件下,当T1无效时(T1=0),状态机处于state1状态,当T1有效时(T1=1),状态机转移到state2状态,状态信号BALE有效,当T2无效时,状态机处于state2状态,当T2有效时(T2=1),状态机转移到state3状态,状态信号RD_WT有效,当T3无效时,状态机处于state3状态,当T3有效时(T3=1),状态机转移到state4状态,状态信号CHRDY有效,当T4无效时,状态机处于state4状态,当T4有效时(T4=1),状态机转移到state5状态,状态信号DATA有效,当T5无效时,状态机处于state5状态,当T5有效时(T5=1),状态机转移到state6状态,状态信号XACK有效,state6状态停留一个系统时钟(sys_clk)之后,转移到state7状态,当T6无效时,状态机处于state7状态,状态信号BT_END有效,当T6有效时(T6=1),状态机转移到state1状态,完成一次状态机的状态转移操作。
状态转移电路主要完成状态机的状态转移控制,当进行Multibus总线存储器读操作时,[m_iowc,m_mwtc,m_iorc,m_mrdc]=4’b1110=4’hE,当进行Multibus总线I/O读操作时,[m_iowc,m_mwtc,m_iorc,m_mrdc]=4’b1101=4’hD,当进行Multibus总线存储器写操作时,[m_iowc,m_mwtc,m_iorc,m_mrdc]=4’b1011=4’hB,当进行Multibus总线I/O写操作时,[m_iowc,m_mwtc,m_iorc,m_mrdc]=4’b0111=4’h7;在Multibus总线读写操作命令结束时,[m_iowc,m_mwtc,m_iorc,m_mrdc]=4’b1111=4’hF;因此,第一或门[OR01]的输出端信号即为M总线读m_rd,第二或门[OR02]的输出端信号即为M总线写m_wt,第三或门[OR03]的输出端信号(也即第一状态机模块[U01]的状态转移条件T1)为M总线读/写m_rd_wt;当出现有效的M总线读命令时,m_rd有效,当出现有效的M总线写命令时,m_wt有效,当出现有效的M总线读或写命令时,m_rd_wt有效,即T1有效;当M总线读写命令结束时,m_rd_wt_end有效,即第一状态机模块[U01]的状态转移条件T6有效;
第一多路复用器[M01]、第二多路复用器[M02]、第二D触发器[D02]组成ISA总线锁存isa_bale产生电路;当总复位rst有效时,第二D触发器[D02]的Q输出端信号(即ISA总线锁存isa_bale)为低电平,在state2状态下,状态信号BALE有效的ISA总线时钟下降沿,ISA总线锁存isa_bale变为高电平,在ISA总线锁存isa_bale变为高电平之后的ISA总线时钟上升沿,ISA总线锁存isa_bale变为低电平,ISA总线锁存isa_bale保持半个ISA总线时钟周期;在ISA总线锁存isa_bale的高电平结束时的ISA总线时钟上升沿,第一状态机模块[U01]的状态转移条件T2有效;
当总复位rst有效时,第三D触发器[D03]的Q输出端信号为2’b00,在state4状态下,状态信号CHRDY有效,第三D触发器[D03]与第三多路复用器[M03]、第四多路复用器[M04]、第五多路复用器[M05]、第一小于比较器[LT01]、第二加法器[A02]组成一个受控计数器,计数信号isa_ws_cnt从2’b00开始按照ISA总线时钟上升沿isa_bclk_pedge进行加1计数;当isa_ws_cnt为2’b11时,如果ISA总线从设备就绪isa_chrdy为高电平(就绪),计数信号isa_ws_cnt清零为2’b00,如果ISA总线从设备就绪isa_chrdy为低电平(未就绪),计数信号isa_ws_cnt保持为2’b11;在计数信号isa_ws_cnt为2’b11并且ISA总线从设备就绪isa_chrdy为高电平(就绪)时的ISA总线时钟上升沿下,第一状态机模块[U01]的状态转移条件T4有效;
标准的ISA总线操作周期(无插入等待周期)为六个ISA总线时钟周期,可能的插入等待周期位于第五ISA总线操作周期和第六ISA总线操作周期之间;即使出现插入等待周期,本文中仍然把插入等待周期之后的这个ISA总线操作周期称为第六ISA总线操作周期。
状态机的state1状态对应复位状态、总线空闲状态、第一ISA总线操作周期的前半周期,状态机的state2状态对应第一ISA总线操作周期的后半周期,状态机的state3状态对应第二ISA总线操作周期的前半周期,状态机的state4状态对应第二ISA总线操作周期的后半周期到第五ISA总线操作周期和可能的插入等待周期,状态机的state5状态对应第六ISA总线操作周期,状态机的state6状态对应第六ISA总线操作周期之后的1个系统时钟周期,状态机的state6状态持续到M总线读写命令结束。
在复位或总线空闲状态下,状态机处于state1状态,状态信号IDLE有效;当出现M总线读或写操作命令时,状态机转移到state2状态,状态信号BALE有效;在state2状态下的ISA总线时钟下降沿,产生半个ISA总线周期宽度的锁存信号ISA总线锁存isa_bale,在ISA总线锁存isa_bale变为高电平之后的ISA总线时钟上升沿,状态机转移到state3状态,状态信号RD_WT有效;在state3状态下的ISA总线时钟下降沿,状态机转移到state4状态,状态信号CHRDY有效;在state4状态下,从第三ISA总线操作周期计数到第五ISA总线操作周期,在第五ISA总线操作周期的ISA总线时钟上升沿,判断ISA总线从设备就绪isa_chrdy是否为高电平(高电平为就绪),如果isa_chrdy为低电平(未就绪),则进入等待周期,如果isa_chrdy为高电平(就绪),状态机转移到state5状态,状态信号DATA有效;在state5状态下的ISA总线时钟上升沿,状态机从state5状态转移到state6状态,状态信号XACK有效;state6状态占用一个系统时钟周期直接跳转到state7状态,状态信号BT_END有效;在state7状态下,等待M总线读写命令结束后跳转到state1状态,结束本次状态转移操作。
结合附图1、附图4说明时序处理电路的电路的外部连接、组成模块和主要功能。
时序处理电路输入的系统信号包括系统时钟(sys_clk)与总复位(rst),时序处理电路输入的来自时钟分频与取沿电路的信号包括ISA总线时钟上升沿(isa_bclk_pedge)和ISA总线时钟下降沿(isa_bclk_nedge),时序处理电路与Multibus三总线连接的信号包括M总线存储器读(m_mrdc,低有效)、M总线存储器写(m_mwtc,低有效)、M总线I/O读(m_iorc,低有效)、M总线I/O写(m_iowc,低有效)、M总线地址(m_addr)、M总线数据(m_dat)、M总线传输确认(m_xack,低有效),时序处理电路与ISA三总线相连的信号包括ISA总线存储器读(isa_memr,低有效)、ISA总线存储器写(isa_memw,低有效)、ISA总线I/O读(isa_ior,低有效)、ISA总线I/O写(isa_iow,低有效)、ISA总线地址(isa_addr)、ISA总线数据(isa_dat),时序处理电路接收的状态转移电路的输出信号包括M总线读(m_rd,高有效)、M总线写(m_wt,高有效)、M总线读/写(m_rd_wt,高有效)、M总线读写无效(m_rd_wt_end,高有效)、ISA总线锁存(isa_bale,高有效)、状态信号IDLE、BALE、RD_WT、CHRDY、DATA、XACK、BT_END(均为高电平有效);
时序处理电路包括地址转换电路、读写命令转换电路、数据写转换电路、数据读转换电路、反馈电路。地址转换电路、读写命令转换电路、数据写转换电路、数据读转换电路、反馈电路均采用系统时钟(sys_clk)作为工作时钟,采用总复位(rst)作为复位信号。
地址转换电路用于实现M总线地址(m_addr)到ISA总线地址(isa_addr)的读写时序转换,输入的时序控制信号包括M总线读/写(m_rd_wt)、ISA总线锁存(isa_bale)、状态信号IDLE;
读写命令转换电路用于实现M总线读写操作命令(M总线存储器读m_mrdc、M总线存储器写m_mwtc、M总线I/O读m_iorc、M总线I/O写m_iowc)到ISA总线读写操作命令(ISA总线存储器读isa_memr、ISA总线存储器写isa_memw、ISA总线I/O读isa_ior、I/O总线I/O写isa_iow)的读写时序转换,输入的时序控制信号包括m总线读/写(m_rd_wt)、ISA总线时钟上升沿(isa_bclk_pedge)、ISA总线时钟下降沿(isa_bclk_nedge)、状态信号IDLE、BALE、RD_WT、CHRDY、DATA、XACK、BT_END;
数据写转换电路用于实现M总线数据(m_dat)到ISA总线数据(isa_dat)的写操作时序转换,输入的时序控制信号包括M总线写(m_wt)、M总线读(m_rd)、ISA总线时钟下降沿(isa_bclk_nedge)、ISA总线锁存(isa_bale)、状态信号IDLE、BALE;
数据读转换电路用于实现ISA总线数据(isa_dat)到M总线数据(m_dat)的读操作时序转换,输入的时序控制信号包括M总线写(m_wt)、M总线读(m_rd)、M总线读写无效(m_rd_wt_end)、ISA总线时钟上升沿(isa_bclk_pedge)、ISA总线时钟下降沿(isa_bclk_nedge)、状态信号IDLE、BALE、RD_WT、CHRDY、DATA、XACK、BT_END;
反馈电路用于产生反馈信号M总线传输确认(m_xack),输入的时序控制信号包括M总线读写无效(m_rd_wt_end)、状态信号IDLE、BALE、RD_WT、CHRDY、DATA、XACK、BT_END。
结合附图7,说明地址转换电路的组成和工作原理。
所述地址转换电路包括第六多路复用器[M06]、第四D触发器[D04]、第一锁存器[L01];第六多路复用器[M06]为二选一复用器;第六多路复用器[M06]、第四D触发器[D04]、第一锁存器[L01]的数据端对应地址总线,数据宽度可根据实际应用调整,默认为20位宽度;
第六多路复用器[M06]的D0输入端与第四D触发器[D04]的Q输出端、第一锁存器[L01]的D输入端相连,第六多路复用器[M06]的D1输入端连接到M总线地址m_addr,第六多路复用器[M06]的S选择端连接到M总线读/写m_rd_wt,第六多路复用器[M06]的Q输出端连接到第四D触发器[D04]的D输入端,第四D触发器[D04]的时钟端连接到系统时钟sys_clk,第四D触发器[D04]的EN使能端连接到状态信号IDLE,第四D触发器[D04]的CLR复位端连接到总复位rst,第一锁存器[L01]的EN使能端连接到ISA总线锁存isa_bale,第一锁存器[L01]的的CLR复位端连接到总复位rst,第一锁存器[L01]的Q输出端连接到ISA总线地址isa_addr。
在state1状态,状态信号IDLE有效,第四D触发器[D04]的EN使能端为高电平,如果出现M总线读写操作,m_rd_wt有效(高电平),M总线地址m_addr输出锁存到第四D触发器[D04]的Q输出端,在ISA总线锁存isa_bale为高电平时,第一锁存器[L01]将其D输入端锁存的M总线地址输出到ISA总线地址isa_addr,在ISA总线锁存isa_bale为低电平时,ISA总线地址isa_addr保持不变;
M总线地址在第二ISA总线操作周期中由ISA总线锁存isa_bale锁存输出到ISA总线地址isa_addr,直到下一次ISA总线锁存isa_bale为高电平时再次更新。
结合附图8,说明读写命令转换电路的组成和工作原理。
所述读写命令转换电路包括第七多路复用器[M07]、第八多路复用器[M08]、第九多路复用器[M09]、第五D触发器[D05]、第六D触发器[D06]、第四或门[OR04]、第一选择器[S01];第七多路复用器[M07]、第八多路复用器[M08]、第九多路复用器[M09]均为二选一复用器;上述第一选择器[S01]为三路选择器,当只有S0选择端为高电平时,D0输入端与OUT输出端连通,当只有S1选择端为高电平时,D1输入端与OUT输出端连通,当只有S2选择端为高电平时,D2输入端与OUT输出端选通;第七多路复用器[M07]、第八多路复用器[M08]、第九多路复用器[M09]、第五D触发器[D05]、第六D触发器[D06]、第一选择器[S01]的数据端均为4位宽度,第四或门[OR04]端口为1位宽度;
第七多路复用器[M07]的D0输入端与第九多路复用器[M09]的D0输入端、第一选择器[S01]的D2输入端、第六D触发器[D06]的Q输出端相连,第七多路复用器[M07]的D1输入端从高位到低位连接到电平状态4’hF,第七多路复用器[M07]的S选择端连接到ISA总线时钟上升沿isa_bclk_pedge,第七多路复用器[M07]的Q输出端连接到第一选择器[S01]的D0输入端,第八多路复用器[M08]的D0输入端与第五D触发器[D05]的Q输出端、第九多路复用器[M09]的D1输入端相连,第八多路复用器[M08]的D1输入端从高位到低位依次连接到M总线I/O写m_iowc、M总线存储器写m_mwtc、M总线I/O读m_iorc、M总线存储器读m_mrdc,第八多路复用器[M08]的S选择端连接到M总线读/写m_rd_wt,第八多路复用器[M08]的Q输出端连接到第五D触发器[D05]的D输入端,第五D触发器[D05]的时钟端连接到系统时钟sys_clk,第五D触发器[D05]的EN使能端连接到状态信号IDLE,第五D触发器[D05]的CLR复位端连接到总复位rst,第九多路复用器[M09]的S选择端连接到ISA总线时钟下降沿isa_bclk_nedge,第九多路复用器[M09]的Q输出端连接到第一选择器[S01]的D1,第一选择器[S01]的S0选择端连接到状态信号DATA,第一选择器[S01]的S1选择端连接到状态信号RD_WT,第四或门[OR04]的输入端1连接到状态信号IDLE,第四或门[OR04]的输入端2连接到状态信号BALE,第四或门[OR04]的输入端3连接到状态信号CHRDY,第四或门[OR04]的输入端4连接到状态信号XACK,第四或门[OR04]的输入端5连接到状态信号BT_END,第四或门[OR04]的输出端连接到第一选择器[S01]的S2选择端;第一选择器[S01]的OUT输出端连接到第六D触发器[D06]的D输入端,第六D触发器[D06]的时钟端连接到系统时钟sys_clk,第六D触发器[D06]的SET置位端连接到总复位rst,第六D触发器[D06]的Q输出端从高位到低位依次连接到ISA总线I/O写isa_iow、ISA总线存储器写isa_memw、ISA总线I/O读isa_ior、ISA总线存储器读isa_memr。
在state1状态,状态信号IDLE有效,第五D触发器[D05]的EN端为高电平,如果出现M总线读写操作,M总线读写命令(m_iowc、m_mwtc、m_iorc、m_mrdc)输出锁存到第五D触发器[D05]的Q输出端;在state1、state2、state4、state6、state7状态下,分别对应状态信号IDLE、BALE、CHRDY、XACK、BT_END有效,第一选择器[S01]的S2选择端有效,第一选择器[S01]的OUT输出端与D2输入端连通,ISA总线读写命令(isa_iow、isa_memw、isa_ior、isa_memr)保持原值不变;在state3状态下,状态信号RD_WT有效,第一选择器[S01]的OUT输出端与D1输入端连通,在状态信号RD_WT有效时的ISA总线时钟下降沿,将第五D触发器[D05]的Q输出端锁存的M总线读写命令(m_iowc、m_mwtc、m_iorc、m_mrdc)输出到ISA总线读写命令(isa_iow、isa_memw、isa_ior、isa_memr);在state5状态下,状态信号DATA有效,第一选择器[S01]的OUT输出端与D0输入端连通,在状态信号DATA有效的ISA总线时钟上升沿,ISA总线读写命令(isa_iow、isa_memw、isa_ior、isa_memr)结束(全部变为高电平状态);
M总线读写命令(m_iowc、m_mwtc、m_iorc、m_mrdc)在第二ISA总线操作周期的ISA总线时钟下降沿输出到ISA总线读写命令端(isa_iow、isa_memw、isa_ior、isa_memr),ISA总线读写命令保持到第六ISA总线操作周期的ISA总线时钟上升沿结束。
结合附图9、附图10,说明数据写转换电路、数据读转换电路的组成和工作原理。
所述数据写转换电路包括第十多路复用器[M10]、第十一多路复用器[M11]、第十二多路复用器[M12]、第十三多路复用器[M13]、第九D触发器[D09]、第十D触发器[D10]、第二锁存器[L02]、第一三态门[T01];第十多路复用器[M10]、第十一多路复用器[M11]、第十二多路复用器[M12]、第十三多路复用器[M13]均为二选一复用器;第十多路复用器[M10]、第十一多路复用器[M11]、第十二多路复用器[M12]、第九D触发器[D09]的数据端均为1位宽度,第十三多路复用器[M13]、第十D触发器[D10]、第二锁存器[L02]、第一三态门[T01]的数据端对应数据总线,数据宽度为8位或16位,可以根据实际应用调整;
第十多路复用器[M10]的D0输入端与第十二多路复用器[M12]的D0输入端、第九D触发器[D09]的Q输出端、第一三态门[T01]的ENB使能端相连,第十多路复用器[M10]的D1输入端连接到高电平,第十多路复用器[M10]的S选择端连接到M总线写m_wt,第十多路复用器[M10]的Q输出端连接到第十一多路复用器[M11]的D0输入端,第十一多路复用器[M11]的D1输入端连接到低电平,第十一多路复用器[M11]的S选择端连接到M总线读m_rd,第十一多路复用器[M11]的Q输出端连接到第十二多路复用器[M12]的D1输入端,第十二多路复用器[M12]的S选择端连接到ISA总线时钟下降沿isa_bclk_nedge,第十二多路复用器[M12]的Q输出端连接到第九D触发器[D09]的D输入端,第九D触发器[D09]的时钟端连接到系统时钟sys_clk,第九D触发器[D09]的EN使能端连接到状态信号BALE,第九D触发器[D09]的CLR复位端连接到总复位rst,第十三多路复用器[M13]的D0输入端与第十D触发器[D10]的Q输出端、第二锁存器[L02]的D输入端相连,第十三多路复用器[M13]的D1输入端连接到M总线数据m_dat,第十三多路复用器[M13]的S选择端连接到M总线写m_wt,第十三多路复用器[M13]的Q输出端连接到第十D触发器[D10]的D输入端,第十D触发器[D10]的时钟端连接到系统时钟sys_clk,第十D触发器[D10]的EN使能端连接到状态信号IDLE,第十D触发器[D10]的CLR复位端连接到总复位rst,第二锁存器[L02]的EN使能端连接到ISA总线锁存isa_bale,第二锁存器[L02]的CLR复位端连接到总复位rst,第二锁存器[L02]的Q输出端连接到第一三态门[T01]的输入端,第一三态门[T01]的输出端连接到ISA总线数据isa_dat。
所述数据读转换电路包括第十四多路复用器[M14]、第十五多路复用器[M15]、第十六多路复用器[M16]、第十七多路复用器[M17]、第十八多路复用器[M18]、第十九多路复用器[M19]、第五或门[OR05]、第二选择器[S02]、第十一D触发器[D11]、第十二D触发器[D12]、第二三态门[T02];第十四多路复用器[M14]、第十五多路复用器[M15]、第十六多路复用器[M16]、第十七多路复用器[M17]、第十八多路复用器[M18]、第十九多路复用器[M19]均为二选一复用器,第二选择器[S02]为三路选择器;第十四多路复用器[M14]、第十五多路复用器[M15]、第十六多路复用器[M16]、第十七多路复用器[M17]、第五或门[OR05]、第二选择器[S02]、第十一D触发器[D11]的数据端均为1位宽度,第十八多路复用器[M18]、第十九多路复用器[M19]、第十二D触发器[D12]、第二三态门[T02]的数据端对应数据总线,数据宽度为8位或16位,可以根据实际应用调整;
第十四多路复用器[M14]的D0输入端与第十五多路复用器[M15]的D0输入端、第十七多路复用器[M17]的D0输入端、第二选择器[S02]的D2输入端、第十一D触发器[D11]的Q输出端、第二三态门[T02]的ENB使能端相连,第十四多路复用器[M14]的D1输入端连接到低电平,第十四多路复用器[M14]的S选择端连接到M总线读写无效m_rd_wt_end,第十四多路复用器[M14]的Q输出端连接到第二选择器[S02]的D0输入端,第十五多路复用器[M15]的D1输入端连接到低电平,第十五多路复用器[M15]的S选择端连接到M总线写m_wt,第十五多路复用器[M15]的Q输出端连接到第十六多路复用器[M16]的D0输入端,第十六多路复用器[M16]的D1输入端连接到高电平,第十六多路复用器[M16]的S选择端连接到M总线读m_rd,第十六多路复用器[M16]的Q输出端连接到第十七多路复用器[M17]的D1输入端,第十七多路复用器[M17]的S选择端连接到ISA总线时钟下降沿isa_bclk_nedge,第十七多路复用器[M17]的Q输出端连接到第二选择器[S02]的D1输入端,第二选择器[S02]的S0选择端连接到状态信号BT_END,第二选择器[S02]的S1选择端连接到状态信号BALE,第五或门[OR05]的输入端1连接到状态信号IDLE,第五或门[OR05]的输入端2连接到状态信号RD_WT,第五或门[OR05]的输入端3连接到状态信号CHRDY,第五或门[OR05]的输入端4连接到状态信号DATA,第五或门[OR05]的输入端5连接到状态信号XACK,第五或门[OR05]的输出端连接到第二选择器[S02]的S2选择端,第二选择器[S02]的OUT输出端连接到第十一D触发器[D11]的D输入端,第十一D触发器[D11]的时钟端连接到系统时钟sys_clk,第十一D触发器[D11]的CLR复位端连接到总复位rst,第十八多路复用器[M18]的D0输入端与第十九多路复用器[M19]的D0输入端、第十二D触发器[D12]的Q输出端、第二三态门[T02]的输入端相连,第十八多路复用器[M18]的D1输入端连接到ISA总线数据isa_dat,第十八多路复用器[M18]的S选择端连接到M总线读m_rd,第十八多路复用器[M18]的Q输出端与第十九多路复用器[M19]的D1输入端相连,第十九多路复用器[M19]的S选择端连接到ISA总线时钟上升沿isa_bclk_pedge,第十九多路复用器[M19]的Q输出端连接到第十二D触发器[D12]的D输入端,第十二D触发器[D12]的时钟端连接到系统时钟sys_clk,第十二D触发器[D12]的EN使能端连接到状态信号DATA,第十二D触发器[D12]的CLR复位端连接到总复位rst,第二三态门[T02]的输出端连接到M总线数据m_dat。
在总复位rst有效的复位状态下,第十一D触发器[D11]的Q输出端为低电平,第二三态门[T02]关闭;在状态机最后一个状态state7状态下,状态信号BT_END有效,第二选择器[S02]的D0输入端与OUT输出端连通,在M总线读写命令结束时(M总线读写命令失效m_rd_wt_end为高电平),第二选择器[S02]的D0输入端为低电平,第二三态门[T02]关闭,因此在复位状态和状态机操作结束时,第二三态门[T02]均关闭;在state1、state3、state4、state5、state6状态下,分别对应状态信号IDLE、RD_WT、CHRDY、DATA、XACK有效,第二选择器[S02]的D2输入端与OUT输出端连通,第二三态门[T02]开关状态保持不变;在state2状态下,状态信号BALE有效,第二选择器[S02]的D1输入端与OUT输出端连通,对于数据写操作,M总线写m_wt为高电平,M总线读m_rd为低电平,第十六多路复用器[M16]的Q输出端为低电平,在状态信号BALE有效的ISA总线时钟下降沿(对应ISA总线锁存isa_bale变为高电平),第二三态门[T02]关闭;因此对于数据写操作,第二三态门[T02]一直处于关闭状态,使M总线数据m_dat为单向输入;
对于数据写操作,在state1状态下,状态信号IDLE有效,M总线数据m_dat锁存到第十D触发器的Q输出端;在state2状态下,状态信号BALE有效,在状态信号BALE有效的ISA总线时钟下降沿(对应ISA总线锁存isa_bale变为高电平),第一三态门[T01]导通,ISA总线数据isa_dat对应单向输出,在ISA总线锁存isa_bale为高电平时,锁存的M总线数据m_dat输出到ISA总线数据isa_dat;在state3到state7状态下,ISA总线数据isa_dat保持不变;
对于数据写操作,在ISA总线锁存isa_bale变为高电平时(对应第一ISA总线操作周期的ISA总线时钟下降沿),M总线数据m_dat输出到ISA总线数据isa_dat,ISA总线数据isa_dat保持到下一次ISA总线锁存isa_bale变为高电平为止;
对于数据读操作,M总线写m_wt为低电平,M总线读m_rd为高电平,第十一多路复用器[M11]的Q输出端为低电平,在state2状态下,状态信号BALE有效,在状态信号BALE有效的ISA总线时钟下降沿(对应ISA总线锁存isa_bale变为高电平),第一三态门[T01]关闭,使ISA总线数据isa_dat为单向输入,第一三态门[T01]的关闭状态一直保持到下一次state2状态下ISA总线锁存isa_bale变为高电平;
对于数据读操作,第十六多路复用器[M16]的Q输出端为高电平,在state1状态下,状态信号IDLE有效,第二选择器[S02]的D2输入端与OUT输出端连通,第二三态门[T02]保持关闭状态;在state2状态下,状态信号BALE有效,第二选择器[S02]的D1输入端与OUT输出端连通,在状态信号BALE有效的ISA总线时钟下降沿(对应ISA总线锁存isa_bale变为高电平),第二三态门[T02]导通;在state3、state4、state5、state6状态下,分别对应状态信号RD_WT、CHRDY、DATA、XACK有效,第二选择器[S02]的D2输入端与OUT输出端连通,第二三态门[T02]保持导通状态;在state5状态下,状态信号DATA有效,在状态信号DATA有效的ISA总线时钟上升沿,ISA总线数据isa_dat送到M总线数据端m_dat;在state7状态下,状态信号BT_END有效,第二选择器[S02]的D0输入端与OUT输出端连通,在M总线读写命令结束时(M总线读写失效m_rd_wt为高电平),第二三态门[T02]关闭,M总线数据m_dat释放。
对于数据读操作,在第六ISA总线操作周期的ISA总线时钟上升沿,将ISA总线数据isa_dat送到M总线数据端m_dat,M总线数据m_dat在M总线读写命令结束后一个系统时钟周期内释放。
结合附图11,说明反馈电路的组成和工作原理。
所述反馈电路包括第二十多路复用器[M20]、第六或门[OR06]、第三选择器[S03]、第十三D触发器[D13];第二十多路复用器[M20]为二选一复用器;第二十多路复用器[M20]为二选一复用器,第三选择器[S03]为三路选择器;第二十多路复用器[M20]、第六或门[OR06]、第三选择器[S03]、第十三D触发器[D13]的数据端均为1位宽度;
第二十多路复用器[M20]的D0输入端与第三选择器[S03]的D2输入端、第十三D触发器[D13]的Q输出端相连,第二十多路复用器[M20]的D1输入端连接到高电平,第二十多路复用器[M20]的S选择端连接到M总线读写无效m_rd_wt_end,第二十多路复用器[M20]的Q输出端连接到第三选择器[S03]的D0输入端,第三选择器[S03]的D1输入端连接到低电平,第三选择器[S03]的S0选择端连接到状态信号BT_END,第三选择器[S03]的S1选择端连接到状态信号XACK,第六或门[OR06]的输入端1连接到状态信号IDLE,第六或门[OR06]的输入端2连接到状态信号BALE,第六或门[OR06]的输入端3连接到状态信号RD_WT,第六或门[OR06]的输入端4连接到状态信号CHRDY,第六或门[OR06]的输入端5连接到状态信号DATA,第六或门[OR06]的OUT输出端连接到第三选择器[S03]的S2选择端,第三选择器[S03]的OUT输出端连接到第十三D触发器[D13]的D输入端,第十三D触发器[D13]的时钟端连接到系统时钟sys_clk,第十三D触发器[D13]的SET置位端连接到总复位rst,第十三D触发器[D13]的Q输出端连接到M总线传输确认m_xack。
在总复位rst有效的复位状态下,第十三D触发器[D13]的Q输出端信号即M总线传输确认m_xack为高电平;在状态机的最后一个状态state7状态下,状态信号BT_END有效,第三选择器[S03]的D0输入端与OUT输出端连通,在M总线读写命令结束时(M总线读写失效m_rd_wt_end为高电平),M总线传输确认m_xack为高电平;在state1、state2、state3、state4、state5状态下,分别对应状态信号IDLE、BALE、RD_WT、CHRDY、DATA有效,第三选择器[S03]的D2输入端与OUT输出端连通,M总线传输确认m_xack保持为高电平;在state6状态下,状态信号XACK有效,第三选择器[S03]的D1输入端与OUT输出端连通,M总线传输确认m_xack变为低电平;在state7状态下,状态信号BT_END有效,第三选择器[S03]的D0输入端与OUT输出端连通,在M总线读写命令结束时(M总线读写失效m_rd_wt_end为高电平),M总线传输确认m_xack变为高电平;
M总线传输确认m_xack(低有效)在第六ISA总线操作周期之后的一个系统时钟周期变为低电平,表示M总线数据写操作完成或已将读取数据送到M数据总线m_dat,在M总线读写命令结束后一个系统时钟周期之内,M总线传输确认m_xack恢复为高电平状态,结束本次总线读写操作。
结合附图12,说明复位电路的组成和工作原理。
复位电路接收M总线复位(m_init,低有效)和系统复位(sys_rst,低有效),输出ISA总线复位(isa_resetdrv,高有效),并输出总复位(rst,高有效)到状态转移电路和时序处理电路;
复位电路包括第三与门[AND03]、第一非门[N01];第三与门[AND03]、第一非门[N01]端口均为1位宽度;第三与门[AND03]的输入端1连接到系统复位sys_rst,第三与门[AND03]的输入端2与第一非门[N01]的输入端连接到M总线复位m_init,第三与门[AND03]的反相输出端连接到总复位rst,第一非门[N01]的输出端连接到ISA总线复位isa_resetdrv。
M总线复位m_init为低有效,ISA总线复位isa_resetdrv高有效,所以二者通过非门转换即可,而状态转移电路和时序处理电路使用的总复位rst为系统复位sys_rst与M总线复位m_init的组合,系统复位sys_rst与M总线复位m_init有一个有效时,总复位rst有效。
由上可知,本发明的电路结构简单,支持8位和16位数据宽度,地址线可以根据需要进行扩展;该电路转换效率高,频率适应性强,可以用于7MHz~10MHz的ISA总线时钟范围;该电路通用性强,可以在通用的CPLD/FPGA逻辑芯片上实现,占用资源少,功耗低;该电路通过Multibus总线到ISA总线的读写时序转换,实现了在Multibus总线机箱上配置ISA总线从设备的混插与兼容;在测试领域,基于Multibus总线的测试系统,除直接测试Multibus总线模块外,如果采用本发明电路,可以扩展测试ISA总线从模块,进而提高系统测试能力;把Multibus总线的异步读写操作转换为ISA总线的同步读写操作,实现Multibus总线主设备对ISA总线从设备的读写操作,解决了Multibus总线机箱上配置ISA总线从设备的混插与兼容问题,在混合总线加固计算机设计、计算机总线板卡测试诊断等领域有广泛应用。