ISP技术在高速数据采集模块中的应
巨块是GLB及其对应的ORP、IOC的总称。Is-pLSI2032中有两个巨块,通常分布在全局布线区的两侧。每个巨块均包含GLB、I/O口和专用输入端,其中专用输入端不经锁存器即可直接输入。它们均可在软件分配下供本巨块内的GLB使用。
2.2 ispLSI2032的工作过程
外部信号一般通过I/O单元引导全局布线区,全局布线区主要完成任意I/O端到任意GLB的互连、任意GLB间的互连以及各输入I/O信号到输出布线区的连接。器件的所有功能均可由一个GLB或多个GLB级联完成。在设计中,笔者使用的是ispLEVER软件,它包含有Lattice编译器、顶层项目管理器、设计输入编辑器等同时还包括Lattice门级功能和实时仿真器,因而能够对原理图、VHDL或Abel-HDL语言进行仿真其设计流程如图3所示。
javascript:window.open(this.src);" style="cursor:pointer;"/>
3 ispLSI2032在系统中的应用
3.1 硬件选择
ispLSI器件可分为5大系列,它们的密度、速度以及寄存器数目各不相同。而ispLSI2032速度高达154MHz,是同行业中速度最高的CPLD器件,通过其在系统可编程(ISP)功能可在印刷电路板上对逻辑器件进行编程或改写。ispLSI2032的内部电路总体框图如图4所示。
其中LOGIC9是地址发生电路的逻辑控制部分,COUN11是地址发生电路部分,GLF2是地址锁存部分。地址发生电路与地址锁存电路是实现A/D转换后数据存储的关键部件,它可向存储器SRAM6264提供写入操作的顺序地址和读出操作的实时地址,同时可提供地址计数器的清零信号和两片数据锁存器的方向控制信号。
3.1 程序设计
在应用IspLSI2032进行系统设计时,可采用原理图和VHDL混合输入的方法。地址产生电路中COUN11可由两个4位同步二进制计数器级联构成。地址发生电路的逻辑控制部分LOGIC9、地址锁存部分的逻辑控制部分和地址锁存部分GLF2可由VHDL语言来进行设计,下面给出GLF2的程序设计代码:
library ieee;
use ieee.std_logic_1164.all;
entity glf2 is
port(a0,a1,a2,a3,a4,a5,a6,a7: in std_logic;
b0,b1,b2,b3,b4,b5,b6,b7: in std_logic;
oc1,c,oc2: in std_logic;
Q0,Q1,Q2,Q3,Q4,Q5,Q6,Q7:out std_logic);
end glf2;
architecture exam of glf2 is
begin
process(oc1,c,oc2)
begin
if(oc1=‘0' and c=‘1' and oc2=‘1') then
Q0<=a0;Q1<=a1;Q2<=a2;Q3<=a3;Q4<=a4;Q5<=a5;Q6<=a6;Q7<=a7;
elsif(oc1=‘1' and c=‘1' and oc2=‘0') then
Q0<=b0;Q1<=b1;Q2<=b2;Q3<=b3;Q4<=b4;Q5<=b5;Q6<=b6;Q7<=b7;
end if;
end process;
end exam;
图4
4 编程设计
将设计阶段生成的熔丝图JEDEC文件装入到器件中去的过程称为编程(也称为下载、配置)。对在系统可编程逻辑器件,可使用ISP菊花链下载编程软件(ispVM)来进行编程,笔者采用Lattice公司最新推出的一套EDA软件—ispLEVER,同时采用原理图、硬件描述语言、混合输入三种方式来对所设计的数字电子系统进行功能仿真和时序仿真然后通过计算机的并口和专用下载电缆直接对器件进行编程,最后对编程结果进行检查并最终通过。