CircuitVerse 项目

本页面包含 Google 文档季接受的技术写作项目的详细信息。

项目摘要

开源组织:
CircuitVerse
技术文档工程师:
dvls
项目名称:
CircuitVerse 交互式图书整合和改进
项目时长:
标准时长(3 个月)

Project description

1 摘要

CircuitVerse 是一个开源项目,旨在提供一个平台,供用户使用基于 Web 的图形界面设计和模拟电路。逻辑模拟器可用于设计完整的 CPU 实现,但主要用于教育用途。除了软件的技术文档之外,还有一本在线互动图书可引导用户学习数字逻辑设计。借助这本图书,用户可以直接在图书中试用电路,获得互动体验。

本书目前处于开发的早期阶段,缺少一些相关部分,在连接不同部分的流程方面,总体结构较为松散,并且需要提供更详细的内容。此外,该组织表示,他们没有指南来帮助贡献者协作完成项目,也没有计划或路线图来指导贡献者确定需要哪些内容以及优先级。

此提案旨在与导师合作,制定贡献准则、制定主题发展计划、为改进当前内容做贡献,以及根据发展计划创建新内容。

2 互动式图书的现状

自 2019 年 Google 夏季编程活动启动以来,该项目在学生社区的帮助下,呈现出了“无人管理的增长”趋势。项目组织本身主要由开发者组成,因此他们参加了 GSoD,希望寻求外部帮助来改进互动图书。该项目的开发者发现,该图书目前需要重写部分内容、添加新内容,并使其更详细、更全面。此外,该团队希望在 GSoD 之后,制定有关新贡献的准则,以及内容开发的一般“总体规划”。

3 此提案的贡献

此提案将有助于共同制定首个版本的贡献指南,旨在确保为贡献者提供更协调的协作流程,从而提供更一致的内容。还将概述图书主题的开发计划。我们还会根据新开发计划提供最紧急的新增内容和更改。

4 分析可用替代方案

一些具有类似特征的成熟开源项目已经制定了文档贡献指南,例如 Wikibooks([帮助:贡献]、[Wikibooks:政策和指南])、OpenStreetMap([有组织的编辑指南])或 Linux 文档项目 ([LDP 作者指南])。这些示例可用于根据成功的开源项目的经验制定项目准则。

对于该主题的开发计划,您可以比较公开课程(例如 [MIT Open Courseware])的课程大纲,以及有关数字逻辑电路的参考书,包括 [Lessons In Electric Circuits -- Volume IV -Digital]、[Wikibooks: Digital Circuits] 和 [Wikibooks: Digital Electronics] 等公开图书。

[Help:Contributing] https://zh.wikibooks.org/wiki/Help:资助

[Wikibooks:政策和准则] https://en.wikibooks.org/wiki/Wikibooks:Policies_and_guidelines

[有组织的编辑指南] https://wiki.osmfoundation.org/wiki/Organised_Editing_Guidelines

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

[麻省理工学院开放课程] https://ocw.mit.edu/

[电路教程 - 第 4 卷 - 数字版] 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 拟议文档的结构

这本互动式图书有望为广大读者提供帮助,包括业余电子爱好者、中等教育学生、高等教育学生,以及需要更新或强化数字逻辑电路技能的专业人士。

为了解决图书用户的异质性问题,我们提出了“多层”结构,其中每一层都对应着内容的复杂性和理论深度的逐渐增加。

因此,文档的结构在两个维度上增长,第一个维度对应于数字逻辑系统中的逻辑或传统主题顺序,而第二个维度则代表级别。

以下结构化列表展示了建议的二维结构。标准主题序列显示在顶级。为简单起见,我们仅为每个主题定义了三层复杂度,分别对应于基本、中等和高级。对于每个级别,系统都会列出与特定一般主题相关的内容。

  • 使用二元数表示:
    • 基础级:二进制数、负数、其他进制、编码。
    • 中等水平:[无具体内容]
    • 高级级别:模块和环
  • 二进制数的数学运算:
    • 基础级别:加法、减法、乘法、除法
    • 中级:布尔代数、布尔函数
    • 高级:其他代数、香农分解
  • 组合 SSI 组件:
    • 基础级:符号、逻辑门、真值表
    • 中级:逻辑族、通用门
    • 高级:时间行为(时序模型、危险)
  • 组合逻辑设计:
    • 基本级别:功能说明、实现
    • 中级:规范函数、k-Maps
    • 高级级别:映射输入的变量、Quine 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 为什么选择 CircuitVerse 互动式图书

由于新冠全球危机,我开始寻找在线资源,以帮助我讲授数字逻辑系统本科课程的学生。我已经倡导 Free-Libre 开源技术几十年了,因此我会优先考虑这类项目。我发现了 CircuitVerse 模拟器,并认为它非常适合用来弥补我们大学因新冠防控措施而无法开展实验活动的缺憾。在测试该模拟器时,我还发现了他们的互动式图书。虽然其内容还不足以作为一门完整的数字逻辑系统课程的主要参考资料,但其当前内容正确且易于理解,因此我将其添加到了学习资源中。

由于我非常用心地使用他们的模拟器和教材,该组织联系了我,向我介绍了 GSoD。我认为这是一次机会,可以直接利用我的专业知识为该项目做出贡献。

9 个参考文献

  • [Wikibooks Help:Contributing],
  • [维基百科:政策和准则]
  • [OpenStreetMap 有组织的编辑指南]
  • [Linux 文档项目 (LDP) 作者指南]
  • [麻省理工学院打开课程软件入门数字系统实验室大纲]
  • [Lessons In Electric Circuits -- Volume IV -Digital]
  • [Wikibooks:数字电路]
  • [维基书:数字电子产品]
  • [Linux 宣传册项目]

    [Wikibooks 帮助:贡献] https://en.wikibooks.org/wiki/Help:Contributing

    [Wikibooks:政策和准则] https://zh.wikibooks.org/wiki/Wikibooks:Policies_and_guidelines

    [OpenStreetMap 有组织的修改准则] https://wiki.osmfoundation.org/wiki/Organified_Editing_Guidelines

    [Linux 文档项目 (LDP) 作者指南] https://www.tldp.org/LDP/LDP-Author-Guide/html/index.html

    [MIT 开放式课程“数字系统入门实验”课程大纲] https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-111-introductory-digital-systems-laboratory-spring-2006/syllabus/

    [电路教程 - 第 4 卷 - 数字版] https://www.ibiblio.org/kuphaldt/electricCircuits/Digital/index.html

    [Wikibooks:数字电路] https://zh.wikibooks.org/wiki/Digital_Circuits

    [Wikibooks:数字电子学] https://en.wikibooks.org/wiki/Digital_Electronics

    [Linux 宣传册项目] http://lbproject.sourceforge.net/