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

 
 
> ModelSim и отрицательные числа в .mif файлах
nice_vladi
сообщение Jun 3 2017, 04:24
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 7-09-16
Из: Томск
Пользователь №: 93 239



Всем привет. Столкнулся с тем, что Modelsim отказывается читать отрицательные числа в .mif файлах. Квартус нормально читает. Заполнение файла верное, версия Modelsim 10.1d.

Пример mif файла:

CODE


-- Matlab generated Memory Initialization File (.mif)
-- Created on: 03-Jun-2017

WIDTH = 18;
DEPTH = 512;

ADDRESS_RADIX = UNS;
DATA_RADIX = DEC;

CONTENT BEGIN
0 : 0;
1 : 0;
2 : 0;
3 : 0;
4 : 0;
5 : 0;
6 : 0;
7 : 0;
8 : 0;
9 : 0;
10 : 0;
11 : 0;
12 : 0;
13 : 0;
14 : 0;
15 : 0;
16 : 0;
17 : 13749;
18 : 0;
19 : 8849;
20 : 0;
21 : 3949;
22 : 0;
23 : -950;
24 : 0;
25 : 33349;
......

END;


На этот файл Modelsim выдает такую ошибку:
# ERROR: D:/matlab/new.mif, line 34, Invalid Altera-mif record.

34 строка - первое встретившееся в списке отрицательное число.

Сейчас извращаюсь с переводом в бинарный вид в Matlab'e и потом пишу в mif. Это Modelsim кушает на ура.

Где я допускаю ошибку? Возможно с какой-то определенной версии Modelsim'a появилась поддержка отрицательных чисел в mif?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
iosifk
сообщение Jun 7 2017, 13:06
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(nice_vladi @ Jun 3 2017, 07:24) *
Всем привет. Столкнулся с тем, что Modelsim отказывается читать отрицательные числа в .mif файлах. Квартус нормально читает. Заполнение файла верное, версия Modelsim 10.1d.

Где я допускаю ошибку? Возможно с какой-то определенной версии Modelsim'a появилась поддержка отрицательных чисел в mif?

Можно пойти и другим путем...
Забейте параметрами чтение mif для симулятора

если параметр simulate == "Yes"

то следующее только для симулятора
// synthesis translate_off
reg [7:0] mem[0:255];
$readmemh("my_init_file.dat", mem, 0, 255); // что-то вроде этого
// synthesis translate_on

в противном случае
(* ram_init_file = "my_init_file.mif" *) reg [7:0] mem[0:255];




--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
nice_vladi
сообщение Jun 13 2017, 06:09
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 7-09-16
Из: Томск
Пользователь №: 93 239



Цитата(iosifk @ Jun 7 2017, 14:06) *
Можно пойти и другим путем...
Забейте параметрами чтение mif для симулятора

если параметр simulate == "Yes"

то следующее только для симулятора
// synthesis translate_off
reg [7:0] mem[0:255];
$readmemh("my_init_file.dat", mem, 0, 255); // что-то вроде этого
// synthesis translate_on

в противном случае
(* ram_init_file = "my_init_file.mif" *) reg [7:0] mem[0:255];


Спасибо за идею, скорее всего, так и поступлю.

В продолжение темы - на досуге поковырял библиотеки sim_lib/220model.v Quartus'ов. Поддержки отрицательных чисел в mif-файлах нет вплоть до Quartus'a 16.0. Версии старше не смотрел - пока нет времени. Если кто-то их пользует(16.1 - 17.0) - можно посмотреть их новые библиотеки, мб там что-то новое придумали и добавили поддержку. Буду благодарен за информацию smile3046.gif
А еще было бы круто узнать, можно ли так делать у Xilinx. Просто для общего развития.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Jun 13 2017, 08:37
Сообщение #4


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(nice_vladi @ Jun 13 2017, 09:09) *
А еще было бы круто узнать, можно ли так делать у Xilinx. Просто для общего развития.

попробуйте описание во вложении (инициализация нескольких памятей из файлов для альтеры, для хилых тоже должно подойти)
в файлах просто бинарные числа (не знаковые). производите чтение из памяти, потом при необходимости их конвертируете в знаковый тип и никаких проблем

