第五章在系统编程技术.ppt

上传人:本田雅阁 文档编号:3117772 上传时间:2019-07-12 格式:PPT 页数:73 大小:1.60MB
返回 下载 相关 举报
第五章在系统编程技术.ppt_第1页
第1页 / 共73页
第五章在系统编程技术.ppt_第2页
第2页 / 共73页
第五章在系统编程技术.ppt_第3页
第3页 / 共73页
第五章在系统编程技术.ppt_第4页
第4页 / 共73页
第五章在系统编程技术.ppt_第5页
第5页 / 共73页
点击查看更多>>
资源描述

《第五章在系统编程技术.ppt》由会员分享,可在线阅读,更多相关《第五章在系统编程技术.ppt(73页珍藏版)》请在三一文库上搜索。

1、第五章 在系统编程技术,梁华国 计算机与信息学院 计算机系统结构研究室 http:/ 在系统编程技术,ISP技术的特点 ISP逻辑器件系列 ispLSI器件的结构 在系统编程原理和方法 ABLE-HDL语言介绍,ISP技术的特点,常规的PLD在使用中是对每个器件单独编程然后在装配,而采用ISP技术是 先装备,然后编程,成为产品后还可反复编程.ISP技术的出现,使得数字设计, 生产和维护都发生了革命性的变化. 1)ISP技术在数字设计阶段的贡献 (1) 设计样机,ISP技术的特点,(2)系统调试 (3)电路板的重构和现场的升级换代 2)ISP技术对数字系统生产阶段的贡献 (1)简化了生产流程且无

2、引脚损伤,ISP技术的特点,(2)多功能硬件 (3)边界扫描测试 3) 在系统可编程的EECMOS工艺,ISP逻辑器件系列,目前,商品化的在系统可编程逻辑器件有ISPLSI,ISPGAL和ISPGDS(Generic Digital Switch). 5.2.1 ispLSI系列 美国Lattice公司是世界上第一片GAL诞生地.特别是九十年代发明并率先推出的 ISP技术,开拓了新一代的PLD.Lattice公司已将ISP技术应用到高密度可编程逻辑 器件(HDPLD)中,形成ispLSI系列高密度在系统可编程逻辑器件. 目前,ispLSI 器件有六个系列:1000系列,2000系列,3000系

3、列,5000V系列, 6000系列和8000系列. 5.2.2 ispGAL系列 ispGAL系列器件率先把ISP技术引入到标准的低密度系列可编程逻辑器件中. ispGAL22V10器件就是把流行的GAL22V10与ISP技术结合起来,在功能和结构上 与GAL22V10完全相同. 每片ispGAL22V10可以保证一万次在系统编程.,ISP逻辑器件系列,5.2.3 ispGDS(Generic Digital Switch)系列 在系统可编程数字开关ispGDS系列意味着ISP技术已经从系统逻辑领域扩展到系统互联领域.这种ISP技术与开关矩阵相结合的产物能提供这样一种独特的功能,即在不拨动机械

4、开关或不改变系统硬件的情况下,快速的改变或重构印制电路板的连接关系.ispGDS系列器件使得系统硬件可以通过软件控制来进行重构而无需人工干预.,ISP逻辑器件系列,ispLSI器件的结构,ispLSI系列器件是基于与或阵列结构的复杂PLD产品. 芯片由若干个巨块组成,巨块之间通过全局布线区(GRP)连接起来. 下面以ispLSI1032为例介绍ispLSI的结构原理.其芯片含有84个引脚,集成密度为6000个等效门。最高工作频率为90MHZ。,ispLSI器件的结构,5.3.1 全局布线区(GRP) GRP位于芯片的中央,它以固定的方式将所有片内逻辑联系 在一起.其特点是I/O之间的延迟是恒定

5、的和可预知的. 5.3.2 通用逻辑块(GLB),ispLSI1032的与阵列有18个输入端,16个来自GRP,2个专用输入端.每个GLB有20个与门,形成20个乘积项,再通过四个或门输出.四输出宏单元有四个触发器,触发器可组态为D,T,JK等形式. GLB有5种组合模式.,ispLSI器件的结构,ispLSI器件的结构,图5.7所示是高速直通组态模式.四个或门跨过PTSA直接与四个触发器相连,避免了电路延时,可用来支持快速计数器设计12,17,18,19不加入相应的或门.12和19作为控制逻辑的输入信号.,图5.8所示是异或逻辑组态模式.采用四个异或门,各异或门的一个输入分别为乘积项0,4,

6、8,13,另一个输入则从四个或门输出任意组合.此种组合适用于计数器,比较器和ALU的设计.,ispLSI器件的结构,ispLSI器件的结构,图5.9是单乘积项结构,将乘积项0,4,10,13直接输出,与触发器连接,速度最快.,图5.10是多模式结构.前面四种模式可以在同一个GLB中混合使用,图中所示是该结构一例.O3采用3乘积项驱动的异或模式,O2采用高速组态,O1采用单乘积项组态,O0采用11个乘积项驱动的标准模式.,ispLSI器件的结构,ispLSI器件的结构,四输出逻辑宏单元中4个D触发器的时钟是连在一起的, 图右下方的两个MUX中,左边一个用来选择时钟,右边一个用来控制时钟极性.同样

7、,四个触发器的复位断也是相连的.复位信号可以是全局复位信号,也可以是本GLB中12或19产生的复位信号,两者是或的关系.在同一个GLB中,4个触发器同时复位,而各GLB可不同时复位.,ispLSI器件的结构,5.3.3 布线区 1.全局布线区GRP 位于芯片中央,将所有的片内逻辑联系在一起,能预知输入输出之间的延迟,提供了完善的片内互联性能.,2. 输出布线区ORP ORP是一个可编程的输出矩阵,位于GLB和IOC之间的可编程互联阵列, 通过对ORP的编程可以,.,将任一个GLB的输出送到 16个I/O端的某一个. isp1032的一大特点是IOC和GLB之间没有一一对应的关系. 在ORP旁边

8、有16条通向GRP的总线,I/O单元可以使用,GLB输出也可以通过ORP使用它,从而方便的实现了I/O端复用功能和GLB之间的互联.,ispLSI器件的结构,有时为了高速的工作,GLB输出还可跨过ORP直接与I/O单元相连.,ispLSI器件的结构,5.3.4 输入输出单元 其内部结构如图所示,有6个多路开关MUX,一个特殊的触发器和门电路. IOC单元是用于将输入信号,输出信号或输入输出双向信号与具体的I/O管脚相连,靠MUX1来选择形成输入,输出,双向I/O口.,ispLSI器件的结构,MUX2和MUX3用来选择信号输出途径和输出极性. MUX4则用来选择输入组态用何种方式输入.IOC中的

9、触发器有两种工作方式,一种是锁存方式,在时钟信号0电平时锁存,二是寄存器方式,在时钟信号上升沿时将时钟信号存入寄存器.触发器的时钟由时钟分配网络提供,并通过MUX5和MUX6选择和调整极性.触发器的复位则由全局复位信号RESET实现.,ispLSI器件的结构,ispLSI器件的结构,5.3.5 巨块的组成 一个巨块包含8个GLB,一个输出布线区,16个I/O单元, 两个直接输入(IN0,IN1) ISP1016中有两个巨块,ISP1032中有四个巨块. 两个专用输入端不经过锁存器直接输入.,ispLSI器件的结构,图5.16中8个GLB可分别产生8个OE信号,由八选一OE选择器选出,连接到这个

10、巨块的所有I/O单元. GOE0和GOE1是ispLSI1000E系列器件中两个可以选择的“全局输出使能”引脚.与两个专用输入引脚是复用的.,24,ispLSI器件的结构,5.3.6 时钟分配网络CDN 它产生5个全局时钟信号,前三个同步时钟信号可供所有的GLB使用.后两个可用于所有的I/O单元. 其输入信号由四个专用时钟输入引脚提供. 但时钟网络的输入也可以是GLB的4个输出,以便生成内部时钟电路,内部时钟由用户自己定义.,在系统编程原理和方法,5.4.1 在系统编程原理,在系统编程过程: 1) 将JEDEC文件中的数据自SDI端串行输入数据寄存器。 2) 将编程数据写入EECMOS单元。

11、3)将写入的数据自SDO移出进行校验。 将编程数据写入EECMOS单元过程: 对起始行编程时,先将欲写入该行的数,据串行移入水平移位寄存器,并将,地址移位寄存器中与0行对应的位置置1,其余位置置0,让该行被选中,在编程脉冲的作用下,将水平移位寄存器的数据写入该行。然后地址移位寄存器移动下一位,使阵列下一行被选中。,在系统编程原理和方法,ISP器件编程时如何与外系统脱离: ISPLSI有两种工作模式:正常模式和编辑模式。由编程使能信号,来控制,当,为高电平时,器件处于正常模式;当,为低电平时,,器件所有I/O端的三态缓冲电路皆处于高阻状态,切断了芯片与外部电路的联系,避免了芯片与外电路的相互影响

