基于PC104总线的429接口板设计
begin
WR6=XIOW or MCS or A4 or(not A3) or(not A2)or A1;
WR5=XIOW or MCS or A4 or(not A3) or A2 or(not A1);
WR4=XIOW or MCS or A4 or(not A3) or A2 or A1;
WR3=XIOW or MCS or A4 or A3 or(not A2)or(not A1);
WR2=XIOW or MCS or A4 or A3 or(not A2)or A1;
WR1=XIOW or MCS or A4 or A3 or A2 or(not A1);
WR0=XIOW or MCS or A4 orA3 or A2 or A1; --产生写信号
if MCS='0' then
IO16=MCS;
else
IO16='Z';
endif;
RD4=XIOR or MCS or(notA4)orA3 or A2;
RD3=XIOR or MCS or A4 or(not A3)or(not A2);
RD2=XIOR or MCS or A4 or(not A3)or A2;
RDI=XIOR or MCS or A4 or A3 or(not A2)
RD0=XIOR or MCS or A4 or A3 orA2;--产生读信号
ENTX1=ENT1 and(not TXR1);
ENTX2=ENT2 and(not TXR2);--产生发送使能信号
end process;
end behav; 本文引用地址: //m.amcfsurvey.com/article/172233.htm
(6)中断控制模块
本模块用于实现中断控制操作,有一个接收器满便产生中断,产生中断时亦能判断出中断源。该模块是用VHDL输入方式产生的,其相应的VHDL程序如下
library ieee;
use ieee.std logic_1164.all;
entity U32 is
port(TXR1,DR11,DR12,TXR2,DR21,DR22,RD4:in std_logic;
D0,D1,D2,D3,D4,D5,INT:out std_logic);
end U32;
architecture behav of U32 is
begin
process
begin
if RD4='0' then
D0=not DR11:
D1=not DR12;
D2=not DR21;
D3=not DR22;
--产生中断时用来判断哪个接收器满
D4=TXR1;
D5=TXR2;
--用来判断哪一个发送缓冲区空
else
D0='Z';D1'Z';D2='Z';D3='Z';D4='Z';D5='Z';
endif;
INT=not(DR11 and DR12 and DR21 and DR22); --有一个接收器满便产生中断
end process;
end behav;
3.3 CPLD程序的下载
各输入模块经过编译处理,根据其相互关系连结,再通过功能仿真和时序仿真确认无误后,对各输入输出端口进行管脚分配。当整个设计完成时,MAX+PLUSII将生成一个文件(.pof),该文件通过下载电缆从JTAG口传送到PC104板上的CPLD芯片内部。这样就可将CPLD构造成自己的专用芯片,由此便可以对设计的PC104板卡进行调试。调试过程中CPLD的设计部分还可根据需要进行修改,只是修改后要重新产生.pof文件,重新将文件加载到芯片中。
4 结束语
针对PC104接口板的尺寸小的特点,本论文介绍了用CPLD实现基于PC104总线的429接口板,CPLD大大节省了硬件资源,同时也节省了板卡上的可利用空间,彻底解决了PC104 板卡的小尺寸给设计带来的困难。且CPLD修改简单,给调试工作带来了方便。该板卡经过调试后实验,可稳定工作。实验结果表明:应用CPLD简化了系统结构,缩短了设计周期,提高了系统的可靠性。
评论