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

Поиск

Показаны результаты для тегов 'modelsim'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Сайт и форум
    • Новости и обсуждения сайта и форума
    • Другие известные форумы и сайты по электронике
    • В помощь начинающему
    • International Forum
    • Образование в области электроники
    • Обучающие видео-материалы и обмен опытом
  • Cистемный уровень проектирования
    • Вопросы системного уровня проектирования
    • Математика и Физика
    • Операционные системы
    • Документация
    • Системы CAD/CAM/CAE/PLM
    • Разработка цифровых, аналоговых, аналого-цифровых ИС
    • Электробезопасность и ЭМС
    • Управление проектами
    • Нейронные сети и машинное обучение (NN/ML)
  • Программируемая логика ПЛИС (FPGA,CPLD, PLD)
    • Среды разработки - обсуждаем САПРы
    • Работаем с ПЛИС, области применения, выбор
    • Языки проектирования на ПЛИС (FPGA)
    • Системы на ПЛИС - System on a Programmable Chip (SoPC)
    • Методы и средства верификации ПЛИС/ASIC
  • Цифровая обработка сигналов - ЦОС (DSP)
    • Сигнальные процессоры и их программирование - DSP
    • Алгоритмы ЦОС (DSP)
  • Микроконтроллеры (MCU)
    • Cредства разработки для МК
    • ARM
    • RISC-V
    • AVR
    • MSP430
    • Все остальные микроконтроллеры
    • Отладочные платы
  • Печатные платы (PCB)
    • Разрабатываем ПП в САПР - PCB development
    • Работаем с трассировкой
    • Изготовление ПП - PCB manufacturing
  • Сборка РЭУ
    • Пайка и монтаж
    • Корпуса
    • Вопросы надежности и испытаний
  • Аналоговая и цифровая техника, прикладная электроника
    • Вопросы аналоговой техники
    • Цифровые схемы, высокоскоростные ЦС
    • RF & Microwave Design
    • Метрология, датчики, измерительная техника
    • АВТО электроника
    • Умный дом
    • 3D печать
    • Робототехника
    • Ремонт и отладка
  • Силовая электроника - Power Electronics
    • Силовая Преобразовательная Техника
    • Обратная Связь, Стабилизация, Регулирование, Компенсация
    • Первичные и Вторичные Химические Источники Питания
    • Высоковольтные Устройства - High-Voltage
    • Электрические машины, Электропривод и Управление
    • Индукционный Нагрев - Induction Heating
    • Системы Охлаждения, Тепловой Расчет – Cooling Systems
    • Моделирование и Анализ Силовых Устройств – Power Supply Simulation
    • Компоненты Силовой Электроники - Parts for Power Supply Design
  • Интерфейсы
    • Форумы по интерфейсам
  • Поставщики компонентов для электроники
    • Поставщики всего остального
    • Компоненты
  • Майнеры криптовалют и их разработка, BitCoin, LightCoin, Dash, Zcash, Эфир
    • Обсуждение Майнеров, их поставки и производства
  • Дополнительные разделы - Additional sections
    • Встречи и поздравления
    • Ищу работу
    • Предлагаю работу
    • Куплю
    • Продам
    • Объявления пользователей
    • Общение заказчиков и потребителей электронных разработок

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


Город


Код проверки


skype


Facebook


Vkontakte


LinkedIn


Twitter


G+


Одноклассники


Звание

