BSACPLD 9 22 марта, 2019 Опубликовано 22 марта, 2019 · Жалоба Коллеги, никогда не думал, что придется задаваться этим вопросом, но есть ли Opensource аналоги SignalTap, ChipScope? Сейчас пытаюсь работать с ПЛИС GOWIN, но их GAO это жутко неудобная и глючная штука. В последней доступной версии Synplify 2018.03 не нашел поддержки данных ПЛИС, так что вариант с использованием Identify не прокатил... Очень не хочется изобретать свой велосипед. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 22 марта, 2019 Опубликовано 22 марта, 2019 · Жалоба Just now, BSACPLD said: Очень не хочется изобретать свой велосипед. а придется) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 22 марта, 2019 Опубликовано 22 марта, 2019 · Жалоба у меня тоже не доступен СигналТап. Я снимал данные в какой нибудь буффер, выгонял их из ПЛИС в бинари файл и подгружал все это дело в modelsim, как в визуализаторе сигналов. За неимением СигналТапа это было жутко круто, чтобы не писать своего Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BSACPLD 9 22 марта, 2019 Опубликовано 22 марта, 2019 · Жалоба Можно про подгрузку в modelsim поподробнее? Как вы это делали? И что это была за ПЛИС вообще без анализатора? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 22 марта, 2019 Опубликовано 22 марта, 2019 · Жалоба 8 minutes ago, BSACPLD said: Можно про подгрузку в modelsim поподробнее? Как вы это делали? И что это была за ПЛИС вообще без анализатора? Буфер, любой переходник на усб, и операции файлового ввода-вывода в стимуляторе. Такое часто делают, когда жтаг забыли или его возможности недостаточны для отладки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 22 марта, 2019 Опубликовано 22 марта, 2019 (изменено) · Жалоба 10 minutes ago, BSACPLD said: И что это была за ПЛИС вообще без анализатора? альтера stratix v после кап ремонта. jtag так и не смог запустить, да и не сильно потом напрягался, через pcie все делаю по быстрому. 10 minutes ago, BSACPLD said: Можно про подгрузку в modelsim поподробнее? Как вы это делали? в плис сделал большой буфер, туда сохранял значения нужных мне сигналов, потом этот буфер выплевывал по какому нибудь интерфейсу побыстрее. В последнем варианте я логировал 96 бит данных, через 1g ehternet я его выплевывал udp протоколом. Это примерно 112 записей по 96 бит. компьютер принимает пакет (можно самопис, можно сниффер wireshark) и сохраняет в файл. Файл я скармливал в modelsim с помощью скрипта. грубо говоря читал из файла по 12 байт (96 бит) и распихивал их по сигналам моделсима. Это как раз я отлаживал pcie сигналы `timescale 1ns / 1ns module main_test_bench_125_1; //Сигналы для вывода на осцилограмму reg clk_250Mhz; //Осцилограмма генератора 250Mhz reg [31:0] counter; reg [4:0] ltssm; reg [3:0] lane_active; reg pcie_perst; reg reconfig_busy; reg [1:0] power_down_0; reg [1:0] power_down_1; reg [1:0] power_down_2; reg [1:0] power_down_3; reg [1:0] power_down_4; reg [1:0] power_down_5; reg [1:0] power_down_6; reg [1:0] power_down_7; reg tx_busy; reg rx_busy; reg [23:0] timer_counter; reg reset; reg pld_use; reg refclk_locked; reg refclk; //Вспомогательные переменные integer file_log; //Указатель на файл с логами initial begin //log_row_id_prev = 0; //Пытаемся открыть файл с логами file_log = $fopen("udp_dump.bin", "rb"); if (file_log == 0) begin $display("Log file open FAILED"); $finish; end //Имитируем тактовый генератор 100Mhz clk_250Mhz = 1'b0; //Начальное значение 0 #2; //Задержка сигнала 5нс (100Mhz = такт 10нс, 5нс - полу такт) repeat(24999999) begin clk_250Mhz = 1'b1; //Ставим генератор в 1 #2 clk_250Mhz = 1'b0; //Ждем 5нс и ставим генератор в 0, фактически имитируем сигнал 1 в течении 5нс #2; //Ждем 5нс и ставим генератор в 1, фактически имитируем сигнал 0 в течении 5нс, получаем 1 такт длительностью 10нс end clk_250Mhz = 1'b1; #2; end //На каждый такт генератора читаем данные из файла и выводим их в сигналы осцилограммы reg [7:0] byte_1; reg [7:0] byte_2; reg [7:0] byte_3; reg [7:0] byte_4; reg [7:0] byte_5; reg [7:0] byte_6; reg [7:0] byte_7; reg [7:0] byte_8; reg [7:0] byte_9; reg [7:0] byte_10; reg [7:0] byte_11; reg [7:0] byte_12; always @(posedge clk_250Mhz) begin byte_1 = 0; byte_2 = 0; byte_3 = 0; byte_4 = 0; byte_5 = 0; byte_6 = 0; byte_7 = 0; byte_8 = 0; byte_9 = 0; byte_10 = 0; byte_11 = 0; byte_12 = 0; $fread(byte_1, file_log); $fread(byte_2, file_log); $fread(byte_3, file_log); $fread(byte_4, file_log); $fread(byte_5, file_log); $fread(byte_6, file_log); $fread(byte_7, file_log); $fread(byte_8, file_log); $fread(byte_9, file_log); $fread(byte_10, file_log); $fread(byte_11, file_log); $fread(byte_12, file_log); if ({byte_1, byte_2, byte_3, byte_4, byte_5, byte_6, byte_7, byte_8, byte_9, byte_10, byte_11, byte_12} > 0) begin counter = {byte_1[7:0], byte_2[7:0], byte_3[7:0], byte_4[7:0]}; ltssm = {byte_5[7:3]}; lane_active = {byte_5[2:0], byte_6[7]}; pcie_perst = byte_6[6]; reconfig_busy = byte_6[5]; power_down_0 = byte_6[4:3]; power_down_1 = byte_6[2:1]; power_down_2 = {byte_6[0], byte_7[7]}; power_down_3 = byte_7[6:5]; power_down_4 = byte_7[4:3]; power_down_5 = byte_7[2:1]; power_down_6 = {byte_7[0], byte_8[7]}; power_down_7 = byte_8[6:5]; tx_busy = byte_8[4]; rx_busy = byte_8[3]; timer_counter = {byte_8[2:0], byte_9[7:0], byte_10[7:0], byte_11[7:3]}; reset = byte_11[2]; pld_use = byte_11[1]; refclk_locked = byte_11[0]; refclk = byte_12[7]; end end initial #1000000000 $stop; //После 1млрд наносекунд (=1 сек), заканчиваем моделирование endmodule Изменено 22 марта, 2019 пользователем new123 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 22 марта, 2019 Опубликовано 22 марта, 2019 · Жалоба Приветствую! 1 hour ago, BSACPLD said: но есть ли Opensource аналоги SignalTap, ChipScope? Я в теме new123 кидал ссылку на что то похожее на ChipScope на базе uart. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
wert101 0 22 марта, 2019 Опубликовано 22 марта, 2019 · Жалоба 1 hour ago, BSACPLD said: ... но есть ли Opensource аналоги SignalTap, ChipScope? Очень не хочется изобретать свой велосипед. Есть еще вот такой велосипед(ы): 1. https://opencores.org/projects/fpo 2. https://opencores.org/projects/openjtag-project Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 23 марта, 2019 Опубликовано 23 марта, 2019 · Жалоба 23 часа назад, new123 сказал: компьютер принимает пакет (можно самопис, можно сниффер wireshark) и сохраняет в файл. Я в подобных случаях использую матлаб, он с UDP замечательно работает. Никаких промежуточных файлов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
one_eight_seven 3 23 марта, 2019 Опубликовано 23 марта, 2019 · Жалоба Матлаб уже OpenSource? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 23 марта, 2019 Опубликовано 23 марта, 2019 · Жалоба 46 минут назад, one_eight_seven сказал: Матлаб уже OpenSource? Прочитайте внимательно цитату на которую я ответил. Матлаб я применяю не вместо SignalTap, а для приёма по сети ethernet захваченных данных и последующего парсинга. Выше рекомендовали wireshark с сохранением в файл... В матлабе это делать проще. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koluchiy 0 27 марта, 2019 Опубликовано 27 марта, 2019 · Жалоба Только я заностальгировал по рубежу веков, когда JTAG был еще не везде? :-))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 27 марта, 2019 Опубликовано 27 марта, 2019 · Жалоба Приветствую! On 3/23/2019 at 2:56 PM, _sda said: Прочитайте внимательно цитату на которую я ответил. Матлаб я применяю не вместо SignalTap, а для приёма по сети ethernet захваченных данных и последующего парсинга. Выше рекомендовали wireshark с сохранением в файл... В матлабе это делать проще. оффтоп: У меня один знакомый ставил matlab чтобы им как калькулятором пользоваться "... удобно мол - историю сохраняет ..." На том же python прием по UDP/TCP и запись в файл делается на десятке строк кода. Еще на паре десятков - realtime парсинг и рисовка картинок как в том же matlab. Понятно дело если matlab уже сп. стоит то грех добру пропадать . Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
new123 0 27 марта, 2019 Опубликовано 27 марта, 2019 (изменено) · Жалоба Потом тоже реалпарсинг сделал, стало еще удобней. Только все на с++. Modelsim если надо более подробно глянуть. Изменено 27 марта, 2019 пользователем new123 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
disel 0 27 марта, 2019 Опубликовано 27 марта, 2019 · Жалоба On 3/22/2019 at 1:47 PM, BSACPLD said: И что это была за ПЛИС вообще без анализатора? Воронежская например. Еще бывает что невозможно подлючиться к jtag поскольку его сигналы не выведены наружу, а блок запаян. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться