Golikov 0 4 февраля, 2015 Опубликовано 4 февраля, 2015 · Жалоба да я просто радуюсь умности синтезаторов которые не начинают ныть что булевая фигня стоит не под IF. :) причем даже если декодер_ен не 1 битный и то сработает, даже если des_sdrc не 1 битный тоже вроде прожует... а вот за & и && стараюсь следить, чтоб порядок и понятность! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 4 февраля, 2015 Опубликовано 4 февраля, 2015 · Жалоба и ничего синтезатор прожевал и все сделал:) забавно... Чего забавного то? Красиво и экономно написано, по всем канонам языка, с убиранием лишних, мешающих сущностей. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
druzhin 7 5 февраля, 2015 Опубликовано 5 февраля, 2015 · Жалоба Помогите разобраться, или ткните носом в подходящую статью - в чем принципиальная разница между assign и always@* в случае непрерывного присвоения? Допустим надо написать инвертор. Можно поступить так: input i; output o; assign o = !i; Или так: input i; output reg o; always @* 0 <= !i; Данные конструкции синтезируются одинакого? Да, нет никакой разницы. Но во втором случае щас желательно писать always_comb out <= in; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sobol' 0 5 февраля, 2015 Опубликовано 5 февраля, 2015 (изменено) · Жалоба Господа, всех сердечно благодарю за ответы. druzhin, моя среда не хавает SV(( always_comb, на сколько я понимаю, в простом Verilog нет. Вопрос в догонку - при работе с одноразрядными сигналами в чем разница между & и && ? А то просто ТС - школьник и колхозник-провинциал к тому же( Изменено 5 февраля, 2015 пользователем Sobol' Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 5 февраля, 2015 Опубликовано 5 февраля, 2015 · Жалоба Вопрос в догонку - при работе с одноразрядными сигналами в чем разница между & и && ? & - побитовое И && - логическое И (если выполняются оба условия) для однобитных данных разницы не будет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gotcha 0 5 февраля, 2015 Опубликовано 5 февраля, 2015 · Жалоба assign и always используют разные типы (слева от присвоения), wire и reg, соответственно. Как указал SM, использовать указание силы "drive strength" можно только для wire (наприм. надо описать двунаправленный буфер). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x736C 0 5 февраля, 2015 Опубликовано 5 февраля, 2015 (изменено) · Жалоба & - побитовое И && - логическое И (если выполняются оба условия) для однобитных данных разницы не будет Если взять за основу freescale или cisco стандарты, (разумеется они не являются чем-то незыблемым или истиной в последней инстанции), то они используют '&&' для однобитных сигналов. Не смотря на то, что разницы для синтезатора нет. Сам всегда использовал одинарный '&'. У каждого программиста свой подход и «фиг переспоришь», понятно дело. Если исходить из духа корпоративных стандартов, насколько я их понял, делается это для того, чтоб при взгляде на запись, сразу понимали — логическое-И производится над однобитными сигналами. Все нацелено на то, чтобы мозг меньше уставал, работая с чужим кодом. Вообще, если писать, руководствуясь их стандартами, писанины прибавляется. Имхо это правильный подход с т.з. reusable кода. Давно хочу объединить opencores + freescale + cisco + тут разрабатывался когда-то свой стандарт + рекомендации от альтеры и ксайлинкс, сделать нечто общее. P.S. интересно было бы почитать прочие стандарты каких-нибудь технологических гигантов. может, кто-то в курсе, есть вообще в сети? Изменено 5 февраля, 2015 пользователем x736C Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
druzhin 7 8 февраля, 2015 Опубликовано 8 февраля, 2015 · Жалоба assign и always используют разные типы (слева от присвоения), wire и reg, соответственно. Как указал SM, использовать указание силы "drive strength" можно только для wire (наприм. надо описать двунаправленный буфер). assign и always используют одинаковые типы logic. И не перепутаешь reg и wire. Единственное замеченное ограничение - многоразрядные сигналы типа bus[31:0], все разряды должны быть или все под assign, или все под always. Видимо синтезатор делит этот logic на reg и wire по контексту кода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gotcha 0 9 февраля, 2015 Опубликовано 9 февраля, 2015 · Жалоба assign и always используют одинаковые типы logic. И не перепутаешь reg и wire. Единственное замеченное ограничение - многоразрядные сигналы типа bus[31:0], все разряды должны быть или все под assign, или все под always. Видимо синтезатор делит этот logic на reg и wire по контексту кода. Верно, можно объявить logic в SystemVerilog, но где нужен drive strength без wire не обойдешься. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 9 февраля, 2015 Опубликовано 9 февраля, 2015 · Жалоба Верно, можно объявить logic в SystemVerilog, но где нужен drive strength без wire не обойдешься. Вот-вот. Этот "logic" видится каким-то костылем, непонятно с какой целью сделанным. Без него жилось и живется комфортно. assign и always используют одинаковые типы logic. И не перепутаешь reg и wire. Нет такого типа в языке, о котором автор задал вопрос ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 9 февраля, 2015 Опубликовано 9 февраля, 2015 · Жалоба Вот-вот. Этот "logic" видится каким-то костылем, непонятно с какой целью сделанным. Без него жилось и живется комфортно.Читал такую версию появления 'logic': Сигнал типа reg, несмотря на явное происхождение своего названия от 'register', при синтезе мог дать как регистр, так и просто провод, в зависимости от контекста использования. Что бы не смущать неокрепшие умы дизайнеров (мол как так - написал reg получил чистую логику, куда дели регистр???) был введен тип logic, для замены как wire так и reg в контексте, где они отличаются только отсутствием/наличием памяти на свое состояние. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 9 февраля, 2015 Опубликовано 9 февраля, 2015 · Жалоба Что бы не смущать неокрепшие умы дизайнеров Вот-вот, я и говорю костыль. А окрепшие умы вполне могут представить себе reg-провод, как постоянно открытую защелку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 9 февраля, 2015 Опубликовано 9 февраля, 2015 · Жалоба Вот-вот, я и говорю костыль.Скорее стремление к унификации :rolleyes: Но по сути конечно костыль Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 17 9 февраля, 2015 Опубликовано 9 февраля, 2015 · Жалоба В vhdl есть только signal. И это радует. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 9 февраля, 2015 Опубликовано 9 февраля, 2015 · Жалоба В vhdl есть только signal. И это радует. В VHDL есть куда большая хренова туча типов, и соответствующая куча преобразований из пустого в порожнее... В отличие от двух основных типов верилога - wire и reg. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться