Переход на SV в Implementation Steps

This commit is contained in:
Andrei Solodovnikov
2023-09-15 11:18:14 +03:00
parent 0aa0130d6b
commit 3c4ddfccbc

View File

@@ -12,22 +12,22 @@
## Elaboration ## Elaboration
На шаге **элаборации**, САПР строит цифровую схему по её **HDL**-описанию. Построенная схема не привязана к конкретной ПЛИС и использует абстрактные элементы: логические вентили, мультиплексоры, элементы памяти и т.п. На шаге **элаборации**, САПР строит цифровую схему по её **HDL**-описанию. Построенная схема не привязана к конкретной ПЛИС и использует абстрактные элементы: логические вентили, мультиплексоры, элементы памяти и т.п.
На самом деле САПР генерирует не схему (картинку, схематик), а так называемый **нетлист**. **Нетлист** — это представление цифровой схемы в виде **графа**, где каждый элемент схемы является **узлом**, а **цепи**, соединяющие эти элементы являются ребрами. **Нетлист** может храниться как в виде каких-то внутренних файлов САПР-а (в случае **нетлиста** для этапа **элаборации**), так и в виде **HDL**-файла, описывающего экземпляры примитивов) и связи между ними. Рассмотрим этап **элаборации** и термин **нетлиста** на примере. На самом деле САПР генерирует не схему (картинку, схематик), а так называемый **нетлист**. **Нетлист** — это представление цифровой схемы в виде **графа**, где каждый элемент схемы является **узлом**, а **цепи**, соединяющие эти элементы являются ребрами. **Нетлист** может храниться как в виде каких-то внутренних файлов САПР-а (в случае **нетлиста** для этапа **элаборации**), так и в виде **HDL**-файла, описывающего экземпляры примитивов и связи между ними. Рассмотрим этап **элаборации** и термин **нетлиста** на примере.
Допустим, мы хотим реализовать следующую цифровую схему: Допустим, мы хотим реализовать следующую цифровую схему:
![../.pic/Vivado%20Basics/Implementation%20steps/impl_steps_ref_scheme.drawio.png](../.pic/Vivado%20Basics/Implementation%20steps/impl_steps_ref_scheme.drawio.png) ![../.pic/Vivado%20Basics/Implementation%20steps/impl_steps_ref_scheme.drawio.png](../.pic/Vivado%20Basics/Implementation%20steps/impl_steps_ref_scheme.drawio.png)
Её можно описать следующим **Verilog**-кодом: Её можно описать следующим **SystemVerilog**-кодом:
```Verilog ```SystemVerilog
module sample( module sample(
input a, b, c, d, sel, input logic a, b, c, d, sel,
output res output logic res
); );
wire ab = a & b; logic ab = a & b;
wire xabc = ab ^ c; logic xabc = ab ^ c;
assign res = sel? d : xabc; assign res = sel? d : xabc;