PDA

Просмотр полной версии : Выбор языка описания электронных схем (Verilog, VHDL и другие)



zebest
01.03.2021, 08:17
Сообщение от forth32
надо знать язык Verilog
VHDL - наше всё
только прошу не на SV, ибо ISE его не переваривает, а переводить с корейского на кетайский и без словаря, используйя в качестве промежуточного - старославянский - то еще занятие :(((

Hunta
01.03.2021, 09:52
ISE
Это что то от Xilinx?

AlexG
01.03.2021, 10:15
это ide для плис "старшых" поколений. до 7-го семейства. вивадо/витис это для современных плис xilnx/
ps: лично мне "SV-фломастеры" больше нравятся (но не стоит углубляться в тему "что лучше").

Hunta
01.03.2021, 10:21
это ide для плис "старшых" поколений
Угу, значит правильно понял.


не стоит углубляться в тему "что лучше"
Ну, я давно понял, что лучше то, что лучше знаешь. Поскольку начал с VHDL, на нём пока и ваяю. Verilog более менее читаю и могу переделать на VHDL, но писать с нуля не пробовал. Ну а System Verilog (если он имелся ввиду) - не пробовал. Вроде как он специфичен для Altera?

AlexG
01.03.2021, 10:29
SV - ни разу не специфичен. Это грубо говоря "работа над ошибками" в verilog-e

Hunta
01.03.2021, 10:38
ни разу не специфичен.
Но тем не менее

ISE его не переваривает

AlexG
01.03.2021, 11:12
Не специфичен - потому что не привязан к конкретному виду железа.
Вот AHDL - да, специфика от альтеры.
а ise не переваривает - потому что vhdl более "древний" язык, чем SV. И реализацию SV по хорошему начали в виваде.
PS: есть смутное ощущение что PlanAhead из ISE 14.7 может SV в том или ином виде. но проверить оное у меня не получится по быстрому.

zebest
01.03.2021, 11:34
есть смутное ощущение что PlanAhead из ISE 14.7 может SV в том или ином виде.
PlanAhead не пробовал, но если бы заработало - было бы неплохо, ибо мне пришлось несколько модулей с SV кое-как переделать под Verilog, а вот насколько верно - это я вообще ни разу не уверен, как то работает - и то хлеб :((
В основном массивы данных на SV делают, мне сложно их "разворачивать" вобратно...

Hunta
01.03.2021, 13:09
Вот AHDL - да, специфика от альтеры.
О, блин, вот я с кем перепутал :)

zebest
01.03.2021, 13:17
Ну и чтобы не со всемъ голым словно - скрин

https://s.micp.ru/9RMpw.png

Слева три строКи на SV, справа, оно же, но как то работающее в V - 333 строки
За точность перевода поручиЦЦа ну никак не могу.

krotan
01.03.2021, 13:26
Чтобы что-то советовать, надо знать задачи, которые вы собрались решать.
К примеру, на VHDL можно описывать аналоговую электронику, а на Verilog только цифровую...

AlexG
01.03.2021, 14:28
Верно. Однако применительно к "чисто" цифровым fpga аналоговые возможности vhdl совсем не нужны. Посему этот "плюс" бесполезен. В отличие от "плюса" SV в виде продвинутых тестбенчей (это конечно, если осилить сию методику).

hobot
02.03.2021, 10:24
Ребята, повторю свой вопрос (ссылка на пост https://zx-pk.ru/threads/23978-tsifrovaya-arkheologiya-1801-i-vse-vse-vse.html?p=1106160&viewfull=1#post1106160) для ваших мнений что бы услышать?

Hunta
02.03.2021, 12:47
Ребята, повторю свой вопрос
Пиши на VHDL

Mor-Da
02.03.2021, 20:17
Секта выбирает Verilog.

mastermind
03.03.2021, 05:33
Посмотрите еще Clash: https://clash-lang.org/

Clash is a functional hardware description language that borrows both its syntax and semantics from the functional programming language Haskell. It provides a familiar structural design approach to both combinational and synchronous sequential circuits. The Clash compiler transforms these high-level descriptions to low-level synthesizable VHDL, Verilog, or SystemVerilog.

Sandro
03.03.2021, 13:15
Не специфичен - потому что не привязан к конкретному виду железа.
Вот AHDL - да, специфика от альтеры.


Неа. В девичестве он -- ABEL, но поскольку IBM зажала права на название, то пришлось переименовать.



а ise не переваривает - потому что vhdl более "древний" язык, чем SV. И реализацию SV по хорошему начали в виваде.


Ada, разумеется, язык более древний, спору нет ;) А VHDL -- таки её диалект. Но блин .. на мой вкус, Verilog -- язык сомнительный. Несмотря на большую компактность ... на маленьких проектах. И к SV это моё мнение тоже относится.

Но на вкус и цвет ...

Hunta
03.03.2021, 14:10
Verilog -- язык сомнительный
Поскольку в момент, когда у меня появилась DE10, я был полным новичком в FPGA, на выбор до определённого уровня повлиял язык проекта PDP2011, а когда потом читал про разные языке, для меня минусов Verilog-а была лёгкость сделать ошибку в коде, которая будет пропущена синтезатором, но приведёт к нерабочей прошивке. И учитывая, что в тот момент я ещё понятия не имел о недостатках асинхронных схем (в частности - лёгкость создания нерабочей прошивки) - лишний повод получить нерабочую прошивку мне был совсем не к чему.

AlexG
03.03.2021, 14:38
"выстрелить в ногу" возможно даже из не заряженного ружья.
Ада несомненно "суперстар" - но увы это не основное средство производства в бизнесе.
Ровно так же как и всякие надстройки на VHDL/V/SV (это про Clash и еже с ними) если хочется "работать" непосредственно с железом.
Следующий уровень после SV это "условно С++" (который преобразуется средой разработки в VHDL/V/SV). Сиё позволяет реализовывать "математические", "ИИ" идр алгоритмы в железе.
Каждому языку своё время и место применения.
пс: в SV есть фича "интерфейс" - это что типа набора проводов (adr[16], Data[8], rd, wr итд), который позволяет одним "росчерком пера" завести в описание модуля все нужные сигналы и в случае изменения комплекта этих сигналов достаточно только отредактировать описание "интерфейса" (без беготни по описаниям модулей, где используется оный интерфейс).
пспс: есть ещё ряд достаточно приятных фичъ... читайте книжки (правда все они на англицком).

Vslav
03.03.2021, 14:43
Пояснение для "обычных" программистов:
- VHDL - это Паскаль, перегружен типизацией, достаточно громоздкий - читается хуже. Из достоинств - чуть сложнее выстрелить себе в ногу, но все равно можно. Как и оригинальный Паскаль - на нем проще учиться, но дальше вся эта типизация начинает напрягать, тупо больше текста набирать, больше шансов на синтаксическую ошибку, все это жрет время.
- Verilog - это Си-89, полная свобода, синтаксис проще, читаемость лучше, пишется быстрее, нет строгой типизации, легко выстрелить себе в ногу.
- System Verilog - дальнейшее развитие Си, ну еще не С++, но уже Си-11.

Писал на всех трех, на цифровых задачах принципиальной разницы нет, при прочих равных мой выбор был бы SV,
там много удобных вещей, но портируемость (поддержка разными производителями немного отличается) вызывает опасения,
поэтому остаюсь на обычном Верилоге, у меня нет настолько больших проектов чтобы вынужденно переходить на SV.

AlexG
03.03.2021, 14:49
Наглядно сказано. Но у SV ширится применяемость.

Hunta
03.03.2021, 17:31
в SV есть фича "интерфейс" - это что типа набора проводов


entity KL11 is
port
(
busClock : in std_logic

; FromBus : in typeFromBus
; ToBus : out typeToBus

; UartClock : in std_logic
; RXin : in std_logic
; TXout : out std_logic
);
end KL11;

.....

Chasis0: ChasisM
port map
(
FromPDP11ToSlot => PDP11_20_IOPBus.FromBus
, FromSlotToPDP11 => PDP11_20_IOPBus.ToBus

, FromBusToSlot(0) => SysRegs0.FromBus
, FromSlotToBus(0) => SysRegs0.ToBus

, FromBusToSlot(1) => Rom0.FromBus
, FromSlotToBus(1) => Rom0.ToBus

, FromBusToSlot(2) => Rom1.FromBus
, FromSlotToBus(2) => Rom1.ToBus

, FromBusToSlot(3) => Uart0.FromBus
, FromSlotToBus(3) => Uart0.ToBus

, FromBusToSlot(4) => KW11L0.FromBus
, FromSlotToBus(4) => KW11L0.ToBus

, FromBusToSlot(5) => RK0.FromBus
, FromSlotToBus(5) => RK0.ToBus

, FromBusToSlot(6) => RL0.FromBus
, FromSlotToBus(6) => RL0.ToBus

, FromBusToSlot(7) => SwitchesDisplay0.FromBus
, FromSlotToBus(7) => SwitchesDisplay0.ToBus

, FromSlotToMemory => Memory0.ToMemory
, FromMemoryToSlot => Memory0.FromMemory

, FromBusMasterToSlot(0) => PDP11_20_MemoryBus.FromBusMaster
, FromSlotToBusMaster(0) => PDP11_20_MemoryBus.ToBusMaster

, FromBusMasterToSlot(1) => RK0BusMaster22.FromBusMaster
, FromSlotToBusMaster(1) => RK0BusMaster22.ToBusMaster

, FromBusMasterToSlot(2) => RL0BusMaster.FromBusMaster
, FromSlotToBusMaster(2) => RL0BusMaster.ToBusMaster
);



- - - Добавлено - - -

А, да, описание ChasisM



type arrtypeFromBus is array (natural range <>) of typeFromBus;

entity ChasisM is
port
(
FromPDP11ToSlot : in typeFromBus
; FromSlotToPDP11 : out typeToBus

; FromBusToSlot : out arrtypeFromBus
; FromSlotToBus : in arrtypeToBus

; FromSlotToMemory : out typeFromBusMaster
; FromMemoryToSlot : in typeToBusMaster

; FromBusMasterToSlot : in arrtypeFromBusMaster := zeroFromBusMaster
; FromSlotToBusMaster : out arrtypeToBusMaster
);
end ChasisM;

AlexG
03.03.2021, 18:59
просто вопрос: почему символ ";" физически расположен в начале строки, а не в конце ???

Hunta
03.03.2021, 19:22
В таком варианте несколько более удобно добавлять строки (особенно в конец) и комментировать - ибо после последней строчки ; не ставится
Ну и в какой то степени - дело привычки (от программирования)

- - - Добавлено - - -

Как и запятая :)
Ну и плюс некоторая подсказка - данная строка - всё ещё продолжение чего-то более крупного (описания интерфейса, привязки сигналов в входу-выходу модуля...)

AlexG
03.03.2021, 20:00
ну не знаю... "такие фломастеры мне не нравятся". Вырви глаз - ассоциируется с символом начала комментариев. В одном asm ; было началом комментария...
пс: посему если б я взялся за ваши исходники - то перематерился бы капитально, плюнул, и больше не заглядывал. Я такой практики оформления знаков разделения и терминирования ни разу не наблюдал за последние 20 лет (на сколь позволяет склероз).
;-)

anasana
03.03.2021, 20:22
были бы исходники, это самый главный вопрос; и второе, компилируются ли они... к остальному можно адаптироваться за час и не вообще париться. а если часть перетаскивается в свой проект, то можно стиль и подправить.

AlexG
03.03.2021, 20:29
если в "эту" сторону - то да, отредактировал и ок. А если опенсоурсе, как нынче "модно" ? я б не смог бы физиологически так оформлять добровольно.

Vslav
03.03.2021, 22:14
Холивар VHDL vs Verilog вечный, и далеко не на одном форуме. Я участвовать не буду - меня вычеркивайте :)
Просто оставлю это здесь - мировые тенденции от Mentor-a:
https://s3.amazonaws.com/s3-blogs.mentor.com/verificationhorizons/files/2016/09/BLOG-2016-WRG-figure-6-1-1-520x293.png

Ну вот посвежее картинка:
https://blogs.sw.siemens.com/wp-content/uploads/sites/54/2019/01/2018-6-1.png

Ммм, я даже не знал что VHDL потихоньку закатывается.

Hunta
03.03.2021, 22:32
Много написал в ответ, а потом всё стёр.

- - - Добавлено - - -


были бы исходники,
Мне без разницы - есть они или нет. Нет - напишу сам. Есть - посмотрю, чему из них можно научиться.
Хотя нет. Разница есть - когда только начинаешь с чем то знакомиться. Да, тогда проект PDP2011 сильно помог.
Но сейчас в нём много чего переделано.
А оставшееся - как отправная точка. И тоже будет переделано.

AFZ
04.03.2021, 09:10
Неа. В девичестве он -- ABEL, но поскольку IBM зажала права на название, то пришлось переименовать.Так ABEL жив? (Ну, полужив, ибо не в моде.) Блин, это же первый язык HDL, который я, более-менее, освоил. Прощивки для Галок в кондукторе AZ написаны именно на нем. И, когда я позже изучал Верилог, меня неприятно удивили, например, шаманские пляски с бубном - по другому не назовешь - вокруг того же асинхронного сброса регистра. То ли дело а ABEL-е. Регистр (или отдельный триггер) - это, если смотреть по СИ-шному - структура. Если R1 - это регистр, то R1.C - это его клок, R1.D - вход данных, R1.OE - разрешение выхода, R1.FB - выход регистра в логическую матрицу (обратная связь) и т.д. И никаких вопросов. Соединяй нужные входы и выходы триггера с тем, чем надо, и вперед. Все прозрачно и однозначно, никаких гаданий, почему первым в if-е нужно разобраться с асинхронным RESET'ом, а остальное делать потом...

Понятно, что мэйнстрим сейчас - Verilog и новое следует сочинять именно на нем, а, все равно, жаль, что ABEL или его новейшая реинкарнация - AHDL - не прижился...

Serg6845
14.03.2021, 21:30
я честно говоря в vhdl слегка разочаровался. берем простейший пример - реверсивный 8-разрядный счетчик с Z-состоянием на выходе:


library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity kmctr is
Port (
CLK : in STD_LOGIC; -- input clock
UD : in STD_LOGIC; -- up/down
OE : in std_logic; --output enable
DOUT : out STD_LOGIC_VECTOR (7 downto 0)
);
end kmctr;

architecture Behavioral of kmctr is
signal count : STD_LOGIC_VECTOR (7 downto 0);
begin

-- up/down counter
process (CLK, UD)
begin
if rising_edge(CLK) then
if (UD = '1') then
count <= count + '1'; -- counting up
elsif (UD = '0') then
count <= count - '1'; -- counting down
end if;
end if;
end process;

DOUT <= count when (OE='0') else "ZZZZZZZZ";

end Behavioral;


компилится максплюсом под max7000 в 23 LC.


а теперь то же самое схематиком: (http://sksb3.no-ip.org:8085/kmct.png)

тем же максплюсом, под то же семейство 7000 - компилится в 8 (!) LC...
no comments.

p.s.
нет, я конечно понимаю - переносимость там, и все такое, и более сложные вещи схематиком не нарисуешь - но в моем конкретном случае - перерисую divmmc схематиком - глядишь и kempston mouse в текущую конфигурацию поместится...

krotan
14.03.2021, 23:09
я честно говоря в vhdl слегка разочаровался. берем простейший пример... На Абеле то же самое не пробовал? Интересно, будет как в vhdl или как в схематике?

solegstar
15.03.2021, 17:57
А что показывает RTL Viewer в квартусе после компиляции первого и второго варианта?

Serg6845
15.03.2021, 22:49
А что показывает RTL Viewer в квартусе после компиляции первого и второго варианта?

лениво мне квартус накатывать ради этого. у меня поделка на flex8000, его квартус не поддерживает. впрочем для max7000 я в максплюсе нашел волшебную галку, после которой этот пример компилится в 8 LC что из vhdl, что из схематика. вот только для flex8000 такой галки нет. и там результат 18:11 в пользу схематика...

Sandro
09.05.2021, 17:04
я честно говоря в vhdl слегка разочаровался. берем простейший пример - реверсивный 8-разрядный счетчик с Z-состоянием на выходе:

компилится максплюсом под max7000 в 23 LC.


а теперь то же самое схематиком: (http://sksb3.no-ip.org:8085/kmct.png)

тем же максплюсом, под то же семейство 7000 - компилится в 8 (!) LC...
no comments.


Ты попросту вручную сделал работу компилятора. Которую он сделать не мог.

А вот я взял Квартус и заодно привёл код в соответствие со стандартом языка:



library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;

entity kmctr is
Port (
CLK : in STD_LOGIC; -- input clock
UD : in STD_LOGIC; -- up/down
OE : in std_logic; --output enable
DOUT : out UNSIGNED (7 downto 0)
);
end kmctr;

architecture Behavioral of kmctr is
signal count : UNSIGNED (7 downto 0);
begin

-- up/down counter
process (CLK, UD)
begin
if rising_edge(CLK) then
if UD = '1' then
count <= count + 1; -- counting up
elsif UD = '0' then
count <= count - 1; -- counting down
end if;
end if;
end process;

DOUT <= count when OE = '0' else (others => 'Z');

end Behavioral;


И сразу же вышло так:



Fitter Status : Successful - Sun May 09 16:37:48 2021
Quartus II Version : 9.1 Build 350 03/24/2010 SP 2 SJ Web Edition
Revision Name : qtest
Top-level Entity Name : kmctr
Family : MAX7000AE
Device : EPM7032AELC44-4
Timing Models : Final
Total macrocells : 8 / 32 ( 25 % )
Total pins : 15 / 36 ( 42 % )





p.s.
нет, я конечно понимаю - переносимость там, и все такое, и более сложные вещи схематиком не нарисуешь - но в моем конкретном случае - перерисую divmmc схематиком - глядишь и kempston mouse в текущую конфигурацию поместится...

Я бы всё же взял нормальный инструмент ... ну кто же максом-то компилирует, да ещё и c нестандартной библиотекой STD_LOGIC_UNSIGNED ...

zebest
09.05.2021, 19:09
переносимость там, и все такое
вот да, переносимость - это оченно важный параметр :((
Пример из жизни.
Небольшой проект, в основном модуле джва с лишним десятка подмодулей(вперемешку, и на verilog-e, и на VHDL), но основной модуль написАн на VHDL (видимо Родитель №1 так больше пондравилось).
Родитель №2 доделывает проект "до ума", но в какой то момент, видимо задолбавшись с VHDL, переписывает весь головной модуль (полторы тысячи строк) на Verilog со своими исправлениями. Строк остается в полтора раза меньше, порядка тысячи. Ну еще бы,
20 модУлей одних component.
Мне ни тот ни другой в исходном виде не подходят, вот и приходиЦЦа "ползать" по обеим вариантам, сверять, и материцца. Беззлобно :) Весело, чО.
Зато за пару недель такого развлечения у меня два варианта. И в VHDL и в Verilog .
Результаты компиляции заставляют задуматься об эффективности компиляторов:)
Разница только в основном модуле. не более.
https://s.micp.ru/pVcJ2.png

А , ну да, возможно еще мои косяки добавились, при переводе с корейского на китайский, использую промежуточный словарь хинди, но тем не менее - что есть - то есть.
Ах да, самое интересное, оба варианта от родителей№№1,2 под Альтеру и Квартус соответственно, мой вариант под Ксайлинк и ISE/
ЭТо отдельная песня по совместимости компиляторов :) Острые ощущения гарантируются при переносе.))))))

