Skip to content

Course 1 (FPGA): remove overlap with Course 0 and give every lesson a hardware spec #1478

Open

Description

@gHashTag

Parent epic: #1476

apps/website/specs/course/course.t27 (Course 1, FPGA) predates Course 0 (t27-basics). Two defects follow.

1. Overlap with Course 0

Course 1 lesson Already taught in Course 0
hello-t27, tests-are-the-spec, compiles-is-not-correct (module program) modules a-spec-file, tests-and-functions
compiler-stages, seven-backends-and-t27b (module compiler) lessons 22-23 (seven backends, stages of t27c) in the-compiler-and-tri

Proposal: make Course 0 a stated prerequisite and replace modules program and compiler with hardware content, for example:

  • rtl-thinking: combinational vs sequential, registers, enable/reset (spec ternary/clocked_counter.t27, fpga/stdlib.t27)
  • from-spec-to-netlist: gen-verilog output read line by line, then yosys stats (spec fpga/hir.t27)

2. Lesson specs that do not match the lesson

LESSON_SPECS points hardware lessons at generic tutorial files:

Lesson Current spec Proposed spec
bits-and-trits tutorial/01_values_and_types ternary/packed_trit.t27
what-arithmetic-costs tutorial/05_widths_and_casts ternary/hybrid_arithmetic.t27 or fpga/mac.t27
hello-t27 tutorial/02_functions (module replaced, see above)
tests-are-the-spec tutorial/07_tests_invariants_benches (module replaced)
compiles-is-not-correct tutorial/03_operators (module replaced)
compiler-stages tutorial/06_structs_enums_switch (module replaced)
seven-backends-and-t27b tutorial/08_modules_and_arrays (module replaced)
count-the-cells tutorial/04_control_flow ternary/ternary_full_adder.t27 with a yosys stat
state-machines fpga/dft.t27 an FSM spec (fpga/uart.t27 RX FSM)
timing-slack fpga/cts.t27 fpga/timing.t27
a-build-receipt fpga/adapter.t27 tools/trios/tri/x7-bench.t27

3. Forward links

Course 1 lessons should link forward to the deeper hardware courses in this epic (clocks-and-cdc, open-toolchain, verify-hardware) instead of growing.

Acceptance

  • No Course 1 lesson repeats a Course 0 lesson; Course 0 named as prerequisite on the course page.
  • Every Course 1 LESSON_SPECS entry is a hardware spec whose topic matches the lesson title.
  • RU contract (course-ru.t27) updated in the same PR; share cards and SEO pages regenerated; blog post EN + RU.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions