mirror of
https://github.com/MPSU/APS.git
synced 2025-09-15 17:20:10 +00:00
Переход на SV в Implementation Steps
This commit is contained in:
@@ -12,22 +12,22 @@
|
|||||||
## Elaboration
|
## Elaboration
|
||||||
|
|
||||||
На шаге **элаборации**, САПР строит цифровую схему по её **HDL**-описанию. Построенная схема не привязана к конкретной ПЛИС и использует абстрактные элементы: логические вентили, мультиплексоры, элементы памяти и т.п.
|
На шаге **элаборации**, САПР строит цифровую схему по её **HDL**-описанию. Построенная схема не привязана к конкретной ПЛИС и использует абстрактные элементы: логические вентили, мультиплексоры, элементы памяти и т.п.
|
||||||
На самом деле САПР генерирует не схему (картинку, схематик), а так называемый **нетлист**. **Нетлист** — это представление цифровой схемы в виде **графа**, где каждый элемент схемы является **узлом**, а **цепи**, соединяющие эти элементы являются ребрами. **Нетлист** может храниться как в виде каких-то внутренних файлов САПР-а (в случае **нетлиста** для этапа **элаборации**), так и в виде **HDL**-файла, описывающего экземпляры примитивов) и связи между ними. Рассмотрим этап **элаборации** и термин **нетлиста** на примере.
|
На самом деле САПР генерирует не схему (картинку, схематик), а так называемый **нетлист**. **Нетлист** — это представление цифровой схемы в виде **графа**, где каждый элемент схемы является **узлом**, а **цепи**, соединяющие эти элементы являются ребрами. **Нетлист** может храниться как в виде каких-то внутренних файлов САПР-а (в случае **нетлиста** для этапа **элаборации**), так и в виде **HDL**-файла, описывающего экземпляры примитивов и связи между ними. Рассмотрим этап **элаборации** и термин **нетлиста** на примере.
|
||||||
|
|
||||||
Допустим, мы хотим реализовать следующую цифровую схему:
|
Допустим, мы хотим реализовать следующую цифровую схему:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Её можно описать следующим **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;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user