12、。,ispLSI器件有五个编程接口:,SDI,MODE,SDO,和SCLK.一旦处,在编辑模式下,SDI完成两种功能,一是作为串行移位寄存器的输入,二是作为编程状态机的一个控制信号,由MODE控制,MODE为低时,SDI作为串行移位寄存器的输入,为高时,作为控制信号. SDO串行数据输出端,将串行移位寄存器的输出反馈给计算机,对数据进行校验. SCLK提供串行移位寄存器和片内时序机的时钟信号. 对ISP编程有许多步,这些步骤在计算机的命令下按一定顺序执行,因此在ISPLSI中安排了一个编程状态机来控制编程操作.,在系统编程原理和方法,闲置状态:MODE,SDI均为低. 当开始编程是,必须通知I

13、SP开始编程,有一个通知信号即识别码.,在系统编程原理和方法,5.4.2 ISP器件的编程方式 1.利用PC机的I/O口编程 接在打印机端口.,2.多芯片ISP编程 2.1 典型的ISP编程电路,在系统编程原理和方法,2.2 菊花链结构: 特殊的串行用编程方 式,特点是各片共一 套ISP编程接口. 类似移位寄存器.,ABLE_HDL语言介绍,ABLE_HDL语言概览 ABLE_HDL语言的基本语法 ABLE_HDL模块的基本结构,ABLE_HDL语言概览,ABLE源文件构成:,顶层模块,低层模块,ABLE_HDL设计的基本单位,模块,ABLE_HDL语言概览,模块结构:,模块开始(module

14、语句) 标志(flag语句) 标题(title语句) 器件定义(device语句) 管脚、节点定义(pin,node语句) 属性定义(istype语句) 常量定义(constant语句) 宏定义(macro语句) 逻辑方程式(equations语句) 真值表(truth_table语句) 状态图(state_diagram语句) 熔丝段定义(fuses语句) 测试向量(test_vectors语句) 模块结束(end语句),说明段,定义段,描述段,熔丝段,测试段,ABLE_HDL语言概览,module m6809a (模块语句) title 6809 memory decode Jean De

15、signer Data I/O Corp Redmond WA 24 Feb 1984 (标题语句) U09a device P14L4; (器件定义) A15, A14, A13, A12, A11, A10 pin 1,2,3,4,5,6; (管脚定义) ROM1,IO,ROM2,DRAM pin 14,15,16,17; H,L,X =1,0,.X.; (常量定义) Address= A15, A14, A13, A12, A11, A10,.X., .X., .X., .X.,.X.,.X.,.X.,.X.,.X.,.X.; Equations ( 方 程 ) !DRAM=(Addre

16、ss=hE000) end m6809a,ABLE_HDL语言介绍,ABLE_HDL语言概览 ABLE_HDL语言的基本语法 ABLE_HDL模块的基本结构,ABLE_HDL语言的基本语法,关键字,ABLE_HDL语言的基本语法,ABLE_HDL语言的基本语法,ABLE_HDL语言的基本语法,标志符 标志器件、引脚、节点、集合、输入/输出信号等的合法字符序列 标志符区分大小写,且不能与关键字重名 字符串 title 3:8encoder; 注释 “declaration section” “module name(回车),ABLE_HDL语言的基本语法,4种基数表示法 RADIX命令改变缺省的

17、基值 radix 2; “change default base to binary radix 1010; “change from binary to decimal,ABLE_HDL语言的基本语法,专用常量 .C. 正脉冲时钟输入(低高低转换) .K. 负脉冲时钟输入(高低高转换) .D. 时钟下降沿 .U. 时钟上升沿 .F. 浮动输入或输出 .P. 寄存器预加载 .X. 任意值 .Z. 高阻态测试输入或输出(三态值) .SVn. n=29,驱动输入到过电压29,ABLE_HDL语言的基本语法,运算符及其优先级,ABLE_HDL语言的基本语法,Example: 2#4$2 4 2#(4

18、$2) 6,ABLE_HDL语言的基本语法,ABLE_HDL语言的基本语法,赋值运算符 = 和?= 非时钟赋值(组合逻辑输出) : = 和?:= 时钟赋值 (寄存器输出) 在使用点扩展名时使用=和?=运算符 ?=和?:=用于随意条件的赋值 q0 := a (D型寄存器),ABLE_HDL语言的基本语法,TRUTH_TABLE(A,B-F); 1,1-0; 1,0-1; 0,1-1; DCSET F=A F?=!A&!B (to enhance optimization),ABLE_HDL语言的基本语法,集合 一组可作为整体进行运算的信号和常量 MULTOUT=B0,B1 ,B2, B3, B4

19、, B5, B6, B7; SELECT=S0, S1, S2 MULTOUT=B0 B7; SELECT=S0S2; 用集合运算实现布尔方程 ChipSel =A15,ABLE_HDL语言的基本语法,Addr=A15 A0; X=.X.; ChipSel=Addr=1,0,1,X,X,X,X,X,X,X,X,X,X,X,X,X; ChipSel=(Addr=hA000) 集合运算 (集合赋值以及集合和数值比较时应遵循的规则) 若该二进制数的有效位数多于集合中元素的个数,则从左边截去多余位 若该二进制数的有效位数少于集合中元素的个数,则从左边用0补齐,ABLE_HDL语言的基本语法,a,b=b

20、101011; 等价于 a,b=b11; a,b=b1; 等价于 a,b=b01; 块 块是用大括号括起来的文本段。用于逻辑等式、状态图、宏和命令中 块可以嵌套 This is a block This is also a block, and it spans more than one line.,ABLE_HDL语言的基本语法,逻辑等式中使用块 WHEN (ModeS_Data) THEN Out_data:S_in; ELSE WHEN (ModeT_Data) THEN Out_data:T_in; WHEN (ModeS_Data) THEN S_Valid:1; ELSE WHE

21、N (ModeT_Data) THEN T_Valid:1; 等价于 WHEN (ModeS_Data) THEN Out_data:S_in; S_Valid:1; ELSE WHEN (ModeT_Data) THEN Out_data:T_in; T_Valid:1;,ABLE_HDL语言的基本语法,状态图中使用块 IF (Hold) THEN State1 WITH o1:o1.fb; o2:o2.fb; ENDWITH ELSE State2; 等价于 IF (Hold) THEN State1 WITH o1:o1.fb; o2:o2.fb; ELSE State2;,ABLE_H

