
导航菜单
切换导航
[ ](/)
[ 登录 ](/login?return_to=https%3A%2F%2Fgithub.com%2Fschlae%2FIBM_MCGA)
外观设置
平台
- **AI 代码创作**
- [GitHub Copilot:借助 AI 编写更优质代码](https://github.com/features/copilot)
- [GitHub Copilot 应用:从问题到合并的直接代理](https://github.com/features/ai/github-app)
- [MCP 注册表:新功能,集成外部工具](https://github.com/mcp)
- **开发者工作流**
- [Actions:自动化任何工作流](https://github.com/features/actions)
- [Codespaces:即时开发环境](https://github.com/features/codespaces)
- [Issues:规划和跟踪工作](https://github.com/features/issues)
- [代码审查:管理代码变更](https://github.com/features/code-review)
- **应用程序安全**
- [GitHub 高级安全:发现并修复漏洞](https://github.com/security/advanced-security)
- [代码安全:在构建过程中保障代码安全](https://github.com/security/advanced-security/code-security)
- [密钥保护:防患于未然,阻止信息泄露](https://github.com/security/advanced-security/secret-protection)
- **探索**
- [为何选择 GitHub](https://github.com/why-github)
- [文档](https://docs.github.com)
- [博客](https://github.blog)
- [更新日志](https://github.blog/changelog)
- [市场](https://github.com/marketplace)
[查看所有功能](https://github.com/features)
解决方案
- **按公司规模划分**
- [企业版](https://github.com/enterprise)
- [中小型团队](https://github.com/team)
- [初创企业](https://github.com/enterprise/startups)
- [非营利组织](https://github.com/solutions/industry/nonprofits)
- **按用例划分**
- [应用现代化](https://github.com/solutions/use-case/app-modernization)
- [DevSecOps](https://github.com/solutions/use-case/devsecops)
- [DevOps](https://github.com/solutions/use-case/devops)
- [CI/CD](https://github.com/solutions/use-case/ci-cd)
- [查看所有用例](https://github.com/solutions/use-case)
- **按行业划分**
- [医疗保健](https://github.com/solutions/industry/healthcare)
- [金融服务](https://github.com/solutions/industry/financial-services)
- [制造业](https://github.com/solutions/industry/manufacturing)
- [政府部门](https://github.com/solutions/industry/government)
- [查看所有行业](https://github.com/solutions/industry)
[查看所有解决方案](https://github.com/solutions)
资源
- **按主题探索**
- [AI](https://github.com/resources/articles?topic=ai)
- [软件开发](https://github.com/resources/articles?topic=software-development)
- [DevOps](https://github.com/resources/articles?topic=devops)
- [安全](https://github.com/resources/articles?topic=security)
- [查看所有主题](https://github.com/resources/articles)
- **按类型探索**
- [客户案例](https://github.com/customer-stories)
- [活动与网络研讨会](https://github.com/resources/events)
- [电子书与报告](https://github.com/resources/whitepapers)
- [商业洞察](https://github.com/solutions/executive-insights)
- [GitHub 技能](https://skills.github.com)
- **支持与服务**
- [文档](https://docs.github.com)
- [客户支持](https://support.github.com)
- [社区论坛](https://github.com/orgs/community/discussions)
- [信任中心](https://github.com/trust-center)
- [合作伙伴](https://github.com/partners)
[查看所有资源](https://github.com/resources)
开源
- **社区**
- [GitHub 赞助:资助开源开发者](https://github.com/sponsors)
- **项目**
- [安全实验室](https://securitylab.github.com)
- [维护者社区](https://maintainers.github.com)
- [加速器](https://github.com/accelerator)
- [GitHub 明星项目](https://stars.github.com)
- [存档项目](https://archiveprogram.github.com)
- **仓库**
- [主题](https://github.com/topics)
- [热门趋势](https://github.com/trending)
- [集合](https://github.com/collections)
企业版
- **企业解决方案**
- [企业平台:由 AI 驱动的开发者平台](https://github.com/enterprise)
- **可用附加组件**
- [GitHub 高级安全:企业级安全功能](https://github.com/security/advanced-security)
- [Copilot for Business:企业级 AI 功能](https://github.com/features/copilot/copilot-business)
- [高级支持:企业级 24/7 支持](https://github.com/premium-support)
[定价](https://github.com/pricing)
搜索或跳转至...
搜索代码、仓库、用户、问题、拉取请求...
搜索
清除
[搜索语法提示](https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax)
提供反馈
我们会阅读每一条反馈,并认真对待您的意见。
包含我的电子邮件地址,以便能与我联系
取消 提交反馈
保存的搜索
使用保存的搜索可以更快地筛选结果
名称
查询
要查看所有可用的限定符,请参阅我们的[文档](https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax)。
取消 创建保存的搜索
[ 登录 ](/login?return_to=https%3A%2F%2Fgithub.com%2Fschlae%2FIBM_MCGA)
[ 注册 ](/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&source=header-repo&source_repo=schlae%2FIBM_MCGA)
外观设置
重置焦点
您在另一个标签页或窗口中登录了。[重新加载]()以刷新您的会话。
您在另一个标签页或窗口中注销了。[重新加载]()以刷新您的会话。
您在另一个标签页或窗口中切换了账户。[重新加载]()以刷新您的会话。 关闭提醒
{{ message }}
[ schlae ](/schlae) / **[IBM_MCGA](/schlae/IBM_MCGA) ** 公开
- [ 通知 ](/login?return_to=%2Fschlae%2FIBM_MCGA) 您必须登录才能更改通知设置
- [ 复刻 2 ](/login?return_to=%2Fschlae%2FIBM_MCGA)
- [ 加星 28 ](/login?return_to=%2Fschlae%2FIBM_MCGA)
- [ 代码 ](/schlae/IBM_MCGA)
- [ 问题 0 ](/schlae/IBM_MCGA/issues)
- [ 拉取请求 0 ](/schlae/IBM_MCGA/pulls)
- [ 操作 ](/schlae/IBM_MCGA/actions)
- [ 项目 ](/schlae/IBM_MCGA/projects)
- [ 安全与质量 0 ](/schlae/IBM_MCGA/security)
- [ 洞察 ](/schlae/IBM_MCGA/pulse)
其他导航选项
- [ 代码 ](/schlae/IBM_MCGA)
- [ 问题 ](/schlae/IBM_MCGA/issues)
- [ 拉取请求 ](/schlae/IBM_MCGA/pulls)
- [ 操作 ](/schlae/IBM_MCGA/actions)
- [ 项目 ](/schlae/IBM_MCGA/projects)
- [ 安全与质量 ](/schlae/IBM_MCGA/security)
- [ 洞察 ](/schlae/IBM_MCGA/pulse)
[](/schlae/IBM_MCGA)
schlae/IBM_MCGA
主分支
[分支](/schlae/IBM_MCGA/branches)[标签](/schlae/IBM_MCGA/tags)
[](/schlae/IBM_MCGA/branches)[](/schlae/IBM_MCGA/tags)
转到文件
代码
打开更多操作菜单
文件夹和文件
| 名称 | 名称 | 最后提交消息 | 最后提交日期 |
| --- | --- | --- | --- |
最新提交
历史记录
[3 次提交](/schlae/IBM_MCGA/commits/main/)
[](/schlae/IBM_MCGA/commits/main/)3 次提交
[mcga72x8205flat](/schlae/IBM_MCGA/tree/main/mcga72x8205flat "mcga72x8205flat")
|
[mcga72x8205flat](/schlae/IBM_MCGA/tree/main/mcga72x8205flat "mcga72x8205flat")
|
|
[mcga72x8300flat](/schlae/IBM_MCGA/tree/main/mcga72x8300flat "mcga72x8300flat")
|
[mcga72x8300flat](/schlae/IBM_MCGA/tree/main/mcga72x8300flat "mcga72x8300flat")
|
|
[README.md](/schlae/IBM_MCGA/blob/main/README.md "README.md")
|
[README.md](/schlae/IBM_MCGA/blob/main/README.md "README.md")
|
|
查看所有文件
仓库文件导航
- README
IBM MCGA 门阵列逆向工程
IBM 的 MCGA(多色图形阵列)是随 PS/2 型号 25 和 30 推出的低成本视频芯片组。爱普生 Equity 1e 使用与 MCGA 兼容的视频,但不使用相同的芯片。
IBM 芯片组由内存控制器门阵列和视频格式化器门阵列组成。其中一些是在 IBM 内部的门阵列工艺上制造的,而另一些则使用了精工的外部门阵列部件。
内存控制器门阵列(72X8300)
这个门阵列包含 MC6845 同步发生器 IC 的实现,管理视频 RAM 与 ISA 总线的接口,管理字符 RAM 接口,以及其他一些杂项功能,包括时钟选择和显示器 ID 回读。
我逆向工程的示例是使用精工 SLA6430 门阵列实现的。它包含 4342 个基本单元(BC),每个基本单元有 4 个晶体管。这些基本单元排列成 167 行和 26 列。这是一个 2 微米的 CMOS 工艺,有 2 层金属。
图像来自 [72x8300-sla6430j](https://siliconpr0n.org/map/ibm/72x8300-sla6430j/)。
逆向工程的原理图和布局可以在 mcga72x8300flat 子目录中找到。
视频格式化器门阵列(72X8205)
格式化器门阵列解码 ISA 内存和 IO 端口地址,管理 RAMDAC 接口,并在图形和文本模式下生成像素数据。
这个 IC 有两张图片。第一张 [72x8205-gl14105fs](https://siliconpr0n.org/map/ibm/72x8205-g14l05fs/) 似乎是在 IBM 内部的门阵列工艺上制造的。不幸的是,在开盖过程中,顶层金属层被移除了,所以无法提取网表。第二张 [72x8205-sla6330j](https://siliconpr0n.org/map/ibm/72x8205-sla6330j/) 已经被逆向工程:详见 mcga72x8205flat 子目录。
它是一个精工 SLA6330 门阵列。它包含 3312 个基本单元,每个基本单元有 4 个晶体管。这些基本单元排列成 144 行和 23 列。
72x8300(内存控制器门阵列)注意事项
基于逆向工程的工作,发现了关于 MCGA 的新信息。
- MCGA 可以与外部 HSYNC 和 VSYNC 信号同步锁定。这些信号被引出到视频连接器:引脚 12(ID1)是 VSYNC,引脚 11(ID0)是 HSYNC。要启用此模式,向寄存器 0x12(字符发生器接口和同步极性,或显示感应)的第 3 位写入 1。在 PS/2 型号 30 的技术参考手册中,这一位被列为“保留 = 0”。据推测,这种同步锁定模式需要一个外部时钟 PLL 连接到 25MHz 或 14MHz 时钟输入。
- 寄存器 0x10(模式控制)的第 3 位“兼容性”仅影响 80x25 文本模式。它会使水平定时寄存器乘以 2(对于 0x00 水平总数,会加 1;对于 0x02 起始水平同步,会减 1)。
- 寄存器 0x10(模式控制)的第 2 位“时钟 = 1”控制哪个时钟驱动视频电路。在默认状态下,大多数视频电路使用 25.175MHz 时钟。您可以通过将此位更改为 0 来将时钟频率设置为 14.318MHz 输入。
- 寄存器 0x10(模式控制)的第 6 位“保留 = 0”尚未完全理解。
- 寄存器 0x20(保留)是一个制造测试模式寄存器。
| 位 | 功能 |
| --- | --- |
| 7 | 14.318MHz 备用时钟模式(未知) |
| 6 | VCK 引脚备用模式(通常 VCKIN 直接连接到 VCK) |
| 5 | 加速模式:未知 |
| 4 | 加速模式:光标位置高计数器 |
| 3 | 加速模式:光标位置低/字符计数器 |
| 2 | 加速模式:垂直总数调整计数器 |
| 1 | 加速模式:垂直计数器 |
| 0 | 加速模式:水平计数器 |
计数器加速模式基本上是将时钟信号注入到每个计数器的高 4 位和低 4 位,因此计数器运行得更快。这有助于工厂在芯片测试仪中进行测试。
72x8205(视频格式化器门阵列)注意事项
扩展模式寄存器 0x1A 有两个未记录的位:
| 位 | 功能 |
| --- | --- |
| 1 | 未知,可能即使在其他分辨率下也强制使用 256 色模式 |
| 0 | 未知,可能将边框颜色强制应用到整个显示屏 |
通过访问以下位置可以使用其他制造测试寄存器:
- 寄存器 0x19 - 制造寄存器地址
- 寄存器 0x18 - 制造寄存器数据
要访问特定的制造测试寄存器,将地址加载到寄存器 0x19 中,然后在 0x18 处读取或写入内容。
制造测试寄存器如下:
| 地址 | 寄存器 |
| --- | --- |
| 0 | 未实现 |
| 1 | 只读。包含发送到 RAMDAC(P[7:0] 引脚)的最新数据内容 |
| 2 | 只读。包含从 VRAM(CP[7:0] 引脚)接收的最新数据内容 |
| 3 | 只读。包含来自格式化逻辑的未知 16 色模式数据 |
| 4 | 只写寄存器,操作如下 |
地址为 4 的只写寄存器仅实现以下两位:
| 位 | 功能 |
| --- | --- |
| 0 | 制造硬复位,相当于复位引脚。写入 '1' 使设备进入复位状态,写入 '0' 使设备退出复位状态 |
| 1 | 写入 '1' 禁用大量输出,包括连接到 RAMDAC 的输出 |
逆向工程过程信息
72x8300 图像从 21808x21778 缩放至 10904x10889。输出的 jpg 文件设置为 85% 的压缩率以节省空间,设置为 48DPI,并以 0.103170 的比例因子导入到 KiCAD 中。这使得在 KiCAD 单位中基本单元之间的间距为“3mm”。
在识别出每种基本单元类型后,为其创建了库封装,并将其与原理图符号关联起来。所有焊盘都放置在中心,以便封装可以旋转,因为原始中的许多基本单元是镜像的。
门阵列使用两层金属,理解层与层之间的连接可能具有挑战性。一般来说,只有少数允许的连接:
- 金属 1 到金属 2
- 金属 2 到多晶硅(栅极)
- 金属 2 到扩散层
每列在金属 2 上有两条平行线,分别承载 VCC(右侧)和 GND(左侧)。因此,每个基本单元中的左侧两个晶体管是 NMOS,右侧两个晶体管是 PMOS。在一个基本单元中,两个晶体管共享一个栅极,每个栅极有三个连接焊盘。触点可以将 VCC 或 GND 连接到两个晶体管之间共享沟道连接上的扩散区域,或者连接到一个晶体管、另一个晶体管或两者的隔离沟道连接上。
进入或离开逻辑门的外部信号通常使用在金属 1 上穿过整个单元的水平走线进行连接。逻辑门内部的布线通常在金属 2 上完成。
除了金属 2 上承载电源和接地的垂直平行线外,还有另一组水平走线(在金属 1 上)也承载电源和接地。我的逆向工程布局中没有在这些线上放置走线,因为它们不是信号线。
走线从封装焊盘开始放置,沿着底层金属连接到所有其他连接的焊盘,赋予一个网络名称,然后反向传播到原理图(与通常的 KiCAD 过程相反)。
未来计划
- 研究从 KiCAD 网表生成 Verilog
关于
IBM MCGA 逆向工程芯片
资源
Readme
哎呀!
加载时出现错误。[请重新加载此页面]()
[ 活动](/schlae/IBM_MCGA/activity)
加星
[ **28** 颗星](/schlae/IBM_MCGA/stargazers)
关注者
[ **2** 人关注](/schlae/IBM_MCGA/watchers)
复刻
[ **2** 次复刻](/schlae/IBM_MCGA/forks)
[ 举报仓库 ](/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fschlae%2FIBM_MCGA&report=schlae+%28user%29)
[版本](/schlae/IBM_MCGA/releases)
未发布任何版本
[包 0](/users/schlae/packages?repo_name=IBM_MCGA)
哎呀!
加载时出现错误。[请重新加载此页面]()
[贡献者](/schlae/IBM_MCGA/graphs/contributors)
* * *
哎呀!
加载时出现错误。[请重新加载此页面]()
页脚
[ ](https://github.com) (C) 2026 GitHub, Inc.
页脚导航
- [条款](https://docs.github.com/site-policy/github-terms/github-terms-of-service)
- [隐私](https://docs.github.com/site-policy/privacy-policies/github-privacy-statement)
- [安全](https://github.com/security)
- [状态](https://www.githubstatus.com/)
- [社区](https://github.community/)
- [文档](https://docs.github.com/)
- [联系我们](https://support.github.com?tags=dotcom-footer)
- 管理 Cookie
- 不共享我的个人信息
您此时无法执行该操作。

被折叠的 条评论
为什么被折叠?



