Jump to content

    

Rotor

Участник
  • Content Count

    25
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Rotor

  • Rank
    Участник
  1. по этому адресу клал *.img с самого начала, проблема запуска решилась изменением этого адреса. Теперь вопрос в том, как это все связать вместе (*.img, *.elf, *.bit) и реализовать самостоятельный старт?
  2. Читайте мое первое сообщение!!! Я не использую пример Arty. я опираюсь на https://github.com/Xilinx/embeddedsw/tree/master/ThirdParty/sw_services/lwip211/examples Вот что происходит- с этого я и начал! Connected to COM17 at 9600 -----lwIP Socket Mode Demo Application ------ link speed: 100 DHCP request success Board IP: 10.0.10.203 Netmask : 255.255.255.0 Gateway : 10.0.10.1 http server is running on port 80 Please point your web browser to http://10.0.10.203 Failed to mount FAT FS. Formatting... Failed to format FAT FS Can't run webserver as FS init failed Если нет дельных и вразумительных советов, не засоряйте тему.
  3. Вот под Arty проект пример (https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841844/ARTY+FreeRTOS+Web+Server)- там просто прошивают битстрим и .elf Tcl для запуска этого примера: #!/usr/bin/tclsh xsdb connect puts " *********** Connection done ************\n" xsdb target xsdb target 1 puts " ********** Target board selected ***********\n" puts "\n **** Connect the hyderterminal with 115200 8-N-1 baud rate!!!*******\n" xsdb fpga -file ./ready_for_download/design_1_wrapper.bit puts " ********** Programmed FPGA ************\n" puts "\n *********** Running Application ************\n " xsdb targets xsdb ta 3 xsdb ta xsdb dow ./ready_for_download/FreeRTOS_LWIP_Webserver_Demo.elf xsdb con puts "Please wait for a minute to see demo into action\n" puts " ****************************************\n" puts "***** Once you see prints on terminal. Open the client web browser to play demo with IP address 192.168.1.10****** \n" puts " *******************X-0-X*******************\n" Это источник откуда будет загружаться FPGA. Я же говорю- у меня есть вопросы почему не грузится сейчас, *.img пишу в DDR, и куда дальше его привязать и как
  4. да, SD карта (обычно куда битстрим кидают)
  5. Не менее дурацкий ответ: не знаю, можно и на CD карте и на флеш qspi. которая на борту, но не понятно как. Сейчас образ грузится в DDRку пока, как по гайду написано. Для этого здесь и написал, как *.img завязать с *.elf. И почему он не определяется при старте. Если надо могу архив проекта скинуть.
  6. Приветствую всех! Есть задумка сделать устройство с Web мордой для отображения на ней динамических данных которые рассчитываются на FPGA. Исходные данные для SDK взяты по ссылке (https://github.com/Xilinx/embeddedsw/tree/master/ThirdParty/sw_services/lwip211/examples). Использую для тестового запуска Nesys4 DDR, vivado 2019.1 (использование vivado 2018.2 - vivado 2019.1 обязательно и обусловлено наличием нужных IP ядер для проекта) . при запуске получаю ошибки : Failed to mount FAT FS. Formatting ... Failed to format FAT FS Can't run webserver as FS init failed *.img с самой страничкой создаю под Linux и загружаю через SDK в DDR. по адресу 0х10000000 (этот адрес под большим вопросом!!) Как запустить все это дело? Нет понимания куда грузить *.img для самостоятельного старта FPGA как web сервера. (*.elf и *.bit прекрасно связываются и проливаются) Может есть у кого-нибудь адекватный пример как это все завязать? (инфы мало, XAP1026 не приводить, пример для Arty от Avnet не катит, все это под старые Vivado, есть серьезные отличия в SDK)
  7. Цитата(alexadmin @ Jul 20 2017, 10:02) Про in-system не расскажу, не приходилось еще работать. TRansceiver wizard - да, этот оно в простейшем виде. Можно и непосредственно с аппаратными макросами работать, но это на любителя. В трансивере есть порты управления и статуса PRBS тестов - можно включать разный PRBS, управлять лупбэками, прочитать из регистров количество обнаруженных ошибок на стандартных PRBS-последовательностях. В общем это отдельная большая работа. Подскажите IP блок с таким функционалом, наиболее подходящий для меня. Сейчас попробовал просимулировать 10G Ethernet PCS/PMA, данные (высокочастотные) с выхода блока получаю не такие как подаю на входную шину
  8. Цитата(alexadmin @ Jul 20 2017, 09:33) Xilinx вроде как не раскрывает программные интерфейсы для общения с ядром IBERT (да и само ядро закрыто). Так что трансивер в руки и вперед - сделать систему управления трансивером, протокол обмена с внешним миром, свое GUI на удаленной машине. В общем полностью пройти цепочку аналогично IBERT/Vivado. Даже если расшифровать ядро ibert, то исходников программы под Microblaze все равно не будет... Предлагаете самому загонять PRBS какую надо в трансивер и самому вычислять ошибку? Об этом я тоже подумал- рабочая простая схема для начала хорошо. А вот трансивер в руки- можно поподробней- это готовый IP блок? Подскажите какой? Сгенерить нужнае мне патерны- не сложная задача, да и вычислить битовую ошибку тоже смогу. Только вот трансивер не поднимал еще( Цитата(alexadmin @ Jul 20 2017, 09:33) Xilinx вроде как не раскрывает программные интерфейсы для общения с ядром IBERT (да и само ядро закрыто). Так что трансивер в руки и вперед - сделать систему управления трансивером, протокол обмена с внешним миром, свое GUI на удаленной машине. В общем полностью пройти цепочку аналогично IBERT/Vivado. Даже если расшифровать ядро ibert, то исходников программы под Microblaze все равно не будет... Ultrascale transceiver wizard - он? Что скажите насчет In-System IBERT IP. Пока имею слабое представление.
  9. Приветствую всех! Появилась у меня идея Отвязать IBERT от Вивады. Хочу чтобы все крутилось на Kintex UltraScale FPGA KCU105, а все данные: ошибки, выставление PRBS, желательно размах - поступали например по Изернету на комп, где бы отображались в собственной софнине. Exemple IBERT for UltraScale GTH Transceivers на KCU105 с внешним луппбеком запускал и мне это все понравилось, только вот КАК ОТВЯЗАТЬ ВЫВОД ДАННЫХ ОТ ВИВАДЫ я пока не знаю. В конечном итоге получится бертестер. Есть ли у кого идеи?
  10. Цитата(bogaev_roman @ Mar 4 2016, 09:41) А что Вас собственно говоря смущает, так и должно быть на уровне симуляции после синтеза - это физика. Главное , чтобы сбоев не было на фронтах рабочей частоты. Самая наглядная ситуация на втором рисунке - каждый отдельный разряд имеет собственный путь и, соответственно, разные задержки. Это вполне нормальная ситуация - в железе работать будет, главное описать грамотно временные ограничения и отсутствие временных ошибок после полной трассировки. Я так и думал, что это нормаль, по фронту главное что бы было установившееся значение, временные ограничения прописаны. Но все равно смущает, в моем проекте наглядно посмотреть в аналоговом формате не получится прям на графике (выбросы велики, по сравнению с сигналом и он превращается в линию), только если параллельно выводить макрос без временных ограничений и сравнивать по значениям.
  11. Столкнулся с такой проблемой- про считывании данных с ПЗУ с временными задержками (размещение на кристале Post-Rout) возникают разного рода выбросы. Взял просто ПЗУ из примеров (лампочка)- ситуация аналогичная. Так разве должно быть? Как избежать этого? На выходе регистр стоит, а толку! Прикрепляю скрины и код для наглядности: (В коде не обращайте внимкание на названия переменных и Clk_6) library IEEE; use IEEE.STD_LOGIC_1164.ALL; --Use ieee.std_logic_arith.all; --use IEEE.std_logic_signed.all; Use ieee.std_logic_unsigned.all; entity ROM_signal is Port( Clk_6 : out std_logic; Clk_96 : in std_logic; Rom_sin_L15C_3 : out std_logic_vector (19 downto 0) ); end ROM_signal; architecture Behavioral of ROM_signal is --Signal Data_sin : integer range -128 to 127; Signal count_addr : std_logic_vector (5 downto 0) := "111011"; Signal Rom_sin_L15C_3_rg : std_logic_vector (19 downto 0):= (others => '0'); --Signal Clk_6 : std_logic := '0'; signal Ce_6 : std_logic := '0'; signal s : std_logic := '0'; signal t : std_logic_vector (3 downto 0):= (others => '0'); type rom_type is array (63 downto 0) of std_logic_vector (19 downto 0); signal ROM : rom_type:= (X"0200A", X"00300", X"08101", X"04000", X"08601", X"0233A", X"00300", X"08602", X"02310", X"0203B", X"08300", X"04002", X"08201", X"00500", X"04001", X"02500", X"00340", X"00241", X"04002", X"08300", X"08201", X"00500", X"08101", X"00602", X"04003", X"0241E", X"00301", X"00102", X"02122", X"02021", X"00301", X"00102", X"02222", X"04001", X"00342", X"0232B", X"00900", X"00302", X"00102", X"04002", X"00900", X"08201", X"02023", X"00303", X"02433", X"00301", X"04004", X"00301", X"00102", X"02137", X"02036", X"00301", X"00102", X"02237", X"04004", X"00304", X"04040", X"02500", X"02500", X"02500", X"0030D", X"02341", X"08201", X"0400D"); signal rdata : std_logic_vector(19 downto 0); begin --------------------------------Формирование Clk_6 (6МГц) process (Clk_96) begin if (Clk_96'event and Clk_96='1') then t <= t+1; end if; end process; s <= '1' when t(3 downto 0) = "0001" else '0'; process (Clk_96) begin if (Clk_96'event and Clk_96='1') then Ce_6 <= s; end if; end process; Clk_6 <= Ce_6; -------------------------------------------------------------- process (Clk_96) begin -- if count_addr = "111011" then -- count_addr <= "000000" ; if Clk_96'event and Clk_96 = '1' then ---if Clk_6 = '1' then count_addr <= count_addr+1; --end if; end if; end process; --------------------------------------- ------------------------------------------RG Rom_sin_L15C_3_rg <= ROM(conv_integer(count_addr)); process (Clk_96) begin if (Clk_96'event and Clk_96 = '1') then Rom_sin_L15C_3 <= Rom_sin_L15C_3_rg; end if; end process; end Behavioral;
  12. Цитата(Alex11 @ Feb 17 2016, 10:13) Высказывание от 0 до 5 дБ - это диапазон, а от чего - это как раз вопрос про 2 разряда. Это разрядность в двоичном коде уровня сигнала
  13. Ситуация: Формирую отсчеты сигнала (например в Маткаде) и записываю их в ПЗУ, вытягиваю сигнал (Z) из пзу , далее нужно задавать его амплитуду. Амплитуда (А) задается в децибелах из вне ( например (5...0)), я так понимаю задается относительно шума. И получаем ZZ=Z* Aшум*10^(A/20), мне тут подсказали, что Ашум= 2 е.м.р Так вот Ашум= 2 е.м.р - это вот совершенно мне не ясно!!!! 2 е.м.р от чего, кого, почему?? 2 е.м.р разрядности конечного сигнала? 2 е.м.р=2/2^n??? Объясните мне пожалуйста, понимания ноль!
  14. Цитата(iosifk @ Jan 3 2016, 14:55) Типично для чайника... А то, что все действия-вычисления могут выполняться одновременно, не думали? )))) не отрицаю что чайник
  15. Цитата(iosifk @ Jan 3 2016, 14:29) Какая частота в проекте и какая максимальная частота кристалла? Еще не знаю, но надо будет вычислять не одну функцию, так что таблицы самое оно Цитата(Maverick @ Jan 3 2016, 13:51) делаете описание памяти и производите инциализацию памяти (в ISE/Quartus находим language template - смотрим пример). Свой сигнал подаете на адресную шину - на выходе получаете результат. вместо функции вставите расчитанные значения подавать сигнал на адреса это прям идея, а как вместо функции вставить рассчитанные значения (ISE)