Программируемая логика - это не так уж и сложно. Разберемся вместе.
Ответить

вопрос по Quartus II

Ср апр 22, 2015 08:00:42

Добрый день!

Есть такая проблема компилятор ругается
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

на следующий кусок кода

Код:
//.........
reg  lo_1;
reg  lo_2;
reg  lo_3;
reg en_spi_clk;
reg  valb1;

//.......
always @ (posedge en_spi_clk or  posedge valb1)
begin

 lo_1 = en_spi_clk;
 lo_2 = valb1;
 lo_3 = lo_1&lo_2;
 
 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 раз(а).

Re: вопрос по Quartus II

Ср апр 22, 2015 09:35:26

Ошибку то скиньте тоже. И то, что оно ругается именно на эту часть кода не означает, что ошибка именно в ней, возможна в разных частях кода пытаетесь взаимозависимые действия произвести или что то в этом роде.

Re: вопрос по Quartus II

Ср апр 22, 2015 10:34:18

Ага, добавил описание ошибки...

Re: вопрос по Quartus II

Ср апр 22, 2015 12:07:40

Это весь always или ниже еще что то есть ? Попробуйте исключить оттуда if где используются en_spi_clk и valb1.

Re: вопрос по Quartus II

Ср апр 22, 2015 12:49:48

Да, это весь блок always...

Re: вопрос по Quartus II

Чт апр 23, 2015 07:27:10

Morroc писал(а):Попробуйте исключить оттуда if где используются en_spi_clk и valb1.


А как мне ещё проверить условие (en_spi_clk & valb1) внутри этого блока ?

Re: вопрос по Quartus II

Вс апр 26, 2015 17:30:35

Блин, что не тема, то обязательно грабли асинхронщины причем одни и теже. Мульён раз писали в alwayse не надо прописывать более одного сигнала. Правильнее сделать так. наверняка есть тактовая частота, более высокая нежели en_spi_clk или valbl. Назначьте ее (тактовую) в качестве чувствительного сигнала (posedge clk), а уже внутри алвайса проводите проверку на то что en_spi_clk=1 или valdl=1. Если нужно отработать только фронты - назначайте переменные с разрядностью больше одного бита, заводите в эти переменные сигналы и отлавливайте условия var="01" или var="10"(если разрядов два).

Re: вопрос по Quartus II

Вс апр 26, 2015 20:42:26

Можно какой нибудь кусочек кода с последним вариантом ?

Re: вопрос по Quartus II

Пн апр 27, 2015 20:51:34

Как делаю у себя (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

Re: вопрос по Quartus II

Пн апр 27, 2015 23:08:21

Ага... Что то типа ?

Код:
module mymod ( gclk, sclk, dti, dout, ena );

input        gclk;
input        sclk;
input        dti;
output       [7:0] dout;
input        ena;
reg          [1:0] sclk_v;
reg          [7:0] dt_v;

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

Re: вопрос по Quartus II

Вт апр 28, 2015 05:56:42

Похоже! Ну теперь дело за малым - проект в modelsim и проверить его работу

Re: вопрос по Quartus II

Сб июн 06, 2015 14:14:59

Привет всем. Котаны, подскажите, а с Альтеры сейчас можно ли скачать Квартус 2 без регистрации??? Или где его можно скачать адекватно? А то я там регистрировать не могу, бесит меня, все время по новой форму заполнять. :kill:
Нужно для Циклона 4.

Re: вопрос по Quartus II

Сб июн 06, 2015 14:30:14

СКАЗОЧНИК писал(а):А то я там регистрировать не могу
В смысле?
Один раз зарегался и пользуйся аккаунтом.

Re: вопрос по Quartus II

Сб июн 06, 2015 14:31:34

Да блин... полей много, ошибаюсь то там, то там... Да еще и ник-нэймы которые я выбираю уже все заняты и снова приходится с нуля заполнять... :facepalm: :evil:
четыре раза попробовал - псих взял... :kill:

Прошу прощения за глупые вопросы..
Все таки скачал я Квартус2 самой последней версии... Установил его (ну и объемчик... :shock: ). Теперь понял, что есть достаточно заметные различия с той версией, что описана на сайте Марсоход.орг.
Вопрос пока такой:
"Этот Квартус 2 версии 15.0 работает под виндой7 64 бита???" Или все таки переустанавливать надо систему на 32 разряда??

Re: вопрос по Quartus II

Вс июн 07, 2015 14:59:12

Но поскольку следующие версии Quartus II (начиная с 14.0) будут поддерживать только 64 разрядную ОС

Все, нашел. Вопрос исчерпал сам себя. :)

Re: вопрос по Quartus II

Вс июн 07, 2015 19:03:22

СКАЗОЧНИК писал(а):Все, нашел. Вопрос исчерпал сам себя. :)

Ты только сначала определись, с какими сериями будешь работать, а то они повыкидывали кучу из семейства.

И ещё Альтеру Интел покупает, и Латтисе тоже хочет продаться :shock:

глядишь, скоро процы с плисятиной будут ))

Re: вопрос по Quartus II

Вс июн 07, 2015 19:12:17

Так мне как бы... рано еще определяться... Я в них вообще не бум-бум... Купил себе отладочную плату с Циклоном 4, думаю забросить ее до осени или зимы, пока дальше ковыряться с АВР. Однако, бывает любопытство зашкаливает, поэтому и изучаю по чуть-чуть что-то новое (для кого-то старое). :)))

Re: вопрос по Quartus II

Сб июл 18, 2015 10:18:45

СКАЗОЧНИК, а что за отладка? DE0 NANO?

Re: вопрос по Quartus II

Сб июл 18, 2015 20:03:07

Не совсем понимаю ваш вопрос... Что такое "отладка ДЕО НАНО"?

Re: вопрос по Quartus II

Сб июл 18, 2015 21:17:10

Раз не поняли - значит не она
Ответить