第一部分 PAL的设计和应用 1
第一章 引言和基本设计应用 1
1.1引言 1
1.1.1什么是PLD 1
1.1.2其它可行的实现方法 3
1.1.3 PLD与其它实现方法相比有些什么优点 4
1.1.4小结 6
1.2产品综述 7
1.2.1 PAL器件 7
1.2.1.1TTL和CMOS的PAL器件 11
1.2.1.2 CMOS的PAL器件 20
1.2.1.3 ECL的PAL器件 22
1.2.2可编程序列发生器 23
1.2.3 LCA器件 24
1.3初学者指南 25
1.3.1 PALASM软件的安装 25
1.3.2进行组合型的设计——基本门 27
1.3.3寄存型的设计——基本触发器 37
1.3.4对器件编程 43
1.4 PLD的设计方法 45
1.4.1概念化设计 46
1.4.2器件选择方面的考虑 47
1.4.3实现设计 52
1.4.3.1设计语法 53
1.4.4模拟 57
1.4.5器件的编程和测试 60
1.5组合逻辑设计 60
1.5.1编码器和译码器 61
1.5.2多路复用器 70
1.5.3比较器 73
1.5.4值域译码器 81
1.5.5加法器/算术逻辑电路 83
1.5.6锁存器 88
1.6寄存器逻辑设计 91
1.6.1同步寄存型设计 96
1.6.1.1计数器 96
1.6.1.2移位寄存器 126
1.6.1.3计数器和移位寄存器器件选择的依据 130
1.6.2异步寄存型设计 130
1.6.3寄存型PLD的其它应用 134
1.7状态机设计 140
1.7.1状态机理论 143
1.7.2状态机的类型:Mealy与Moore 146
1.7.3器件选择的依据 149
1.7.4 PAL器件作为序列发生器 153
1.7.5可编程逻辑序列发生器(PLS) 158
1.7.6 PROSE序列发生器(PMS14R21) 163
1.7.7熔丝可编程控制器(Am29PL141) 164
1.7.8状态机设计练习 166
1.7.8.1概念化设计 166
1.7.8.2状态机的表示法 167
1.7.8.3状态机语法 171
1.8用异或可编程逻辑器件(XOR PLD)简化各种计数器和其它各类器件的设计 175
1.8.1异或可编程逻辑器件用于计数器时的优越性 175
1.8.2异或可编程逻辑器件工作原理 177
第二章以微处理器为基础的系统 184
2.1引言 184
2.1.1可编程逻辑器件用作标准产品的粘结电路 184
2.1.1.1地址译码 185
2.1.1.2产生等待状态 186
2.1.1.3 DRAM控制 187
2.1.2微处理器外围接口 187
2.1.3结论 187
2.2与8086/80186/80286的接口 188
2.2.1综述 188
2.2.2 8086和Am7990 LANCE接口 188
2.2.3 8086和Am9516通用DMA控制器的接口 191
2.2.4 80286到Am9568数据运算处理器的接口 196
2.2.4.1 DCP时钟 197
2.2.4.2改进 199
2.2.5 80286到Am8530的接口 200
2.3与68000/68020的接口 201
2.3.1综述 201
2.3.2 68000到Am8530带中断的接口 202
2.3.3 68000和Am7990 LANCE的接口 205
2.3.4 68000中断控制器 207
2.3.4.1引言 207
2.3.4.2 68000的例外事件处理和引脚说明 208
2.3.4.3单个向量中断(方法1) 210
2.3.4.4自动向量中断(方法2) 212
2.3.4.5结论 214
第三章存储器控制 216
3.1引言 217
3.1.1 PROM和SRAM控制 217
3.1.2存取时间方面的考虑 218
3.1.3 DRAM系统 219
3.1.3.1 DRAM控制器和PLD 220
3.1.3.2差错检测和纠正 221
3.1.4高速缓冲存储器系统 222
3.2存储器信号交换逻辑 222
3.3用先进的PAL器件定制DRAM控制器 225
3.3.1灵活的刷新产生机制 226
3.3.2灵活的仲裁方案 226
3.3.3灵活的信号交换协议 227
3.3.4处理器周期的执行 227
3.3.5刷新周期的执行 227
3.3.6具有数据对齐和动态确定总线尺寸的兆位DRAM控制器 227
3.3.6.1动态确定数据总线的尺寸 228
3.3.6.2不对齐传送 228
3.3.7 DRAM控制器 229
3.3.7.1定时和仲裁控制 230
3.3.7.2确定数据尺寸和对齐用的PAL器件 233
3.4 8088到Am2968的接口 247
3.4.1引言 247
3.4.2接口综述 248
3.4.3 PAL器件的功能描述 248
3.4.3.1 RASER(PAL16R4)的功能 248
3.4.3.2 HLDR(PAL16R6)的功能 249
3.4.3.3刷新定时时序的计算 249
3.4.3.4延迟线中间抽头计算 250
3.4.3.5计数器和方式功能表 251
3.5 MC68000到Am2968的接口 253
3.5.1引言 253
3.5.2 MC68000的时序要求 255
3.6动态存储器控制的状态序列发生器 258
3.6.1设计要求 258
3.6.2设计方法 261
3.7 8位差错检测和纠错 263
3.8熔丝可编程控制器简化快速缓冲存储器的设计 272
3.8.1引言 272
3.8.2高速缓冲存储器系统 272
3.8.2.1高速缓存数据存储器 273
3.8.2.2标志缓冲器 273
3.8.2.3替换算法 274
3.8.2.4高速缓存控制器 275
3.8.2.5 Am29PL141熔丝可编程控制器 275
3.8.3系统综述 277
3.8.4系统操作 278
3.8.4.1读且命中周期 278
3.8.4.2读而未命中周期 278
3.8.4.3写且命中周期 279
3.8.4.4写而未命中周期 280
3.8.5 FPC操作 280
3.8.5.1测试周期请求 283
3.8.5.2测试周期类型 283
3.8.5.3每一周期的动作 283
3.8.5.4修改算法 284
3.8.5.5修改地址的产生 284
3.8.6时序和性能 284
3.9 PAL22RX8A用于32地址单元的后进先出(LIFO)RAM的控制和寻址 286
3.9.1引言 286
3.9.2J-K的触发功能 288
3.9.2.1有效写周期——PUSH 289
3.9.2.2有效读周期——POP 289
3.9.2.3指令译码 290
第四章图形和图象处理系统 293
4.1引言 293
4.2本地图形处理器 294
4.3显示控制器 294
4.4帧缓冲器 295
4.5并串转换器 297
4.6查找表和数模转换器 298
4.7小型系统视频控制器 298
4.7.1具体实现 300
4.7.2行同步发生器 301
4.7.3帧缓冲器的寻址 301
4.7.4帧同步发生器 305
4.7.5信号的分配 306
4.7.6视频移位寄存器 309
4.7.7附加的控制特性 313
4.8 PAL32VX10的隐匿寄存器用于输入密集的状态机设计 313
4.8.1宏单元说明 313
4.8.2 J-K可编程特性 314
4.8.3双端口视频移位寄存器 315
4.8.4J-K功能的推导 317
第五章 数字信号处理 321
5.1引言 321
5.2应用领域 321
5.2.1速度及其它要求的比较 323
5.2.2单片和积木式单元的比较 323
5.2.3 PLD的应用 324
5.3波形发生器 324
5.3.1数字、模拟波形产生方法的比较 324
5.3.2 PAL器件的实现 325
5.3.3查找表的产生 326
5.4密集的状态机设计 330
5.5模数转换 334
5.5.1转换技术 334
5.5.2逐次逼近法 334
5.5.3 量化误差 335
5.5.4用PAL20RS10实现 335
第六章总线接口 344
6.1引言 344
6.1.1地址部分 345
6.1.2数据部分 345
6.1.3控制部分 345
6.1.4公用部分 348
6.1.5系统的进一步扩充 348
6.2Unibus中断控制器 348
6.2.1功能描述 348
6.2.2 PAL设计规范 351
6.2.3模拟结果 352
6.3 10MHz处理器用Multibus裁决器的设计 353
6.3.1 综述 353
6.3.2功能要求 353
6.3.3定时方面的考虑 353
6.3.4 PAL设计说明 354
6.4 Multibus与Am9516的接口 357
6.5 Z-Bus与8088/8086的接口 357
6.5.1设计要求 360
6.5.2设计方法 361
6.6用PLD简化的VME总线控制 364
6.6.1一个高性能的总线 364
6.6.2功能模块 364
6.6.3总线控制器的设计步骤 364
6.6.3.1 PLD总线裁决器 365
6.3.3.2优先级裁决选项 367
6.3.3.3处理中断 368
6.6.3.4中断处理器的预处理器(IHP) 368
6.6.3.5中断逻辑 368
6.6.4用开发工具简化控制器设计 371
第七章通信 376
7.1通信系统概述 376
7.1.1通信中可编程逻辑的特性 377
7.1.2基本的电话系统 378
7.1.3数据通信 380
7.2使用CMOS ZPAL器件实现B8ZS编码 381
7.2.1编码原理和功能说明 382
7.2.2 B8ZS编码器 382
7.2.3 B8ZS译码器 384
7.3使用PAL器件实现HDB3线路编码 400
7.3.1 HDB3码 400
7.3.2 HDB3编码器的实现 401
7.3.3 HDB3译码器的实现 404
7.4以ZPAL器件实现QAM编码器 417
7.4.1调制解调器编码技术 417
7.4.2以PALC20R8Z为基础的QAM编码器 419
7.5用PLD器件实现4B3T线路代码转换机 423
7.5.1双极性码和三进制码 424
7.5.2线路编码 425
7.5.3 4B3T线路编码器的实现 426
7.5.4 4B3T线路译码器的实现 430
7.6用PALC22V10实现曼彻斯特编码器 447
7.6.1 PAL器件的设计 449
第八章外围设备电路 456
8.1 GCR(4B-5B)编码器/译码器 458
8.2用PLD实现磁盘驱动器的编码器/译码器 464
8.2.1 RLL2,7编码与MFM编码 471
8.2.2 RLL2,7编码转换为状态机 472
第九章工业控制 473
9.1概述 473
9.1.1数据获取 473
9.1.2数据分析 474
9.1.3控制部分以及PID算法 474
9.1.4应用范围及性能要求 475
9.1.5 PAL器件的使用 475
9.2步进马达控制器 476
9.3轴角编码器 484
第十章用于可编程逻辑的设计软件 504
10.1引言 504
10.1.1用于可编程逻辑的设计软件 504
10.1.2逻辑模拟 505
10.1.3可编程逻辑的测试 505
10.1.4软件工具 505
10.2 PALASM2逻辑设计软件包 507
10.2.1以不同的形式自由地表达你的设计思想 507
10.2.2自动测试 507
10.2.3逻辑的自动简化 507
10.2.4对编程器件的设计进行编辑 508
10.2.5使用方便的新菜单 508
10.2.6硬件支持 508
10.2.7 PALASM2设计软件的使用 508
10.3 PLPL:可编程逻辑的编程语言(软件版本V2.1) 509
10.3.1 PLD设计方法:使用PLPL 509
10.3.2 PLPL的PLD设计环境 510
10.3.3 PLPL逻辑语言 510
10.3.3.1语言元素 510
10.3.4 PLPL的设计文件 512
10.3.4.1设计名 512
10.3.4.2标题 512
10.3.4.3逻辑说明部分 514
10.3.5高级逻辑描述 515
10.3.5.1 IF-THEN-ELSE语句 515
10.3.5.2 CASE语句 517
10.3.5.3狄摩根变换 519
10.3.5.4特殊的功能 520
10.3.5.5特殊的组成部分 521
10.3.5.6产生测试向量 523
10.3.6 PLPL V2.1程序 528
10.4逻辑单元阵列(LCA)和开发系统 531
10.4.1逻辑单元阵列 531
10.4.1.1 LCA的编程 533
10.4.2 LCA的开发系统 535
10.4.2.1 LCA-MDS21 XACT设计编辑程序 535
10.4.2.2 XACT宏电路库 536
10.4.2.3 LCA-MDS22 P-SILOS模拟程序 539
10.4.2.4 LCA-MDS23自动布局和路径确定程序 540
10.4.2.5 LCA-MDS3 1 FutureNet DASH原理图设计输入接口 540
10.4.2.6 LCA-MDS24、LCA-MDS26、LCA-MDS27 XACTOR在线仿真系统 540
10.4.2.7 LCA-MEK01 LCA评测工具包 541
10.5用于PLD设计的工具ABEL-GATES 542
10.5.1设计的模拟和优化 543
10.5.2 ABEL 544
10.5.3 DASH-GATES 545
10.5.4 ABEL和DASH-GATES的差别 545
10.5.5设计的描述和处理 546
10.6 CUPL 551
10.6.1使用PLD对复杂的分立逻辑进行压缩 559
10.6.2用状态机方法加快逻辑设计 566
10.7 LOG/iC 574
10.7.1开发过程 575
10.7.2标准语法 575
10.7.3 FSM语法 575
10.7.4一致性检查 576
10.7.5验证 578
10.7.6优化 578
10.7.7实现 579
10.7.8测试用的辅助手段 579
10.7.9文档资料 581
10.7.10硬件环境以及与CAE环境的结合 581
10.7.11 PAL32VX10的设计实例 582
第十一章编程 584
11.1编程 584
11.1.1用样品器件进行编程 584
11.1.2用JEDEC文件进行编程 585
11.1.3寄存器预加载 585
11.1.4选择正确的编程器 586
11.1.5已认可的编程器 587
11.1.5.1使用已认可的编程器的好处 587
11.1.5.2认可过程 587
11.1.5.3新产品的支持 588
11.1.5.4范围宽广的各种编程器 588
11.2 ProPAL、HAL和ZHAL器件编程 588
11.2.1 ProPAL器件 588
11.2.2 HAL器件 589
11.2.3 ZHAL器件 589
11.2.4用户应该使用ProPAL、HAL还是ZHAL器件 589
11.2.5质量与节约成本 590
11.2.6节省费用的例子 591
11.2.7功能测试的重要性 592
11.2.8 ProPAL、HAL和ZHAL器件的功能测试 592
11.2.8.1 AutoVec测试 592
11.2.8.2直接型功能测试 593
11.2.8.3 AC型功能测试 593
第十二章可测试性 595
12.1引言 595
12.2可测试性的定义——定性的 595
12.3可测试性的定量化 596
12.3.1单次固定故障的模拟 596
12.3.2不可检测故障 597
12.4可测试组合电路的设计 597
12.5重会聚扇出 598
12.6极小化的重要性 601
12.7逻辑冒险 601
12.8可测试时序电路的设计 603
12.8.1反馈 603
12.9锁存器 604
12.9.1可控锁存器 604
12.9.2锁存器冒险 605
12.9.3透明锁存器 607
12.10振荡器 607
12.10.1检测振荡器 608
12.11可测试状态机的设计 608
12.11.1状态机的初始化 608
12.11.2上电初始化 609
12.11.3在设计中包含初始化 609
12.11.4非法状态 610
12.11.5从非法状态的恢复 610
12.11.6一步恢复的设计 611
12.11.7恢复进入00…0的状态 611
12.11.8恢复进入一固定状态 612
12.11.9恢复到任何合法状态 613
12.11.10缺省转换 613
12.11.11非法状态恢复的测试 614
12.11.12为针床测试作准备 614
12.12使用PROSE器件的可测试性设计 615
12.12.1 DOC结构 615
12.12.2系统级测试 618
12.12.3板级测试 619
12.12.4器件级测试 619
12.13测试向量的使用 620
12.14结论 622
第十三章PALASM2软件 623
13.1引言 624
13.1.1 PALASM2软件介绍 624
13.1.1.1所支持的可编程器件 624
13.1.1.2所支持的计算机 625
13.1.2程序和文件一览 626
13.1.2.1 PALASM2软件程序 627
13.1.2.2输入、输出和中间文件 629
13.1.2.3 PALASM2的辅助程序 630
13.2 PALASM2软件的安装 630
13.2.1安装步骤 630
13.2.1.1安装所需条件 630
13.2.1.2双软盘系统的PALASM2软件安装 631
13.2.1.3硬盘系统的PALASM2软件安装 632
13.2.2软件建立 634
13.2.3加辅助程序到主菜单 636
13.2.4对AUTOEXEC.BAT和CONFIG.SYS文件的修改 637
13.3运行软件 637
13.3.1过程的综述 637
13.3.2使用菜单前的准备 639
13.3.2.1调用PALASM菜单 639
13.3.2.2目录和输入文件的指定 640
13.3.3打开样本输入文件 641
13.3.4学习样本输入文件 641
13.3.5自动运行汇编和模拟 641
13.3.6输入文件的处理 642
13.3.6.1检查输入文件的语法 642
13.3.6.2展开输入方程式 644
13.3.6.3对输入方程式化简 644
13.3.6.4对输入文件汇编 644
13.3.6.5查看汇编输出文件 645
13.3.7对设计例子的模拟 647
13.3.7.1运行模拟程序 647
13.3.7.2观察模拟输出文件 647
13.3.7.3查看JEDEC测试数据 649
13.3.8 JEDEC文件的反汇编 649
13.3.9识别输入文件中的错误 650
13.3.9.1查看运行时日志 650
13.3.9.2 TRE文件的反汇编 651
13.3.10汇编输出文件的说明 652
13.3.10.1熔丝图的说明 653
13.3.10.2查看JEDEC文件 653
13.3.11从DOS运行软件 654
13.4建立布尔方程式设计文件 655
13.4.1建立布尔方程式设计文件 655
13.4.1.1一般语法 656
13.4.1.2建立说明段(Declaration Segment) 657
13.4.1.3建立方程式段(Equations Segment) 660
13.4.2极性 664
13.4.2.1可编程的极性 664
13.4.2.2固定的输出极性 666
13.4.3特殊器件的设计文件编制 666
13.4.3.1 PLS器件的一般考虑 667
13.4.3.2 PAL器件的一般考虑 668
13.4.3.3 PAL10H20G8器件的特殊考虑 669
13.4.3.4 PAL22V10器件的特殊考虑 669
13.4.3.5 PAL16RA8和PAL20RA10器件的特殊考虑 669
13.4.3.6 PAL32R16和PAL64R32器件的特殊考虑 671
13.4.3.7 PAL32VX10器件的特殊考虑 671
13.4.4用于验证布尔方程式设计文件的检查清单 674
13.5建立状态机设计文件 675
13.5.1创建状态图 675
13.5.1.1创建Mealy状态图 675
13.5.1.2创建Moore状态图 678
13.5.2建立状态机设计文件 680
13.5.2.1一般语法 681
13.5.2.2建立说明(Declaration)程序段 682
13.5.2.3建立状态(State)程序段 685
13.5.2.4建立条件(Condition)程序段 692
13.5.3 PLS、PROSE或PAL器件的状态机设计文件编制 694
13.5.3.1 PLS和PROSE器件的一些考虑 694
13.5.3.2 PAL器件的一般考虑 695
13.5.4观察一个简单的设计文件 696
13.6建立模拟 698
13.6.1专用语法 698
13.6.2建立模拟程序段 698
13.6.2.1模拟语言 699
13.6.2.2模拟准则的回顾 706
13.6.2.3状态机模拟语法规则 707
13.6.3样本设计文件的回顾和输出文件的解释 707
13.6.3.1历史波形的解释 711
13.6.3.2踪迹波形的解释 712
13.6.3.3历史文件的解释 713
13.6.3.4 PROSE器件的历史文件的解释 714
13.6.3.5踪迹文件的解释 714
13.6.3.6 JEDEC测试数据的解释 715
13.7器件编程 716
13.7.1送JEDEC文件到编程器 716
13.7.1.1连接编程器 717
13.7.1.2建立通信链路 717
13.7.1.3使用MS-DOS传送JEDEC文件 718
13.7.2 PC2通信软件 718
13.7.2.1装入PC2 718
13.7.2.2建立计算机传送参数 720
13.7.2.3传送JEDEC文件 721
13.7.3用样品器件进行复制 723
13.7.4器件编程 723
附录A 逻辑设计参考资料 724
A.1基本逻辑单元 724
A.1.1三种基本的门 724
A.1.2运算符的优先级 725
A.1.3交换律、结合律和分配律 725
A.1.4对偶性 726
A.1.5逻辑变换 726
A.1.6范式 726
A.1.7范式之间的变换 728
A.1.8逻辑化简 728
A.1.9狄摩根定理 729
A.1.10卡诺图使逻辑极小化 729
A.1.11比较和等同:XOR门和XNOR门 731
A.2基本存储单元 733
A.2.1不用时钟选通的触发器——锁存器 733
A.2.1.1 S-R锁存器 733
A.2.1.2 D型锁存器(透明锁存器) 734
A.2.1.3 J-K锁存器 736
A.2.1.4 T型锁存器 738
A.2.2用时钟选通的触发器 739
A.2.2.1 D型触发器 739
A.3二进制数 741
A.3.1数制之间的转换 741
A.3.1.1二进制和十进制之间的转换 741
A.3.1.2二进制和八进制及十六进制间的转换 743
A.3.2二进制算术运算 744
A.3.2.1二进制反码表示法 744
A.3.2.2二进制补码表示法 746
A.4信号极性 747
A.4.1输入引脚的极性 747
A.4.2输出引脚的极性 747
A.4.3反馈极性 748
第二部分 数据手册 752
CT74/54PAL6L16A 752
CT74/54PAL8L14A 752
CT74/54PAL10H8系列 756
CT74/54PAL10H8 756
CT74/54PAL12H6 756
CT74/54PAL14H4 756
CT74/54PAL16H2 756
CT74/54PAL16C1 756
CT74/54PAL10L8 756
CT74/54PAL12L6 756
CT74/54PAL14LA 756
CT74/54PAL16L2 756
CT74/54PAL12L10系列 770
CT74/54PAL12L10 770
CT74/54PAL14L8 770
CT74/54PAL16L6 770
CT74/54PAL18LA 770
CT74/54PAL20L2 770
CT74/54PAL20C1 770
CT74/54PAL16R8系列(D、B、Q-25、B-2、A、B-4、A-2、A-4) 780
CT74/54PAL16L8 780
CT74/54PAL16R8 780
CT74/54PAL16R6 780
CT74/54PAL16R4 780
CT74/54PAL16RA8 795
CT74/54PAL16RP8A系列 798
CT74/54PAL16P8A 798
CT74/54PAL16RP8A 798
CT74/54PAL16RP6A 798
CT74/54PAL16RP4A 798
CT74/54PAL16X4 806
CT74/54PAL20R8系列(B、B-2、A、A-2、Z-40/45) 810
CT74/54PAL20L8 810
CT74/54PAL20R8 810
CT74/54PAL20R6 810
CT74/54PAL20R4 810
CT74/54PAL20RA10 822
CT74/54PAL20RS10系列 825
CT74/54PAL20S10 825
CT74/54PAL20RS10 825
CT74/54PAL20RS8 825
CT74/54PAL20RS4 825
CT74/54PAL20X10A系列 833
CT74/54PAL20L10A 833
CT74/54PAL20X10A 833
CT74/54PAL20X8A 833
CT74/54PAL20X4A 833
CT74/54PAL22RX8A 841
AmPAL16R8系列(D、B、AL、A、Q、L、Std) 845
AmPAL16L8 845
AmPAL16R8 845
AmPAL16R6 845
AmPAL16R4 845
AmPAL20RP10系列(B、A、AL、-20) 848
AmPAL22P10 848
AmPAL20RP10 848
AmPAL20RP8 848
AmPAL20RP6 848
AmPAL20RP4 848
AmPAL20L10 848
AmPAL20XRP10系列(-20、-30、-30L、-40L) 859
AmPAL22XP10 859
AmPAL20XRP10 859
AmPAL20XRP8 859
AmPAL20XRP6 859
AmPAL20XRP4 859
附录A关于TTL/CMOS PAL器件的通用信息 868
A.1极限值 868
A.2通用信息 869
A.3波形图 871
附录B国标PAL系列器件和MMI、AMD公司产品型号对照 876