Перейти к содержанию
    

TamRazZ

Участник
  • Постов

    34
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о TamRazZ

  • Звание
    Участник
    Участник
  • День рождения 11.02.1989

Посетители профиля

956 просмотров профиля
  1. Есть ли рациональное зерно в приведении типов после арифметических операций? logic [W-1:0] a, b; b <= (a + 10)[W-1:0]; Только я не знаю как это в синтаксисе SV описать, подскажите, пожалуйста..
  2. Действительно так не ругается... не помню, почему через конст писал % Можно тогда еще вопрос не по теме... Как вы избавляетесь от варнингов такого рода: Warning (10230): Verilog HDL assignment warning at mem_reader.sv(215): truncated value with size 32 to match size of target (12) в коде типа: cnt <= (cnt == size-1) ? 0 : cnt + 1; Настраиваете компилятор или указываете размеры всех слагаемых?
  3. Доюрый день! Столкнулся с необходимостью работы с массивом констант в виде упакованно-неупакованных конструкций. вот пример того, что мне необходимо: localparam int N = 5; localparam int W = 18; const logic [ADDR_W-1 : 0] hard_point [N] = '{16, 17, 18, 19, 20}; на такую запись Квартус вываливает предупреждения: Warning (10030): Net "hard_point.data_a" at mem_reader.sv(61) has no driver or initial value, using a default initial value '0' Warning (10030): Net "hard_point.waddr_a" at mem_reader.sv(61) has no driver or initial value, using a default initial value '0' Warning (10030): Net "hard_point.we_a" at mem_reader.sv(61) has no driver or initial value, using a default initial value '0' Код работает исправно, но эти варнинги мне непонятны и хотелось бы с ними разобраться, но не совсем понятно, что от меня требует Квартус. Я понимаю, что необходимо указывать конкретную размерность данных, но затрудняюсь с синтаксисом. Прошу помощи.
  4. AlteraEdition накладывает некоторые ограничения на проект (использование разных языков, размер исходников), что в некоторых ситуациях критично, поэтому чтобы не искать ошибок в будущем осваиваю оригинальный МС. В этом и проблема... Я не прописывал путей к скомпилированным библиотекам. Quartus, как я понимаю, сам правит ini файл МС и все изменения, которые я пытаюсь сотворить с ним вручную теряют смысл. Видимо в Квартусе стоят какие-то опции, влияющие на запуск МС из под Ква и надо править их, но какие это опции я пока не вкурил...
  5. С запуском ModelSim из Qurtus разобрался! Спасибо! Компилируется и симмулится как надо. НО... При запуске ModelSim (именно ModelSim а не AlteraEdition) из Quartus происходит компиляция множества библиотек под конкретный кристалл, занимает изрядное количество времени и процедура бесполезная т.к. я запускаю функциональную симуляцию. Не понятно куда деваются эти библиотеки однажды откомпиленные, почему это происходит при каждом запуске симулятора (только из Quartus, при запуске ModelSim как самостоятельное приложение такого не происходит)? Каждый запуск ModelSim из Quartus сопровождется обновлением *.ini файла, из чего делаю вывод, что именно в Quartus-gui надо искать-отключать настройки. Перерыл все настройки связанные с запуском EDA Tools пока ничего не нашел. Помогите, кто с этим сталкивался...
  6. Понятно... В моделсиме я более менее разобрался, вопрос, как их подружить с квартусом. Но спасибо за ваш скрипт, некоторые команды взял на вооружение
  7. Спасибо! Как вы запускаете этот скрипт из Quartus? Или вся отладка у вас в интерфейсе ModelSim происходит?
  8. Добрый день! Прошу помощи у опытных пользователей. Опишите подробно ваш флоу создания и отладки проекта под альтеровскую ПЛИСу. Я не часто этим занимаюсь и мой процесс выглядит следующим образом: 1. Написание исходников в текстовом редакторе с поддержкой синтаксиса SV (обычно это встроенный Qurtus текстовый редактор). 2. Создание проекта под ModelSim, в котором происходит функциональная симуляция и исправление логических ошибок. 3. Создание проекта под Qurtus II на основе отлаженных исходников, где происходит оптимизация по затраченным ресурсам и создание Netlist для следующего этапа. 4. Создание нового проекта (или модификация созданного) под ModelSim для временной отладки. 5. TimeQuest, написание констрейнов при необходимости. Понятно, что такой рабочий процесс как минимум не оптимален и не логичен. Известно, что есть способы подружить Quartus II и ModelSim (иначе не было бы в интерфейсе Quartus настроек Nativelink для ModelSim). Но как это грамотно осуществить я не разобрался, и хотелось бы узнать как выглядит рабочий процесс у профессионалов. ЗЫ: Чтобы не показалось, что я сам ничего не пытался сделать и хочу, чтоб мне на шару расписали, что куда нажимать, приведу пример того, как я делаю на, мой взгляд, "не так": 1. Создаю проект в квартусе, пишу исходники на SV и тестбенч. 2. Компилирую библиотеки Altera для своего кристалла. 3. В настройках Simulation в Quartus выбираю ModelSim (прописываю путь к екзешнику), указываю выходную директорию для файлов симуляции, настраиваю тестбенч (картинка в аттаче). 4. В Nativelink указываю путь к скомпилированным библиотекам. 3. Далее при запуске функционального моделирования запускается ModelSim и начинает перекомпилировать все библиотеки и мапить их в указанную директорию. При повторном запуске происходит ровно тоже самое, несмотря на то, что все папки созданы и лежат на своих местах. Выполняется это согласно автоматически созданному скрипту, в котором написано: transcript on if ![file isdirectory verilog_libs] { file mkdir verilog_libs } vlib verilog_libs/altera_ver vmap altera_ver ./verilog_libs/altera_ver vlog -vlog01compat -work altera_ver {c:/altera/13.1/quartus/eda/sim_lib/altera_primitives.v} vlib verilog_libs/lpm_ver vmap lpm_ver ./verilog_libs/lpm_ver vlog -vlog01compat -work lpm_ver {c:/altera/13.1/quartus/eda/sim_lib/220model.v} vlib verilog_libs/sgate_ver vmap sgate_ver ./verilog_libs/sgate_ver vlog -vlog01compat -work sgate_ver {c:/altera/13.1/quartus/eda/sim_lib/sgate.v} vlib verilog_libs/altera_mf_ver vmap altera_mf_ver ./verilog_libs/altera_mf_ver vlog -vlog01compat -work altera_mf_ver {c:/altera/13.1/quartus/eda/sim_lib/altera_mf.v} vlib verilog_libs/altera_lnsim_ver vmap altera_lnsim_ver ./verilog_libs/altera_lnsim_ver vlog -sv -work altera_lnsim_ver {c:/altera/13.1/quartus/eda/sim_lib/altera_lnsim.sv} vlib verilog_libs/cycloneiii_ver vmap cycloneiii_ver ./verilog_libs/cycloneiii_ver vlog -vlog01compat -work cycloneiii_ver {c:/altera/13.1/quartus/eda/sim_lib/cycloneiii_atoms.v} Но как мне его изменить или заменить, чтобы каждый раз он не компилил то, что и так скомпилено. Или может я совсем все не так делаю и мой флоу изначально не верен, расскажите, как действуете вы.
  9. Нужно именно синтезируемое. Пока Хэмминг для тренировки, в будущем, конечно, LDPC=) сделать шаблон через функцию в параметризуемом интерфейсе Можно поподробнее не совсем понял, терминология у меня хромает пока...
  10. Добрый день! Подскажите, пожалуйста, простой и доступный способ реализации на SV функции генерации единичной матрицы. Вот набросок моего видения этой функции: function automatic logic[size-1:0][size-1:0] eye (input int size); for (int i = 0; i < size; i++) for (int j = 0; j < size; j++) eye[i][j] = (i == j); endfunction Понятно, что компилятор не видит size в шапке объявляемой функции. Не понятно, как описать функцию, у которой размерность выходного аргумента зависит входного аргумента.
  11. Добрый день! Возникла проблема при гателевел симуляции проекта. Netlist Writer при компиляции не создает необходимых *.sdo и *.svo файлов (пишу на System Verilog). Из-за этого не запускается симуляция. Причем данный эффект возникает при симуляции под Arria V при выборе плисы Cyclone III для этого же проекта, необходимые файлы генерируются и симуляция проходит нормально. В чем дело? ЗЫ: Версии САПРов в описании темы..
  12. С шинами вроде разобрался! Спасибо! Подобная же проблема с параметризируемыми модулями... При создании квартусом *.svo или *.vo файла из модуля верхнего уровня пропадают параметры, и когда тестбенч передает значения параметра топ-левел модулю возникает ошибка. Как быть в такой ситуации... В настройках нетлист врайтера ничего подобного не обнаружил...
  13. т.е. structural verilog не поддерживает мультиразмерные сигналы, в принципе? или есть способ "правильного" описания сигнала? Подскажите, как должна выглядеть декларация сигнала out_a в таком случае.
  14. Доброго времени суток! Пытаюсь просимулировать с помощью ModelSim (Altera Edition) проект, созданный в Quartus 13.1. Модули проекта написаны на SystemVerilog. Передача данных от одного модуля к другому осуществляется за счет мультиразмерных packed массивов. RTL симуляция проходит нормально, но когда дело доходит до GateLevel ModelSim выдает ошибку, ругается на эти сигналы. Причина в том, что Quartus создает файл для симуляции *.vo (с временными задержками и тд). При генерации этого файла все мои многоразмерные сигналы вида: output logic [7:0] [255:0] out_a; Превращаются в: out_a_0_0 out_a_0_1 ... и тд. ModelSim эти сигналы не обнаруживает и выдает ошибку. Как быть в таких ситуациях?
  15. Странный какой-то алгоритм, в классическом БМ декодер четко определяет может он декодировать принятую комбинацию или нет, а тут получается неизвестно восстановлена последовательность или нет..(
×
×
  • Создать...