upd попробовал сейчас - для симуляции
Прикрепленные файлы
Прикрепленный файл  init_2_mem_of_files.rar ( 3.63 килобайт ) Кол-во скачиваний: 19
 


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
nice_vladi
сообщение Jul 3 2017, 06:44
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 7-09-16
Из: Томск
Пользователь №: 93 239



Цитата(Maverick @ Jun 13 2017, 09:37) *
попробуйте описание во вложении (инициализация нескольких памятей из файлов для альтеры, для хилых тоже должно подойти)
в файлах просто бинарные числа (не знаковые). производите чтение из памяти, потом при необходимости их конвертируете в знаковый тип и никаких проблем

upd попробовал сейчас - для симуляции


Спасибо за участие!
Все-такие остановился на конвертировании в бинарный вид матлабом. Благо, функция уже написана - остается просто скармливать ей нужные числа. Конечно, сам mif-файл получается не очень наглядным, но опять же матлабом вытащил десятичные числа в комментарии на каждое двоичное число и получилось вполне терпимо.
Да и чисто интуитивно хочется как можно меньше кода HDL писать. Проще - лучше. А всякие гадости, вроде записи в память отрицательных чисел можно и в матлабе лепить...

В процессе изысканий была установлена Questa, опять мучал гугл, но все равно нативной поддержки отрицательных числе не нашел - только костыли.
Так же успел немного просветиться в области Xilinx'a.

В общем, дурная голова рукам покоя не дает biggrin.gif
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Jul 3 2017, 14:59
Сообщение #6


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

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(nice_vladi @ Jul 3 2017, 09:44) *
В процессе изысканий была установлена Questa, опять мучал гугл, но все равно нативной поддержки отрицательных числе не нашел - только костыли.
Да поймите одну простую вещь: симулятор тут ни при чём. Какой бы симулятор вы ни взяли, получите тот же самый результат. Потому что любой симулятор видит один и тот же альтеровский библиотечный код -- парсер mif. Если в коде отсутствует поддержка отрицательных чисел, то что может сделать симулятор?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- nice_vladi   ModelSim и отрицательные числа в .mif файлах   Jun 3 2017, 04:24
- - andrew_b   А при чём тут лично ModelSim? Он понятия не имеет ...   Jun 3 2017, 09:26
|- - nice_vladi   Цитата(andrew_b @ Jun 3 2017, 10:26) А пр...   Jun 6 2017, 13:37
|- - andrew_b   Цитата(nice_vladi @ Jun 6 2017, 16:37) ящ...   Jun 7 2017, 05:29
|- - nice_vladi   Цитата(andrew_b @ Jun 7 2017, 06:29) Вы м...   Jun 7 2017, 06:23
|- - andrew_b   Цитата(nice_vladi @ Jun 7 2017, 09:23) Пр...   Jun 7 2017, 06:40
- - Александр77   Цитата(nice_vladi @ Jun 3 2017, 07:24) Се...   Jun 3 2017, 15:19
- - spectr   MIF-файл подсовывается альтеровскому IP-ядру. Моде...   Jun 7 2017, 07:17
- - andrew_b   Насколько я вижу в task convert_mif2ver, отрицател...   Jun 7 2017, 07:46
|- - nice_vladi   Цитата(andrew_b @ Jun 7 2017, 08:46) Наск...   Jun 7 2017, 08:06
|- - andrew_b   Цитата(nice_vladi @ Jun 7 2017, 11:06) Кс...   Jun 7 2017, 08:20
- - andrew_b   Цитата(nice_vladi @ Jun 13 2017, 09:09) А...   Jun 13 2017, 07:35
- - iosifk   Цитата(nice_vladi @ Jun 13 2017, 09:09) С...   Jun 13 2017, 07:53
- - iosifk   Цитата(nice_vladi @ Jun 13 2017, 09:09) С...   Jun 13 2017, 07:53
- - nice_vladi   Цитата(andrew_b @ Jul 3 2017, 15:59) Да п...   Jul 4 2017, 03:47


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

 


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


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