
童年修復系列-SNES芯片組介紹及FPGA實作
超級任天堂1990年11月21日在日本開始發售,北美于1991年8月13日發售,歐洲于1992年4月11日發售,
超級任天堂,簡稱超任,是任天堂公司開發的家用游戲機,英文名稱Super Famicom,簡寫SFC;在歐美洲銷售的產品名為Super Nintendo Entertainment System,簡寫SNES,超級任天堂是任天堂紅白機的后繼機種,由于芯片組的復雜,中國鮮有“復制品”出現,
所以今天就來聊一聊SNES的芯片組及其特殊性,同時帶來FPGA實作SNES的開源方案,
SNES和現今的PC芯片組很相似-CPU+顯卡+聲卡組成,同時SNES為了處理復雜的運算增加了一顆DSP芯片,下面就按照組成一個一個介紹,
下圖是整機的框圖:
整機的總線互聯如下:
CPU總線使用的是從6502繼承過來的類ISA總線,
CPU
SNES 的 CPU (中央處理單元)是基于 65c816 的處理器-5A22《一塊帶給無數人年少歡樂的CPU,別說你沒用過它在00-中的硬體暫存器);用于慢速訪問(即和)和用于非常慢的訪問(即4000-在00 到 $3F 中的硬體暫存器 ),這種變速模式來源于6502有一個叫做“ZERO-PAGE”的尋址模式,但是進行了進一步擴展,
它是一個帶有 24 位總線的 16 位處理器(16 位資料指標和 8 位組指標),支持16MB的尋址空間,它有一個計算器和兩個暫存器,可以在8位或16位模式之間切換,
然而,它具有許多尋址模式,它使用可變寬度指令,單個指令的寬度可以根據某些暫存器的長度而變化,
PPU
SNES有兩個特制的影像處理器,主要運行于256×224的解析度,最高支持512x448的解析度,最大發色數32768色,最大同螢屏顯示256色,最大活動塊數為128個,并支持縮放、回旋、馬賽克、半透明、視窗、光柵等特效,
聲優芯片
輔助CPU采用一顆SPC700(索尼推出),是一個8位的CPU核心,很接近6502,但有一些不同的尋址模式和復數/分割指令,與一個定制的數字聲音信號處理器共同集成在一個模塊中,SPC700和65c816通過一個4路雙向通道(8位I/O埠)通訊,SPC700有自己獨立的64K記憶體,可以用來存盤聲音采樣或者從65c816下載的程式,CPU有一個內建的64K ROM開機碼,用來通過65c816從游戲ROM里加載更多的復雜程式或者采樣資料,這個ROM可以被關閉,以存盤開機碼的64K RAM來代替它的作業,
聲音數字信號處理器(Sound DSP)只能播放壓縮的聲音采樣,這種使用一固定比率的壓縮演算法,可以將16個16位聲音采樣壓縮成8位元組加一位元組標題的形式,一個采樣的最小單位是一個區塊,區塊的標題位元組包含一個移位和一個過濾值(演算法解壓資訊),再加上一個最后區塊標記和一個回圈標記,回圈標記僅僅在最后區塊標記存在時才使用,
在同一時間內,最多允許有8個聲音通道同時播放聲音采樣,每個聲音通道都有單獨的左右聲道音量和頻率的調節,每個通道都可以定義一個硬體音量調節,并各自設定其回聲效果,不過復合的回聲效果必須受制于一個8路的FIR聲音分流器,一個通道的聲音輸出可以用來調整在數字序列上的下一個聲音通道的頻率,DSP也有一個白噪音源,可以播放一個替代采樣資料的聲音通道,所有的8個音源連同回聲資料最后都混合到一個雙通道的主音量控制下,DSP有3個間隔定事器,頭兩個運行在8KHz下,最后一個是64KHz,游戲通常只使用三個中的一個來輸出一個恒定的音樂回放頻率,
順便一提SNES的聲音處理芯片SPC700是PS之父久多良木負責設計的,所以說索尼大法好可不是白叫的,
聲優芯片和整機總線如下圖所示:
擴展芯片
數字信號處理器
SNES 的 S-DSP (數字信號處理器)用于向揚聲器輸出資料,產生的聲音以 32 KHz 運行,S-DSP 使用位元率降低將所需的大小減少到原始大小的 9/16,S-DSP 是「自帶鬼畜」,你輸入一個PCM格式的音源進去,比如把F♂A樂器輸入進去,然后往sound chip的暫存器里寫入你要的包絡,音調之類的,sound chip上的協處理器就會幫你處理輸出,其實就和做音樂用的合成器播放軟音源差不多,
DSP-1
DSP-1是一種主要用于數學和偽 3D 投影的芯片,這通常使用model 7,這是其中最常用的芯片,它也適用于 2D 旋轉等,
SA-1
SA-1是 CPU 的更快版本,但在訪問方面存在一些差異,它帶有“I-RAM”和“BW-RAM”,它通常以大約 11 MHz 的速度運行,當訪問與 CPU 相同的東西時,它的速度為 5 MHz,
GSU
GSU是著名的 SuperFX 芯片的技術名稱,GSU 可用于繪制顏色,它在很多方面都比 SNES 的 CPU 更強大,它是一個偽RISC,它可用于繪制許多事物,例如精靈和物件的旋轉或制作偽 3D 效果,
CX4是 Capcom 使用的芯片,它在三角和圖形方面非常強大,它可以繪制線條、波浪和 3D 線框,旋轉精靈并進行三角計算等,應用到的游戲包括:洛克人X2,洛克人X3 等卡普空街機移植作品,
SDD-1
資料解壓芯片,解壓使用 ASIC 無算壓縮演算法壓制的資料,它活躍在 SFC 主 CPU 和 ROM之間,負責透明實時資料解壓作業,針對一些資源太大的游戲,為了節省卡帶空間成本而引入了該芯片,使用游戲包括:星之海洋,街霸 Alpha 2 等,
SNES FPGA實作
硬體
還是GameGirl硬體
開源地址:
https://github.com/suisuisi/gamegirl/tree/master/Hardware
FPGA程式
上面的CPU和SPC700都已經介紹過了,
chip檔案夾下還有上面介紹的芯片,組成芯片組:
開源地址:
https://github.com/suisuisi/gamegirl/tree/master/CoreCPU/SNES
使用方法:
將編譯產生的.rbf檔案拷貝到SD卡的根目錄:
產生的二進制檔案在下面路徑:
https://github.com/suisuisi/gamegirl/tree/master/Binaries/cores/snes
然后將游戲同步放到SD卡里,通過OSD就可以選擇游戲,注意游戲啟動及中間過渡階段會有黑屏,所以需要等待,,,
視頻
時間倉促還沒來得及拍視頻,后續補上,

