Маленькая законченная программа
Вы узнаете
Как части этого курса складываются в одну спеку, которая становится схемой.
В спеке урока есть строка module, константа ширины, тестовые значения и on_comb — функция двух входов u8. gen-verilog превращает её в модуль, у которого порты — такт, сброс и разрешение, два 8-битных входа a и b, выход ready и 8-битный выход result. Строка assign задаёт result из on_comb, так что сама сумма не ждёт фронта такта. Тесты проверяют примеры сумм как константы; прогон на сайте не вызывает on_comb, так что проверка самой схемы остаётся симулятору.
Попробуйте
Откройте вкладку verilog спеки урока в плеере и найдите строки input, output и assign.

An 8-bit adder written in t27, with the Verilog ports and assign line the real compiler wrote for it. Lesson 26 of the t27 basics course.
specs/basics/26_a_small_program.t27
// SPDX-License-Identifier: Apache-2.0
; t27 basics, lesson 26: A small complete program.
; An 8-bit adder in t27, its tests, and the Verilog ports t27c writes for it.
module basics_26_a_small_program;
pub const WIDTH : u8 = 8;
pub const A_EXAMPLE : u8 = 100;
pub const B_EXAMPLE : u8 = 55;
pub const SUM_EXAMPLE : u8 = 155;
fn on_comb(a: u8, b: u8) -> u8 {
return a + b;
}
test the_example_sum_fits_in_a_byte {
assert A_EXAMPLE + B_EXAMPLE == SUM_EXAMPLE;
assert SUM_EXAMPLE <= 255;
}
Все уроки
Модуль 1 · Файл спеки
Что лежит в файле .t27: строка module, строки прозы и комментарии.
Модуль 2 · Значения и типы
Константы, ширина целого числа, а также true, false и текст.
Модуль 3 · Массивы, триты и выражения
Списки значений, три значения трита и что вычисляют операторы.
Модуль 4 · Тесты и функции
Блок test, несколько маленьких тестов в одной спеке и функция с типизированными входами.
Модуль 5 · Внутри функции
Имена через let и var, выбор через if и switch и циклы.
Модуль 6 · Видимость и свои типы
Что pub открывает другим модулям, и структуры и перечисления, которые вы объявляете.
Модуль 7 · Модули, правила и gen-ts
Чтение другого модуля, правило, которое выполняется всегда, и спека, превращённая в TypeScript.
Модуль 8 · Компилятор и tri
Бэкенды, которые пишет t27c, стадии, в которых он читает спеку, и команда tri.
Модуль 9 · Ошибки, программа и что дальше
Как читать ошибку компилятора, одна маленькая законченная программа и какой курс пройти дальше.