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

Не моделируется PLL в ModelSim

Здравствуйте, форумчане!

При попытке просимулировать PLL, сгенеренную IP core ALTPLL, натыкаюсь на проблему: нет выходной частоты PLL. 

Использую Quartus Prime Version 17.1.0 Lite Edition + ModelSim starter edition 10.5b. 

Создал тестовый проект с одной PLL для проверки симуляции. ModelSim запускается из Quartus'а. Ошибок при симуляции нет, библиотеки вроде все подхватываются. 

Код проекта:

module pllsim(
input inclk,
input reset,
output clk25
);

pll0 inst1(
    .inclk0(inclk),
    .areset(reset),
    .c0(clk25)
);

endmodule

 

код тестбенча:

`timescale 1 ps/ 1 ps
module pllsim_tb;

reg inclk;
reg reset;
wire clk25;

pllsim DUT (inclk, reset, clk25);

always #10000 inclk = ~inclk;

initial
begin
    inclk = 0;
    reset = 1;
#500000 
    reset = 0;

end

endmodule
 

Результат симуляции:

image.thumb.png.07c461cf79709c247a4292173207f319.png

 

Сообщения ModelSim:

# Reading P:/__work__/ModelSim_10.5b/modelsim_ase/tcl/vsim/pref.tcl
# do pllsim_run_msim_rtl_verilog.do
# if {[file exists rtl_work]} {
#     vdel -lib rtl_work -all
# }
# vlib rtl_work
# vmap work rtl_work
# Model Technology ModelSim - Intel FPGA Edition vmap 10.5b Lib Mapping Utility 2016.10 Oct  5 2016
# vmap work rtl_work 
# Copying P:/__work__/ModelSim_10.5b/modelsim_ase/win32aloem/../modelsim.ini to modelsim.ini
# Modifying modelsim.ini

# vlog -vlog01compat -work work +incdir+D:/!!QuartusProject/__TESTs/test_pll {D:/!!QuartusProject/__TESTs/test_pll/pllsim.v}
# Model Technology ModelSim - Intel FPGA Edition vlog 10.5b Compiler 2016.10 Oct  5 2016
# Start time: 11:52:04 on Jul 19,2024
# vlog -reportprogress 300 -vlog01compat -work work "+incdir+D:/!!QuartusProject/__TESTs/test_pll" D:/!!QuartusProject/__TESTs/test_pll/pllsim.v 
# -- Compiling module pllsim

# Top level modules:
#     pllsim
# End time: 11:52:04 on Jul 19,2024, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# vlog -vlog01compat -work work +incdir+D:/!!QuartusProject/__TESTs/test_pll {D:/!!QuartusProject/__TESTs/test_pll/pll0.v}
# Model Technology ModelSim - Intel FPGA Edition vlog 10.5b Compiler 2016.10 Oct  5 2016
# Start time: 11:52:04 on Jul 19,2024
# vlog -reportprogress 300 -vlog01compat -work work "+incdir+D:/!!QuartusProject/__TESTs/test_pll" D:/!!QuartusProject/__TESTs/test_pll/pll0.v 
# -- Compiling module pll0

# Top level modules:
#     pll0
# End time: 11:52:04 on Jul 19,2024, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0
# vlog -vlog01compat -work work +incdir+D:/!!QuartusProject/__TESTs/test_pll/db {D:/!!QuartusProject/__TESTs/test_pll/db/pll0_altpll.v}
# Model Technology ModelSim - Intel FPGA Edition vlog 10.5b Compiler 2016.10 Oct  5 2016
# Start time: 11:52:04 on Jul 19,2024
# vlog -reportprogress 300 -vlog01compat -work work "+incdir+D:/!!QuartusProject/__TESTs/test_pll/db" D:/!!QuartusProject/__TESTs/test_pll/db/pll0_altpll.v 
# -- Compiling module pll0_altpll

# Top level modules:
#     pll0_altpll
# End time: 11:52:04 on Jul 19,2024, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0

# vlog -vlog01compat -work work +incdir+D:/!!QuartusProject/__TESTs/test_pll/simulation/modelsim {D:/!!QuartusProject/__TESTs/test_pll/simulation/modelsim/pllsim_tb.v}
# Model Technology ModelSim - Intel FPGA Edition vlog 10.5b Compiler 2016.10 Oct  5 2016
# Start time: 11:52:04 on Jul 19,2024
# vlog -reportprogress 300 -vlog01compat -work work "+incdir+D:/!!QuartusProject/__TESTs/test_pll/simulation/modelsim" D:/!!QuartusProject/__TESTs/test_pll/simulation/modelsim/pllsim_tb.v 
# -- Compiling module pllsim_tb

# Top level modules:
#     pllsim_tb
# End time: 11:52:05 on Jul 19,2024, Elapsed time: 0:00:01
# Errors: 0, Warnings: 0

# vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cyclone10lp_ver -L rtl_work -L work -voptargs="+acc"  pllsim_tb
# vsim -t 1ps -L altera_ver -L lpm_ver -L sgate_ver -L altera_mf_ver -L altera_lnsim_ver -L cyclone10lp_ver -L rtl_work -L work -voptargs=""+acc"" pllsim_tb 
# Start time: 11:52:05 on Jul 19,2024
# Loading work.pllsim_tb
# Loading work.pllsim
# Loading work.pll0
# Loading altera_mf_ver.altpll
# Loading altera_mf_ver.ALTERA_DEVICE_FAMILIES
# Loading altera_mf_ver.pll_iobuf

# add wave *
# view structure
# .main_pane.structure.interior.cs.body.struct
# view signals
# .main_pane.objects.interior.cs.body.tree
# run -all

 

Кто сталкивался и решил подобную проблему? На форуме похожие темы почитал, но решения не нашел..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, хотя и настроек как таковых нет. Входная частота указана 50 МГц, выходная 25. Сброс - активная 1. Все остальные параметры по умолчанию от IP core.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 Хилых генерирует свой скрипт симуляции для ядра... Altera так же? Есть вариант запустить сгенерированный скрипт?

2 С выхода ядра должны быть еще какие-то сигналы (готовности и т.п.). Их смотрели?

3 Библиотека выбранного семейства ПЛИС загружается?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

59 минут назад, eugen_pcad_ru сказал:

1 Хилых генерирует свой скрипт симуляции для ядра... Altera так же? Есть вариант запустить сгенерированный скрипт?

2 С выхода ядра должны быть еще какие-то сигналы (готовности и т.п.). Их смотрели?

3 Библиотека выбранного семейства ПЛИС загружается?

1) На этот вопрос не могу ответить, т.к. ни разу с этим не сталкивался.

2) Явно они мною выведены не были, но в симуляции внутренний сигнал locked равен 0, что значит выходная частота не зафиксирована.

3) Загружаются общие библиотеки Альтеры: altera_mf_ver.ALTERA_DEVICE_FAMILIES, altera_mf_ver.altpll, в которых нужное семейство (Cyclone 10 LP) присутствует.

37 минут назад, sazh сказал:

 timescale  ему не нравиться.

1ns/ps

timescale указан 1 ps/ 1 ps

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 минуты назад, sazh сказал:

Вот и не нравиться.

Заменил на 1ns / ps. Не помогло..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ставите 1ns/1ps.

50МГц это 20нс.

Задаете клок.

initial begin: clock generator

clk = 1'b0;

forever #(10.0) clk = инверсия   clk;

end

initial begin

reset = 1'b1; repeat (10) @(posedge clk);

reset = 1'b0; repeat (100) @(posedge clk);

#5 $display ("End");

$stop;

end

Как то так. #5  Это уже в наносекундах

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 минут назад, sazh сказал:

Ставите 1ns/1ps.

50МГц это 20нс.

Задаете клок.

initial begin: clock generator

clk = 1'b0;

forever #(10.0) clk = инверсия   clk;

end

initial begin

reset = 1'b1; repeat (10) @(posedge clk);

reset = 1'b0; repeat (100) @(posedge clk);

#5 $display ("End");

$stop;

end

Как то так. #5  Это уже в наносекундах

Я в первом сообщении выкладывал тестбенч. Там есть описание сигналов входной частоты и сброса. С ними как раз всё хорошо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так по идее, запускаясь из квартуса проблем быть не должно.

Иссяк.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 19.07.2024 в 19:09, slkhome сказал:

Сброс точно 0м?

 

Сброс 1. В любом случае пробовал уже и так и так. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...