NOW現在行動!

學習Xilinx FPGA最好的資料其實就是官方手冊,下表總結了部分手冊的主要介紹內容,關注我,持續更新中......
| 檔案名 | 主標題 | 內容簡單介紹 | 是否有中文版 | |
| UG476 | 7 Series FPGAs GTX/GTH Transceivers | GTX和GTH介紹,PCIe、serdes等學習必備 | 否 | |
| UG471 | 7 Series FPGAs SelectIO Resources | 描述 7 系列 FPGA 中可用的 SelectIO資源, | 否 | |
| UG1114 | PetaLinux Tools Documentaton | PetaLinux 工具檔案 參考指南 | 是,V2019.2 | |
| UG949 | UltraFAST 設計方法指南(適用于 Vivado Design Suite) | 賽靈思? UltraFast? 設計方法是用于為當今器件優化設計行程的一套最佳實踐,這些設計的規模與復雜性需要執行特定的步驟與設計任務,從而確保設計每一個階段的成功開展,依照這些步驟,并遵循最佳實踐,將幫助您以最快的速度和最高的效率實作期望的設計目標 | 是,V2018.1 | |
| IP手冊 | pg057 | FIFO Generator | FIFO生成器IP使用手冊 | 否 |
| pg104 | Complex Multiplier | 復數乘法器IP使用手冊 | 否 | |
| pg122 | RAM-Based Shift Register | 移位暫存器IP使用手冊 | 否 |

推薦閱讀
【Vivado那些事】如何查找官網例程及如何使用官網例程
【Vivado使用誤區與進階】總結篇
【Vivado那些事】Vivado中常用的快捷鍵(二)其他常用快捷鍵
SystemVerilog數字系統設計_夏宇聞 PDF
圖書推薦|ARM Cortex-M0 全可編程SoC原理及實作
簡談:如何學習FPGA
Github 上有哪些優秀的 VHDL/Verilog/FPGA 專案
AD936x+ZYNQ搭建收音機(一)
AD936x+ZYNQ搭建OpenWIFI
無招勝有招-Vivado非工程模式下的詳細設計
面試中經常會遇到的FPGA基本概念,你會幾個?
推薦一些可以獲取免費的國外的原版書籍(電子版)網站
FPGA 的重構
淺析FPGA區域動態可重構技術
ISP(影像信號處理)演算法概述、作業原理、架構、處理流程
國產CPU概括
從電子游戲歷史看IC發展的助推劑
80年代電子游戲及電腦游戲的發展歷史
PCIe總線的基礎知識
萬字長文帶你回顧電子游戲的七十多年歷史(完整版)
FPGA中異步復位,同步釋放的理解
OpenFPGA系列文章總結
用Verilog設計一個16 位 RISC 處理器
介紹一些新手入門FPGA的優秀網站(新增)
Verilog數字系統基礎設計-CR
Verilog數字系統基礎設計-奇偶校驗
建立和保持時間及時序簡單理解
(Xilinx)FPGA中LVDS差分高速傳輸的實作
Xilinx Multiboot實體演示
高速串行通信常用的編碼方式-8b/10b編碼/解碼
Verilog計時(微秒、毫秒和秒)脈沖的產生及同步整形電路
再說System Verilog 與 Verilog 的關系
圖書推薦|一本影像/視頻處理的強大工具書
Verilog HDL-同步技術
再說System Verilog 與 Verilog 的關系
數模混合信號建模語言Verilog-AMS
Intel/Altera 系列FPGA簡介
一塊帶給無數人年少歡樂的CPU,別說你沒用過它
Verilog在撰寫第一行代碼之前
【例說】Verilog HDL 編譯器指令,你見過幾個?
穿越時空的愛戀-Z80 CPU的前世今生
【Vivado】那些事兒-匯總篇
古老CPU啟示錄-晶體管之路
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/312221.html
標籤:其他
上一篇:【Unity3D 靈巧小知識點】?? | Unity控制臺 輸出列印不同顏色的字體
下一篇:猜數游戲
