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

 
 
 
Reply to this topicStart new topic
> Сюрприз от Квартуса
_Anatoliy
сообщение Sep 17 2016, 08:24
Сообщение #1


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Для хранения коэффициентов быстрой свёртки создаю on chip memory компонент ROM: 1 port с инициализацией из файла .mif , после компиляции и заливки в чип вижу скопом что выходные данные ROM всегда равны нулю,хотя адреса переключаются. При этом если посмотреть мемори эдитором то нужные данные в памяти присутствуют. Корку перегенерил,проект пересобрал - ничего не помогает.Что посоветуете коллеги? Опять за бубном бежать? Квартус 16.0 Аррия-V.
Go to the top of the page
 
+Quote Post
Inanity
сообщение Sep 17 2016, 08:45
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 221
Регистрация: 6-07-12
Пользователь №: 72 653



Понимаю, что маловероятно, но может enable памяти не активирован случайно? В RTL всё верное синтезировалось при подключении к памяти?
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Sep 17 2016, 08:56
Сообщение #3


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Inanity @ Sep 17 2016, 11:45) *
Понимаю, что маловероятно, но может enable памяти не активирован случайно? В RTL всё верное синтезировалось при подключении к памяти?

Нету enable
Код
ENTITY rom_coe_re IS
    PORT
    (
        address        : IN STD_LOGIC_VECTOR (13 DOWNTO 0);
        clock        : IN STD_LOGIC  := '1';
        q        : OUT STD_LOGIC_VECTOR (15 DOWNTO 0)
    );
END rom_coe_re;

В RTL тоже криминала не заметил. Перепроверил скоп, вывел q(0) на внешний порт - стабильный ноль хотя в массиве единицы есть.
Go to the top of the page
 
+Quote Post
des00
сообщение Sep 17 2016, 09:49
Сообщение #4


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Я перешел на поведенческое описание.


--------------------
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Sep 17 2016, 09:57
Сообщение #5


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(des00 @ Sep 17 2016, 12:49) *
Я перешел на поведенческое описание.

А можно примерчик? А то у меня уже крыша едет,плохо соображаю.
А,дошло. Описываем как массив и реализуем в памяти?
Тоже были неприятности?
Совершенно непонятно,у меня около десятка разных блоков памяти в проекте - все работают. Правда без инициализации.
Go to the top of the page
 
+Quote Post
Inanity
сообщение Sep 17 2016, 10:30
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 221
Регистрация: 6-07-12
Пользователь №: 72 653



Цитата(_Anatoliy @ Sep 17 2016, 12:57) *
Описываем как массив и реализуем в памяти?
Тоже были неприятности?


Мне кажется это не решение проблемы. Да, память, математику таким образом ещё можно описывать, а иногда даже нужно, для большей переносимости кода, но не все примитивы можно так описать. Тут явно виноват квартус или генератор ядра. Есть ещё вариант вручную вместо генератора ядра описывать параметры конкретного примитива, но это тоже геморрой.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Sep 17 2016, 10:42
Сообщение #7


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Inanity @ Sep 17 2016, 13:30) *
Мне кажется это не решение проблемы. Да, память, математику таким образом ещё можно описывать, а иногда даже нужно, для большей переносимости кода, но не все примитивы можно так описать. Тут явно виноват квартус или генератор ядра. Есть ещё вариант вручную вместо генератора ядра описывать параметры конкретного примитива, но это тоже геморрой.

Соглашусь с Вами.
Сейчас попробовал вместо rom сгенерить ram с инициализацией - та же проблема. Я в шоке...
Осталось попробовать вариант с массивом.
Конечно ещё есть вариант с загрузкой данных в память но не хотелось бы извращаться.
Go to the top of the page
 
+Quote Post
Inanity
сообщение Sep 17 2016, 11:21
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 221
Регистрация: 6-07-12
Пользователь №: 72 653



А может среда тупо не видит файл инициализации при синтезе? Может он как-то куда-то не подключен? К сожалению/счастью не так много работаю с quartus-ом. Может среда кидает warning, что файл не видит и всё нулями забивает.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Sep 17 2016, 11:24
Сообщение #9


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Inanity @ Sep 17 2016, 14:21) *
А может среда тупо не видит файл инициализации при синтезе? Может он как-то куда-то не подключен? К сожалению/счастью не так много работаю с quartus-ом. Может среда кидает warning, что файл не видит и всё нулями забивает.

Не, я выше писал что мемори эдитором в микросхеме через JTAG я вижу содержимое памяти,оно в норме.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Sep 17 2016, 13:12
Сообщение #10


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Ну вот, переделал проект под массив,упаковал массив в M10K - ничего не изменилось! Разве что только теперь мемори эдитором не могу пользоваться.
На всякий случай выложу technology map viewer (post fit).
tech map
Похоже в понедельник нужно попа пригласить laughing.gif
Go to the top of the page
 
+Quote Post
Corner
сообщение Sep 21 2016, 18:35
Сообщение #11


Профессионал
*****

Группа: Участник
Сообщений: 1 072
Регистрация: 11-12-12
Пользователь №: 74 815



Цитата(_Anatoliy @ Sep 17 2016, 16:12) *
Ну вот, переделал проект под массив,упаковал массив в M10K - ничего не изменилось! Разве что только теперь мемори эдитором не могу пользоваться.
На всякий случай выложу technology map viewer (post fit).
tech map
Похоже в понедельник нужно попа пригласить laughing.gif

Verilog, reg, Initial $readmemh... и текстовый файлик с hexами в проект. Работает без изменений и под Quartus и под ISE и под Vivado. Actel, Lattice и Active HDL не соберут. Для них initial не синтезируемая директива.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 17:54
Рейтинг@Mail.ru


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