Jump to content
Трофим

Как задать исходные состояния ЗУ в проекте

Recommended Posts

Здравствуйте.

Работаю с ПЛИС XILINX Virtex-6 XC6VLX240T-1FFG1156 FPGA. Не знаю как задать исходные состояния запоминающего устройства в проекте. В общем, есть два файла на ассемблере (текстовые с 16-ричными кодами) их нужно загрузить в память ПЛИС, т.е. инициализировать исходные состояния памяти. Есть информация, что это должно быть где-то в Chipscope, но я не могу найти это там.

Кто-нибудь сталкивался с подобной проблемой и как решить?

Share this post


Link to post
Share on other sites

Литиевые батарейки Fanso для систем телеметрии и дистанционного контроля

Системы телеметрии находят все более широкое применение во многих отраслях на промышленных и коммунальных объектах. Требования, предъявляемые к условиям эксплуатации приборов телеметрии и, как следствие, источников питания для них, могут быть довольно жесткими. Fanso предоставляет широкую линейку продукции, рассчитанной на различные условия эксплуатации, что позволяет подобрать батарейку для каждого конкретного применения, в том числе и для устройств телеметрии.

Подробнее

Создай в Vivado ROM и укажи файл инициализации для задания начального состояния. Можно и RAM.

Share this post


Link to post
Share on other sites
                     

Приглашаем на вебинар Решения для построения ультразвуковых счетчиков жидкостей и газов на базе MSP430

Компэл совместно с Texas Instruments 23 октября 2019 приглашают на вебинар, посвященный системам-на-кристалле для построения ультразвуковых расходомеров жидкостей и газов на базе ядра MSP430. Вебинар проводит Йоханн Ципперер – эксперт по ультразвуковым технологиям, непосредственно участвовавший в создании данного решения. На вебинаре компания Texas Instruments представит однокристальное решение, позволяющее создавать точные недорогие счетчики жидкостей и газов.

Подробнее...

А до этого ты в ISE работал или в чём-то другом? Задать состояние памяти можно в любом туле по работе с FPGA.

Share this post


Link to post
Share on other sites

Можно. Создай память через Block Memory Generator IP. И там в свойствах можно указать файл инициализации. Только в соответствующий формат надо будет преобразовать твой файл.

Share this post


Link to post
Share on other sites

Вроде бы нашел, XLINX ISE Design Suite 13.1 -> ISE Design Tools -> Tools - > Core Generator, это то, что надо?

Создал блочную память, в пункте Init File просит файл с расширением *.coe, а у меня файл *.txt, как его преобразовать?

Share this post


Link to post
Share on other sites

Гугли или смотри на сайте Xilinx что это за формат файла коэффициентов. Он довольно простой, но преобразовать придётся.

Share this post


Link to post
Share on other sites

Как преобразовать *.txt в *.coe в интернете не нашел. Добавил в текстовый файл с шестнадцатеричными кодами 2 строки memory_initialization_radix=2;
memory_initialization_vector=, изменил расширение *.txt на *.coe, Block memory Generator отработал с ошибками и создал в той папке, где лежал файл *.coe файл проекта blk_mem_gen_v6_1.xise и файлы VHD, в частности файл blk_mem_gen_v6_1.vhd.

Что теперь делать с этим файлом? Подтягивать в проект загружать на ПЛИС, и у меня на ПЛИС будет инициилизирован массив сигналов (блочная память)?

Share this post


Link to post
Share on other sites

Все равно ошибка, когда генерирую Block memory пишет 

ERROR:sim - Improperly formatted COE file .\tcom.idm.txt. Parameter assignments

ERROR:sim - should be separated by a ";" character.

ERROR:sim - Found an illegal assignment on line 1.

Похоже *.coe файл некорректный.

Share this post


Link to post
Share on other sites

Подскажите, пожалуйста, как теперь пользоваться сгенерированной памятью в проекте, как её подключать к проекту, как к ней обратиться в VHDL, для чего нужен файл *.ngc, я правильно понимаю, что это как-то связано с этим файлом.

Share this post


Link to post
Share on other sites

Обычно такие модули создают сразу в проекте и подключаются они автоматически. Так же среди сгенерированных файлов должен быть модуль, в котором подробно написано как подключать его порты.