22、DL语言的基本语法,IF ( Hold ,ABLE_HDL语言的基本语法,变量和变量置换 哑变量:在宏定义、模块或命令中被真实变量替代的标识符 真实变量:用于宏定义、模块或命令中的变量,可替代哑变量 在需要用真实变量替代哑变量的地方,哑变量前要加“?”,与其它标识符区分 OR_EM MACRO (a, b, c) ?a # ?b # ?c; (宏定义) DOR_EM (X, Y, Z); (宏引用),ABLE_HDL语言介绍,ABLE_HDL语言概览 ABLE_HDL语言的基本语法 ABLE_HDL模块的基本结构,ABLE_HDL模块的基本结构,头部 MODULE语句 关键字: MODULE

23、语法: module 模块名(哑变量名,哑变量名) 模块内容 end 模块名 module my_example (A, B) (将真实变量传给模块) C=?B + ?A; (哑变量可为模块引用) end my_example,ABLE_HDL模块的基本结构,FLAG语句 关键字: FLAG 语法: flag 参数1, 参数2, 参数n; (参数为ABLE软件的处理参数,有化简级别、跟 踪级别、校验和参数、未用熔丝参数等形式) flag -r2,-t3 (r-n软件对源文件的化简级别,t-n为跟踪级别) INTERFACE语句 关键字: INTERFACE 在层次说明中使用,ABLE_HDL模

24、块的基本结构,TITLE语句 关键字: TITLE 语法: title 字符串 title 6809 memory decode Jean Designer Data I/O Corp Redmond WA 24 Feb 1984 说明部 说明关键字 关键字: DECLARATIONS 语法: DECLARATIONS 若说明部紧跟头部之后,则可省略,ABLE_HDL模块的基本结构,器件说明 关键字: DEVICE 语法: 器件标志符 DEVICE 实际器件; U1 device MACH211; 常量说明 关键字: = 语法: 标志符,标志符,. = 表达式,表达式,; X=.X.; Add

25、r=1,0,1;,ABLE_HDL模块的基本结构,信号说明 引脚说明(模块对外的信号) 关键字: PIN 语法:!引脚名,!引脚名, PIN 引脚号 , 引脚号, ISTYPE 属性; a, b, c pin 3,8,10; 节点说明(模块内部的信号) 关键字: NODE 语法: 标志符,标志符,. = 表达式,表达式,; x, y, z node;,ABLE_HDL模块的基本结构,属性说明 关键字: ISTYPE 语法: 信号 ,信号, ISTYPE 属性; o1,o2,o3 pin istype reg_d, buffer;,BACK,ABLE_HDL模块的基本结构,ABLE_HDL模块的

26、基本结构,层次说明 低层模块接口说明 关键字: INTERFACE 语法: MODULE 模块名 INTERFACE(输入/集合端口值-输出 /集合:双向/集合); module and1 Interface(ia1,ia2,ia3-oa1); Title 3 inputs and gate; ,ABLE_HDL模块的基本结构,顶层模块接口说明 关键字: INTERFACE 语法: 低层模块名 INTERFACE (输入 值- 输出/集合: 双向/集合); 功能块语句 关键字: FUNCTIONAL_BLOCK 语法: 例化名 FUNCTIONAL_BLOCK 模块名; and1 interf

27、ace (ia1,ia2,ia3-oa1); and1_1 fuctional_block and1;,ABLE_HDL模块的基本结构,符号状态说明 状态寄存器说明 关键字: STATE_REGISTER 语法: 状态寄存器标志 STATE_REGISTER ISTYPE 属性; 状态说明 关键字: STATE 语法: 状态标志符 ,状态标志符, STATE 状态值 ,状态值,;,ABLE_HDL模块的基本结构,宏说明 关键字: MACRO 语法: 宏标志符 MACRO 哑变量,哑变量, 块 ; 在源文件中使用宏可避免重复写一些功能块的代码 库说明 关键字: LIBRARY 语法: LIBRA

28、RY 库名 将指定的ABLE-HDL库文件插入到当前文件中,ABLE_HDL模块的基本结构,逻辑描述部 点扩展名 语法: 信号名.扩展名 Q1.CLK = PULSE; Q2.D = A1 ,BACK,与器件结构无关 的点扩展名,ABLE_HDL模块的基本结构,逻辑等式 关键字: EQUATIONS 语法: EQUATIONS in 器件名 信号名?=表达式; 信号名?:=表达式; WHEN-THEN-ELSE 语句; 真值表 关键字: TRUTH_TABLE 语法: TRUTH_TABLE(输入-输出) TRUTH_TABLE(输入:寄存器输出-输出),ABLE_HDL模块的基本结构,(1)

29、TRUTH_TABLE (a, q.fb, load : q) 0,0,0 : 1; 0,1,0 : 0; 1,0,0 : 1; 1,1,0 : 0; 0,0,1 : 0; 1,0,1 : 1; 0,1,1 : 0; 1,1,1 : 1; (2)EQUATIONS q := a ,ABLE_HDL模块的基本结构,状态描述 关键字: STATE_DIAGRAM 语法: STATE_DIAGRAM 状态寄存器 - 状态输出 STATE 状态表达式 : 逻辑等式 逻辑等式 状态转换 说明:状态转换用IF-THEN-ELSE、CASE或GOTO 语句实现,在这些语句后可选用WITH语句,ABLE_HD

30、L模块的基本结构,状态1,状态2,状态3,状态4,W=2,W=1,无条件转移,y!=3,y=3,无条件转移,ABLE_HDL模块的基本结构,current_state=a,b; state_diagram current_state state 1: w=1; y=1; goto 4; state 2: if y=3 then 3 else 4; state 3: w=2; y=w; goto 2; state 4: y=3; case w=1:2; w=2:1; endcase;,ABLE_HDL模块的基本结构,测试向量部 测试向量 关键字: TEST_VECTORS 语法: TEST_VECTORS 注释 (输入 - 输出) 输入值 - 输出值; test_vectors ( A,B - C,D ) 0,0-1,1; 0,1-1,0; 1,0-0,1; 1,1-0,0;,ABLE_HDL模块的基本结构,跟踪语句 关键字: TRACE 语法: TRACE (输入 - 输出); 说明: 用于控制模拟时显示哪些输入和输出,可放 在测试向量之前或测试向量中 结束部 关键字: END 语法: END 模块名,P178 习题 3,4,8,9,11,13,17, 18,19,20,23,24,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1