Трофим Опубликовано 11 декабря, 2017 Поделиться Опубликовано 11 декабря, 2017 Здравствуйте. Работаю с ПЛИС XILINX Virtex-6 XC6VLX240T-1FFG1156 FPGA. Не знаю как задать исходные состояния запоминающего устройства в проекте. В общем, есть два файла на ассемблере (текстовые с 16-ричными кодами) их нужно загрузить в память ПЛИС, т.е. инициализировать исходные состояния памяти. Есть информация, что это должно быть где-то в Chipscope, но я не могу найти это там. Кто-нибудь сталкивался с подобной проблемой и как решить? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Vascom Опубликовано 11 декабря, 2017 Поделиться Опубликовано 11 декабря, 2017 Сделай через ROM. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
20% скидка на весь каталог электронных компонентов в ТМ Электроникс!Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!Перейти на страницу акции Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
Трофим Опубликовано 11 декабря, 2017 Автор Поделиться Опубликовано 11 декабря, 2017 А можно поподробней?) 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
Vascom Опубликовано 11 декабря, 2017 Поделиться Опубликовано 11 декабря, 2017 Создай в Vivado ROM и укажи файл инициализации для задания начального состояния. Можно и RAM. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Трофим Опубликовано 12 декабря, 2017 Автор Поделиться Опубликовано 12 декабря, 2017 А у вас нет 32-разрядной версии Vivado? На официальном сайте XILINX.com только 64-разрядные версии. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Vascom Опубликовано 12 декабря, 2017 Поделиться Опубликовано 12 декабря, 2017 А до этого ты в ISE работал или в чём-то другом? Задать состояние памяти можно в любом туле по работе с FPGA. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Трофим Опубликовано 12 декабря, 2017 Автор Поделиться Опубликовано 12 декабря, 2017 Я работаю в ISE Project Navigator, в нем можно задать исходные состояния памяти? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Vascom Опубликовано 12 декабря, 2017 Поделиться Опубликовано 12 декабря, 2017 Можно. Создай память через Block Memory Generator IP. И там в свойствах можно указать файл инициализации. Только в соответствующий формат надо будет преобразовать твой файл. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Трофим Опубликовано 12 декабря, 2017 Автор Поделиться Опубликовано 12 декабря, 2017 Вроде бы нашел, XLINX ISE Design Suite 13.1 -> ISE Design Tools -> Tools - > Core Generator, это то, что надо? Создал блочную память, в пункте Init File просит файл с расширением *.coe, а у меня файл *.txt, как его преобразовать? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Vascom Опубликовано 12 декабря, 2017 Поделиться Опубликовано 12 декабря, 2017 Гугли или смотри на сайте Xilinx что это за формат файла коэффициентов. Он довольно простой, но преобразовать придётся. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Трофим Опубликовано 12 декабря, 2017 Автор Поделиться Опубликовано 12 декабря, 2017 Как преобразовать *.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. Что теперь делать с этим файлом? Подтягивать в проект загружать на ПЛИС, и у меня на ПЛИС будет инициилизирован массив сигналов (блочная память)? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Vascom Опубликовано 12 декабря, 2017 Поделиться Опубликовано 12 декабря, 2017 Да. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Трофим Опубликовано 12 декабря, 2017 Автор Поделиться Опубликовано 12 декабря, 2017 Все равно ошибка, когда генерирую 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 файл некорректный. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Vascom Опубликовано 12 декабря, 2017 Поделиться Опубликовано 12 декабря, 2017 Похоже. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Трофим Опубликовано 13 декабря, 2017 Автор Поделиться Опубликовано 13 декабря, 2017 Подскажите, пожалуйста, как теперь пользоваться сгенерированной памятью в проекте, как её подключать к проекту, как к ней обратиться в VHDL, для чего нужен файл *.ngc, я правильно понимаю, что это как-то связано с этим файлом. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Vascom Опубликовано 13 декабря, 2017 Поделиться Опубликовано 13 декабря, 2017 Обычно такие модули создают сразу в проекте и подключаются они автоматически. Так же среди сгенерированных файлов должен быть модуль, в котором подробно написано как подключать его порты. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Трофим Опубликовано 13 декабря, 2017 Автор Поделиться Опубликовано 13 декабря, 2017 (изменено) А какое расширение у этого файла, в котором описано, как подключать порты. Не нужно цитировать целиком предыдущее сообщение - и так понятно, что ответ на него. К тому же, это запрещено Правилами данного форума - п.II.9. Отредактировал Ваши сообщения. Изменено 13 декабря, 2017 пользователем Lexus 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Vascom Опубликовано 13 декабря, 2017 Поделиться Опубликовано 13 декабря, 2017 Ну как обычно .vhd или .v, смотря какой язык использовался. Щас я создам проект в ISE 14.7 и повторю эти шаги. Какой у тебя в проекте Preferred Language? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Vascom Опубликовано 13 декабря, 2017 Поделиться Опубликовано 13 декабря, 2017 (изменено) Итак по шагам. 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. Вставляй полученный темплейт в свой код. Изменено 13 декабря, 2017 пользователем Vascom 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Трофим Опубликовано 14 декабря, 2017 Автор Поделиться Опубликовано 14 декабря, 2017 Сигнал wea - это сигнал разрешения записи и чтения? И какие значения он принимает, если у меня описано: (wea : IN STD_LOGIC_VECTOR(0 DOWNTO 0), он однобитный? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Vascom Опубликовано 14 декабря, 2017 Поделиться Опубликовано 14 декабря, 2017 wea - это Write Enable, то есть сигнал разрешения записи. Он однобитный. Если "1" - то идёт запись, если "0", то чтение. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Трофим Опубликовано 14 декабря, 2017 Автор Поделиться Опубликовано 14 декабря, 2017 А какой сигнал тогда разрешает чтение, вот имеющиеся порты? 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) 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Vascom Опубликовано 14 декабря, 2017 Поделиться Опубликовано 14 декабря, 2017 (изменено) В данном варианте - нет такого отдельного сигнала. Когда wea в "1", данные со входа dina записываются в память по адресу addra. Когда wea в "0", на выходе douta появляются данные из памяти по адресу addra. Если нужен отдельный сигнал разрешения чтения, то надо переконфигурировать память, добавив выходной регистр и пин REGCEA. Но это замедлит память на один такт и не требуется в большинстве случаев. Изменено 14 декабря, 2017 пользователем Vascom 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Трофим Опубликовано 14 декабря, 2017 Автор Поделиться Опубликовано 14 декабря, 2017 Как в файле *.ucf задать соответствие вывода std_logic_vector (7 downto 0 ) и 8-ми светодиодам, надо каждый пин вывода сопоставить с ножкой светодиода. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Vascom Опубликовано 14 декабря, 2017 Поделиться Опубликовано 14 декабря, 2017 Примерно так: 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; 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.