k16
Участник-
Постов
69 -
Зарегистрирован
-
Посещение
Весь контент k16
-
Как реализовать арбитр?
k16 ответил barabek тема в Языки проектирования на ПЛИС (FPGA)
Куда ляжет и на чём? -
Инкрементирование адресов
k16 ответил k16 тема в Языки проектирования на ПЛИС (FPGA)
Программа толковая конечно, но это не то что нужно тут, совсем не то. Ладно я уже сделал сегодня эту задачку по другому сам. Всем спасибо. пока. -
Инкрементирование адресов
k16 ответил k16 тема в Языки проектирования на ПЛИС (FPGA)
Сейчас буду анализировать этот код. Напишу ответ позже. -
Инкрементирование адресов
k16 ответил k16 тема в Языки проектирования на ПЛИС (FPGA)
Но работать-то я должен вначале с частотой 100 кГц, а потом должна действовать частота 50 Гц, мало того, потом частота должна быть опять 100 кГц, а потом 6,25 Гц????? Как быть с очерёдностью частот? Тут наверно надо делать процесс мультиплексора на 3 входа? и снимать частоты с мультиплексора? Как тогда процессы расположить в программе? В какой очерёдности идёт выполнение процессов? -
Инкрементирование адресов
k16 ответил k16 тема в Языки проектирования на ПЛИС (FPGA)
Что же тогда делать-то, а? Что частота должна из 100 кГц при приходе значения adres = 1 преобразоваться в 50 Гц что-ли, так? Но всё равно значение designation вормируется-то в 100 кГц частоте, а инкрементироваться должно в 50 Гц....???7 Как быть? Тег код где включается-то прикопировании текст в окошко темы? Копируется-ли отсюда веб страница? Возникает вопрос преобразования частот (деление и умножение), да? Надо ввести процесс пересинхронизации перед процессом считывания, да? В каком порядке идёт выполнение разных процессов? Дайте направление движения. Буду делать сам... Как найти тогда сделать задержку к примеру для умножения? -
Инкрементирование адресов
k16 ответил k16 тема в Языки проектирования на ПЛИС (FPGA)
Где этот тег код включается? А программу мне именно эту надо доработать. Сигнал signal designation : integer range 0 to 40000; используется в двух процессах. Как быть? Есть ли возможность скопировать HTML страницу с этого сайта? Она копируется, но не читается Эксплорером без интернета? Вообще если возможно, то как оптимизировать данную программу, чтоб работала она по этому же алгоритму? Как улучшить, чтоб места меньше занимала в микросхеме и т.д.? Очень прошу помочь... Если можно, то киньте текст программы на почту ... -
Инкрементирование адресов
k16 ответил k16 тема в Языки проектирования на ПЛИС (FPGA)
Такой вопрос. Есть ли возможность скопировать HTML страницу с этого сайта? Она копируется, но не читается Эксплорером без интернета? -
Инкрементирование адресов
k16 ответил k16 тема в Языки проектирования на ПЛИС (FPGA)
Хорошо. Всё сделал так как Вы советуете. Что делать с этими ошибками? Error (10028): Can't resolve multiple constant drivers for net "designation[15]" at KZU.vhd(48) Error (10029): Constant driver at KZU.vhd(130) Error (10028): Can't resolve multiple constant drivers for net "designation[14]" at KZU.vhd(48) Error (10028): Can't resolve multiple constant drivers for net "designation[13]" at KZU.vhd(48) Error (10028): Can't resolve multiple constant drivers for net "designation[12]" at KZU.vhd(48) Error (10028): Can't resolve multiple constant drivers for net "designation[11]" at KZU.vhd(48) Error (10028): Can't resolve multiple constant drivers for net "designation[10]" at KZU.vhd(48) Error (10028): Can't resolve multiple constant drivers for net "designation[9]" at KZU.vhd(48) Error (10028): Can't resolve multiple constant drivers for net "designation[8]" at KZU.vhd(48) Error (10028): Can't resolve multiple constant drivers for net "designation[7]" at KZU.vhd(48) Error (10028): Can't resolve multiple constant drivers for net "designation[6]" at KZU.vhd(48) Error (10028): Can't resolve multiple constant drivers for net "designation[5]" at KZU.vhd(48) Error (10028): Can't resolve multiple constant drivers for net "designation[4]" at KZU.vhd(48) Error (10028): Can't resolve multiple constant drivers for net "designation[3]" at KZU.vhd(48) Error (10028): Can't resolve multiple constant drivers for net "designation[2]" at KZU.vhd(48) Error (10028): Can't resolve multiple constant drivers for net "designation[1]" at KZU.vhd(48) Error (10028): Can't resolve multiple constant drivers for net "designation[0]" at KZU.vhd(48) Error: Can't elaborate top-level user hierarchy Error: Quartus II Analysis & Synthesis was unsuccessful. 18 errors, 13 warnings Error: Peak virtual memory: 175 megabytes Error: Processing ended: Mon Aug 17 17:15:28 2009 Error: Elapsed time: 00:00:06 Error: Total CPU time (on all processors): 00:00:03 -
Компаратор на VHDL
k16 ответил k16 тема в Языки проектирования на ПЛИС (FPGA)
Всё. Вопрос закрыт. Всем оочень благодарен. Огромное спасибо... -
Компаратор на VHDL
k16 ответил k16 тема в Языки проектирования на ПЛИС (FPGA)
щас пойду посмотрю промоделирую. напишу позже -
Инкрементирование адресов
k16 ответил k16 тема в Языки проектирования на ПЛИС (FPGA)
Да, но значение R_A формируется и приходит из синхронного процесса, т.е. R_A используется в двух синхронных процессах. R_A - это синхронное "значение-сигнал" приравнивается к синхронной переменной c в данном случае, которая меняется по Hz_50. Как же быть? нужно наверно R_A внести в счётчик по сигналу load и счётчик уже по сигналу enable начнёт счёт уже своей частоты Hz_50 от сигнала-значения R_A и при достижении значения 40000 по схеме "И" счётчик сбросить и он начнёт считать с "0", потом закрыв enable - это если делать схему, но хотелось-бы написать это на VHDL, чтоб считать с "1", а не с "0". -
Компаратор на VHDL
k16 ответил k16 тема в Языки проектирования на ПЛИС (FPGA)
Хотя и алгоритмически всё правильно сделано, но программа эта вообще не делает сравнений и не даёт ввести клок типа rising_edge в условия, а сравнивать значения нужно с частотой 100кГц в каждом периоде... Программа ничего не сравнивает... Тут всё-таки наверно нужно вводить boolean тип... В общем не работает это... возникает путаница типов.... сам проверил и промоделировал... -
Компаратор на VHDL
k16 ответил k16 тема в Языки проектирования на ПЛИС (FPGA)
открыть тэг "code" - что это значит????? -
Инкрементирование адресов
k16 опубликовал тема в Языки проектирования на ПЛИС (FPGA)
Здравствуйте. Как в данной программе сделать инкрементирование адресов по кольцу '+1' от приходящего на вход R_A значения. Всего должно сформироваться 40000 адресов. При достижении 40000, значение адреса должно перейти в 1 и начать инкрементироваться c 1 до R_A - 1. Не получается. Помогите. Разрешающую функцию надо наверно тут писать для c? library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; ENTITY KSU IS PORT ( Hz_50 : in std_logic; m : in std_logic; R_A : in integer range 0 to 40000; quit : OUT integer range 0 to 40000 ); END KSU; ARCHITECTURE div OF KSU IS BEGIN ------------------------------------------------------------------------------------------------------- process (Hz_50, m, R_A) variable c : integer range 0 to 40000 := 0; BEGIN c := R_A; if (Hz_50'event and Hz_50 = '0' and m = '1' ) then if c /= 40000 then c := c + 1; else c := 1; end if; quit <= c; end if; if m = '0' then quit <= 0; end if; end process; END div; -
Компаратор на VHDL
k16 ответил k16 тема в Языки проектирования на ПЛИС (FPGA)
Cейчас буду моделировать. да хоть 1000 раз, но нужно подряд всего 3. Длительность выходного импульса до канца работы платы (он постоянен). Арбитраж не нужен. достаточно 3 подряд сравнений-превышений в любом из каналов. Что вы понимаете под системной частотой? Я делаю блочок схемы в который поступает 100 кГц и системная частота мне не нужна тут... Ошибка при синтезе такая: Can't resolve multiple constant drivers for net "stroke_1" at <location> неа. не компилируется это. и по-моему это что-то не то.... -
Компаратор на VHDL
k16 ответил k16 тема в Языки проектирования на ПЛИС (FPGA)
Да, но сравнение на >= должно пройти подряд 3 раз, а если сравнение было всего 2 раза подряд или 1 раз, то сигнал должен сброситься в '0' и опять начинать сравнивать до трёх подряд сранений на >= и r и а должны быть <= b_1 и соответственно d_1. Вообще зачем тут reset , он тут вообще не к месту. Чего ресетить-то? То есть можно обойтись и без boolean, да? -
Компаратор на VHDL
k16 ответил k16 тема в Языки проектирования на ПЛИС (FPGA)
Здравствуйте. Этот код вообще не делает никаких сравнений и абсолютно не пригоден. Тут надо сравнивать на "правду-ложь" как-то, вводить тип boolean... Что-то как-то вот так: Как не моделировал, как не ворочал этот код никак не получается??????????????? library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity STROKE is port ( clk : in std_logic; -- a, r, b_1, b_2, d_1, d_2: in bit_vector (15 downto 0); a, r, b_1, d_1: in bit_vector (15 downto 0); stroke_1: out std_logic:= '0'); -- stroke_2: out std_logic:= '0' ); end STROKE; architecture kod of STROKE is --constant s, k: integer := 3; --SIGNAL tmp_1 : std_logic:= '0'; --SIGNAL tmp_2 : std_logic:= '0'; --signal m, k: boolean; signal m: bit:='0'; --SIGNAL clk_100kHz : std_logic; begin process (clk) variable s: integer range 1 to 4:= 1; begin -- clk_100kHz <= not clk; --m <= (r >= b_1) or (a >= d_1); --k <= (r >= b_2) or (a >= d_2); if ((r >= b_1) or (a >= d_1)) then m <= '1'; end if; -- tmp_1 <= '1' if (rising_edge(clk) and m = '1' ) then s := s + 1; end if; --if ( rising_edge(not clk) and k = 3) then tmp_2 <= '1'; end if; if (s = 4) then stroke_1 <= '0'; end if; end process; --stroke_1 <= tmp_1; end kod; :smile3046: -
Компаратор на VHDL
k16 ответил k16 тема в Языки проектирования на ПЛИС (FPGA)
Я не силён в программировании, но наверно так надо? Помогите... library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity STROKE is port ( clk : in std_logic; a, r, b_1, d_1: in bit_vector (15 downto 0); stroke_1: out std_logic:= '0'; ); end STROKE; architecture kod of STROKE is signal m: bit:='0'; begin process (clk) variable s: integer range 1 to 4:= 1; begin if ((r >= b_1) or (a >= d_1)) then m <= '1'; if (rising_edge(clk) and m = '1' ) then s := s + 1; end if; end if; if (s = 3) then stroke_1 <= '1'; end if; end process; end kod; -
Компаратор на VHDL
k16 опубликовал тема в Языки проектирования на ПЛИС (FPGA)
Здравствуйте. На входе компаратора установлены две 16-ти битные уставки (переменные, которые можно менять), которые сравниваются на >= c 16-ти битными данными, идущими от двух АЦП с частотой 100 кГц, соответственно с одной уставкой и с другой, т.е. два канала сравнения. Необходимо что-бы прошли подряд три сравнения >= в любом из двух каналов для формирования единичного строба выхода с компаратора. Помогите пожалуйста написать это на VHDL. Я не силён в программировании, но наверно так надо? Помогите... library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity STROKE is port ( clk : in std_logic; a, r, b_1, d_1: in bit_vector (15 downto 0); stroke_1: out std_logic:= '0'; ); end STROKE; architecture kod of STROKE is signal m: bit:='0'; begin process (clk) variable s: integer range 1 to 4:= 1; begin if ((r >= b_1) or (a >= d_1)) then m <= '1'; if (rising_edge(clk) and m = '1' ) then s := s + 1; end if; end if; if (s = 3) then stroke_1 <= '1'; end if; end process; end kod;