des00 25 12 февраля, 2012 Опубликовано 12 февраля, 2012 · Жалоба Не хочется перечислять все подряд when "0000001"=> x<=a; when "0000010"=> x<=a; .... у вас нет выбора, это VHDL. переходите на верилог/систем верилог. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyVas 0 12 февраля, 2012 Опубликовано 12 февраля, 2012 · Жалоба понятно. Еще вопрос как во что синтезируется этот код tempdataadc1(0)<=datain_adc1 after 500 ns; Интересует after 500 ns; как синтезатор узнает какой клок, не где не задавал? И что он сделает одновибратор ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Timmy 1 12 февраля, 2012 Опубликовано 12 февраля, 2012 · Жалоба понятно. Еще вопрос как во что синтезируется этот код tempdataadc1(0)<=datain_adc1 after 500 ns; Интересует after 500 ns; как синтезатор узнает какой клок, не где не задавал? И что он сделает одновибратор ? Синтезатор для FPGA не сделает одновибратор, ввиду их отсутствия в железе. Вообще задержки не следует указывать в синтезируемом коде. Сдвиговый регистр можно описывать так: tempdataadc1 <= tempdataadc1(tempdataadc1'high-1 downto 0) & datain_adc1; Для описания множественного выбора в VHDL есть оператор "|", причём компилятор Вам про него даже напомнил:). Поставьте Aldec HDL, в справке там полно примеров. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyVas 0 12 февраля, 2012 Опубликовано 12 февраля, 2012 · Жалоба tempdataadc1 <= tempdataadc1(tempdataadc1'high-1 downto 0) & datain_adc1; Понятно . tempdataadc1 <= tempdataadc1(tempdataadc1'high-1 downto 0) & datain_adc1; tempdataadc1 это векторный тип, а datain_adc1 stdlogic Сдвиг на сколько в этом коде будет , так понимаю здесь все время будет "И" с 0 битом tempdataadc1 ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 13 февраля, 2012 Опубликовано 13 февраля, 2012 · Жалоба Не хочется перечислять все подряд when "0000001"=> x<=a; when "0000010"=> x<=a; .... Тоже ошибка пробовал Error (10500): VHDL syntax error at proba.vhd(118) near text "B"0000010""; expecting "!", or "=>" Это не "!", а "|" (pipe, вертикальная черта, etc). when "0000001" | "0000010"=> x<=a; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyVas 0 13 февраля, 2012 Опубликовано 13 февраля, 2012 · Жалоба Это не "!", а "|" (pipe, вертикальная черта, etc). Спасибо. сейчас попробую. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Timmy 1 13 февраля, 2012 Опубликовано 13 февраля, 2012 · Жалоба tempdataadc1 <= tempdataadc1(tempdataadc1'high-1 downto 0) & datain_adc1; tempdataadc1 это векторный тип, а datain_adc1 stdlogic Сдвиг на сколько в этом коде будет , так понимаю здесь все время будет "И" с 0 битом tempdataadc1 ? & - это конкатенация, в данном случае бита с вектором. Я отрезаю от вектора старший бит, и присоединяю новый бит с младщей стороны вектора, средние биты при этом сдвигаются на 1, больше ничего писать не нужно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyVas 0 13 февраля, 2012 Опубликовано 13 февраля, 2012 · Жалоба спасибо, понял, думал код как в си работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kas 0 15 февраля, 2012 Опубликовано 15 февраля, 2012 · Жалоба спасибо, понял, думал код как в си работает. На время изучения HDL, ИМХО, надо бы подзабыть про языки программирования, да вспомнить цифровую схемотехнику. Изучать VHDL я начинал с Бибило Основы языка VHDL. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyVas 0 20 февраля, 2012 Опубликовано 20 февраля, 2012 · Жалоба В чем будет разница между entity work и component adc , какой вариант где обычно используется? DD3: entity work.adc(adc_conv)port map( data1,data2); и component adc port( data1 : in std_logic_vector ( 11 downto ), data2 : out std_logic_vector ( 11 downto ),); end component; begin dd3:adc port map.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 20 февраля, 2012 Опубликовано 20 февраля, 2012 · Жалоба Ни в чём. Первый вариант называется direct instantiation и появился в VHDL'93. Я пользуюсь им, чтобы не писать декларации компонентов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 22 февраля, 2012 Опубликовано 22 февраля, 2012 · Жалоба у вас нет выбора, это VHDL. переходите на верилог/систем верилог. выбор есть :) пример when others=>op<=inp(7); в этой строке мы определяем все остальные состояния, которые не хотим перечислять Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться