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

 
 
 
Reply to this topicStart new topic
> Как работать со строками названий файлов, чтобы результат понимал Modelsim?
Koluchiy
сообщение Apr 21 2017, 15:06
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 919
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Здравствуйте, уважаемые гуру.

Есть 2 константы (или переменные), в одной из них путь к файлу, в другой - название.
Ну типа,
localparam Path = "D:\Path";
localparam Filename = "Filename.txt";

Надо из них слепить некую переменную, которую поймет Modelsim в функциях обращения к файлам.
$readmemh и т.д..
Пока чего ни пробую - моделсим не понимает и ругается, что файл "" не находит.

Подскажите, куда копать?
Go to the top of the page
 
+Quote Post
Fitc
сообщение Apr 21 2017, 16:34
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 80
Регистрация: 21-10-11
Пользователь №: 67 894



localparam Path = "D:\\Path\\";
localparam Filename = "Filename.txt";
$readmemh({Path, Filename}, mem);
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Apr 21 2017, 17:07
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 919
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



А как сделать, чтобы работало вот такое:

Код
localparam Path = "D:/Sig0/test";
localparam Filename = "/ref.hex";

wire    [7:0]    Number;
assign Number = "1";

initial
begin
    $readmemh({Path, Number, Filename}, RefMem);
end


Результат такой: Failed to open readmem file "D:/Sig0/test/ref.hex" in read mode

Т.е. не видит цифру, которую я пытаюсь приделать к названию.
Go to the top of the page
 
+Quote Post
Fitc
сообщение Apr 21 2017, 17:31
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 80
Регистрация: 21-10-11
Пользователь №: 67 894



Код
localparam Path = "D:/Sig0/test";
localparam Filename = "/ref.hex";

reg[7:0]    Number;

initial
begin
        Number = "1";
    $readmemh({Path, Number, Filename}, RefMem);
end
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Apr 24 2017, 16:08
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 919
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Спасибо!

А почему с reg работает, а с wire - нет?
Go to the top of the page
 
+Quote Post
Fitc
сообщение Apr 24 2017, 20:45
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 80
Регистрация: 21-10-11
Пользователь №: 67 894



Цитата(Koluchiy @ Apr 24 2017, 19:08) *
Спасибо!

А почему с reg работает, а с wire - нет?

Потому что assign и initial являются параллельными процессами, порядок выполнения которых не определен. В данном случае первым выполняется процесс initial, когда assign еще не выполнился и не присвоил значение wire. А inline-инициализация статических переменных ЕМНИП выполняется раньше выполнения процессов. Если в initial в начале добавить задержку, то вариант с wire также сработает.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 27th June 2017 - 05:27
Рейтинг@Mail.ru


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