Share this post


Link to post
Share on other sites

А какое расширение у этого файла, в котором описано, как подключать порты.

 

Не нужно цитировать целиком предыдущее сообщение - и так понятно, что ответ на него. К тому же, это запрещено Правилами данного форума - п.II.9. Отредактировал Ваши сообщения.

Edited by Lexus

Share this post


Link to post
Share on other sites

Ну как обычно .vhd или .v, смотря какой язык использовался.

Щас я создам проект в ISE 14.7 и повторю эти шаги.

Какой у тебя в проекте Preferred Language?

Share this post


Link to post
Share on other sites

Итак по шагам.

1. Создаём новый проект.

2. В меню Project жмём New Source.

3. Выбираем тип IP (Core Gen...) и задаём имя, например ram_sample. При этом ставим галочку Add to project. Жмём Next.

4. Выбираем Block Memory Generator. В появившемся окне задаём параметры нашей памяти, файл coe и т.п. Жмём Generate.

5. В иерархии проекта появился ram_sample. Выбери его мышкой. В нижнем окошке появятся опции для него - выбери View HDL Instantiation Template (щёлкни мышкой два раза).

6. Вставляй полученный темплейт в свой код.

Edited by Vascom

Share this post


Link to post
Share on other sites

Сигнал wea - это сигнал разрешения записи и чтения? И какие значения он принимает, если у меня описано: (wea : IN STD_LOGIC_VECTOR(0 DOWNTO 0), он однобитный?

Share this post


Link to post
Share on other sites

wea - это Write Enable, то есть сигнал разрешения записи.

Он однобитный. Если "1" - то идёт запись, если "0", то чтение.

Share this post


Link to post
Share on other sites

А какой сигнал тогда разрешает чтение, вот имеющиеся порты?

    clka : IN STD_LOGIC;
    wea : IN STD_LOGIC_VECTOR(0 DOWNTO 0);
    addra : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
    dina : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
    douta : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)

Share this post


Link to post
Share on other sites

В данном варианте - нет такого отдельного сигнала.

Когда wea в "1", данные со входа dina записываются в память по адресу addra.

Когда wea в "0", на выходе douta появляются данные из памяти по адресу addra.

 

Если нужен отдельный сигнал разрешения чтения, то надо переконфигурировать память, добавив выходной регистр и пин REGCEA. Но это замедлит память на один такт и не требуется в большинстве случаев.

Edited by Vascom

Share this post


Link to post
Share on other sites

Как в файле *.ucf задать соответствие вывода std_logic_vector (7 downto 0 ) и 8-ми светодиодам, надо каждый пин вывода сопоставить с ножкой светодиода. 

Share this post


Link to post
Share on other sites

Примерно так:

NET led_out[0] LOC = <номер требуемого пина>;
NET led_out[1] LOC = <номер требуемого пина>;
NET led_out[2] LOC = <номер требуемого пина>;
NET led_out[3] LOC = <номер требуемого пина>;
NET led_out[4] LOC = <номер требуемого пина>;
NET led_out[5] LOC = <номер требуемого пина>;
NET led_out[6] LOC = <номер требуемого пина>;
NET led_out[7] LOC = <номер требуемого пина>;

