Наглядно сказано. Но у SV ширится применяемость.
Наглядно сказано. Но у 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;
просто вопрос: почему символ ";" физически расположен в начале строки, а не в конце ???
В таком варианте несколько более удобно добавлять строки (особенно в конец) и комментировать - ибо после последней строчки ; не ставится
Ну и в какой то степени - дело привычки (от программирования)
- - - Добавлено - - -
Как и запятая :)
Ну и плюс некоторая подсказка - данная строка - всё ещё продолжение чего-то более крупного (описания интерфейса, привязки сигналов в входу-выходу модуля...)
ну не знаю... "такие фломастеры мне не нравятся". Вырви глаз - ассоциируется с символом начала комментариев. В одном asm ; было началом комментария...
пс: посему если б я взялся за ваши исходники - то перематерился бы капитально, плюнул, и больше не заглядывал. Я такой практики оформления знаков разделения и терминирования ни разу не наблюдал за последние 20 лет (на сколь позволяет склероз).
;-)
были бы исходники, это самый главный вопрос; и второе, компилируются ли они... к остальному можно адаптироваться за час и не вообще париться. а если часть перетаскивается в свой проект, то можно стиль и подправить.
если в "эту" сторону - то да, отредактировал и ок. А если опенсоурсе, как нынче "модно" ? я б не смог бы физиологически так оформлять добровольно.
Холивар VHDL vs Verilog вечный, и далеко не на одном форуме. Я участвовать не буду - меня вычеркивайте :)
Просто оставлю это здесь - мировые тенденции от Mentor-a:
https://s3.amazonaws.com/s3-blogs.me...-1-520x293.png
Ну вот посвежее картинка:
https://blogs.sw.siemens.com/wp-cont...1/2018-6-1.png
Ммм, я даже не знал что VHDL потихоньку закатывается.
Много написал в ответ, а потом всё стёр.
- - - Добавлено - - -
Мне без разницы - есть они или нет. Нет - напишу сам. Есть - посмотрю, чему из них можно научиться.
Хотя нет. Разница есть - когда только начинаешь с чем то знакомиться. Да, тогда проект PDP2011 сильно помог.
Но сейчас в нём много чего переделано.
А оставшееся - как отправная точка. И тоже будет переделано.
Так ABEL жив? (Ну, полужив, ибо не в моде.) Блин, это же первый язык HDL, который я, более-менее, освоил. Прощивки для Галок в кондукторе AZ написаны именно на нем. И, когда я позже изучал Верилог, меня неприятно удивили, например, шаманские пляски с бубном - по другому не назовешь - вокруг того же асинхронного сброса регистра. То ли дело а ABEL-е. Регистр (или отдельный триггер) - это, если смотреть по СИ-шному - структура. Если R1 - это регистр, то R1.C - это его клок, R1.D - вход данных, R1.OE - разрешение выхода, R1.FB - выход регистра в логическую матрицу (обратная связь) и т.д. И никаких вопросов. Соединяй нужные входы и выходы триггера с тем, чем надо, и вперед. Все прозрачно и однозначно, никаких гаданий, почему первым в if-е нужно разобраться с асинхронным RESET'ом, а остальное делать потом...
Понятно, что мэйнстрим сейчас - Verilog и новое следует сочинять именно на нем, а, все равно, жаль, что ABEL или его новейшая реинкарнация - AHDL - не прижился...