Перейти к содержанию
    

Actel ProAsic3L 3000 сформировать внутри память

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

Прикладываю код ПЗУ, которое у меня работало с 8051s.

Для генерации кодов ПЗУ из HEX файла у меня была маленькая программка.

ОЗУ, наверное, можно сделать по образу и подобию.

Вот тут http://electronix.ru/forum/index.php?showtopic=111717 тема про 8051s.

MyROM.vhd

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прикладываю код ПЗУ, которое у меня работало с 8051s.

Для генерации кодов ПЗУ из HEX файла у меня была маленькая программка.

ОЗУ, наверное, можно сделать по образу и подобию.

Вот тут http://electronix.ru/forum/index.php?showtopic=111717 тема про 8051s.

 

Дмитрий, расскажите, пожалуйста, что делает функция SLVtoNatural? Таким способом удается создать ПЗУ на 4-5кБ, при попытке сделать больше вылетает ошибка размещения.

И отличается-ли результат трассировки Вашего кода от простого использования $readmemh ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

SLVtoNatural преобразует данные типа std_logic_vector в натуральное число, чтобы можно было использовать его в арифметических операциях. Чем разбираться в разных чужих библиотеках, проще такое написать, имхо.

У меня было ПЗУ на 2 кБ максимум. Способ ресурсоёмкий, конечно, можно использовать только при полном отсутствии других вариантов (опять же, имхо).

Я не знаю, что такое $readmemh :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

SLVtoNatural преобразует данные типа std_logic_vector в натуральное число, чтобы можно было использовать его в арифметических операциях. Чем разбираться в разных чужих библиотеках, проще такое написать, имхо.

У меня было ПЗУ на 2 кБ максимум. Способ ресурсоёмкий, конечно, можно использовать только при полном отсутствии других вариантов (опять же, имхо).

Я не знаю, что такое $readmemh :(

 

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

Для моей задачи ресурсоемкость отходит на второй план. 3000-ку брали именно для того, чтобы иметь возможность разместить в ней массив данных около 10кб. А получилось, что сделать это не так просто как казалось.

Не понятно, сколько вентилей нужно для образования одной ячейки. В Вашем примере количество используемых вентилей получается меньше, чем при объявлении массива регистров. Исходя из этого и появился мой вопрос, я думал, что с помощью этой функции организуется компрессия данных. Может я не правильно что-то понимаю.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Ага, это мы разговариваем на разных языках?

Эта функция сугубо VHDL-ная, преобразование типов. (Лишь бы не набежали тут критики VHDL :)

Компрессии тут нет никакой, просто выбор слов по адресу.

Я фактически тоже объявляю массив регистров. Почему получается меньше - не знаю, это какие-то козни синтезатора. Почему ошибка размещения - тоже не понимаю :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ага, это мы разговариваем на разных языках?

Эта функция сугубо VHDL-ная, преобразование типов. (Лишь бы не набежали тут критики VHDL :)

Компрессии тут нет никакой, просто выбор слов по адресу.

Я фактически тоже объявляю массив регистров. Почему получается меньше - не знаю, это какие-то козни синтезатора. Почему ошибка размещения - тоже не понимаю :(

 

Ладно. Бум дальше копать :wacko:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...