原创 GAL16V8问题解答

2008-1-27 03:08 3456 3 3 分类: FPGA/CPLD

解答在: http://bbs.21ic.com/club/bbs/list.asp?boardid=11&t=2844253


 


CCWSD 发表于 2008-1-26 19:52 侃单片机 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖


楼主: GAL16V8的问题,求救



GAL16V8
DESIGNED BY cai
1/26/2008
ADDR CODER

A1 A2 A3 A4 A5 A6 A7 A8 B1 GND
B2 B3 B4 B5 B6 B7 B8 CS1 CS2 VCC

/CS1=/A1*B1+A1*/B1+/A2*B2+A2*/B2+/A3*B3+A3*/B3+/A4*B4+A4*/B4


+/A5*B5+A5*/B5+/A6*B6+A6*/B6+/A7*B7+A7*/B7+/A8*B8+A8*/B8

DESCRIPTION
这是我的程序,其实就是想实现8位数字比较器,像74ls518那样,


因为74ls518买不着,所以才这样做,可以编译软件老是提示B6是输出定义,咋回事呀?



hotpower 发表于 2008-1-27 02:33 侃单片机 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

4楼: 楼主的运气不错,不过只能2个模块4路数字信号比较



搜索了74hc518没找到PDF文件...

由于GAL16V8系列只有8个乘积项,即乘积的和最多只能为8个,故'+'号只能出现7次.

所以电路必须接成P16V8S:
A1 A2 A3 A4 A5 A6 A7 A8 B1 GND
B2 B3 B4 B5 CS1 CS2 B6 B7 B8 VCC

程序应该写成你用的是FM软件???)

/CS1=/A1*B1+A1*/B1+/A2*B2+A2*/B2+/A3*B3+A3*/B3+/A4*B4+A4*/B4
/CS2=/A5*B5+A5*/B5+/A6*B6+A6*/B6+/A7*B7+A7*/B7+/A8*B8+A8*/B8

这样就输出了2个信号,即有1路相等即输出低电平信号.
如果只能测试1个有效信号,就必须再/CS=/CS1*/CS2.

由于CS1和CS2不能线与,故需再加门电路或在CS1和CS2的输出


都加二极管IN4148后负极短接作为总输出/CS.

没用过FM软件,不知如何设置成'S型'.

对应的ABEL或CUPL语言写法:

!CS1 = A1 $ B1 注意: A1 $ B1 = (A1 异或 B1) = !A1 & B1 # A1 & !B1
     # A2 $ B2
     # A3 $ B3
     # A4 $ B4;

!CS2 = A5 $ B5
     # A6 $ B6
     # A7 $ B7
     # A8 $ B8;



hotpower 发表于 2008-1-27 02:49 侃单片机 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

8楼: 看图识字~~~附74hc518.rar压缩包~~~


 

点击下载Protel 99 SE环境下的74hc518.rar压缩包

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
3
关闭 站长推荐上一条 /3 下一条