1.设计构思
设计构思:将基本的逻辑门电路(非门、2输入与门、2输入或门、3输入与非门、2输入或非门、2输入异或门)集成在一片PAL器件上,构成组合逻辑电路,以节省空间和成本;
六个单独的逻辑功能,有12个输入端,6个输出端,其基本的逻辑门为图1;
当谈及“高电平有效”或“低电平有效“时,即表明在器件的的输出端是否有一个附加的反向器(非门)。如高电平有效的器件具有 “与-或”结构,而低电平有效的器件具有“与-或-非”结构
“高电平有效”或“低电平有效“器件的结构差异
基本逻辑门管脚定义
输入端 | 输出端 |
A | B |
C、D | E |
F、G | H |
I、J、K | L |
M、N | O |
P、Q | R |
2.建立布尔方程
反向器:B = /A (1)
与门: E = C * D (2)
或门: H = F (PAL器件实现的逻辑具有“积之和”,一般每个乘积项放一行)
+ G (3)
与非门:L = /(I * J * K) = /I + /J + /K = /I
+ /J
+ /K (4)
或非门:O = /(M + N) = /M * /N (5)
异或门:R = P : +: Q = P * /Q
+ /P * Q (6)
符号 “ : +: ” 表示“异或”操作
12个输入端、6个输出端;10个乘积项
3.器件的选择
理解逻辑图
在PAL器件中,每个输入量都以“原”和“反”两种形式提供;
“乘积项”又叫“与”门。由于“与”门的输入端可能有许多,画起来比较麻烦。因此,“乘积项”常用带有“与”门的水平线表示;
“输入线”在逻辑图中是一些垂直线,它们是由输入量驱动的,直接连至“乘积项”。
PAL器件的选择
PAL12H6有12个输入端(1-12脚)和6个输出端,其中四个输出端(引脚14-17)有2个“乘积项”连到“或“门,而引脚13和18的输出端有4个“乘积项”连到“或”门,因此引脚13和18可用来实现比其它4个输出引脚更复杂的逻辑功能。
输入的 “原” 和 “反”、“乘积项” 和 “输入线” 的表示
尽管在设计时不必关心这些功能在PAL器件内的具体实现形式,但设计者也许想知道.下图表示了反相器和“与”门在PALl2H6是怎样实现的。符号“X”表示连接.不用的乘积项以小“与”门内的‘X’符号来表示。
建立设计文件
可利用edit 等编辑软件建立扩展名为. Pds的设计文件:
第一步:给出说明文件:六个关键字
TITLE(设计的名称)
ATTEN (模式名或编号)
REVISION(版本号或等级号)
AUTHOR(设计者姓名)
COMPANY(公司名称)
第二步:使用芯片说明
CHIP 任一名字 (器件型号)
引脚列表
第三步:输入布尔方程
以关键字EQUATIONS开头
输入所有的布尔方程,输入顺序可以是任意的,但必须按引脚列表的顺序。
保存文件,推出编辑
TITLE Basic gates 设计名称
PATTERN P0000 模式名或编号
REVISION Palasm2 版本号号或等级号
AUTHOR Chen 设计者姓名
COMPANY Zhongshan Uni. 设计单位
DATE 10/8/2002 设计日期
CHIP GATE PAL12H6
;PINS 1 2 3 4 5 6 7 8 9 10 管脚号
A C D F G I J K M GND 定义功能
;PINS 11 12 13 14 15 16 17 18 19 20 管脚号
N P B E H R O L Q VCC 定义功能
EQUATIONS 布尔方程
B = /A ; Inverter
E = C * D ; AND gate
H = F ; OR gate
+ G
L = /I ; NAND gate after applying DeMorgan’s theorem
+ /J
+ /K
O = /M * /N ; NOR gate after applying DeMorgan’s theorem
R = P * /Q ; XOR gate expanded
SIMULATION
生成JEDEC文件
一旦设计文件的编辑完成后,便可对其进行汇编,其目的有两个:
确定文件中是否有基本语法,并进行程序简化
语法错误:打字、拼写、缺少说明、表达式残缺不全等
程序简化:用低有效器件去实现高有效的布尔方程、
乘积项太多、用无寄存器器件实现寄存器型的逻辑等
通过EDIT 修改语法和程序简化中出现的问题, 重新运行。
汇编结果
得到一个汇编JEDEC文件,其扩展名为.dec;
同时可得到一个XPLOT,扩展名为.xpt,它将设计实现与所用的PLD器件逻辑图联系起来。
本设计实例中XPLOT文件的一部分,反映出“反相器”和“与”门的实现
仿真基本逻辑门
验证了设计文件的正确性后,还应验证设计本身的正确性,通过仿真设计来完成。通过给出一系列命令和事件,由软件来仿真,仿真结果会告知是否与期望的结果相符,若不符,问题在哪里?
仿真程序是整个设计文件的最后一部分,它不是必要的,但有利于排除设计中的错误和生成最终用于测试的向量序列;
仿真部分有关键字 SIMULATION 引导。欲仿真的事件通过在有关的引脚上加一定的逻辑电平来指定,没有特别指定的引脚将维持其现有的电平;
仿真过程中常用的命令和格式
SIMULATION ;引导
TRACE—ON A B C D ……. 和 TRACE —OFF 语句组
;Look at the inverter (事件名称) ;说明语句
SETF A 设置高电平; SETF /C 设置低电平 ;设置逻辑电平
CHECK /B E…….. ; ;逻辑检查的期望值;
该语句可有可无,若有此句,执行程序时自动检查;若无此句,则须检查仿真结果;
TRACE_OFF 语句组将仿真信号放在一起,生成另一文件,显示所有的命令和事件。
例如:仿真“非”门:
SETF A ;set A HI, “1”
CHECK /B ;verify that B is LO, “0”
SETF /A ; set A LO, “0”
CHECK B ; verify that B is HI, “1”
; end of inverter trace
仿真“与”门
SETF /C /D ; set C, D LO, “0”
CHECK /E ; verify E LO,
SETF D ;C stays LO, D goes HI
CHECK /E ;E should stay LO
SETF C /D ;set C HI, D LO
CHECK /E ;E should stay LO
SETF D ;C stays HI, D goes HI
CHECK E ;E should now be HI
;end of AND gate trace
仿真“或”门
SETF /F /G ;set F, G LO
CHECK /H ;verify H LO
SETF G ;F stays LO, G goes HI
CHECK H ;H should go HI
SETF F ;G stays HI, F goes HI
CHECK H ;H should stay HI
SETF /G ;F stays HI, G goes LO
CHECK H ;H should stay HI
;end of OR gate trace
基本逻辑门设计文件的模拟仿真程序
基本逻辑门设计文件的模拟仿真程序
增加了仿真部分后,设计文件必须重新加以处理,打如<F5>, 然后选按6,即可实现对设计文件的重新处理和对仿真程序的运行
设计文件中的仿真部分指定的每一事件都被执行,通过计算得到了输出结果。
如果使用了‘CHECK’语句,算得的输出与期望的输出加以比较。倘若两个值不符,则说明或者是期望的值不对,或者是电路本身有问题。在任一种情况下,设计文件都必须加以修正以解决出现的问题,然后设计文件必须重新处理。
仿真程序的主要输出是历史文件。此外,如果使用了‘TRACE—ON?语句,也将产生跟踪文件。这两个文件具有与原设计文件相同的名字,只是历史文件的扩展名为.HST,跟踪文件的扩展名为.TRF。
可以使用编辑程序来查阅历史文件和跟踪文件,或者将这两个文件打印出来仔细分析。应注意的是,历史文件含有按引脚号递增顺序排列的每一信号和每一事件的结果,而跟踪文件包含的信号则是按“TRACE—ON”命令所规定的次序排列的。
观察仿真输出的波形通常比较直瘸观。为了产生波形,打入<F7>;若要观察跟踪文件的波形,打入6.当波形出现在屏幕上以后、可以利用箭头键移动它们。竖条光标可用来排列各个事件;在检查了文件以后,打入<ESC>,从波形产生器退出,然后再打<ESC>,退出主菜单。
仿真程序还将仿真结果转变成测试向量,并把测试向量附加到JEDEC文件中。于是就存在两个JEDEC文件:一个带有测试向量,另一个则不带(.DEC)。新的JEDEC文件具有和原来的设计相同的文件名,只是扩展名为.JDC,该文件可以用于提供功能测试的编程器.
续表 6-2-6
器件的编程
在对设计进行了仿真,并确信设计能正确工作后,就该对器件编程了。编程分为几步,但编程器的具体操作则主要取决于所用编程器的型号。
在接通编程器电源后的
第一步是选择器件的型号,因而也就决定了编程器需要哪些编程数据.器件型号通常从主菜单上选择,或通过输入器件代码来选择。
第二步,必须下载JEDEC文件。因此,通常用RS-232电缆连接编程器的端口和计算机的串行口(COM1),并验证通讯协议的正确性。然后利用下载软件操作。
如果使用的编程器能执行功能测试,而你又希望进行这些测试,就应下载.jdc文件,否则应下载.jed文件。
第三步,编程器接收好数据后,将器件插入合适的插座中;按编程器的使用功能进行编程,该过程对器件内部的连线进行编程和验证,而且如果使用.jec文件,还将进行功能测试
最后,在编程完成之后,从编程器中取出器件,将器件插入设计系统或试验板上进行验证。