Найдено: 0 результатов

  1. Здравствуйте, уважаемые форумчане! Синтезирую простейший модулятор DPSK в Quartus Prime 16.1 SE. Возникла проблема при симуляции кода посредством ПО Modelsim - IP ядро NCO Modelsim отказывается симулировать. Вот код и текст ошибки: "Warning: (vsim-3722) <protected>(<protected>): [TFMPC] - Missing connection for port '<protected>'." "Warning: (vsim-3017) <protected>(<protected>): [TFMPC] - Too few port connection. Expected <protected>, found <protected>." Предварительно в проект квартуса потянул файлы NCO.sip и NCO.qip, т.к. без них симуляция вообще не запускалась. Возможно ли решить проблему или на пресловутый косинус я никак не посмотрю?
  2. Хочу вписать в do файл команды для закрытия не нужных мне окон. Названия окон есть в руководстве. Есть команда показать окно. Например : А закрыть нету. пробовал close, hide не помогает.
  3. Добрый день! Нужно смоделировать поведение камеры в Model Sim . Есть готовое изображение. Нужно считать построчно значение яркости каждого пикселя и выдать эти значения в Wave в Model Sim. Это вообще возможно?
  4. Всем привет! Следующая проблема, я пытаюсь инициализировать память с помощью атрибутов: type memory is array (511 downto 0) of std_logic_vector (15 downto 0); signal ram_data: memory; attribute ram_init_file : string; attribute ram_init_file of ram_data : signal is "mem.mif"; Он синтезирует память со следующими параметрами: Info (12133): Instantiated megafunction "altsyncram:ram_data_rtl_0" with the following parameter: Info (12134): Parameter "OPERATION_MODE" = "ROM" Info (12134): Parameter "WIDTH_A" = "16" Info (12134): Parameter "WIDTHAD_A" = "9" Info (12134): Parameter "NUMWORDS_A" = "512" Info (12134): Parameter "OUTDATA_REG_A" = "UNREGISTERED" Info (12134): Parameter "ADDRESS_ACLR_A" = "NONE" Info (12134): Parameter "OUTDATA_ACLR_A" = "NONE" Info (12134): Parameter "INDATA_ACLR_A" = "NONE" Info (12134): Parameter "WRCONTROL_ACLR_A" = "NONE" Info (12134): Parameter "INIT_FILE" = "mem.mif" И все было было бы хорошо, но в ModelSim вижу следующее: Если задать память через мегафункции и там прописать файл инициализации, то все хорошо, но мне надо научиться через атрибуты. В чем проблемы? Вот все библиотеки: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; use ieee.math_real.all; LIBRARY altera_mf; USE altera_mf.altera_mf_components.all; library altera; use altera.altera_syn_attributes.all;
  5. Я увидел неожиданный глюк в Моделсиме. Это границы, за которые не должен выходить некий реверсивный счетчик: always_comb begin lim[0] <= sum >= PRD_MAX; // верхняя грань lim[1] <= sum <= PRD_MIN; // нижняя грань end lim[1] <= sum <= PRD_MIN; - вот эта строка вызывала логическую ошибку, счетчик останавливался не там где ожидалось. Вот так правильно: always_comb begin lim[0] <= ( sum >= PRD_MAX ); // верхняя грань lim[1] <= ( sum <= PRD_MIN ); // нижняя грань end Лучше такие логические условия заключать в скобки.
  6. Всем добра! Отмоделировав уже много, но, наверное, бездумно (в какой-то части) столкнулся наконец-то с тем, что не понимаю, почему один из проектов моделируется сравнительно долго (да, для меня и 4 минуты долго для сравнительно пустякового проекта). Меня смущают вот эти фемтосекунды: Хотя поиском по всему проекту я не нашёл директив "меньше", чем `timescale 1ns / 100ps Классическая дилогия: кто виноват и что делать? Прошу пнуть в нужном направлении.
  7. Имеется 4 компонента сгенеренных в цикле genvar i ; // Pad out the input data bus with 0's to 8 bits to avoid errors generate for (i = 0 ; i < (CH_NUMBERS) ; i = i + 1) begin : loop_data_chanel input_channel i_channel( .clk_fabric (clock_x1), .clk_fabric_x2 (clock_x2), .clk_input (clock_x12), .serdes_strobe (serdes_strobe), .tmds_p (LVDS_p[i]), .tmds_n (LVDS_n[i]), .data_out (data_out[11+i*12 : i*12]), .frame (frame) ); end endgenerate Пытаюсь в тестбенче "вывести на картинку" сигнал wire every_other = HG_KG.dvi_decoder.i_channel.i_gearbox.every_other; Modelsim требует указать порядковый номер i_channel. Пробовал квадратные скобки - не пропускает. Почитал документацию на Modelsim. Написано что для VHDL нужно кругные скобки. Попробовал - все равно не подходит.
  8. Добрый день. Возник вопрос, как в модельсим передать между модулями упакованную структуру одно поле которой параметризировано? Если пишу так, то он ругается на то что структура не определена (логично): module input_processing #( parameter WORK_WIDTH = 18 )( input logic ireset, input logic iclk, output st_TAG port_tag, ); typedef struct packed{ logic throw; logic R_pack; logic H_pack; logic [$clog2(WORK_WIDTH)-1:0] pad; logic [15:0] slice_len; } st_TAG; ** Error: near "port_tag": syntax error, unexpected IDENTIFIER, expecting ')'. Если так, то говорит, что не определен параметр (тоже логичо): typedef struct packed{ logic throw; logic R_pack; logic H_pack; logic [$clog2(WORK_WIDTH)-1:0] pad; logic [15:0] slice_len; } st_TAG; module input_processing #( parameter WORK_WIDTH = 18 )( input logic ireset, input logic iclk, output st_TAG port_tag, ); ** Error: (vsim-3043) Unresolved reference to 'WORK_WIDTH' in $root.WORK_WIDTH. На самом деле у меня уже возникала похожая проблема, только не со структурой, а с функцией. Возникала ошибка, когда я пытался рассчитать размерность порта с помощью функции определенной в теле модуля. Я нахожу логику в ошибках modelsim, но если он запрещает заходить в тело модуля при объявлении портов, то должна быть возможность определить структуру/функцию в описании портов, чтобы использовать их там. Или нет? Забавно, что Quartus ошибку не выдает (по крайней мере с функциями), то есть там получается другая область видимости. Вы не находите странным такую разницу в подходах Quartus 17 и Modelsim 10.4b? Да я в принципе могу определить выход просто как разрядность и в теле присвоить ему упакованную структуру, но потом при изменении структуры мне разрядность этого выхода придется постоянно менять.
  9. Всем добра! Исполняю в командной строке ModelSim-а ModelSim> if {1} {puts "111"} Получаю, как и ожидал # 111 Исполняю тоже самое в командной строке Active-HDL-а: if {1} {puts "111"} Получаю # Error: missing endif for if in line 1 Причём всякие добавления endif в виде if {1} {puts "111"} endif Дают ту же самую ошибку. ЧЯДНТ?!
  10. Всем добра! Есть dut (простейший D-триггер) и его testbench, которые я хочу смоделировать, скажем, ModelSim-ом. Файлы проекта и скрипты моделирования я разложил так: MainFolder - главная папка, в которой будет лежать вообще всё MainFolder\Project - папка, в которой лежит проект (dut и testbench) MainFolder\Project\General - папка, в которой лежит единственный файл dut - dff.sv MainFolder\Project\TestBench - папка, в которой лежит файл testbench - dff_tb.sv и файл данных data.dat, используемых этим testbench-ем MainFolder\Project\ModelSim\Functional - папка, в которой лежат файлы для моделирования: clear.bat - скрипт очистки каталога от остатков после работы ModelSim-а functional_run.bat - скрипт запуска моделирования ModelSim-а functional.tcl - скрипт конфигурации работы ModelSim-а Итого вопрос: если в dff_tb.sv я читаю из файла data.dat данные таким образом: $readmemb("data.dat", data);, что казалось бы логичным, то ModelSim ругается на то, что не может найти этот data.dat, но если я ставлю путь к нему относительно каталога MainFolder\Project\ModelSim\Functional, т.е. $readmemb("../../Project/TestBench/data.dat", data); то всё проходит без сучка без задоринки. Вопрос: почему?! И что мне надо (если можно) поправить в скрипте functional.tcl, чтобы я мог оставлять в dff_tb.sv вызов $readmemb("data.dat", data)? Проект, как обычно, прилагаю. В нём есть ещё каталог для Active-HDL: на него просьба не обращать внимание )) Заранее спасибо! MainFolder.zip
  11. Всем добра! Всю свою сознательную жизнь сидел на Mentor-e, но пришла пора квалификации инструмента, для чего требуется сравнение результатов оного (ModelSim-a) с альтернативным ПО. Разумным решением представляется Aldec с его Active-HDL. Работая с ModelSim использовал его в основном в пакетном режиме, т.е. по запуску единственного командного файла, инициирующего обработку проекта, на выходе получал готовую временную диаграмму, которую потом успешно копировал в отчёт. Избаловавшись подобным подходом, захотелось применить оный и на новом инструменте, однако столкнулся с непреодолимыми (пока) для меня сложностями. Вопрос в следующем: возможно ли средствами Active-HDL проделать то же, что я проделывал с ModelSim? Есть ли у кого готовый пример этого (довольно подробный поиск в сети ничего, что дало хоть какие-то результаты, не принёс)? Для примера прилагаю свои изыскания, где я попробовал максимально подробно изложить своё видение маршрутов проектирования для упомянутых выше инструментов (для Active-HDL существует два маршрута, но ни на одном из них мне не улыбнулась удача): ЧЯДНТ? CompareDesignRoute.zip
  12. Всем добра! Разбираюсь с чужим проектом на чужом мне языке. При моделировании ModelSim произносит несколько ругательств, суть которых, как (если) я правильно понимаю сводится к тому, что некоторые сигналы в проекте не заданы в testbench-е. Начинаю смотреть по проекту и вижу, что один сигнал интересующего меня модуля отсутствует как класс: нет, он есть в файле (библиотечном, который сам ModelSim сгенерировал из Quartus-овских исходников или как там это правильно называть?), но, вот, в списке сигналов ModelSim-а этот сигнал отсутствует! Почему и куда он делся?! Речь про enable. Картинка, на которой всё:
  13. Добра всем! Поискал в форуме в разных ветках, но сразу не нашёл ответа на такой вопрос: поставлена задача для наших проектов доказать соответствие оных директивам DO-254 и иже с ними. Проекты написаны как на VHDL и Verilog (SV), так и в схематике. Причём ПЛИС Actel и Altera. Вопрос: откуда нам, первый раз столкнувшимся со словами Code Coverage, начать сей нелёгкий и тернистый путь? Всё комментарии, а тем паче, ссылки, книги и прочее, приветствуются. Оптимально Mentor (ModelSim и QuestaSim), но и Aldec пойдёт, если он умеет это лучше.
  14. Всем добра! Столкнулся с такой проблемой: есть dut, например такого вида (dut.sv): module dut ( input logic clk, input logic res, input logic data, input logic ena, output logic q, output logic w ); always_ff @(posedge clk) if (res) q <= 1'b0; else if (ena) q <= data; else q <= q; enum {DUT_IDLE, DUT_START, DUT_PROC, DUT_END} dut_state; always_ff @(posedge clk) if (res) dut_state <= DUT_IDLE; else case (dut_state) DUT_IDLE : dut_state <= ena ? DUT_START : DUT_IDLE; DUT_START : dut_state <= DUT_PROC; DUT_PROC : dut_state <= DUT_END; DUT_END : dut_state <= DUT_END; default : dut_state <= DUT_IDLE; endcase assign w = dut_state == DUT_PROC; endmodule : dut и есть узурпирующий его test bench вида, например, такого (tb.sv): `timescale 1ns/100ps module tb; logic clk; logic res; logic data; logic ena_tb; logic ena; logic q; logic w; dut dut(.*); initial begin clk = 0; forever #10ns clk = !clk; end; initial begin res = 0; #20ns res = 1; #20ns res = 0; end initial begin data = 0; forever #30ns data = !data; end; initial begin ena_tb = 0; #70ns ena_tb = 1; #80ns ena_tb = 0; end enum {TB_IDLE, TB_START, TB_PROC, TB_END} tb_state; always_ff @(posedge clk) if (res) tb_state <= TB_IDLE; else case (tb_state) TB_IDLE : tb_state <= TB_START; TB_START : tb_state <= ena_tb ? TB_PROC : TB_START; TB_PROC : tb_state <= !ena_tb ? TB_END : TB_PROC; TB_END : tb_state <= TB_END; default : tb_state <= TB_IDLE; endcase assign ena = tb_state == TB_PROC; endmodule : tb есть tcl-скрипт (proc_tb.tcl), запускающийся в Mentore (ModesSim или QuestaSim) обрабатывающий упомянутые выше tb и dut вида # create library if [file exists work] { vdel -all } vlib work vlog -O0 +fcover +acc *.sv set top_module tb # set top_module dut set top_module_opt $top_module append top_module_opt "_opt" set coverage_letters_string "sf" # optimize design vopt +cover=$coverage_letters_string $top_module -o $top_module_opt vsim -cvgperinstance -c -coverage work.$top_module_opt # go run 200ns # make coverage report if {$top_module == "tb"} { coverage save $top_module.ucdb -instance /tb/dut coverage exclude -src tb.sv } else { coverage save $top_module.ucdb } coverage report -html $top_module.ucdb -code $coverage_letters_string # config instance window view instance source ColumnConfig_instance.tcl который, несмотря на наличии в нём строк вида coverage save $top_module.ucdb -instance /tb/dut coverage exclude -src tb.sv которые мы выполняем при моделировании с взятием в качестве модуля верхнего уровня test bench-а рисует на главной странице html отчёта картинку вида Картинка хорошая, но нам не нужен сам tb ни в дереве, ни в каких других таблицах! Нужен dut и всё, что ниже! Т.е. картина, которая нужна, получается при замене (в proc_tb.tcl) строки set top_module tb на set top_module dut что даёт Т.е. всё дерево слева и всё, относящееся к нему справа, стало, как доктор прописал, но покрытие теперь в нём стало минимальным! Test bench не сработал? ЧЯДНТ? Просьба ткнуть носом ) Как обычно, прикладываю проект. test_coverage_el.zip
  15. Всем добра! Пытаюсь промоделировать результаты компиляции модуля dut.sv quartus-a Modelsim-ом. В папке с результатами симуляции, среди прочих, имею файлы dut_v.sdo, dut_v_fast.sdo, dut.vo и dut_fast.vo В скрипте, который запускается при моделировании, вызываются, среди прочих, следующие команды vlog dut.vo vsim -sdfmin /dut=dut_v.sdo Но, вместо dut.vo я могу подставить dut_fast.vo, а вместо -sdfmin - -sdfmax и -sdftyp, и вместо dut_v.sdo - dut_fast.vo! Помогите, плиз, разобраться в этой путанице! Или кто носом ткнёт: что и где почитать. FM не помогло: я оттуда ничего толкового не вынес.
  16. Доброго всем! Использую // megafunction wizard: %RAM: 2-PORT% // GENERATION: STANDARD // VERSION: WM1.0 // MODULE: altsyncram // ============================================================ // File Name: ram.v // Megafunction Name(s): // altsyncram // // Simulation Library Files(s): // altera_mf с одним из параметров defparam altsyncram_component.read_during_write_mode_mixed_ports = "DONT_CARE" а также в комментариях // ============================================================ // CNX file retrieval info // ============================================================ // Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_MIXED_PORTS NUMERIC "2" // Retrieval info: CONSTANT: READ_DURING_WRITE_MODE_MIXED_PORTS STRING "DONT_CARE" При моделировании Modelsim говорит: # Warning: read_during_write_mode_mixed_ports is assumed as OLD_DATA # Time: 0.00 ns Instance: top_tb.top_inst.ram_inst.altsyncram_component Меняю мегафункцию defparam altsyncram_component.read_during_write_mode_mixed_ports = "OLD_DATA" а также в комментариях // ============================================================ // CNX file retrieval info // ============================================================ // Retrieval info: PRIVATE: READ_DURING_WRITE_MODE_MIXED_PORTS NUMERIC "1" // Retrieval info: CONSTANT: READ_DURING_WRITE_MODE_MIXED_PORTS STRING "OLD_DATA" Modelsim уже предупреждения не выдаёт. В первом случае, он мне говорит, что раз мне всё равно, он будет мне при чтении во время записи по одному и тому же адресу выдавать старые данные, как и во втором, в котором я сам так захотел, и мне об этом сообщать не следует? Просьба подтвердить или опроврегнуть оное умозаключение )
  17. Доброго всем! Работаю с Cyclone II (его русским аналогом), моделирую в Modelsim-e 10.1d (из Quartus-a 13.0sp1). Хочется взять Modelsim посвежее, тем более, что на сайте есть слова: Device support All Intel® FPGA devices (Including Intel® MAX® CPLDs, Intel® Arria®, Intel® Cyclone®, and Intel® Stratix® series Intel® FPGAs) Так вот вопрос: тварь ли я дрожащая или право имею?
  18. Приветствую уважаемые посетители форума. Решил изучить verilog(SystemVerilog) на уровне большем чем "читаю и плачу". Написал простенький проектик, запустил проверку синтаксиса в modelsim. И с ужасом обнаружил у себя ошибку. И ужаснулся я не от того, что у меня ошибка ( в конце концов я не волшебник, а только учусь). А ужаснулся я от того, что у меня один сигнал имел несколько драйверов, и modelsim даже не пискнул об этом, гад такой. В vhdl можно было применить unresolved тип, и горя не знать. Хотя в последнее время, применение любого типа, отличного от std_logic_vector - это потенциальные проблемы, т.к почти все, сгенерированное vivado, понимает только этот гадский тип, посему всю красоту строгой типизации в vhdl можно даже и не пытаться применять, т.к написание " прокладок" занимает неадекватно много времени... Так, вот если по теме: как такие ошибки(несколько драйверов у сигнала) обнаружить в verilog, ну или на худой конец как заставить modelsim истошно вопить об этом ? P.S. За орфографию сильно не ругайте, тыкаю одним пальцем в телефон, трясясь в автобусе...
  19. Потратил несколько часов в попытках установить Modelsim 10.2c SE в современном 64-битном Linux (multilib). Прилагаю решение на случай, если кто-то захочет поставить относительно старую версию Modelsim SE. При запуске install.linux, установщик, написанный на Java падает с такой ошибкой: # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0xf7eee475, pid=13257, tid=4144433984 # # JRE version: 6.0_21-b06 # Java VM: Java HotSpot(TM) Server VM (17.0-b16 mixed mode linux-x86 ) # Problematic frame: # C [libpthread.so.0+0xd475] pthread_cond_wait+0x95 # # If you would like to submit a bug report, please visit: # http://java.sun.com/webapps/bugreport/crash.jsp # Установщик идет со своей JRE, причем сами jar-ы на 7.x/8.x-версиях JRE уже не запускаются. Пляски с бубном (исследование пожеланий JRE с помощью ldd и strace, подсовывание старых версий библиотек через LD_PRELOAD) быстрого результата не принесли, в интернетах сведений о такой ошибки также не нашлось. В итоге было найдено следующее решение: заменяем 32-битную JRE, идущую в комплекте установщика, на 64-битную версию. 1. Ищем и скачиваем jre-6u45-linux-x64.bin. 2. Распаковываем: chmod +x jre-6u45-linux-x64.bin ./jre-6u45-linux-x64.bin 3. Копируем содержимое только что распакованной папки jre1.6.0_45 в папку ~/mgc/install.ixl/JRE (ее нам создал install.linux). 4. Запускаем установщик вручную: ~/mgc/install.ixl/mgc_install 5. Подсказываем установщику путь к modelsim-base.mis и другим .mis-файлам. Остальные телодвижения со старыми версиями 32-битных библиотек для запуска самого vsim остаются в силе.
  20. Есть простой record с 32-битными данными (float32) и стробом: type FL32_T is record fl32 : std_logic_vector(31 downto 0); -- single precision valid : std_logic; -- valid, strobe, enable, etc... end record; Когда отображаем это в waveform, отдельно сигнал данных fl32 можно отобразить в формате float32, а вот в группе рисуется просто как hex: Может можно как-то отображать значения float32 и в группе сигналов? По идее что-то похожее можно делать используя virtual types, но там получается только один сигнал сделать виртульаным (а не 2 или больше), да и так можно только какой-то заранее известный фискированный поднабор float32 "переиминовать". Может есть какой-то универсальный способ решения такой проблемы?
×
×
  • Создать...