[an error occurred while processing this directive]
|
1) Примитив это тот-же модуль, но просто со встроенным внутрь синтезатора описанием. Я не вижу разницы между примитивом и модулем. Написав свой модуль "MY_NODE" в котором IN=OUT, я получу точнейший аналог "NODE". И после синтеза очень многих модулей и их частей в их оригинальном виде тоже нет, это естественно. А вот серьезнейшая разница именно в методе прицепления портов.
Вот для примера:
my_count[7..0]:MY_SPECIAL_FF;
my_count[].clk = clk;
my_count.ena = enable;
my_count[].inverse_out = (my_count[]==H"28");
my_count[].din = my_count[]+1;
А на верилоге придется встроить генерейтом 8 модулей, задать всем порты, и описать все данные подключения отдельно. Опять нет разницы?
2) А вот defaults и if/case вне always - чтобы не писать немеренной длины assign'ы из операторов "?:". И не думать про "latch inference" если строишь процессы с always (@*).
E-mail: info@telesys.ru