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

 
 
> 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
Ответов
andrew_b
сообщение Jun 7 2017, 07:46
Сообщение #2


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

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



Насколько я вижу в task convert_mif2ver, отрицательные числа действительно не поддерживаются:
Код
                else if (r == `MINUS)
                begin
                    r = $fgetc(ifp);
                    if (r == `MINUS)
                    begin
                        // Ignore all the characters which which is part of comment.
                        r = $fgetc(ifp);

                        while ((r != `NEWLINE) && (r != `CARRIAGE_RETURN))
                        begin
                            r = $fgetc(ifp);

                        end

                        if ((r == `NEWLINE) || (r == `CARRIAGE_RETURN))
                        begin
                            line_no = line_no +1;

                            if ((buffer == "contentbegin") && (get_address_data_pairs == `FALSE))
                            begin
                                get_address_data_pairs = `TRUE;
                                get_address = `TRUE;
                                buffer = "";
                            end
                        end
                    end
                    else
                    begin
                        error_status = `TRUE;
                        $display("ERROR: %0s, line %0d, Invalid Altera-mif record.", in_file, line_no);
                        done = `TRUE;
                        disable READER;
                    end
                end

То есть парсер таков, что если после минуса идёт ещё один минус, то это начало комментария. Если после минуса идёт любой другой символ, то это ошибка формата.
Go to the top of the page
 
+Quote Post
nice_vladi
сообщение Jun 7 2017, 08:06
Сообщение #3


Участник
*

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



Цитата(andrew_b @ Jun 7 2017, 08:46) *
Насколько я вижу в task convert_mif2ver, отрицательные числа действительно не поддерживаются:

...

То есть парсер таков, что если после минуса идёт ещё один минус, то это начало комментария. Если после минуса идёт любой другой символ, то это ошибка формата.


Ого, спасибо большое! Теперь все гораздо понятнее стало. Еще и появился вариант, что можно посмотреть, когда ломается то, что не должно. Кстати, скажите, пожалуйста, вашу версию Modelsim или Questa, для статистики, так сказать.
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Jun 7 2017, 08:20
Сообщение #4


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

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



Цитата(nice_vladi @ Jun 7 2017, 11:06) *
Кстати, скажите, пожалуйста, вашу версию Modelsim или Questa, для статистики, так сказать.
Версия тут ни при чём. Я просто открыл 220model.v, идущий с Квартусом, и посмотрел код. Этот код будет работать одинаково во всех симуляторах.
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
- - iosifk   Цитата(nice_vladi @ Jun 3 2017, 07:24) Вс...   Jun 7 2017, 13:06
- - nice_vladi   Цитата(iosifk @ Jun 7 2017, 14:06) Можно ...   Jun 13 2017, 06:09
- - 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
- - Maverick   Цитата(nice_vladi @ Jun 13 2017, 09:09) А...   Jun 13 2017, 08:37
- - nice_vladi   Цитата(Maverick @ Jun 13 2017, 09:37) поп...   Jul 3 2017, 06:44
- - andrew_b   Цитата(nice_vladi @ Jul 3 2017, 09:44) В ...   Jul 3 2017, 14:59
- - 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 Текстовая версия Сейчас: 26th July 2025 - 01:18
Рейтинг@Mail.ru


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