Кажется вы не внимательны! 1) В исходном коде только один регистр ! IN_REG[15..0] , остальное всё логические действия ! 2) Вы не разобрались как работать с портом ввода/вывода т.е. двунаправленным, и поэтому наверное код не работает..
Добрый день! Такая проблема. Есть код на Verilog, который, по идее, реализует машину состояний для инициализации динамической памяти. Проблема в том, что при компиляции в State Machine Viewer-е эта машина состояний просматривается как пустая. Соответственно, в железке ничего не срабатывает. Уменьшил код до такого: Спойлер
always @(posedge clk or negedge nreset) begin if(!nreset) begin //Сброс state <= state_begin; init_done_reg <= 0; end else begin //Нормальная работа state <= next_state; init_done_reg <= next_init_done_reg; cycle_counter <= next_cycle_counter; end end
case (state) state_begin: begin next_cycle_counter = 0; next_state = state_iwait; end state_iwait: begin if(cycle_counter >= 32'd133000) next_state = state_done; end state_done: begin next_init_done_reg = 1; end default: begin next_state = state_begin; next_init_done_reg = 0; end endcase end
endmodule
Все равно, машина состояний остаётся пустой, регистр init_done_reg никогда не становится единицей, хотя ошибится тут трудно, вроде как. Уже бьюсь головой об стену. Что я делаю не так?
Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.
Что значит, не срабатывает? Написанное вами значит, что между положительным фронтом clk и изменением значения регистра leds будет задержка 100 нс. Но частота изменений регистра leds будет определяться частотой тактирования clk. Вот вам картинка для пояснения:
Не уверен что верилог сильно отличается, но в вхдл, задержка имеет смысл только в моделировании (например что бы задать смещение сигналов), а в синтезе (речь как я понял именно о синтезе) команда задержки не работает.
_________________ Загружая на вход компьютера "мусор", на выходе получим "мусор^32". PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Я вот как раз и делал моделирование , modelsim пока не осилил, делал во встроенной в 13 квартусе системе моделирования(waveform editor), указал на конкретно временное моделирование, я вообще делаю лабы студентам, мне нужно полностью изучить этот язык, так как лабы будут на освоение этого языка. Вот хочу научиться как правильно писать задержки для модулей.
Поддерживаю вопрос порекомендуйте пожалуйста русскоязычную литературу, раскрывающую синтаксис и семантику языка Verilog HDL, а то до сих пор не могу разобраться с функциями следующих команд : cmos deassign pmos pull0 pull1 pullup pulldown rcmos release rnmos rpmos rtran rtranif0 rtranif1 specparam strength strong notif0 notif1 strong1 tran tranif0 tranif1 small medium large force
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения