реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Actel ProAsic3L 3000 сформировать внутри память
DSIoffe
сообщение Dec 5 2014, 11:27
Сообщение #16


Дима
*****

Группа: Свой
Сообщений: 1 683
Регистрация: 15-12-04
Из: Санкт-Петербург
Пользователь №: 1 486



Цитата("АндрейЦ")
Т.е. и память программ и ОЗУ создать внутренними ресурсами без использования внешних компонентов.

Прикладываю код ПЗУ, которое у меня работало с 8051s.
Для генерации кодов ПЗУ из HEX файла у меня была маленькая программка.
ОЗУ, наверное, можно сделать по образу и подобию.
Вот тут http://electronix.ru/forum/index.php?showtopic=111717 тема про 8051s.
Прикрепленные файлы
Прикрепленный файл  MyROM.vhd ( 8.56 килобайт ) Кол-во скачиваний: 17
 


--------------------
© CОПЫРИГХТ: Дмитрий Иоффе, Советский Союз.
Приглашаю посмотреть: http://muradowa.spb.ru/ и http://www.drtata.narod.ru/index.html
Go to the top of the page
 
+Quote Post
Serge_DVD
сообщение Dec 8 2014, 12:55
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 11-08-06
Пользователь №: 19 485



Цитата(DSIoffe @ Dec 5 2014, 15:27) *
Прикладываю код ПЗУ, которое у меня работало с 8051s.
Для генерации кодов ПЗУ из HEX файла у меня была маленькая программка.
ОЗУ, наверное, можно сделать по образу и подобию.
Вот тут http://electronix.ru/forum/index.php?showtopic=111717 тема про 8051s.


Дмитрий, расскажите, пожалуйста, что делает функция SLVtoNatural? Таким способом удается создать ПЗУ на 4-5кБ, при попытке сделать больше вылетает ошибка размещения.
И отличается-ли результат трассировки Вашего кода от простого использования $readmemh ?
Go to the top of the page
 
+Quote Post
DSIoffe
сообщение Dec 9 2014, 07:56
Сообщение #18


Дима
*****

Группа: Свой
Сообщений: 1 683
Регистрация: 15-12-04
Из: Санкт-Петербург
Пользователь №: 1 486



SLVtoNatural преобразует данные типа std_logic_vector в натуральное число, чтобы можно было использовать его в арифметических операциях. Чем разбираться в разных чужих библиотеках, проще такое написать, имхо.
У меня было ПЗУ на 2 кБ максимум. Способ ресурсоёмкий, конечно, можно использовать только при полном отсутствии других вариантов (опять же, имхо).
Я не знаю, что такое $readmemh sad.gif


--------------------
© CОПЫРИГХТ: Дмитрий Иоффе, Советский Союз.
Приглашаю посмотреть: http://muradowa.spb.ru/ и http://www.drtata.narod.ru/index.html
Go to the top of the page
 
+Quote Post
Serge_DVD
сообщение Dec 11 2014, 14:02
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 11-08-06
Пользователь №: 19 485



Цитата(DSIoffe @ Dec 9 2014, 11:56) *
SLVtoNatural преобразует данные типа std_logic_vector в натуральное число, чтобы можно было использовать его в арифметических операциях. Чем разбираться в разных чужих библиотеках, проще такое написать, имхо.
У меня было ПЗУ на 2 кБ максимум. Способ ресурсоёмкий, конечно, можно использовать только при полном отсутствии других вариантов (опять же, имхо).
Я не знаю, что такое $readmemh sad.gif


Под $readmemh я подразумевал объявление массива регистров и заполнение его значениями из файла на этапе трассировки. Что-то типа reg [7:0] mem [0:2047] ; $readmemh("d:\\f_hex.txt", mem);
Для моей задачи ресурсоемкость отходит на второй план. 3000-ку брали именно для того, чтобы иметь возможность разместить в ней массив данных около 10кб. А получилось, что сделать это не так просто как казалось.
Не понятно, сколько вентилей нужно для образования одной ячейки. В Вашем примере количество используемых вентилей получается меньше, чем при объявлении массива регистров. Исходя из этого и появился мой вопрос, я думал, что с помощью этой функции организуется компрессия данных. Может я не правильно что-то понимаю.
Go to the top of the page
 
+Quote Post
DSIoffe
сообщение Dec 11 2014, 14:13
Сообщение #20


Дима
*****

Группа: Свой
Сообщений: 1 683
Регистрация: 15-12-04
Из: Санкт-Петербург
Пользователь №: 1 486



Цитата
Под $readmemh я подразумевал объявление массива регистров и заполнение его значениями из файла на этапе трассировки. Что-то типа reg [7:0] mem [0:2047] ; $readmemh("d:\\f_hex.txt", mem);

Ага, это мы разговариваем на разных языках?
Эта функция сугубо VHDL-ная, преобразование типов. (Лишь бы не набежали тут критики VHDL sm.gif
Компрессии тут нет никакой, просто выбор слов по адресу.
Я фактически тоже объявляю массив регистров. Почему получается меньше - не знаю, это какие-то козни синтезатора. Почему ошибка размещения - тоже не понимаю sad.gif


--------------------
© CОПЫРИГХТ: Дмитрий Иоффе, Советский Союз.
Приглашаю посмотреть: http://muradowa.spb.ru/ и http://www.drtata.narod.ru/index.html
Go to the top of the page
 
+Quote Post
Serge_DVD
сообщение Dec 11 2014, 15:46
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 11-08-06
Пользователь №: 19 485



Цитата(DSIoffe @ Dec 11 2014, 18:13) *
Ага, это мы разговариваем на разных языках?
Эта функция сугубо VHDL-ная, преобразование типов. (Лишь бы не набежали тут критики VHDL sm.gif
Компрессии тут нет никакой, просто выбор слов по адресу.
Я фактически тоже объявляю массив регистров. Почему получается меньше - не знаю, это какие-то козни синтезатора. Почему ошибка размещения - тоже не понимаю sad.gif


Ладно. Бум дальше копать wacko.gif
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 16:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01383 секунд с 7
ELECTRONIX ©2004-2016