Serg6845
09.05.2021, 20:32
Я бы всё же взял нормальный инструмент ... ну кто же максом-то компилирует,


я повторюсь - у меня поделка на FLEX8000. внимательно выслушаю предложения на тему нормального инструмента...



да ещё и c нестандартной библиотекой STD_LOGIC_UNSIGNED ...

а это я кстати скопипастил из исходника divmmc. ну да, он под xilinx. это к вопросу о переносимости наверно...

s_kosorev
09.05.2021, 22:33
я честно говоря в vhdl слегка разочаровался. берем простейший пример - реверсивный 8-разрядный счетчик с Z-состоянием на выходе...
Вот только не нужно путать синхронный счетчик с асихронным. Который весь в иголках будет

mastermind
09.05.2021, 23:29
...в какой то момент, видимо задолбавшись с VHDL, переписывает весь головной модуль (полторы тысячи строк) на Verilog со своими исправлениями. Строк остается в полтора раза меньше, порядка тысячи.
Как все сложно. Освойте уже Clash. Он вам из простого функционального исходника сгенерирует хоть VHDL, хоть Verilog: https://clash-lang.org/


Clash is a functional hardware description language that borrows both its syntax and semantics from the functional programming language Haskell. It provides a familiar structural design approach to both combinational and synchronous sequential circuits. The Clash compiler transforms these high-level descriptions to low-level synthesizable VHDL, Verilog, or SystemVerilog.

