Есть такая проблема компилятор ругается Error (10200): Verilog HDL Conditional Statement error (255): cannot match operand(s) in the condition to the corresponding edges in the enclosing event control of the always construct
if (lo_3) valb2 <= 1'b1; else if (valb1) valb2 <= 1'b0; end
//.....
Не могу понять! Что ни как нельзя проверить en_spi_clk & valb1 ??? Если например сработал сигнал valb1 и en_spi_clk == 1 тогда делать то... иначе если сработал сигнал valb1 и en_spi_clk == 0 тогда делать следующее...?
Последний раз редактировалось pirotehnick Ср апр 22, 2015 12:50:10, всего редактировалось 2 раз(а).
Ошибку то скиньте тоже. И то, что оно ругается именно на эту часть кода не означает, что ошибка именно в ней, возможна в разных частях кода пытаетесь взаимозависимые действия произвести или что то в этом роде.
_________________ "Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл / "Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Это весь always или ниже еще что то есть ? Попробуйте исключить оттуда if где используются en_spi_clk и valb1.
_________________ "Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл / "Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Блин, что не тема, то обязательно грабли асинхронщины причем одни и теже. Мульён раз писали в alwayse не надо прописывать более одного сигнала. Правильнее сделать так. наверняка есть тактовая частота, более высокая нежели en_spi_clk или valbl. Назначьте ее (тактовую) в качестве чувствительного сигнала (posedge clk), а уже внутри алвайса проводите проверку на то что en_spi_clk=1 или valdl=1. Если нужно отработать только фронты - назначайте переменные с разрядностью больше одного бита, заводите в эти переменные сигналы и отлавливайте условия var="01" или var="10"(если разрядов два).
_________________ Загружая на вход компьютера "мусор", на выходе получим "мусор^32". PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Можно какой нибудь кусочек кода с последним вариантом ?
_________________ "Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл / "Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Как делаю у себя (vhdl, перевести на верилог в качестве домашнего задания)
Код:
entity primer is port( clk,sclk,ena, dti:in std_logic; dout:out std_logic_vector(7 downto 0) );
architecture rg of primer is begin process(clk) variable dt_v:std_logic_vector(7 downto 0);--заполняемая переменная variable sclk_v:std_logic_vector(1 downto 0);-- переменная для выделения фронта сигнала begin if(rising_edge(clk))then sclk_v:=sclk_v(0)&sclk;--сдвиг сигнала if(ena='1')then--если разрешено if(sclk_v="10")then--если задний фронт dt_v:=dt_v(6 downto 0)&dti;--заполняем переменную end if; end if; dout<=dt_v;--вывод данных end if; end process; end rg;
Некоторое уточнение, тактовый сигнал clk должен иметь в несколько раз (минимум 2, но лучше больше) большую частоту, чем сигналы ena и sclk
_________________ Загружая на вход компьютера "мусор", на выходе получим "мусор^32". PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
always @(posedge gclk) begin sclk_v = {sclk_v[0], sclk}; if (ena == 1) if (sclk_v == "10") dt_v = {dt_v[6:0], dti}; end
assign dout = dt_v;
endmodule
_________________ "Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл / "Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Похоже! Ну теперь дело за малым - проект в modelsim и проверить его работу
_________________ Загружая на вход компьютера "мусор", на выходе получим "мусор^32". PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Привет всем. Котаны, подскажите, а с Альтеры сейчас можно ли скачать Квартус 2 без регистрации??? Или где его можно скачать адекватно? А то я там регистрировать не могу, бесит меня, все время по новой форму заполнять. Нужно для Циклона 4.
В смысле? Один раз зарегался и пользуйся аккаунтом.
_________________ Когда уже ничего не помогает - прочтите, наконец, инструкцию. Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII) Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Да блин... полей много, ошибаюсь то там, то там... Да еще и ник-нэймы которые я выбираю уже все заняты и снова приходится с нуля заполнять... четыре раза попробовал - псих взял...
Прошу прощения за глупые вопросы.. Все таки скачал я Квартус2 самой последней версии... Установил его (ну и объемчик... ). Теперь понял, что есть достаточно заметные различия с той версией, что описана на сайте Марсоход.орг. Вопрос пока такой: "Этот Квартус 2 версии 15.0 работает под виндой7 64 бита???" Или все таки переустанавливать надо систему на 32 разряда??
Ты только сначала определись, с какими сериями будешь работать, а то они повыкидывали кучу из семейства.
И ещё Альтеру Интел покупает, и Латтисе тоже хочет продаться
глядишь, скоро процы с плисятиной будут ))
_________________ Разработал: -BLDC -ФУОЗ/МПСЗ -SMART BMS -ECU/EDC на STM32F4(43%)+CPLD(57%) -Моноинжектор на ATSAMD20G16 -контроллер эффектов для RGB LED ленты -умные часы/обратный счет/секундомер -устройство измерения емкости АКБ
Так мне как бы... рано еще определяться... Я в них вообще не бум-бум... Купил себе отладочную плату с Циклоном 4, думаю забросить ее до осени или зимы, пока дальше ковыряться с АВР. Однако, бывает любопытство зашкаливает, поэтому и изучаю по чуть-чуть что-то новое (для кого-то старое).
_________________ Загружая на вход компьютера "мусор", на выходе получим "мусор^32". PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения