|
|
  |
Почему не хватает родных САПР для ПЛИС?, Зачем нужны Active-HDL, Riviera, ModelSym, Synplify, Identify... |
|
|
|
Sep 4 2011, 13:23
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(ViKo @ Sep 4 2011, 03:45)  Приоритет имеет первый оператор, не последний. Сначала проверяется подходящее условие для него, а уж потом, если условие не выполняется, выполняются следующие операторы. вы что издеваетесь? Напомню что речь идет про сабжевый код Код if rising_edge(clk) then <последовательные операторы> end if; if rst = '1' then <что-то инициализировали> end if; Думаю что сами исправите свою ошибку %)
--------------------
|
|
|
|
|
Sep 4 2011, 15:36
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(des00 @ Sep 4 2011, 16:23)  вы что издеваетесь? Думаю что сами исправите свою ошибку %) А если присваивания блокирующие? Посмотрите, что получается при компиляции следующего кода (я пользуюсь Quartus 9.1 SP2). Код module Trigger (input clk, rst_n, in, output out); always_ff @(posedge clk, negedge rst_n) begin if (clk) out = in; if (!rst_n) out = 0; end endmodule Можете переставить строки в блоке местами %. ЗЫ. И _ff ему, Quartus'у, нипочем... ЗЗЫ. Да и неблокирующие присваивания не помогают. Не получается у Quartus'а триггер, а получается - ...! Похоже, издевка удалась, но не у меня.
|
|
|
|
|
Sep 4 2011, 18:19
|
Знающий
   
Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515

|
Цитата(ViKo @ Sep 4 2011, 19:36)  А если присваивания блокирующие? Посмотрите, что получается при компиляции следующего кода (я пользуюсь Quartus 9.1 SP2). Код module Trigger (input clk, rst_n, in, output out); always_ff @(posedge clk, negedge rst_n) begin if (clk) out = in; if (!rst_n) out = 0; end endmodule Этот код вовсе не соответствует шаблону, который я приводил. Оператор "out = in;" тут выполняется не только по фронту clk, но и по фронту rst_n(при условии clk==1), чего допускать нельзя. Как написать полный аналог моего VHDL метода асинхронного сброса на Верилоге, я, честно говоря, даже не представляю. В Верилоге вроде нет функции проверки фронта сигнала, а без неё никак.
|
|
|
|
|
Sep 5 2011, 03:20
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(ViKo @ Sep 4 2011, 10:36)  А если присваивания блокирующие? Посмотрите, что получается при компиляции следующего кода (я пользуюсь Quartus 9.1 SP2). Код module Trigger (input clk, rst_n, in, output out); always_ff @(posedge clk, negedge rst_n) begin if (clk) out = in; if (!rst_n) out = 0; end endmodule Можете переставить строки в блоке местами %. ЗЗЫ. Да и неблокирующие присваивания не помогают. Не получается у Quartus'а триггер, а получается - ...! У вас очень интересный способ аргументации. Вместо того, что бы посмотреть стандарт на HDL, раздел касающийся присвоений сигналов и очередей исполнения. Убедится что в VHDL/V/SV любое присвоение сигнала, без задания временной задержки переопределяет все предыдущие присваивания. Вы берете синтезатор(!!!!) как истину в последней инстанции, пишете код, который вступает в противоречие как с требованиям самого синтезатора, так и со стандартом на описание синтезируемых конструкций языка V (не знаю есть ли подобный документ для SV). И предъявляете этот результат как однозначное опровержение того, что стандарты врут. Вам не кажется что вы, пытаясь доказать от противного, идете не по тому пути? Если идти дальше, насчет вашего кода, то в симуляторе он ведет себя как триггер. А то что вас "напугало" в результатах синтеза, представляет собой классический двухтактный триггер, но без RS звена. И это будет работать, так как вы его описали, как триггер. А то что реализован не на аппаратных DFF, дык надо было стандартам следовать, код писать как рекомендуется. Цитата Похоже, издевка удалась, но не у меня.  Это сообществу решать Цитата(ViKo @ Sep 4 2011, 13:45)  А des00 сказал "в V, SV абсолютно тоже самое".  Если бы это было не так то ~40-50 % моих проектов в принципе бы не работали.
Эскизы прикрепленных изображений
--------------------
|
|
|
|
|
Sep 5 2011, 04:43
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(des00 @ Sep 5 2011, 06:20)  У вас очень интересный способ аргументации. Вместо того, что бы посмотреть стандарт на HDL, раздел касающийся присвоений сигналов и очередей исполнения. Убедится что в VHDL/V/SV любое присвоение сигнала, без задания временной задержки переопределяет все предыдущие присваивания. ... Если идти дальше, насчет вашего кода, то в симуляторе он ведет себя как триггер. А то что вас "напугало" в результатах синтеза, представляет собой классический двухтактный триггер, но без RS звена. И это будет работать, так как вы его описали, как триггер. А то что реализован не на аппаратных DFF, дык надо было стандартам следовать, код писать как рекомендуется. Я согласен, что был неправ в первом сообщении. И не доказываю свою правоту любым способом. Просто выясняю истину. Переопределяет все предыдущие...? Разве блокирующее присваивание дожидается выхода из блока, а не задает сигнал каждый раз, когда выполняется? Посмотрю.
Но уже при проверке в реальном коде выяснилось, что для SV получается не тактируемый триггер, а latch. И временные диаграммы, что Quartus мне нарисовал, триггеру не соответствуют. Чего это у вас in скачет перед "нужными" тактами? Цитата Это сообществу решать По-моему, вы тоже были неправы, когда сказали, что в V, SV то же самое, что и в VHDL. Зачем что-то решать и кому-то доказывать? Обычные дела. Главное, выяснилось, что в SV конструкция, предложенная Timmy, не работает. Такой результат дискуссии меня устраивает. Надеюсь, что и вас. upd. Картинку из Квартуса добавил.
Эскизы прикрепленных изображений
|
|
|
|
|
Sep 12 2011, 11:44
|
Участник

Группа: Свой
Сообщений: 52
Регистрация: 13-11-07
Пользователь №: 32 296

|
Уважаемые специалисты, нет ли у кого актуальной информации по порядку цен на одно лицензионное рабочее место на связку Hdl Designer + Precision RTL + Model Sim SE ?
|
|
|
|
|
Sep 14 2011, 11:47
|
Местный
  
Группа: Свой
Сообщений: 375
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792

|
Цитата(des00 @ Sep 12 2011, 17:51)  хмм, ну где то миллиона под 2 %) А вдруг это учебное заведение? Лучше все таки воспользоваться советом Stewart Little. Да и моделсим не так дорог, в отличие от Questasim.
--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
|
|
|
|
|
Sep 14 2011, 12:15
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(warrior-2001 @ Sep 14 2011, 06:47)  А вдруг это учебное заведение? про это в вопросе ничего не было %) Цитата Да и моделсим не так дорог, в отличие от Questasim. приведенная мной цена как раз для моделсима
--------------------
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|