Serg6845
10.05.2021, 08:00
Вот только не нужно путать синхронный счетчик с асихронным. Который весь в иголках будет


и какой из этих двух вариантов асинхронный?

s_kosorev
10.05.2021, 13:09
Естественно, тот который сделал синтезатор. Согласно описанию на языке

- - - Добавлено - - -

Смотри RTL

Sandro
10.05.2021, 22:06
Как все сложно. Освойте уже Clash.

Что? Этот убогий псевдоязык, у которого нет даже собственного компилятора? Средств верификации? Синтаксис которого более многословен, чем у VHDL, и более уродлив, чем у Verilog?

На котором, прошу прощения, нельзя описать даже простейший RS-триггер?


Он вам из простого функционального исходника сгенерирует хоть VHDL, хоть Verilog: https://clash-lang.org/

Он из сложного, многословного и путаного исходника сгенерируtт write-only непонятный VHDL или Verilog, про который нельзя будет даже проверить, была ли генерация корректной.

Элементарнейший пример уродства Clash:



adc :: Byte -> Byte -> Byte -> (Byte, Byte)
adc flags a b = adcSbc A.AluADD flags a b


Вот зачем отдельно указывать сигнатуру функции и отдельно её список аргументов? Чтобы ошибок насажать на ровном месте? Сравним с нормальным языком:



function adc(flags : byte; a : byte; b : byte) return alu_result is
begin
adc <= adc_sbc(ALU_ADD, flags, a, b);
end;


Да, конкретно в случае однострочных обёрток над универсальной функцией VHDL более многословен. Но и то -- шансов накосячить из-за опечатки значительно меньше.

Кстати, код вверху взят из реального проекта, написанного на Clash: https://github.com/polygonhell/Clash6502

Это попытка реализовать знаменитый процессор nMOS 6502 на Clash. Конкретно -- реализация АЛУ: https://github.com/polygonhell/Clash6502/blob/master/Alu.hs

В нём строк кода больше, чем в АЛУ оригинального процессора имеется транзисторов. Оцените компактность и выразительность этого языка.

И заодно уровень интеллекта автора: там для каждой команды имеется своя реализация -- ну вот как для adc выше -- и выходной мультиплексор на 50+1 вход. То есть, там 50 специализированных экземпляров АЛУ.

И ссылка на ЭТО висит на официальном сайте Clash! https://clash-lang.org/documentation/ , вторая в последнем блоке.

Я полагаю, больше примеров приводить не надо, масштабы катастрофы уже ясны и так.

zebest
10.05.2021, 23:34
Вот да, попадались и мне проекты на Clash, но видимо не для моего интеллекта, и как их развернуть во что то привычное - я так и не понял. :v2_conf2:

