[水] 活用Verilog中的Generate功能

前几天猛然发现自己的网站已经挂了,在法师帮助下修好之后意识到自从6月毕业以来就基本没再发过什么东西。当然主要还是因为自己作为失学儿童这段时间把精力放到补习基础知识和生活技能上去了…

言归正传,作为存活证明,今天来聊聊Verilog里Generate这功能。虽然我一直不是很喜欢Verilog,因为这个语言相比于VHDL去除了很多对可读性有较大帮助的功能,同时仍然很啰嗦:阅读OpenSparc的代码几乎让我吐了出来,每个模块所实现的逻辑很简单,但这些逻辑却被埋没在海量的胶水代码里了……吐槽放一边,由于传播和交流上的方便,Verilog仍然是现在最流行的语言,尤其是在国内。虽然一些如Bluespec这样的语言已经大大改善了Verilog的别扭之处,很多时候还是直接用Verilog比较顺手。为了写出更漂亮的,更有复用性的代码,能把Generate和System Task/Function (以后有机会再说)这样强有力的武器用起来就再好不过了。

国内网站上似乎没有太多实际使用的例子,可能主要还是因为大部分博文关注的还是更高级的功能组合的实现过程。而Generate这个功能通常是在一些比较底层的地方使用,用来减轻重复敲代码的麻烦。最重要的是它可以很轻松地实现一些参数化设计(Parameterized Design)。我曾经见过有人在Virtuoso里徒手画了一个32位的独热码转二进制电路,这个工作量想想就很不健康……如果换作Generate,这样的电路可以仅用数行代码就实现。

Continue reading "[水] 活用Verilog中的Generate功能"

HP5430A 18GHz微波计数器维修+测试 / Microwave Counter Repair+Testing

这其实是2019年11月完成的事情,当时拍了一些照片记录,不过因为拍摄环境限制拍得不是很好,就没发出来。最近本科快毕业了,在考虑离开学校的事情,整理了一下自己在学校外租的,专门用来当实验室(事实上更像是仓库)的出租屋。这台仪器作为所有收集到的仪器中个人最喜欢的一台,作为一个纪念,还是发出来了。

Continue reading "HP5430A 18GHz微波计数器维修+测试 / Microwave Counter Repair+Testing"

HP Journal 封面索引 / Cover Art Portfolio

HP Journal以及与其相同时期的其他公司发布的刊物普遍有精心设计的封面。这些封面采用道具制作,直接拍摄并进行了一些胶片时代的后期处理和特效装饰,有一种特殊的美感。同时,HPJ每一期的封面都至少对应这一期中一半的内容,用作索引的话一眼就能看出这一期是关于什么的。出于这两个原因,在接下来的时间里我会截取每一本HPJ的封面并缩小后贴在这个文章中,就当作是一种审美的实行过程吧~♪

1965年以前的HPJ一般没有封面,因此1949-1964年的内容等到其余更新完之后再去更新。为了节约服务器资源,所有的图片都被压缩到了512px的宽度。

Source: http://hparchive.com/hp_journals

国内源: https://pan.baidu.com/s/1_EZl7V71U2as9Ct-RGKY7w  提取码:dc0z

Continue reading "HP Journal 封面索引 / Cover Art Portfolio"

Arturia Microbrute Analog Synth Full Teardown (HD PCB Photographs)

I recently bought a second hand Arturia Microbrute synthesizer as a toy. It's a beautiful miniature yet complete entry-level mono synth. Limited as it may first seem, it actually lives up to Arturia's claim of sounding "massive" and "brutal" quite well.

Well, what the first thing to do when I get an analog semi-modular synth?  Tear it down, lads! I really want to see what kind of beast is roaring inside. Notice that this passage is not a review - people on youtube have done that thoroughly years before.

Continue reading "Arturia Microbrute Analog Synth Full Teardown (HD PCB Photographs)"

Rebuilding a Battery Pack (PC-9821Lt2)

WARNING  -  WARNING  -  WARNING

Lithium battery pack is the most hazardous component of a modern consumer device. An attempt to tap into it can lead to an explosion or fire. What's worse: DIY battery packs are not thoroughly tested in labs and thus have no guarantee. Even without human error, it is possible to overheat and start a fire when charging or operating. Follow this article at your own risk.

WARNING  -  WARNING  -  WARNING

Continue reading "Rebuilding a Battery Pack (PC-9821Lt2)"

A2P

A²P - Akyuu's Archive Project

ようこそ~


