dxp 112 June 27, 2007 Posted June 27, 2007 · Report post пример Verilog always @(posedge clk, posedge reset) begin if (reset) begin popaa <= 1'b0; end else begin popaa <= ina; end popab <= ina; end Квартус 6.1 : первое синтезируеться в тригер со сбросом + тригер без сброса, второе в тригер со сбросом + тригер с комб логикой. И какая же логика там получается? Quote Share this post Link to post Share on other sites More sharing options...
CaPpuCcino 0 June 27, 2007 Posted June 27, 2007 · Report post ЭЭЭЭ !!! да систем верилога я еще не дошел :) Медленно (страниц по 20 в день) курю LRM IEEE Standard Verilog® Hardware Description Language IEEE Std 1364-2001 (Revision of IEEE Std 1364-1995) эва! так курите же его скорее совместно с IEEE 1364-2005(1800) (extension of IEEE 1364 Verilog ...) чтоб ложных представлений о языке не было - а то ведь 21ый век на дворе (а вы всё за папиросы) и любители ВХДЛ всё тыкают в недостатки сандартов прошлого века, а то что Верилог уже 2 года как объектно-ориентированным стал замечать просто отказываются. неприятно однако 5. отсутствие избирательного синтезируемого событийного контроля в блоках (все завязано на списки чувствительности). а это сделано на мой взгляд по принципу "ибо нехрен" и на мой взгляд является приемуществом - ибо нехрен мешать в одном блоке(функционально\логически группировать) логику синхронно-асинхронную с синхронно-синхронную (где первое - тактовый_сигнал, второе - сброс) у меня вот, например, даже без прочтения "Верилог РТЛ кодинг стайл" желание так замешивать никогда не возникало - ибо чревато возможными ошибками (почему ВХДЛ-ребята обоими руками за строгую типизацию, но против строгой организации по признаку синхронизации, но при этом никто не против того чтобы при синтезе отказаться от присваивания одному сигналу значений в разных процессах - хотя ведь тоже если подумать - сплошное нарушение прав человека налицо ;) ) Quote Share this post Link to post Share on other sites More sharing options...
sazh 9 June 27, 2007 Posted June 27, 2007 · Report post (почему ВХДЛ-ребята обоими руками за строгую типизацию, но против строгой организации по признаку синхронизации ////////////////////////////////////// А об этом никто не говорил. Во всяком случае пример, приведенный выше на VHDL тоже некорректен. (Порождает тригер со входом enable). Quote Share this post Link to post Share on other sites More sharing options...
CaPpuCcino 0 June 27, 2007 Posted June 27, 2007 · Report post приведенный выше на VHDL тоже некорректен. (Порождает тригер со входом enable). вот в том-то и дело что такой стиль описания может приводить к неоднозначности разбора при синтезе, хотя если разбить(сгруппировать синхронный и асинхронный сброс) на несколько процессов всё будет исключительно линейно и однозначно Quote Share this post Link to post Share on other sites More sharing options...
des00 26 June 28, 2007 Posted June 28, 2007 · Report post (почему ВХДЛ-ребята обоими руками за строгую типизацию, но против строгой организации по признаку синхронизации ////////////////////////////////////// А об этом никто не говорил. Во всяком случае пример, приведенный выше на VHDL тоже некорректен. (Порождает тригер со входом enable). покажите мне пожалуйста где вы видите сигнал enable ? (файл vhdl.jpg ) насчет строгой синхронизации, дык куда уж строже. Что по сути описывает список чувствительности ? он описывает сигналы, изменения который запускают процесс который спит на неявном wait стоящем в самой последней строке раздела исполнения (VHDL). А дальше уж, какие фронты и какие сигналы я буду обрабатывать сугубо мое личное желание. Даже если я в одном процессе смешаю описание логики работающей на разных фронтах (файл vhdl2.jpg) Главное что бы не было неопределености в описании конкретного сигнала. В частности в первом примере для сигнала q[1] явно описано что с ним происходит. без какой либо неопределенности. в verilog это навязываеться явно и определяеться только списком чувствительности. а это сделано на мой взгляд по принципу "ибо нехрен" и на мой взгляд является приемуществом - ибо нехрен мешать в одном блоке(функционально\логически группировать) логику синхронно-асинхронную с синхронно-синхронную (где первое - тактовый_сигнал, второе - сброс) посмотрите vhdl3.jpg, кстати можно было вообще в список чувствительности добавить все сигналы, и результат синтеза был бы тот же самый!!! Принципы обсуждать смысла не вижу. Могу сказатьчто в последнее время на VHDL я не разделяю одну функциональность (например счетчик, регистровые лог. условия с его содержимым и регистровые сигналы управления) на несколько процесов, ИМХО это размывает внимание. Есть в этом и дополнительные преимущества : производительность симулятора ~ кол-ву процессов + можно меньше писать, а результаты синтеза те же. Проверено на квартусе 6.1 в присутствии вас и на симплифае 8.6.1 лично. Еще раз: не хочу обидеть/исковеркать verilog, просто по моему скромному мнению такой детерменизм со списками чувстительности не совсем удобен, кто то считает наоборот и это здорово. эва! так курите же его скорее совместно с IEEE 1364-2005(1800) (extension of IEEE 1364 Verilog ...) чтоб ложных представлений о языке не было - а то ведь 21ый век на дворе (а вы всё за папиросы) и любители ВХДЛ всё тыкают в недостатки сандартов прошлого века, а то что Верилог уже 2 года как объектно-ориентированным стал замечать просто отказываются. неприятно однако Ну насколько я понимаю 2001 год, в котором был принят стандарт это тоже 21 век, не так ли ? :)) говорю же впереди вечность (вапа рита караньи мудра (с) из хатха-йоги, вроде так пишеться, в этом нам поможет), куда торопиться и самое главное зачем. Ну будет уходить на изучение стандарта 2-3месяца, зато будет время все обдумать, попробывать и потестить. я не ругаю не VHDL, не Verilog, никому не навязываю свое мнение, я его всего лишь оглашаю в нашем диалоге. В принципе можно было бы на тему языков (правда через полгода где то, еще PSL в моих планах) и цикл статей написать вроде от VHDL'87 к SV и VHDL2007, но думаю что каждый должен пройдти этот путь сам. :beer: ЗЗЫ. забыл сразу указать: а что вы понимаете под объектно-ориентированным языком ? аналоги классов, объединений можно было делать и на обычном Verilog 2001, подозреваю что и на Verilog 95 тоже. есть даже книга, в которой часть глав посвещена этому. (название не помню :() С динамическими массивами, не получиться, труба. (хотя может быть PLI поможет, но это этой главы я еще не дошел :)) ) Quote Share this post Link to post Share on other sites More sharing options...
sazh 9 June 28, 2007 Posted June 28, 2007 · Report post Вход enable на регистре popab я увидел в 7.1 квартусе в RTL. reset на enable. мне этого не надо. Да и подход у меня другой. Мне не трудно в два процесса все озвучить. Зато везде будет одинаково реализовываться. LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; ENTITY vhd IS PORT( clk : IN std_logic; reset : IN std_logic; ina : IN std_logic; a : OUT std_logic; b : OUT std_logic); END vhd; ARCHITECTURE vhdd OF vhd IS signal popaa : std_logic; signal popab : std_logic; BEGIN pipa_proc : process ( clk, reset ) is begin if (reset = '1') then popaa <= '0'; else if (rising_edge (clk)) then popaa <= ina; end if; if (rising_edge (clk)) then popab <= ina; end if; end if; end process pipa_proc; a <= popaa; b <= popab; END vhdd; Да сейчас заметил, что у меня "" лишний" if. Так сказать импровизация. Тем более. Предпочитаю, чтобы при "одинаковом " описании на верилог и vhdl получались одни и теже результаты. Quote Share this post Link to post Share on other sites More sharing options...
CaPpuCcino 0 June 28, 2007 Posted June 28, 2007 · Report post насчет строгой синхронизации, дык куда уж строже. Что по сути описывает список чувствительности ? он описывает сигналы, изменения который запускают процесс который спит на неявном wait стоящем в самой последней строке раздела исполнения (VHDL). так ить это страведливо для исполняемой модели (симуляция), и на это можно глядель и с другой стороны - что-то типа: список чувствительности это список сигналов управления поименнованных схемных элементов(сигналов для ВХДЛ /переменные ввиду не имеются потому как они переменные - вспомогат. элеметны/). получается что в блоке (процесса) со всеми определяемыми сигналами(которые просто сгрупппированы чтобы не писать процесс для каждого отдельного сигнала) должен быть ассоциирован один и тот же список сигналов управления(такова логика Верилог). так вот из-за того что у ВХДЛ и Верилог имелись разные мотивы побуждающие их происхождение (описание и проектирование) у них и разные взгляды на список чувствительности (в одном случае - ассоциация сигналов списка чувствительности с процессом во втором ассоциация сигналов со схемным элементом(объектом)) /хи-хи : к стати из этой логики получается что Верилог - объектно ориентированный язык по природе своей а ВХДЛ - процедурный :о))) / кстати можно было вообще в список чувствительности добавить все сигналы, и результат синтеза был бы тот же самый!!! ну правильно компилятор ж не дурак нахрена ему сигналы с неба - по этому поводу в Верилоге давно существует always@* / always_comb который вообще не нуждается в списке - он его сам определяет, а для синхронной логики always_ff который вам ни за что не позволит запихнуть в один блок и синхронный триггер и защёлку (в последнем стандарте эти группировки по признаку синхронизации совершенным образом ужесточились -- наверное неспроста) на несколько процесов, ИМХО это размывает внимание. а на мой взгляд улучшает лог. организацию (мухи -отдельно, котлеты- отдельно/тфу, блин, ненавижу эту фразу/) Есть в этом и дополнительные преимущества : производительность симулятора ~ кол-ву процессов вот это к стати очень спорно - симулятор это набор объектов(сигналов) с ассоциированными событиями, если вы запихиваете в процесс с неким списком чувствительности объекты не имеющие чувствительности к этим событиям (то есть ассоциируете эти события с объектами) то без оптимизации со стороны компайлера можно получить некоторое множество объектов с ложным стартом (процедура по их валидации будет гоняться в пустую - но процессорное внемя тратиться будет) /это моё мнение - не факт что правильное/ Ну насколько я понимаю 2001 год, в котором был принят стандарт это тоже 21 век, не так ли ? :)) так, так :о) но эт он принят был (в апреле кажись) а вся работа по нему закончилась то ещё в 2000 - а это ХХ век :о))) однако, des, искренний вам совет смотрите сразу на ай-йа-яй 1800-2005 (всё равно придётся смотреть два стандарта - потому как считай двухтомник \1364-2001 + 1800-2005\), что бы не перетаскивать эти кирпичи с места на места можно хотябы как обзорный курс взять SystemVerilog_for_Design Сюзерленда - он есть сам знаешь где --- мы уже в закрома много книг по этой теме натаскали меж прочем PSL встроен в СистемВерилог (не совсем конечно ПСЛ но синтаксис практически не отличишь - я также выкладывал Assertion-Based Design Фостера- там и ПСЛ и ОВЛ и СистемВерилог ассершнз) а что вы понимаете под объектно-ориентированным языком ? ну как что? Java знаете? вот СВ это наследник Vera, а Вера на Яву очень похожа, даже автоматическая сборка мусора есть (я в общем-то статью сейчас как раз по верификации использую ООП от СВ пишу - через недельки две будет готова, а если хотите сами посмотреть - то пролистайте из закромов книжки по верификации на СВ - там их несколько штук\4 кажись\) Quote Share this post Link to post Share on other sites More sharing options...
des00 26 June 28, 2007 Posted June 28, 2007 · Report post обсуждать мотивы смысла не вижу никакого. а что касается списков чувствительности ответ зырыт в главе 5 Scheduling semantics. Там ясно и просто объясняеться что такое событие в верилоге, каким оно бывает и как симулятор его воспринимает. Все это дополнительно еще завернуто в особености событийного контроля, типов переменых и их свойств. ну правильно компилятор ж не дурак нахрена ему сигналы с неба - по этому поводу в Верилоге давно существует always@* / always_comb который вообще не нуждается в списке - он его сам определяет да но в верилоге с помошью @(*) не опишешь тактируемый фронтом клока тригер , а в вхдл легко. а на мой взгляд улучшает лог. организацию (мухи -отдельно, котлеты- отдельно/тфу, блин, ненавижу эту фразу/) а самая класная организация потригерно :) что бы даже биты отдельно друг от друга :) тут на вкус и цвет товарища нет. я например работаю на вхдл по принципу процесс == функция высокого уровня. при этом все неободимое этой функции влезает на 1 вертикальный экран 20-24 дюймогово монитора, все сигналы под рукой :) вот это к стати очень спорно - симулятор это набор объектов(сигналов) с ассоциированными событиями, если вы запихиваете в процесс с неким списком чувствительности объекты не имеющие чувствительности к этим событиям (то есть ассоциируете эти события с объектами) то без оптимизации со стороны компайлера можно получить некоторое множество объектов с ложным стартом (процедура по их валидации будет гоняться в пустую - но процессорное внемя тратиться будет) Каждый ищет сам, достаточно взять любой симулятор и натравить профайлер. В синхронных процессах с асинхронным сбросом (в списке чувствительности reset и clk) сброс достаточно редко пользуеться, за сим ложных срабатываний не будет сильно много. Полагаю что дискуссию стоит усыпить до следующего update event. Выхода стандарта VHDL 2007 например. Хотя если захотите поспорить всегда пожалуйста ЗЫ. Яву на знаю и не собираюсь с ней заморачиваться, для моих задач мне С и Python а хватает. Насчет моделирования на SV, всему свое время. мне всего 450 страниц стандарта на Verilog скурить осталось. Quote Share this post Link to post Share on other sites More sharing options...
CaPpuCcino 0 June 28, 2007 Posted June 28, 2007 · Report post я например работаю на вхдл по принципу процесс == функция высокого уровня. при этом все неободимое этой функции влезает на 1 вертикальный экран 20-24 дюймогово монитора, все сигналы под рукой :) тоже стараюсь работать на РТЛ со смещением в сторону поведения (тот же принцип что у вас,однако при этом всё равно стараюсь придерживаться выше указнной группировки) но не всё так изящно описывать получается Полагаю что дискуссию стоит усыпить до следующего update event. Выхода стандарта VHDL 2007 например. согласен. тем более делить особо не чего - у каждого своё понимание. скорей бы уж вышел -- больно любопытно :a14: Quote Share this post Link to post Share on other sites More sharing options...
CaPpuCcino 0 June 23, 2008 Posted June 23, 2008 · Report post что-то давно не сплетничали. обновим темку: новости из стана ВХДЛ - "Accellera has immediate plans to release VHDL 4.0 to the IEEE for balloting in 2008 and to support the IEEE 1076-2008 balloting process." ( http://www.reuters.com/article/pressReleas...2008+MW20080220 ). нововведения наиболее полно, компактно и внятно (из того, что я до сих пор видел) сформулированы здесь -> http://www.doulos.com/knowhow/vhdl_designe...uide/vhdl_200x/ по нововведениям уже вышла (пока единственная и немного забегая вперёд выход стандарта) книжка "VHDL 2008: Just the New Stuff" (на амазоне есть как обычно оглавление и первые пару страничек) Quote Share this post Link to post Share on other sites More sharing options...
andrew_b 23 June 24, 2008 Posted June 24, 2008 · Report post по нововведениям уже вышла (пока единственная и немного забегая вперёд выход стандарта) книжка "VHDL 2008: Just the New Stuff" (на амазоне есть как обычно оглавление и первые пару страничек) Сравнительно легко находится в Интернете электронный вариант. У меня есть pdf, откуда тянул, не помню. Возможно, что даже с местного ftp. Quote Share this post Link to post Share on other sites More sharing options...
Vadim 0 June 24, 2008 Posted June 24, 2008 · Report post Хорошая книжка. И читается легко. Даже с моим английским. Много вкусного, оказывается, в VHDL-2008! Наконец-то убрали бред с запретом считывания значения порта в режиме выхода!!! Но когда же эту вкуснятину можно будет попробовать? :crying: С ривиерой связываться не хочется, в квесте ее нету, а синтезаторы до сих пор только 93 поддерживают. Ужас. Quote Share this post Link to post Share on other sites More sharing options...
Kuzmi4 0 June 24, 2008 Posted June 24, 2008 · Report post 2 andrew_b и Vadim - будьте так любезны, поделитесь литературой... Quote Share this post Link to post Share on other sites More sharing options...
Vadim 0 June 24, 2008 Posted June 24, 2008 · Report post А что, в закромах нету? http://nukeuploads.com/download/1214417609...L.2008.rar.html Quote Share this post Link to post Share on other sites More sharing options...
Kuzmi4 0 June 26, 2008 Posted June 26, 2008 · Report post 2 Vadim - спасибо. Будем просвещаться.. Quote Share this post Link to post Share on other sites More sharing options...