Serg6845
11.05.2021, 09:03
Естественно, тот который сделал синтезатор. Согласно описанию на языке

- - - Добавлено - - -

Смотри RTL

Посмотрел (http://sksb3.no-ip.org:8085/rtl.png)

меня глючит или оно таки синхронное?

s_kosorev
11.05.2021, 11:40
меня глючит или оно таки синхронное?
Синхронное, мне повылазило, думал буфер это отдельный кусок схемы, еще бы посмотреть на rtl сгенеренный по VHDL

Но вот к примеру на verilog


module Test1(
input wire clk,
input wire oe_n,
input wire ud,
output wire[7:0]q
);

reg [7:0] qreg = 0;
assign q = !oe_n ? qreg : 8'hzz;

always @ (posedge clk) qreg += ud ? 1 : -1;

endmodule


На выходе дает 10LUT / 8триггеров
https://prnt.sc/12sop9a

Serg6845
11.05.2021, 16:06
Синхронное, мне повылазило, думал буфер это отдельный кусок схемы, еще бы посмотреть на rtl сгенеренный по VHDL

так оно и есть по VHDL. по схематику генерит то что нарисовано с заменой Т триггеров на D + XOR с выхода на вход. но то квартус, в максплюсе RTL или нет совсем или я не знаю как его посмотреть.


Но вот к примеру на verilog


module Test1(
input wire clk,
input wire oe_n,
input wire ud,
output wire[7:0]q
);

reg [7:0] qreg = 0;
assign q = !oe_n ? qreg : 8'hzz;

always @ (posedge clk) qreg += ud ? 1 : -1;

endmodule


На выходе дает 10LUT / 8триггеров
https://prnt.sc/12sop9a

по сути тот же принцип - регистр и сумматор с выхода на вход. зачем правда он 32-разрядный - непонятно...

s_kosorev
11.05.2021, 16:47
по сути тот же принцип - регистр и сумматор с выхода на вход. зачем правда он 32-разрядный - непонятно...
Это по умолчанию, если не указывать размерность. Но это не важно, синтезатор подрежет цепи которые никуда не имеют выхода

Sergey
12.05.2021, 16:52
Чтобы что-то советовать, надо знать задачи, которые вы собрались решать.
К примеру, на VHDL можно описывать аналоговую электронику, а на Verilog только цифровую...
Классная шутка!

- - - Добавлено - - -


Ребята, повторю свой вопрос (ссылка на пост https://zx-pk.ru/threads/23978-tsifrovaya-arkheologiya-1801-i-vse-vse-vse.html?p=1106160&viewfull=1#post1106160) для ваших мнений что бы услышать?
Сам ничего не знаю, но тебе ВСЁ объясню!
Если будешь работать с железками ALTERA, то замечательно бы выучить AHDL.
Если на Xilinx или всём вместе - Verilog/SystemVerilog.
Вообще, лучше попробовать все эти языки и остановиться на том, на котором ЛИЧНО ТЕБЕ писать комфортнее всего.

- - - Добавлено - - -


На Абеле то же самое не пробовал? Интересно, будет как в vhdl или как в схематике?

Вангую, что AHDL даст близко к схематике, если не то же самое.

Sandro
12.05.2021, 21:19
Вот да, попадались и мне проекты на Clash, но видимо не для моего интеллекта, и как их развернуть во что то привычное - я так и не понял. :v2_conf2:

Естественно, поскольку это вообще не самостоятельный язык, а библиотека на языке Haskell, позволяющая описывать на нём синхронные схемы. (Надо полагать, Хаскелла ты не знаешь, поэтому и непонятно.) Потом схему можно либо симулировать либо сгенерировать на её основе VHDL/Verilog. Больше никакого инструментария нет и не будет.

На кой хрен такое чудо нужно -- я не пойму. Разве что потешить ЧСВ секты хаскеллистов.

PS: "Попадались проекты" -- это просто так, или по службе? :v2_wink2:

krotan
12.05.2021, 21:35
Вангую, что AHDL даст близко к схематике, если не то же самое. AHDL уже перешёл в категорию забытых языков. Никто практически им не пользуется и фирма-изготовитель его давно не поддерживает...

zebest
12.05.2021, 22:48
"Попадались проекты" -- это просто так, или по службе?
Так просто попались. Хотел с одной дев-борды на другую портировать пару проектов, а оно вона как :) Так то я ни разу не разработчик и да жи не программер :) Портирование - сам по себе довольно увлекательный квест, независимо от результата :)


Если на Xilinx или всём вместе - Verilog/SystemVerilog.
Вот только одно НО - "народную" шестую серию SV не поддерживает :(

Sergey
13.05.2021, 11:23
Вот только одно НО - "народную" шестую серию SV не поддерживает :(
Ну, для Зайлинкс до Спартан-6 выбор, в принципе, и так невелик: vhdl или Verilog. Что больше нравится, на том и пиши.