CircuitVerse 專案

本頁針對 Google 系列文件接受的技術撰寫專案提供詳細資料。

專案摘要

開放原始碼機構:
CircuitVerse
技術文件撰寫者:
dvls
專案名稱:
CircuitVerse 互動式書籍整合及改善功能
專案長度:
標準長度 (3 個月)

Project description

1 摘要

CircuitVerse 是一項開放原始碼專案,旨在提供可透過網頁式圖形使用者介面設計及模擬電路的平台。邏輯模擬工具可用於設計以完成 CPU 實作,但這項工具主要用於教育用途。除了軟體的技術說明文件以外,線上互動式書籍也能引導使用者學習數位邏輯設計。使用者可以透過書籍直接在書籍中試用電路,以獲得互動體驗。

該書籍仍處於早期開發階段,目前缺少一些相關章節,一般結構是鬆散的流程,以便連結不同章節,需要更詳細的內容。此外,根據機構的資料,我們沒有準則可協助協作者進行專案協作,也沒有計畫或發展藍圖來引導他們做出需要以及決定優先等級的內容。

本提案的目標是與導師合作制定貢獻指南、制定主題開發計畫,並協助改善現有內容,以及根據開發計畫建立新內容。

2 互動式圖書的現況

這項專案是在 2019 年 Google 夏季推出,在學生社群的協助下,成功展現出「非管理的成長」。專案組織本身主要由開發人員組成,因此委託 GSoD 尋求外部協助,以便改善互動式圖書。專案的開發人員已經發現,書籍目前需要重新撰寫部分章節、加入新內容,並提供更完整詳盡的資訊。此外,在 GSoD 結束後,該團隊還希望可以製定新的貢獻準則,以及製定內容開發的一般「主要計畫」。

3 提案的貢獻

本提案將與共同建立首版的貢獻指南,目標是確保協作者的協作流程更順暢,進而產生更一致的內容。畫面上也會列出書籍主題的發展計畫。在新版開發計畫中,最緊急新增和調整的服務也會貢獻一己之力。

4 可用替代方案分析

我們已為許多類似的開放原始碼專案製定貢獻指南,包括維基科 ([Help:Contributing]、[Wikibooks:Policies and guidelines])、OpenStreetMap ([組織編輯規範]) 或 Linux 說明文件專案 ([LDP 撰寫指南])。這些範例可用於根據成功的開放原始碼專案經驗,建構專案的指南。

針對主題的開發計畫,您可以比較開放式課程 (例如 [MIT Open Courseware]) 以及數位邏輯電路的參考書籍,包括 [[電子電線課程] -- Volume IV -Digital、Wikibooks: Digital Circuits] 和 [Wikibooks: Digital Circuits]

[說明:捐款] https://en.wikibooks.org/wiki/Help:協助貢獻

[Wikibooks:政策與規範] https://en.wikibooks.org/wiki/Wikibooks:Policies_and_guidelines

[修訂版編輯指南] https://wiki.osmfoundation.org/wiki/Organized_Editing_Guidelines

[LDP 作者指南] https://www.tldp.org/LDP/LDP-Author-Guide/html/index.html

[MIT Open Courseware] https://ocw.mit.edu/

[電路課程 -- Volume IV -Digital] https://www.ibiblio.org/kuphaldt/electricCircuits/Digital/index.html

[Wikibooks: Digital Circuits] https://en.wikibooks.org/wiki/Digital_Circuits

[Wikibooks:數位電子產品] https://en.wikibooks.org/wiki/Digital_Electronics

建議說明文件的 5 個結構

互動式書籍可能非常適合一般大眾,包括業餘電子業餘愛好者、中等教育學生,以及需要複習或精進數位邏輯電路的高等教育學生和專業人士。

為瞭解決書籍使用者的異質性,我們提議採用「多層」結構,每個圖層對應著內容越複雜且理論深度提升。

因此,說明文件的結構分為兩個維度來擴大,第一個維度對應數位邏輯系統中的邏輯或傳統主題序列,第二個維度則代表層級。

