|
|
|
новичок, string, ошибка в коде |
|
|
|
Sep 4 2018, 17:53
|
Группа: Участник
Сообщений: 7
Регистрация: 4-09-18
Пользователь №: 107 221
|
Приветствую форумчане, кратко обо мне, я начинающий любитель программист, немного знаю c++ и решил попробовать verilog, первое с чем я столкнулся, это работа со строками, и как создавать массивы больших размеров, например на C++ int arr[999999] сейчас конкретно string выдаёт ошибку matemat.vl:7: syntax error matemat.vl:7: error: Invalid module instantiation работаю с программой iverilog Код module main();
integer p=0; string lastname = "Tribbiani";
initial begin
for (p=0; p<5; p++) begin $display("Vivod ", p); end
$finish; end
endmodule
|
|
|
|
|
Sep 4 2018, 18:38
|
Группа: Участник
Сообщений: 7
Регистрация: 4-09-18
Пользователь №: 107 221
|
Цитата(AVR @ Sep 4 2018, 19:21) $display("Vivod %0d", p); ошибка так и осталась, так как она не связана с integer, она связана с string , так как после удаления строчки string программа компилится и запускается
|
|
|
|
|
Sep 4 2018, 19:12
|
Профессионал
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643
|
Приветствую! Цитата(nomerlin @ Sep 4 2018, 21:38) ошибка так и осталась, так как она не связана с integer, она связана с string , так как после удаления строчки string программа компилится и запускается Чистый verilog не поддерживает тип данных string. Это доступно только для SystemVerilog. Вам надо посмотреть поддерживает ли iverilog стандарт SystemVerilog ну и компилировать файл с соответствующей опцией. Удачи! Rob.
|
|
|
|
|
Sep 4 2018, 19:17
|
Группа: Участник
Сообщений: 7
Регистрация: 4-09-18
Пользователь №: 107 221
|
Цитата(RobFPGA @ Sep 4 2018, 20:12) Приветствую! Чистый verilog не поддерживает тип данных string. Это доступно только для SystemVerilog. Вам надо посмотреть поддерживает ли iverilog стандарт SystemVerilog ну и компилировать файл с соответствующей опцией.
Удачи! Rob. я так понял, что я выбрал не правильный компилятор для новичков? или не расширенный. Подскажите пожалуйста какими лучше пользоваться.(у меня Win 8)
Сообщение отредактировал nomerlin - Sep 4 2018, 19:18
|
|
|
|
|
Sep 5 2018, 06:25
|
Группа: Участник
Сообщений: 7
Регистрация: 4-09-18
Пользователь №: 107 221
|
Цитата(AVR @ Sep 5 2018, 06:29) По дефолту он в Verilog компилит, а string есть в SystemVerilog, и для этого нужно задать соответствующую опцию, а может даже расширение файла не .v а может .sv, ибо опции у Icarus я чего не вижу. Можно взять Modelsim Altera Starter Edition бесплатный и пробовать на нем.
В SystemVerilog лучше со строками, гораздо лучше. Не нужны лошадиные резервы по длинам, в SystemVerilog строки динамические. Но в синтезируемых модулях строки не нужны. понял, а насчёт огромных массивов типа int?
|
|
|
|
|
Sep 5 2018, 07:54
|
Группа: Участник
Сообщений: 7
Регистрация: 4-09-18
Пользователь №: 107 221
|
и можно ли в int переменной искать нужные цифры? например int i = 11313234412314; если в числе есть значение 344 то true и записать позицию где находится данное число в переменной
|
|
|
|
|
Sep 5 2018, 08:10
|
Гуру
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369
|
Цитата(nomerlin @ Sep 5 2018, 10:54) и можно ли в int переменной искать нужные цифры? например int i = 11313234412314; если в числе есть значение 344 то true и записать позицию где находится данное число в переменной Представьте себе следующие схемные узлы: регистр, в котором хранится 11313234412314 мультиплексор, который из регистра выбирает по 3 байта счетчик, который умпавляет мультиплексором схема сравнения, на один порт которой подключен выход мультиплексора, а еа второй вход - константа 344 ну и наверное еще понадобится триггер, который при сбросе счетчика в исходное тоже будет сбрасываться, а при получении 1 от схемы сравнения - будет устанавливаться в 1, и Вы получите "true", а счетчик как раз и покажет позицию искомой последовательности... Как только научитесь думать не в "байтах", а в "триггерах", так и дело с верилогом пойдет...
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Sep 5 2018, 08:16
|
Группа: Участник
Сообщений: 7
Регистрация: 4-09-18
Пользователь №: 107 221
|
Цитата(iosifk @ Sep 5 2018, 09:10) Представьте себе следующие схемные узлы: регистр, в котором хранится 11313234412314 мультиплексор, который из регистра выбирает по 3 байта счетчик, который умпавляет мультиплексором схема сравнения, на один порт которой подключен выход мультиплексора, а еа второй вход - константа 344 ну и наверное еще понадобится триггер, который при сбросе счетчика в исходное тоже будет сбрасываться, а при получении 1 от схемы сравнения - будет устанавливаться в 1, и Вы получите "true", а счетчик как раз и покажет позицию искомой последовательности...
Как только научитесь думать не в "байтах", а в "триггерах", так и дело с верилогом пойдет... Спасибо большое за такой расширенный ответ, сейчас буду манну читать в этом направлении.
|
|
|
|
|
Sep 5 2018, 08:27
|
Группа: Участник
Сообщений: 7
Регистрация: 4-09-18
Пользователь №: 107 221
|
Цитата(iosifk @ Sep 5 2018, 09:19) Если хотите, то могу по скайпу голосом ... Хоспади, вы прям как ангел для меня, с меня на пиво, без прикола, скиньте скайп лс плиз
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|