A2P 是一系列子项目的集合,它们服务于一个共同的目标:收集PC-9800平台的资料,让PC-9800这个已经被淘汰的平台的肉体免遭被遗忘的命运。

A2P is an initiative with a single goal of collecting technical information about PC-9800. Preserving not only the function, but also the soma of such an obsolete platform.

Identifier Name Page Update
A2P0 USB to PC98 Keyboard Adapter
A2P1 Hardware Database English Sep.
A2P2 Translation of Technical Documents English Sep.
A2P3
A2P4 玩耍记录/Fiddling Notes 中文/English Oct.2

强行逆向HP35 ARC芯片版图的一个部分的尝试 - 全过程记录

9年前,Peter Monta拍摄了一台HP35中ROM和ARC这两个芯片的版图,并通过直接记录版图上的图形的方法人工读出了HP35的ROM内容,这为模拟器社区提供了重要的素材。这些芯片的高清照片被发表在pmonta.com上。自一年前看到它我就非常想尝试逆向它,但是因为当时的知识水平限制没能做到。今天在积累了一定相关知识后我进行了尝试,最后的结果基本还是正确的,不过现在只能在这里记录我的方法,至于实际将这个芯片逆向成网表这种工作因为时间关系暂时没法做,希望未来什么时候能闲到把它逆向完…

图1. ARC照片的缩略图,原图见pmonta.com,有6919 x 8327

在70年代早期,因为钠离子沾染问题,NMOS很难制造出来,于是当时的数字芯片普遍是PMOS工艺。再加上这个计算器使用的是负逻辑,很容易判断这一定是一个PMOS芯片。

可惜我对PMOS工艺的了解完全是0,资料也几乎没法找到。在刚刚决定开始做逆向时我做的非常痛苦,因为相比于前一个结构非常清晰的CMOS,这个PMOS芯片没有任何标识:掺杂区、过孔、多晶硅长的完全一样,这几乎让我放弃了逆向,但考虑到pmonta.com上,站长已经发了他对ROM的逻辑部分的逆向结果,我觉得自己只要“Try Hard Enough”,总是能看明白的。在尝试了超过6个小时后我终于完全明白了这个芯片的工艺,我将我的探索过程发在这里。

Continue reading "强行逆向HP35 ARC芯片版图的一个部分的尝试 - 全过程记录"

分享一个有趣的芯片逆向练习,以及我自己的解法

自以前就对芯片的逆向非常感兴趣,最早是看Ken Shirriff在他的博客righto.com发的文章入的坑,学了一点芯片逆向的知识,算是从课本往实际实现靠近了一点,后来经常在zeptobars.com看晶圆照片洗眼。但是即便如此,我的知识只能是纸上谈兵,实际的电路分析还是从来没做过,今天逛Siliconpr0n.org时看到他给出了一个小练习题,我才算是第一次尝试做逆向。

将每个晶体管的结构对应到实际的照片上完全不是一个直观的过程,尤其是在完全不知道管脚排布和功能的前提下。在做完后和Siliconpr0n的页面上提供的解答对比了一下,大体上是正确的,我将我探索的过程po在了后面,希望能给出一些参考。

QUIZ (src)

(点击看大图)

原题如此,文件名:“Metal Gate_CMOS”,作者还补充道:“关于文件名里的Metal Gate,我应该是误解了,但它确实是个CMOS”(换句话说这不是Metal Gate)除此之外无附加信息

=== 点开就剧透 ===
Continue reading "分享一个有趣的芯片逆向练习,以及我自己的解法"

[Brushless] LAN1902 - 线性卡尔曼滤波器

注:本来打算一篇里写完,后来发现不知不觉写的太长,还是选择分P了。扩展卡尔曼和无迹卡尔曼的部分下一篇再写,至于实际应用先鸽着,,,

Continue reading "[Brushless] LAN1902 - 线性卡尔曼滤波器"

[OPNA] An Analysis of The P.M.D. Music Data Format (Mostly the "Rhythm" Section)

Greetings to all the new comers.

This article is based on Github repo: ValleyBell/MidiConvertes and Mistydemeo/Pmdmini. Special thanks to オップナー2608 from PC-9800 Series Central Discord Channel for helping me.

Meh... a detailed description of this little project will be covered in a future article (If I actually would do). Basically, I'm trying to make a portable music player / midi synth based around YM2608. I expect this project to take forever to complete...orz

Let's get our hands dirty quick!

Continue reading "[OPNA] An Analysis of The P.M.D. Music Data Format (Mostly the "Rhythm" Section)"