以下結構化清單表示建議的二維結構。標準主題序列顯示在最頂層。為求簡單起見,每個主題只定義了三個複雜度,並對應至基本、中、進階和進階級別。每個層級都會列出與特定一般主題相關的內容。

  • 使用二元數表示:
    • 基本等級:二進位數字、負數量、其他底數、編碼。
    • 中等層級:[無特定內容]
    • 進階等級:模組和環
  • 使用二進位數字的數學運算:
    • 基本層級:加法、減法、乘法、除法
    • 中層級:布林代數、布林函式
    • 進階層級:其他代數、Shannon 分解
  • 組合 SSI 元件:
    • 基本層級:符號、邏輯閘、真理表格
    • 中階:邏輯系列、通用大門
    • 進階層級:時間行為 (時間模型、危險)
  • 組合邏輯設計:
    • 基本層級:功能說明、導入
    • 中階:標準函式、k-Maps
    • 進階等級:地圖輸入的變數、Qune McCluskey、二進位立方體表示法
  • 組合 MSI 元件:
    • 基本等級:MUX、DEMUX、編碼器、解碼器、半附加器、完整附加器
    • 中等層級:以 MUX 為基礎的函式
    • 進階等級:[無特定內容]
  • 組合 LSI 元件:
    • 基本等級:ROM、ALU
    • 中階:PLD (PLA、PAL、GAL)
    • 進階等級:[無特定內容]
  • 依序 SSI 元件:
    • 基本等級:閂鎖、夾腳拖、時鐘信號、時間圖表
    • 中階:記憶體回饋、同步系統、非同步系統
    • 進階等級:[無特定內容]
  • 依序 MSI 元件:
    • 基本層級:註冊、計數器
    • 中等層級:[無特定內容]
    • 進階等級:[無特定內容]
  • 質感設計:

    • 基本等級:[無特定內容]
    • 中階:依序合成、FSM (Mealy、Moore)、狀態圖表、狀態最小化原則、狀態分派、競爭狀況
    • 進階等級:以 MSI 為基礎的設計、以 LSI 為基礎的設計、流程圖、MDS 圖表

    基本等級應可讓使用者瞭解數位邏輯電路的運作方式及使用方法,而不必瞭解較高階的數學。因此,這些專案可能適合業餘業餘愛好者和中學學生。如果這些使用者擁有必要技能,且想要更深入地瞭解,他們可以處理中型層級的部分或所有內容。

    中階課程的內容和要求應與數位邏輯系統中的高等教育級別入門課程相等。

    最後,進階級別包含相關內容,通常可提供給大專院校數位系統的輔助或選用進階課程。

    我們會在專案早期階段 (第 3 週) 與導師討論這個建議的架構,之後會做為輸入內容,概略說明長期主題開發計畫。

    建議的結構可以使用大部分 (或全部) 說明文件目前的內容,並視需要修訂或修正。而且,針對現有說明文件尚未涵蓋的內容,將會建立新區段。

6 個目標

  1. 為互動式書籍專案製作首次捐款指南草稿。
  2. 概述書籍主題的發展。
  3. 改寫及重新建構目前內容。
  4. 根據開發計畫建立新內容。

7 項時程

第 1 週 (9 月 14 日至 9 月 20 日) 根據其他專案的例子,以及專案目前為止取得的經驗,分析並與導師討論最佳準則。第 2 週:(9 月 21 日至 9 月 27 日) 撰寫指南草稿 第 3 週 (9 月 28 日至 10 月 4 日) 與導師討論主題開發計畫的草稿。第 4 週:(10 月 5 日 - 10 月 11 日) 撰寫開發計畫。第 5 至 11 週:(10 月 12 日至 11 月 29 日) 撰寫貢獻內容,包括重組內容和新主題。第 12 週:(11 月 30 日 - 12 月 5 日) 提交專案報告。 專案評估:(12 月 3 日 - 12 月 10 日) - 技術文件撰寫者的評估結果。- 導師的評量提交內容。

8 《Why the CircuitVerse Interactive Book》(為什麼 CircuitVerse 互動式書籍)

受到 COVID-19 全球疫情的影響,我開始尋找線上資源,協助大學生瞭解數位邏輯系統。我多年來一直提倡自由自由開放的開放原始碼技術,因此在這類專案中優先要務。我找到 CircuitVerse 模擬器,並認為這項工具是補足大學 COVID-19 防疫措施所缺乏的實驗室活動。測試模擬器時,我發現了他們的互動式書籍,雖然內容不足以做為完整數位邏輯系統課程的主要參考,但其目前內容正確且易於理解,因此我將這些內容納入學習資源中。

我當時很早就使用模擬器,並密切預約了我,因此機構與我討論 GSoD 的事宜。我看見這個機會,可以直接透過我的專業領域,直接支持這項專案。

9 項參考資料

  • [Wikibooks Help:捐款],
  • [Wikibooks:政策與規範]
  • [OpenStreetMap 組織編輯指南]
  • [Linux 說明文件專案 (LDP) 作者指南]
  • [MIT Open Courseware Introductionctory Digital Systems Laboratory 課程]
  • [電路課程 -- 第 IV - 數位]
  • [Wikibooks: Digital Circuits]
  • [食譜:數位電子產品]
  • [Linux 手冊專案]

    [Wikibooks Help:捐款] https://en.wikibooks.org/wiki/Help:協助貢獻

    [Wikibooks:政策與規範] https://en.wikibooks.org/wiki/Wikibooks:Policies_and_guidelines

    [OpenStreetMap 組織的編輯指南] https://wiki.osmfoundation.org/wiki/Organized_Editing_Guidelines

    [Linux 說明文件專案 (LDP) 作者指南] https://www.tldp.org/LDP/LDP-Author-Guide/html/index.html

    [MIT Open Courseware Introductory Digital Systems Laboratory Digital Systems Laboratory] https://ocw.mit.edu/courses/electrical- Engineeringing-and-computer-science/6-111-introductory-digital-systems-laboratory-spring-2006/syllabus/

    [電路課程 -- Volume IV -Digital] https://www.ibiblio.org/kuphaldt/electricCircuits/Digital/index.html

    [Wikibooks: Digital Circuits] https://en.wikibooks.org/wiki/Digital_Circuits

    [Wikibooks:數位電子產品] https://en.wikibooks.org/wiki/Digital_Electronics

    [Linux Brochure Project] http://lbproject.sourceforge.net/