

dde29
Участник-
Content Count
87 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Everything posted by dde29
-
Конфигурируемый приемник RS-232
dde29 replied to lyaksandrov's topic in Языки проектирования на ПЛИС (FPGA)
Мой параметризируемый модуль приемника UART: https://github.com/DigitalRabbit85/SvLibDR/tree/main/SingleRxUART За пояснениями - в личку... -
Altera, Констрейны, два независимых для фиттера клока
dde29 replied to dde29's topic in Языки проектирования на ПЛИС (FPGA)
Вот! Именно с добавлением параллельного (у них общий только клок ) - и проект может рухнуть. Вопрос именно как использовать create_clock при том, что клоки, например разветвил assign clk1 = clk_pll, assign clk2 = clk_pll ... При этом варианте таймквестом не получается использовать create_clock По поводу false_path можете пример привести в моем случае?) -
Altera, Констрейны, два независимых для фиттера клока
dde29 replied to dde29's topic in Языки проектирования на ПЛИС (FPGA)
Понял, гляну, спасибо!) -
Altera, Констрейны, два независимых для фиттера клока
dde29 replied to dde29's topic in Языки проектирования на ПЛИС (FPGA)
50 МГц это входная частота от генератора, следом рождается в PLL клок 300 МГц. Вот на этой частоте и работают эти условные счетчики. Ну асинхры точно никакой нет - так как источник, вход по сути один (клок от генератора). По поводу констрейнов - да, поэтому и вопрос - что я еще могу умного прописать)) У меня 10й цыклон LP -
Altera, Констрейны, два независимых для фиттера клока
dde29 replied to dde29's topic in Языки проектирования на ПЛИС (FPGA)
Я может не правильно мысли свои донес) Другими словами, ТаймКвест показывает меньшее значение максимальной частоты Fmax при компиляции проектс с двумя счетчиками, по сравнению чем с один счетчиком. Вопрос - почему частота уменьшается, если ресурсы практически не задействованы и модули не связаны? Почему занялся этим вопросом - имеется проект, в котором генерируются разные сигналы, с возможностью шага мелкого шага смещение (ну т.е. модуль работает на большое частоте...) Если таких разных сигналов 2 то все ок, добавляешь в проект 3-й - и все рушится, проект перестает адекватно работать... Вот и возникла мысль сделать для каждого такого сигнала что-то вроде set_false_path -
Всем привет! В одном проекте, работающим на большое частоте, появилась необходимость в прописании констрейнов на проект... Допустим, имеется два модуля счетчиков - один инкрементирует, другие декрементирует (это условно, в реальном проекте вместо счетчиков другие модули). Они, по сути, работают на одном клоке... При компиляции проекта, синтезатор пытается выровнять пути сигналов по всем проекту. Но, мне необходимо так прописать констрейны, чтобы два клока clk_incr и clk_decr были экслюзивные. Т.е. как бы абсолютно два разных клоковых домена, не связанных между собой: RTL: module Top ( input inclk, output imp1, output imp2 ); mypll mypll_0( .inclk0 (inclk), .c0 (clk) ); wire clk_incr = clk; wire clk_decr = clk; defparam CounterIncr.parWIDTH = 32; CounterIncr CounterIncr( .clk (clk_incr), .out (imp1) ); defparam CounterDecr.parWIDTH = 32; CounterDecr CounterDecr( .clk (clk_decr), .out (imp2) ); endmodule SDC: #************************************************************** # Time Information #************************************************************** set_time_format -unit ns -decimal_places 3 #************************************************************** # Create Clock #************************************************************** create_clock -name {inclk} -period 20.000 -waveform { 0.000 10.000 } [get_ports {inclk}] #************************************************************** # Create Generated Clock #************************************************************** create_generated_clock -name {mypll_0|altpll_component|auto_generated|pll1|clk[0]} -source [get_pins {mypll_0|altpll_component|auto_generated|pll1|inclk[0]}] -duty_cycle 50/1 -multiply_by 6 -master_clock {inclk} [get_pins {mypll_0|altpll_component|auto_generated|pll1|clk[0]}] Вот, вопрос, собственно в том - что именно мне нужно прописать в SDC чтобы скомпилировалось так как задумывалось...
-
Шина Avalon-MM в Altera On-Chip Flash IP Core
dde29 replied to dde29's topic in Работаем с ПЛИС, области применения, выбор
Чет не нашел я в Convert Programming File я такую галочку )) В общем понятно, спасибо. Просто как-то странно. Если ба данные в блок запихивал бы последовательно - то там тожно было понять фичу... И Если это формат RPD файла такой - то почему данные переворачивать нужно именно блоками по 4 байта... Дело в том, что я статью пишу на эту тему - и как это объяснить - дилемма ))) -
Всем привет, ковыряюсь с ПЛИС Max10 от Интела. Копаю корку Altera On-Chip Flash, которая позволяет в менять файл конфигурации находу, не используя JTAG. Грубо говоря самостоятельно себя перешивать. Структурная схема доступа к корке - на картинке. Если читать или записывать 32-х битное слово на шине writedata[31:0] блока Data и сравнивать данные с RPD-файлом, то оказывается что если брать данные по 4 байта из RPD-файла и записывать их на writedata[31:0] блока Data, то это 32-х битное слово нужно переворачивать - младший бит нужно записывать самым старшим в writedata и т д... Причем если читать и записывать writedata[31:0] блока Control - то там все впорядке. И вот вопрос: - это особенности шины данных Avalon или это такой хитрый формат RPD-данных, что врядли...
-
Структура файла RBF
dde29 replied to dde29's topic in Работаем с ПЛИС, области применения, выбор
Благодарю! Поизучаю!- 6 replies
-
- crc16
- altera cyclone
-
(and 1 more)
Tagged with:
-
Структура файла RBF
dde29 replied to dde29's topic in Работаем с ПЛИС, области применения, выбор
Фишка в том, что по основному протоколу работы оборудования, необходимо по запросу отдавать контрольную сумму прошивки, конкретное число, а не сам факт - удачный файл прошивки или нет) Если бы Вы поделились ссылочкой, было бы неплохо- 6 replies
-
- crc16
- altera cyclone
-
(and 1 more)
Tagged with:
-
Структура файла RBF
dde29 posted a topic in Работаем с ПЛИС, области применения, выбор
Поставлена задача после подачи питания на ПЛИС (Cyclone III) посчитать CRC16 файла прошивки, залитой в конфигурационную флеш-память, в которую предварительно была записана прошивка в формате RBF. Вопрос: кто-нибудь знаком с форматом файла RBF в данном контексте? Где-нибудь в файле прописан размер файла? Чтобы считать CRC16 не всей флеш-памяти. Суть в том, чтобы посчитанная CRC16 из флеш совпадала с CRC16 файлом прошивки...- 6 replies
-
- crc16
- altera cyclone
-
(and 1 more)
Tagged with:
-
MAX10, Одна из Image - в качестве бутлодера
dde29 replied to dde29's topic in Работаем с ПЛИС, области применения, выбор
Compact → базовое исполнение; Flash → имеется возможность реализации двух конфигурационных схем с самообновлением и инициализация встроенной RAM при подаче питания; Analog → все то же что и в варианте Flash, плюс встроенный блок АЦП. Разбить в исполнении Campact не получится точно, но можно попробовать реализовать boot-модуль в основном проекте и перешивать как бы самого себя. Но я так не пробовал, интересная мысль, но я думаю Ква не даст скомпилить IP-корку... Будет время - попробую. А вообще, я сейчас занимаюсь написанием статьи на тему бутлодера на 10м Максе... Там может быть данную тему затрону... -
В общем, ситуация следующая: В древнем, как гамно мамонта, Ква9.0 не работает ни системная функция $clog2() ни функция. Скомпилировал в 15.1 - удачен и первый и второй вариант! Спасибо за советы!
-
Спасибо! Попробую модифицировать функцию с проверкой на <0... А про встроенный $clog2() не знал... я на СВ недавно пересел... Error (10174): Verilog HDL Unsupported Feature error at WidthParamProblem.sv(21): system function "$clog2" is not supported for synthesis Может потому что у меня Ква 9.0 ? ))))) Я сторонник того - если работает - нафиг что-то менять и куда-то перелазить)
-
Здравствуйте, форумчане. У меня на редкость нелепая проблема: Я, что называется, "на бильярдном столе яму с г*вном нашел и в ней утонул" (с) Жмурки. Короче, решил я параметризировать один свой модуль, а именно, автоматическое вычисление ширины регистра от максимального значения счетчика. Вот мой код: module WidthParamProblem ( inclk, led ); /// PARAMETERS /// parameter int counter = 8; /// FUNCTIONS /// function automatic int clogb2 (input int number); int calc; begin for (int i = 0; 2**i < number; i++) calc = i + 1; clogb2 = (number == 0) ? 0 : (number == 1) ? 1 : calc; end endfunction /// PORTS /// input inclk; output logic [clogb2(counter):0] led = '0; /// BODY /// always_ff @ (posedge inclk) led <= led + 1'b1; endmodule В итоге модуль не компилируется, как бы я не приседал ромбиком... Квартус выдает следующую ошибку: Error (10140): Verilog HDL error at WidthParamProblem.sv(20): range index is not constant Понятно, что он имеет в виду, типа чтобы размер регистра должен быть константой - ну это понятно. Но разве - у меня не константа?? Да, она вычисляется по функции, но это же значение вычисляется в самом начале компиляции и не меняется в дальнейшем... Подскажите, как можно исправить данную проблему и починить, данный параметризируемый модуль... Спасибо! В догонку: в симуляторе все работает на ура...
-
MAX10, Одна из Image - в качестве бутлодера
dde29 replied to dde29's topic in Работаем с ПЛИС, области применения, выбор
Наконец-то добился того, что удалось считать записанную область CFM0, соответствующую одному образу. Полученный файл очень похож на искусственно сгенерированный файл *.rpd. Но, чтобы его сгенерировать, необходимо каждый раз указывать второй образ CFM1, хотя какое он отношение имеет с независимому от него образу в CFM0 пока не разобрался... Буду копать дальше. Попробую данный сгенерированный *.rpd записать насильно в CFM0 используя свой УАРТ и OnFlashChip, и посмотрю что получится... -
MAX10, Одна из Image - в качестве бутлодера
dde29 replied to dde29's topic in Работаем с ПЛИС, области применения, выбор
Да, в CFM0 хранится один образ, а в CFM1 и 2 хранится второй. Естественно, когда я зашиваю первый раз через JTAG я так и делаю - из двух SOF генерю один POF и зашиваю. Но а что делать потом) Когда уже по не JTAG, а по какому-то основному интерфейсу, в моем случае, UART необходимо передать только один образ, в каком-то формате (вопрос в каком и как его сделать!) и правильно его запилить по нужному адресу. Про то, что в CFM байты перевернуты я учту, спасибо. Посмотрю, а по поводу чтения - я сейчас как раз и пишу прошивку и софт, чтобы по основному интерфейсу хотя бы прочитать CFMы... Дело идет не очень быстро из-за большой загруженности). Но результат обязательно опубликую -
Синтез КВ радиосигналов
dde29 replied to Dootch's topic in Работаем с ПЛИС, области применения, выбор
Либо DDS - заранее в матлабе или маткаде высчитать отчеты и забить их в в память Либо Кордиком формировать 3 частоты и при желании суммировать отчеты -
Всем привет! давненько меня тут не было...) В данный момент знакомлюсь с MAX 10-м. А конкретно разбираюсь как использовать одну области CFM в качестве бутлодера для перепрошивки второй области CFM. Идея, надеюсь, понятна :) реализовать возможность смены основной прошивки плис удаленно, не используя программатор... На данный момент реализовал переключение между двумя образами командой по УАРТ, читаю Status и Control Register используя OnChip Flash IP-Core и соответственно стирать определенные области памяти UFM и CFM. Осталось реализовать запись по тому же УАРТ другой основной прошивки, но не могу разобраться какой из форматов образов нужно генерить и передавать - POF, SOF или RPD??? Насколько я понял, нужно что-то откуда генерить используя различные настройки, но что именно так и не разобрался... Может кто-нить занимался данной проблемой P.S. Ниос не перевариваю...
-
Удаленная загрузка прошивок ПЛИС
dde29 replied to PowerC™'s topic in Работаем с ПЛИС, области применения, выбор
В MAX10 имеется возможность загрузки 2 конфигураций. Одну из них можно использовать как бутлодер. Копать в теме MAX10, Internal Configuration, Remote System Upgrade. -
mil-std-1553
dde29 replied to glb's topic in Работаем с ПЛИС, области применения, выбор
Действительно, а что это за закрома такие. Если обычный люд заходит на сайт журнала, идет в архив номеров, ищет нужный и в нем содержится только лишь анонс... -
mil-std-1553
dde29 replied to glb's topic in Работаем с ПЛИС, области применения, выбор
Благодарю. -
mil-std-1553
dde29 replied to glb's topic in Работаем с ПЛИС, области применения, выбор
Я?) http://www.kit-e.ru/articles/circuit/2013_12_123.php по поводу электронного варианта - пишите в личку. Срок давности должен уже пройти.