数码之家
标题: 简介 SPLD 器件的工作原理,并搭建基于 ATF16V8 的逻辑门实验板(原创) [打印本页]
作者: t3486784401 时间: 2023-8-15 17:32
标题: 简介 SPLD 器件的工作原理,并搭建基于 ATF16V8 的逻辑门实验板(原创)
提到可编程逻辑器件(PLD: Programmable Logic Device),大家可能直觉想到 FPGA/CPLD 这两个玩意。
PLD 按照电路复杂度分为简单(SPLD: Simple-PLD)、复杂(CPLD: Complex-PLD),其中后者就是常提到的 CPLD.
从内部原理上 SPLD/CPLD 属于相同结构,仅资源数目、资源规模上有所区别,因而 CPLD 实则是 SPLD 的升级版。
今天从 CPLD 的前身 SPLD 讲起,介绍下 16V8 的基本工作原理,并最终搭建一套逻辑门实验板供折腾。
【线与】
PLD 器件是作为 74LS/HC 逻辑门替代品出现的。传统逻辑门一旦完成电路连线,逻辑就无法更改,电路灵活度差。
PLD 则希望在外部连线不变的前提下,可以软件配置内部走线,实现灵活的逻辑功能。
这思路类似于单片机当中的 IO 配置:把信号就近接在 IO 上,由软件来管理具体 IO 调用。
为此首先考虑“线与”(Wired And)结构与门:
[attach]1896761[/attach]
如图,每个输入端 A1-An 通过隔离二极管接在公共的逻辑线上,并由上拉电阻维持 Y 高电平。
当 A1-An 中至少有一个信号为低电平(L=0v)时,输出 Y=0v 即低电平(L);
仅在 A1-An 全为高电平(H=5v)时,输出 Y=5v 即高电平(H).
线与结构便宜简单,但严格实现了 n 输入端的逻辑与门:Y = A1*A2*...*An .
这里表达式以 * 代表逻辑与,以 + 代表逻辑或,下同。
【可编程乘积项】
上述“线与”门虽然实现了多输入端与门,但仍旧不存在任何意义上的“可编程”,输入输出均确定。
为此对线与进行改进,在每个二极管支路上放一只 MOS 当作电子开关:
[attach]1896762[/attach]
每支 MOS 的栅极使用 EEPROM 技术,可由编程器注入或擦除电荷,并且长时间保持电荷状态(F1-Fn)。
这样一来注入了正电荷的 MOS 保持导通(记作Fx=L),擦除了正电荷的 MOS 保持截止(记作Fx=H),就有了传说的“可编程”能力。
逻辑门的表达式更新为:Y = (A1+F1)*(A2+F2)*...*(An+Fn) .
对于 Fi=H 的输入端 Ai,相当于被屏蔽;对于 Fj=L 的输入端 Aj,相当于被选中。举例:
a. 通过编程器,另 F2=F5=F7=L,其余 Fx=H.
b. 逻辑门表达式动态更新为:Y = A2*A5*A7
这样一来可以实现 A1-An 的任意乘积组合,即从 A1-An 当中任选几根线组成与门逻辑。
【乘积项禁用】
上述可编程乘积项接近完美,然有两个极端例子需要考虑:Y≡H、Y≡L,即输出恒定电平的情况。
对于Y≡H,只需要 F1=F2=F3=...=Fn=H,从逻辑表达式上就可以实现;
但是Y≡L,就无论如何都无法消除所有的输入端影响。
因而在上述电路基础上,额外增加一只对地 MOS(状态为 Fd),用于实现 Y≡L 逻辑:
[attach]1896763[/attach]
如图所示,当额外对地的 mos 被编程导通时(Fd=L),输出 Y≡L,此状态被称作“乘积项禁用(PTD)”
【可编程乘积阵】
有了前边的乘积项设计,就可以很顺利的升级为可编程乘积阵:
[attach]1896764[/attach]
如图所示,把 k 个乘积项的结果送入一个或门当中,获得了一个 k*n 尺寸的可编程乘积阵,Z= Y1+Y2+...+Yk.
逻辑学上可以证明,包含与、或、非门的前向逻辑电路(不含寄存器、反馈环节),总可以简化为若干最小乘积项之和。
例如为实现 Z= (A+B)*((C+D+E)*F) 逻辑,有:
Z= (A+B)*((C+D+E)*F) = (A+B)*(C*F +D*F +E*F) = A*C*F +A*D*F +A*E*F +B*C*F +B*D*F +B*E*F
整个化简过程类似于多项式展开,最终由各乘积项先“与”再统一“或”输出。
上式使用 6 个可编程乘积项,分别实现 Y1=A*C*F、Y2=A*D*F、...、Y6=B*E*F,最终再 Z=Y1+Y2+...+Y6 即得所需逻辑电路。
【ATF16V8】
上述可编程乘积项+乘积阵的结构,就已经达到了传说中 SPLD 的规模。以最常见的工业 16V8 为例,
目前仍存活的型号有: Microchip 的 ATF16V8, Lattice 的 GAL16V8,功能基本兼容。
这片 SPLD 有着经典的 DIP-20 封装,非常适合 DIY 万用板折腾:
[attach]1896765[/attach]
早期芯片的手册非常实在,详细讲述了这片 SPLD 内部的接线,甚至连熔丝编号都写好了:
[attach]1896766[/attach]
如图,图中红色区域为两个“8*32可编程乘积阵”,带有 PTD 乘积项禁用功能。
可编程乘积阵的输入,由各引脚(1、2、...)电平信号组成,可以选择使用或禁用反相器,相当于 A、~A 任选;
乘积阵的结果送入“逻辑输出宏”(OLMC: Output Logic Macrocell)进行简单或运算,并最终由右侧引脚(19、18、...)输出。
这片 SPLD 以熔丝作为配置,最多可以配置 16 个输入端、8 个输出端(但总IO数≤18),每个输出端都拥有一个 8*32 可编程乘积阵,
因而实现诸如 3-8译码器、与或非组合门之类的逻辑电路都不在话下。
在编程上,正规军一般选 WinCupl 或者 Protel99SE 配合 HDL 语言;
但作为 DIY 没必要专门去装软件还要学 HDL,我选择直接人肉熔丝编程:对照原理图,按照熔丝号直接写0/1,最终转 jed 文件即可烧录。
关于 ATF16V8 的编程/烧录就不再详细展开了,后续如有必要我另开贴介绍。
【应用】
关于 ATF16V8 的实际应用,在我以往的帖子里也能找到只言片语,但大多一带而过。
这次专门针对 SPLD 实现逻辑门,进行一个略详细的介绍。
经朋友推荐,在一个外国开源网站上看到了一款迷你逻辑板:http://www.technoblogy.com/show?4FFY
[attach]1896767[/attach]
被数电实验摧残过的朋友一眼就能认出,这就是数电实验箱的迷你版本:
左侧四个开关产生 0/1 逻辑,右侧五个灯用于指示 0/1 状态,中部整片的与/或/非门供你随便连线。
为求简洁,原作者使用了一片 AVR 单片机来模拟逻辑门功能。
在低速情况下自然无虞,然而真要上高速了目测是要出问题,例如拿两个反相器来当振荡器用。
心生不悦,打算改版:仅借鉴门电路布局,而逻辑门一定要用真实玩意来搞。
由于逻辑门种类相当多,如果用 74HC 得好几个型号,还会有鬼一样的走线;这时候上 PLD/FPGA 最为合适。
ATF16V8 标称的前向频率 >45MHz,这种速度对于单片机 IO 模拟几乎是碾压。话不多说,两片 16V8 画起来:
[attach]1896768[/attach]
[attach]1896769[/attach]
既然是实验板,当然要考虑拆修的情况。记得数电实验室几乎每天都有烧坏的 74HC/LS 在更换。
使用 DIP 封装的 SPLD 可以高枕无虞,坏了换个新的就行,有手就能干。
打板焊接走起:
[attach]1896770[/attach]
[attach]1896771[/attach]
软件上就是依照人肉编译原理,在特定的熔丝位置写入0,实现电路重构。我用 VS 来辅助下(用C宏提高可读性):
[attach]1896772[/attach]
运行生成一个 bin 形式的烧录文件,转成 jed 格式以后就可以用 PROTEUS 仿真,避免烧录返工:
[attach]1896773[/attach]
最后上自制的烧录器,野生二手 ATF16V8 烧起来:
[attach]1896774[/attach]
烧录好两片固件以后,插回逻辑板,就可以愉快的折腾数电了。
如图是个 2bit*2bit = 4bit 无符号硬件乘法器,目前状态是 3x3=9 的二进制样子:
[attach]1896775[/attach]
数电实验室要插成这样,大概是要被管理员谈话的;但自己的爱怎么折腾就怎么折腾,烧了 16V8 也就 ¥2 一片自己换。
附上本实例中两片 16V8 的 VS 编译包(含源码+Proteus测试):[attach]1896777[/attach]
---------------------------------------------------------------------------------------------------------
以上,简介了 SPLD 器件的工作原理,并在其基础上搭建一套逻辑门实验板,供折腾。
最后祝大家数电不迷路,折腾愉快!
作者: 猪小呆 时间: 2023-8-15 17:49
大神这款7块多包邮的CPLD怎么样,可以用签到红包,我撸了两片回来不会用在吃灰:
https://item.taobao.com/item.htm?id=667515163933
AG1280 系列是低成本、超低功耗的 CPLD器件,带有 1280 个查找表 (LUT)。AG1280具有嵌入式块存储器 (EBR)、分布式 RAM 和锁相环 (PLL)。AG1280专为超低功耗和成本而设计,可以为各种应用提供可编程解决方案,尤其是在消费类和移动设备产品中。
AG1280Q48是一款超低成本的CPLD,封装是QFN48,体积是6x6mm,逻辑资源为1KLE,User I/O是27个。
作者: t3486784401 时间: 2023-8-15 18:14
到 CPLD 这一级,基本得用 HDL 预言了,Verilog 啥的你得会;
其次这个不知道是否兼容 Quartus 这类开发软件,如果兼容 EPM1280 的话就有希望。
看了看资源,这是现代 CPLD 和 FPGA 结合的结果。
传统的认为,LUT 这种结构大多出现在 FPGA 当中,现在看来 CPLD 也可以由,毕竟用来规整数据延时挺好的。
作者: 猪小呆 时间: 2023-8-15 18:22
据说要先用Quartus开发,然后用它自己的软件编译,可惜对这些一窍不通不会用,只能等哪位大神搞出有意思的东东然后我们只要学会烧录就可以玩了
作者: happysea72 时间: 2023-8-15 18:38
学以致用!真是不错练手项目!
作者: 我爱玩数码 时间: 2023-8-15 19:17
都是大神,俺不懂
作者: rush 时间: 2023-8-15 19:55
最早便宜货是epm3032,后来epm240性价比超强,我感觉你这编程环境投入远比我装pj版quartus大啊,当年usb blaster烧录器也才买了25块钱。
至于vhdl或者verilog我真心觉得比硬件74啥的容易,而且是容易多了,需要什么逻辑,我只需要编程,看结果,最烦用74什么去拼凑的。
作者: t3486784401 时间: 2023-8-15 20:03
rush 发表于 2023-8-15 19:55
最早便宜货是epm3032,后来epm240性价比超强,我感觉你这编程环境投入远比我装pj版quartus大啊,当年usb bl ...
max3000 和 max2000 系列现在也还有存货,这两个算是CPLD鼻祖了。quartus 不错哟,我一般是配套max3000用的(3064)
作者: t3486784401 时间: 2023-8-15 21:56
CPLD 只烧录玩的话,跟单片机体验差不多,甚至还要差一点。
作者: t3486784401 时间: 2023-8-15 21:56
感谢支持!
作者: se7ens 时间: 2023-8-15 23:10
学以致用!真是不错练手项目!先mark下
作者: fsj5098 时间: 2023-8-15 23:41
用ispTOOLS5_0比较方便
作者: liebedemi 时间: 2023-8-15 23:56
我感觉上了一堂数字电路课,楼主老师辛苦了
作者: eric_yangsen 时间: 2023-8-16 06:57
16V8这类PLD可以用protel99开发,现在还有生产这类IC的?我印象里07,08年之后市场上就没有新的货了
作者: yanghc 时间: 2023-8-16 07:50
非常好的文章图文并茂通俗易懂,有机会搞两个来玩玩。