//Тут задаёшь выходной стандарт пина, например LVCMOS на 3.3В.
NET led_out[*] IOSTANDARD = LVCMOS33;

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • @Серж Вамп Да впринцепи можно и так узнать.  @Dr. West Ну что было в сети то и использовал. Кстати основы для моих схем послужили схемы приёмника и пульта из одной статьи. Они шли сразу парой.
    • это кт913,и да,волномер с ума сходит на приличн.расстоянии а я еще антенну не припаивал!Ну очень удачно получилось,все схемы в сети для меня просто осыпались!
    • Есть форум: http://microcap.forum24.ru/ Там Амелин, автор этого учебника, может помочь.
    • Смущает напряжение на базе VT3 от 0 до 31в. Как это? Оно там вообще отрицательным должно быть, где-то в районе –5,1v.
    • Владислав2! Вижу в Вашем посте обиду, вызванную явным нежеланием разобраться и понять. Что же, давайте сделаем это вместе. Главный, как я понимаю, вопрос Итак, давайте рассмотрим первую часть - Зачем УПТ? Самая распространённая межкаскадная связь - через конденсатор. При всей своей простоте, она имеет существенный недостаток - при возрастании амплитуды раскачки выше напряжения смещения, появляются сеточные токи, этот конденсатор заряжающие. Напряжение на нём складывается со смещением и изменяет режим выходной лампы.На разряд этого конденсатора требуется время много большее, чем на заряд. Таким образом, в случае возникновения перегрузки, конденсаторная связь гарантирует длительный переходной процесс, меняющий звучание даже после снятия перегрузки. И, как же с эти бороться? Прежде всего, применением межкаскажного трансформатора. Я, как то, подробно этот вопрос рассматривал. Упомянув, заодно, и о недостатках схемы Loftin-White, связанных, на мой взгляд, исключительно с низкой экономичностью и плохой применимостью для мощных однотактов. Но, вернёмся к вопросу об УПТ. Итак, при трансформаторной связи имеем 2 громадных плюса - после снятия перегрузки режим выходного каскада восстанавливается мгновенно. И, второе, мы можем работать в режиме А2, что означает возможность снять с выходной лампы больше мощности, чем в чистом "А". Итак, трансформатор хорош, но дорог. Что делать? УПТ. Он точно также ведёт себя при перегрузке и, точно также, позволяет работать в классе А2. Т.е, сохраняет все достоинства схемы с межкаскадным трансформатором, не имея, при этом, дикой стоимости. Но, поскольку бесплатных пирожных не бывает, мы получаем "печку" в катоде выходной лампы, тем более горячую, чем большей мощности услитель мы хотим построить. Именно это я имею ввиду, когда говорю о недостатках схемы Loftin-White. Другой её недостаток - необходимость повышенного питания, относительно схемы с межкаскажным трансформатором, при одинаковых лампах и равной выходной мощности. Поэтому, Владислав2, прежде тыкать меня носом в мои высказывания и обвинять во вгонянии пацана в авантюру, стоит понять и разобраться, почему я так сказал, а не выдёргивать удобные Вам цитаты из контекста. Да и кто дал Вам право обзывать человека пацаном? Ладно я плохой. Человек здесь причём? Итак, разобравшись в несомненной полезности УПТ, как такового, в данном конкретном техническом решении, перейдём к другой половине вопроса - при нагрузке на трансформатор. Факт - трансформатор не пропускает постоянный ток. Да и очень низкие частоты тоже. Поскольку индукция в сердечнике имеет вид 1 / F, что заставляет сознательно ограничивать полосу усилителя по НЧ. В этом смысле, схема выбранная Виктором, действительно безграмотна. Ибо не содержит никаких фильтров, выполняющих эту задачу. Решением может быть RC цепочка на входе, Самый правильный путь выбрать её частоту среза - сделать её равной частоте, на которой индукция насыщения достигает выбранного нами значения при максимальной мощности. При этом условии индукция в сердечнике, достигнув упомянутого значения, остаётся постоянной при понижении частоты. Что гарантирует нам отсутствие насыщения при понижении частоты. Именно эту простую мысль я и пытался лонести до Вас, Владислав2, когда, по Вашему выражению,  " веником гонял"  за то что  поставил  в цепь упр. сетки вых. каскада 0,47мкф. Вопрос был именно в неграмотном выборе номинала, поскольку он не отвечал озвученному выше условию. Ну, конечно! Обязательно пишите, обязательно поможем. И Вам поможем разобраться, зачем УПТ в ламповом усилителе. И Виктору, сконструировать первый усилитель на других лампах и при другом питании. P.S.  Владислав2! Если есть желание, почитайте "исходники" по Loftin-White. Хотя бы, здесь. Дело, то, началось в 1929 году. И человек, простым и ясным английским языком, с картинками, описал причины, побудившие его использовать УПТ в ламповом усилителе. Историю очень полезно знать.  
    • Это Вы не видели некоторых японских усилителей, в которых внутри 80% пустого места при стандартных габаритах.
  • Покупай!

×
×
  • Create New...