Jump to content

    

Rotor

Участник
  • Content Count

    27
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Rotor

  • Rank
    Участник

Recent Profile Visitors

611 profile views
  1. Upp Задал вопрос на форуме Xilinx, ответа не дождался вопрос с картинками и примерами кода: https://forums.xilinx.com/t5/FPGA-Configuration/Readback-configuration-Artix-7-problem/td-p/1072697
  2. Есть необходимость проверить целостность загруженной прошивки Artix-7. Вычитал что это реализуется через ICAP (icape2), дальше прочитанную конфигурацию прогоняют через маску (вопрос не изучен) и наконец можно посчитать checksumm считанной конфигурации и сравнить с константой- заранее вычисленной checksumm. Успехов пока не имею- все в общем представлении. Пытаюсь считать конфигурацию через примитив ICAPE2, руководствуюясь UG470, в ответ получаю только FFFFFF9B и FFFFFF8B Посодействуйте, как считать конфигурацию, может у кого есть пример работы с ICAPE2? Новый точечный рисунок (6).bmp
  3. по этому адресу клал *.img с самого начала, проблема запуска решилась изменением этого адреса. Теперь вопрос в том, как это все связать вместе (*.img, *.elf, *.bit) и реализовать самостоятельный старт?
  4. Читайте мое первое сообщение!!! Я не использую пример 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 Если нет дельных и вразумительных советов, не засоряйте тему.
  5. Вот под 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, и куда дальше его привязать и как
  6. да, SD карта (обычно куда битстрим кидают)
  7. Не менее дурацкий ответ: не знаю, можно и на CD карте и на флеш qspi. которая на борту, но не понятно как. Сейчас образ грузится в DDRку пока, как по гайду написано. Для этого здесь и написал, как *.img завязать с *.elf. И почему он не определяется при старте. Если надо могу архив проекта скинуть.
  8. Приветствую всех! Есть задумка сделать устройство с 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)
  9. Подскажите IP блок с таким функционалом, наиболее подходящий для меня. Сейчас попробовал просимулировать 10G Ethernet PCS/PMA, данные (высокочастотные) с выхода блока получаю не такие как подаю на входную шину
  10. Предлагаете самому загонять PRBS какую надо в трансивер и самому вычислять ошибку? Об этом я тоже подумал- рабочая простая схема для начала хорошо. А вот трансивер в руки- можно поподробней- это готовый IP блок? Подскажите какой? Сгенерить нужнае мне патерны- не сложная задача, да и вычислить битовую ошибку тоже смогу. Только вот трансивер не поднимал еще( Ultrascale transceiver wizard - он? Что скажите насчет In-System IBERT IP. Пока имею слабое представление.
  11. Приветствую всех! Появилась у меня идея Отвязать IBERT от Вивады. Хочу чтобы все крутилось на Kintex UltraScale FPGA KCU105, а все данные: ошибки, выставление PRBS, желательно размах - поступали например по Изернету на комп, где бы отображались в собственной софнине. Exemple IBERT for UltraScale GTH Transceivers на KCU105 с внешним луппбеком запускал и мне это все понравилось, только вот КАК ОТВЯЗАТЬ ВЫВОД ДАННЫХ ОТ ВИВАДЫ я пока не знаю. В конечном итоге получится бертестер. Есть ли у кого идеи?
  12. Я так и думал, что это нормаль, по фронту главное что бы было установившееся значение, временные ограничения прописаны. Но все равно смущает, в моем проекте наглядно посмотреть в аналоговом формате не получится прям на графике (выбросы велики, по сравнению с сигналом и он превращается в линию), только если параллельно выводить макрос без временных ограничений и сравнивать по значениям.
  13. Столкнулся с такой проблемой- про считывании данных с ПЗУ с временными задержками (размещение на кристале 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;
  14. Это разрядность в двоичном коде уровня сигнала
  15. Ситуация: Формирую отсчеты сигнала (например в Маткаде) и записываю их в ПЗУ, вытягиваю сигнал (Z) из пзу , далее нужно задавать его амплитуду. Амплитуда (А) задается в децибелах из вне ( например (5...0)), я так понимаю задается относительно шума. И получаем ZZ=Z* Aшум*10^(A/20), мне тут подсказали, что Ашум= 2 е.м.р Так вот Ашум= 2 е.м.р - это вот совершенно мне не ясно!!!! 2 е.м.р от чего, кого, почему?? 2 е.м.р разрядности конечного сигнала? 2 е.м.р=2/2^n??? Объясните мне пожалуйста, понимания ноль!