作者: aping365 时间: 2023-8-16 09:25
没上过啥学的进来看了几眼,看不懂,再见。
作者: wlhcq 时间: 2023-8-16 10:03
还没看懂,但要谢谢楼主的科普!
作者: t3486784401 时间: 2023-8-16 10:04
感谢支持!
作者: t3486784401 时间: 2023-8-16 10:06
这是可以开发 HDL 的? 感觉像是个下载器啊
作者: t3486784401 时间: 2023-8-16 10:08
microchip 收购了 atmel 以后,一直在产 atf16v8;
不过这也不影响市面上全是二手拆机货的事实。反正挺好用是真的
作者: 邪恶海盗 时间: 2023-8-16 13:54
你们不要玩这么高级的好不好,我们一点都看不懂...
作者: t3486784401 时间: 2023-8-16 15:49
邪恶海盗 发表于 2023-8-16 13:54
你们不要玩这么高级的好不好,我们一点都看不懂...
欢迎交流哈哈
作者: jf201006 时间: 2023-8-16 17:46
好帖,虽然不是太懂,能编程的都是大佬
作者: amo73 时间: 2023-8-16 19:24
兼容啥,厂家都明说是直接蹭quartus了
作者: fsj5098 时间: 2023-8-16 20:17
ispTOOLS5_0 是根据数字电路图编辑的工具,是初级入门好工具
作者: t3486784401 时间: 2023-8-16 21:02
那还有点搞头,不然完全没生态链
作者: bingda733 时间: 2023-8-17 07:23
厉害了这个帖子真的很有帮助
作者: t3486784401 时间: 2023-8-17 12:09
确定叫这个名字 ispTOOLS5_0?
莫非是 ispLever5.0 ?
作者: stfan 时间: 2023-8-17 14:42
学习了,谢谢楼主的科普!
作者: chyutong 时间: 2023-8-18 07:33
真是不错练手项目!
作者: 亚历山大 时间: 2023-8-19 09:24
不晓得说的啥子,反正看不懂
作者: icespirit 时间: 2023-8-19 09:53
楼主能看看这个22V10 这个内部是什么逻辑吗?
https://we.tl/t-BXFwEC4UlY
作者: t3486784401 时间: 2023-8-19 12:04
相当于加大版的 16V8,熔丝更多、IO更多,原理一样的
作者: icespirit 时间: 2023-8-19 12:24
大神能看懂这个文件内部的逻辑关系吗?我一直不明白这颗逻辑芯片的逻辑输出是什么样子的
作者: t3486784401 时间: 2023-8-20 00:25
下到了 jed 文件,就可以直接反编译了。
我先转成了 bin 格式,相当于 5892 个熔丝的列表;然后找软件打一下电路点,大致就是如下结构。
23、22、15、14 脚对应的 OLMC 工作在寄存器模式,其余的 16-21 脚 OLMC 工作在组合逻辑模式。
然后每个脚输入输出状态、内部逻辑连线就参考这个打点图:
[attach]1900178[/attach]
作者: icespirit 时间: 2023-8-20 06:16
感谢,反复阅读了几次楼主的1楼帖子,终于将自己以前学习的数电“与”“或”“非”和传说中的PLD\CPLD的结合起来,勉强能读懂略微的大意,楼主发布的22v10中间那些红色的点位是不是就是熔丝位?换句话说就是“连接”或“断开”即所谓的编程是这个意思吗?
个人觉得虽然PLD或CPLD、FPGA,在灵活性上非常好,但是实际使用中,我觉得稳定性不如74系列这些简单的逻辑芯片稳定、可靠,经常遇到这些PLD、CPLD直接击穿短路烧毁,*注多次遇到并不是个例现象*,理论上分析mos管耐压应该还是可以的,但是实际遇到就是会击穿,关键的问题是,这些芯片都是有内部程序的,一旦损坏若没有程序的情况下非常麻烦,个人觉得不如以前的74系列芯片
[attach]1900195[/attach]
另楼主绘制的PCB板大赞,看到你走线走的非常圆润,特别是那些直角转弯的地方,不知道用了什么方法,我记得以前见过一款经典的国外仪表内部走线也是这样的走线,非常漂亮
作者: jforu 时间: 2023-8-20 08:05
这东西性价比太低, 不便宜, EPM240多好, 多年前5元/片买了一些. 容量比这大多了.
作者: t3486784401 时间: 2023-8-20 13:53
对就是熔丝位,打点代表“连接”,一行内所有的点构成“线与”。
PLD 的脆弱性是肯定的,一般在电源不稳的情况下比较明显,最终掉固件。
所以这个适合自己搞,工业场合用更稳定的的逻辑片就行。
倒是我手头用来测试的片子,烧写固件后冷存储几年,再上电依旧功能完好。
证实大多是通电干扰搞坏的。
作者: t3486784401 时间: 2023-8-20 13:54
不是一个级别的东西,场合有别。
PLD 只能是老机器,或者需要烧毁更换 DIP 的场合更合适。
作者: icespirit 时间: 2023-8-20 13:59
楼主画这线路用了什么特殊的方法?看着走线非常漂亮[attach]1900595[/attach]
作者: t3486784401 时间: 2023-8-20 14:47
icespirit 发表于 2023-8-20 13:59
楼主画这线路用了什么特殊的方法?看着走线非常漂亮
多盘一盘就圆润了。 比常规布线费时,proteus下用的圆弧走线
作者: wqwq212 时间: 2023-8-20 20:16
的确不容易理解,慢慢看看吸收。
作者: tank0516 时间: 2023-8-21 10:39
好多都 看不了啊
作者: chyutong 时间: 2023-8-22 07:47
真是不错练手项目!
作者: icespirit 时间: 2023-8-22 19:54
我发现是不是只要知道了这种PLD输入引脚和输出引脚对应的高电平和低电平对应的关系,再加上有充足的时间是不是就能破解加密的这种芯片?因为使用穷举法只要知道了内部的熔丝位置,最终也就知道了是如何编程的,是不是这个理?
作者: t3486784401 时间: 2023-8-22 20:52
是的,SPLD 的破解率非常高,就算找专业破解也不用上 k 价格.
不过我没详细展开,SPLD 还有一种“寄存器”工作模式,即每个 OLMC 都是一个 D 型触发器。
这时候输出不仅与输入逻辑有关,还与 CK 时钟跳变前的状态也有关。
一般认为无寄存器的 SPLD 有着 100% 的破解率,输入穷举速度 1MHz 相当于每秒钟破解 20 根输入逻辑。
而有寄存器的 SPLD 破解稍麻烦,涉及状态寄存、内部连线反馈等。
当然如果开盖,破解率基本还是 100%.
作者: mhwz 时间: 2023-8-30 11:01
知识储备不够,看了个大概
作者: icespirit 时间: 2023-9-1 19:42
本帖最后由 icespirit 于 2023-9-1 19:48 编辑
大神你好,今天我又遇到一块PLD芯片,型号是PAL22V10Z,我读取了它的固件,但是我不会反编译,我想知道它是如何工作的,你能帮我分析一下吗?
https://we.tl/t-A9ubUuRff8
下图为22V10在实际电路中的大概连接图,最主要的问题是,该硬件电路进行了更新,原理图中使用的RAM芯片是LH5160 DIP28封装 地址位有A0-A12 总共13位,可是原理图中标注的地址是A0-A14,总共15位地址。我读取这个固件的22V10硬件PCB电路板上使用的RAM芯片是LH5164A,看起来和原理图上LH5160定义是一样的,我就想知道我该选择哪一种内存芯片以及如何连接ROM RAM 22V10它们之间的连接,感谢
[attach]1910467[/attach]
[attach]1910476[/attach]
[attach]1910479[/attach][attach]1910480[/attach]
作者: t3486784401 时间: 2023-9-1 20:18
用上回的工具搞了一下,你下载一篇 22V10 的手册对照着读一下,就知道啥逻辑了:
[attach]1910501[/attach]
作者: icespirit 时间: 2023-9-1 20:36
好的,感谢
作者: icespirit 时间: 2023-9-2 09:29
我下载了22V10的手册,但是看不明白你给的图,和逻辑阵列如何联系起来,还有那种简单的与或非门,我到可以分析的出来,但是这种阵列式的,不明白。一看到这么多红点心理慌了...............
假设我的原理图是正确的话,目前我所了解到的是22V10 第8引脚(E)是MCU时钟进入,第7脚(RW)是MCU读取或写入,第13引脚(MODB)应该是MCU工作模式的选择,其它的就不知道了
作者: t3486784401 时间: 2023-9-2 11:03
要下英文原版,通读。
作者: icespirit 时间: 2023-9-2 12:30
为了这个芯片,专门翻出了以前上学时候的数字电路课本,发现原来这部分学校是没教的,看起来是属于选读部分,终于找到了一个不会的理由
[attach]1910995[/attach][attach]1910996[/attach][attach]1910997[/attach][attach]1910998[/attach][attach]1910999[/attach][attach]1911000[/attach][attach]1911001[/attach][attach]1911002[/attach][attach]1911003[/attach][attach]1911004[/attach]
作者: t3486784401 时间: 2023-9-2 12:33
对就这个,这下也就明了了。
作者: icespirit 时间: 2023-9-2 13:08
以我的能力能看明白黄圈这部分逻辑函数,红圈这部分写着OLMC,就不找到是个什么玩意了,关键是在到这个OLMC之前看起来还有个往左打的斜杠是返回的意思吗?
[attach]1911051[/attach]
作者: t3486784401 时间: 2023-9-2 13:58
本帖最后由 t3486784401 于 2023-9-2 14:03 编辑
请你把手册手册手册通读一遍,里边有详解 OLMC 是什么的。另外 S1 S0 状态我都标在图上了,对照手册就可以翻译成具体模式
[attach]1911145[/attach]
作者: 黄家驹12 时间: 2023-9-2 20:55
谢谢楼主的科普
作者: icespirit 时间: 2023-9-3 06:33
目前为止所知道的是14、15、18的引脚对应的 OLMC 工作在寄存器模式,其余的16-23工作在组合逻辑模式。
我理解的是一种即直接转发临近的数据,一种是自身逻辑处理后再输出。不知道对不对。一边看教材,一边看英文手册,即一边知道OLMC内部工作原理,还有很多SYN、AC0、AC1、XOR内部OLMC电平,看的头大
作者: t3486784401 时间: 2023-9-3 11:41
你这教材看的有点跑偏啊,SYN, AC0, AC1 这几个都是 16V8 的信号,在 22V10 当中统一更新为 S1, S0;
寄存器模式,就是带时钟锁存状态的,一般在电路里用于锁存总线地址;
组合逻辑模式,就是常规的组合逻辑,也可能是 OLMC 用于输入的情况。
作者: icespirit 时间: 2023-9-3 12:11
正是这一段英文描述,我回去翻书看的云里雾里的,正好遇到一个例子在讲16v8的看着感觉可以套在22v10上用,就被带偏了............
[attach]1912176[/attach]
作者: t3486784401 时间: 2023-9-3 12:40
16V8 是全片先选模式(SYN),然后各 OLMC 再选模式(AC0, AC1);
22V10 取消了全片选择,直接就各 OLMC 选模式(S0, S1).
对比一下 22V10 更简洁。
作者: icespirit 时间: 2023-9-5 06:34
由于弄不懂OLMC具体是如何工作的,我先将OLMC即宏之前的逻辑尝试着写了前面2个,即22和23宏之前的逻辑,不知道对不对.
假设输入1脚为I1,2脚为I2。。。。。。。。
于是有了如下的
[attach]1913514[/attach]
作者: t3486784401 时间: 2023-9-5 12:44
当一行线与同时打上相邻的点时,相当于把 A 和 A' 信号相与了,结果一直为零。
这一行作用于或门时,相当于无效;作用于输出脚使能时,相当于关闭输出,相应输出脚变为输入。
由此,第二个OLMC(对应22脚)可判定为全零,并且 22 脚工作在输入模式。
对于第一个OLMC(对应23脚),之前逻辑为 I2 & I10,并且输出使能也是 I2 & I10.
原理是每条列线都有一个驱动端,矩阵标记了列线4(驱动端为I2) 与 列线36(驱动端为I10),
因而就是 I2 & I10 的逻辑
作者: icespirit 时间: 2023-9-5 14:20
不对吧。我从这颗PLD外面信号分析,22引脚接的是WRLCD,这个信号应该是向液晶LCD写数据,理应该是输出信号才对呀,21引脚是RDLCD这里才是输入信号才正确,怎么反了呢?奇怪
而对于23脚就更加奇怪了。想不通
[attach]1913981[/attach]
作者: t3486784401 时间: 2023-9-5 14:57
注意这篇帖子里有两个 jed 文件,都进行了反编译,怀疑搞混了;
第一个 jed 反编译结果位于 #36 楼,使用的是 #33 楼提供的地址;
第二个 jed 反编译结果位于 #50 楼,使用的是 #49 楼提供的地址。
从反编译结果来看,两个 jed 完全不同。
目前 #63-#65 楼讨论的是第二个 jed 反编译结果。
你在 #65 楼给出的原理图,更倾向于适配第一个 jed,这个得确认下。
作者: icespirit 时间: 2023-9-5 15:16
我明白。第一个jed其外围很多原理图,我暂时还没找到,目前暂不分析第一个,最近我一直在努力分析第二个jed,而提供原理图的即是第二个jed,因为我这几天一直在研究这块,对外围元件及原理图部分比较熟悉,所以才非常奇怪,PLD里面的和外面的尽然冲突了
作者: t3486784401 时间: 2023-9-5 15:49
仔细看了看 #50 楼的反编译图,这个图里边很多熔丝点设置的不合套路:
如果一行写零的话,应该是编程所有熔丝点,而非只编程一部分;
某些 OLMC 的逻辑阵,还有各行写零的情况;
两个 LCD_WR, RD 信号居然都是输入状态。
因而除了怀疑与电路不匹配,还得怀疑你这个 jed 文件是否读取有误,根本不是给 22V10 用的?
作者: icespirit 时间: 2023-9-5 16:03
这个固件对应的芯片型号是PAL22V10Z,DIP24封装,固件应该没错误。和原理图有出入的是RAM芯片和ROM芯片,原来原理图RAM芯片型号是LH5160,芯片实际是28只引脚,但是原理图上却32只引脚,还有就是ROM芯片原原理图上是27C010。实际电路板上的RAM芯片是LH5164和ROM芯片是27c1001,从而导致原本ram芯片上的uPA13和uPA14引脚就不够了,因为没有A13和A14通道,还有就是ROM芯片A17ROM信号,27c1001的第30引脚是NC,即空位。那么A17ROM连线还有什么意义呢。所以我才想要分析看看22V10这颗PLD
[attach]1914157[/attach][attach]1914156[/attach][attach]1914155[/attach]
作者: icespirit 时间: 2023-9-5 16:15
还有会不会是22V10加密了导致读到的是错误的?数据也能读到这没道理呀
作者: t3486784401 时间: 2023-9-5 19:25
手头有机器的话,另找一片全新 22V10,把读取的结果烧进去,看是否能工作。
如果有加密/读取错误的话,应该无法正确复制 22V10
作者: icespirit 时间: 2023-9-5 19:34
会不会有一种可能,那就是程序是对的,原理图上那些信号定义被重新编排过了?例如:22脚WRLCD和19脚RWRAM位置互换了?苦于手头没有机器呀,要有的话我就直接测量信号走线就可以了,而不去费力的这么分析信号了
作者: t3486784401 时间: 2023-10-26 15:35
话说这个破解可还有后续?
作者: icespirit 时间: 2023-10-27 11:48
目前知道的情况是程序固件是读取正确的,22V10Z的第23脚引脚和24VCC引脚接着一个贴片电阻。实物图片如下图所示。另外RAM和ROM实物图片也过来了。由于只能看到引脚走线并无法分析准确的连接通路,还在等待更进一步的连接确认
[attach]1956690[/attach][attach]1956691[/attach][attach]1956692[/attach]
作者: icespirit 时间: 2023-10-27 12:00
大神还有其它可行性办法么?进入死胡同了
作者: t3486784401 时间: 2023-10-30 00:28
22V10 读出的熔丝,烧录进另一片全新的 22V10,还能工作不?
印象中熔丝分析的结果,有些地方与套路不太相符
作者: icespirit 时间: 2023-10-30 08:16
本帖最后由 icespirit 于 2023-10-30 09:04 编辑
目前的情况是,我按照初始电路图绘制了原理图,原理图还未转换成PCB,因为按照你的意思若22v10其工作原理与初始电路图套路若完全不一致的话,这版电路图就是没有任何用途。我联系了我朋友让他拿实物板子测量下,可惜他过于繁忙一直没有回复我。
这几天我正在想有没有其它办法可以验证这颗芯片的布线,因为我查看实物图发现22v10的第23引脚和24引脚接着一颗贴片电阻,那么说明23引脚还有1引脚都是从电源24引脚直接连接的,可能这颗电阻为10K或其它阻值,目的估计是一个上拉或者下拉电阻。
搜寻互联网记忆,发现了一份该主机升级各种版本的说明文档,但是研究后发现其软件版本似乎是针对那颗ROM27C1001内的固件说明,而这颗22v10一直未见有任何说明,详见下图所示
[attach]1959103[/attach]
[attach]1959104[/attach]
[attach]1959105[/attach]
下图是我找的24064信号电平,不知道是否有助于分析
[attach]1959199[/attach]
作者: t3486784401 时间: 2023-11-5 16:22
哈哈还在卡壳啊,我这边也只能是分析分析逻辑,具体走线也是完全没思路
欢迎光临 数码之家 (https://www.mydigit.cn/) |
Powered by Discuz! X3.4 |