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

 
 
 
Reply to this topicStart new topic
> Не моделируется ALTPLL в Modelsim, Проект в QuartusII/ Verilog
Yuva
сообщение Dec 5 2013, 12:32
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 21-09-11
Пользователь №: 67 310



Все привет!
Может кто сталкивался с такой проблемой. Прошу поделиться ее решением.
В Modelsim все входные сигналы PLL отображаются (зеленые), все выходные - красные, xxx. Что делать?

Сообщение отредактировал Yuva - Dec 5 2013, 12:34
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Dec 5 2013, 13:32
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(Yuva @ Dec 5 2013, 16:32) *
Все привет!
Может кто сталкивался с такой проблемой. Прошу поделиться ее решением.
В Modelsim все входные сигналы PLL отображаются (зеленые), все выходные - красные, xxx. Что делать?

Может входные сигналы неправильно подаете, например все под сбросом. Или не дождались, там частота на выходе через определенное время появляется (время прописано в документации), частота появляется после поднятия сигнала locked - он у Вас в каком состоянии?
Моделирование на функциональном уровне?
Go to the top of the page
 
+Quote Post
Александр77
сообщение Dec 5 2013, 14:46
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 608
Регистрация: 10-07-09
Из: Дубна, Московская область
Пользователь №: 51 111



Цитата(Yuva @ Dec 5 2013, 15:32) *
В Modelsim все входные сигналы PLL отображаются (зеленые), все выходные - красные, xxx. Что делать?

Без кода Вашего тестбенча, нам можно только гадать.
Например не описана карта портов port map(); со всеми вытекающими
Go to the top of the page
 
+Quote Post
Yuva
сообщение Dec 6 2013, 06:05
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 21-09-11
Пользователь №: 67 310



`timescale 1 us/ 1 us
module test_chmod_vlg_tst();

reg inclk;
//////////////////////
wire out;
//////////////////////////////////
test_chmod i1
(
.inclk(inclk),
.out(out)
);
initial
begin
inclk = 0;
$display("Running testbench");
end

always
begin
#25 inclk = !inclk;
end
endmodule

Симулирую частоту 50 MHz. На выходе пытаюсь получить две частоты: 6,144 МHz и 3,072 MHz. Использую EDA RTL simulation.
Когда в timescale меняю наносекунды на пикосекунды, ФАПЧ через несколько периодов частоты начинает работать.
Насчет документации, Спасибо!

Цитата(bogaev_roman @ Dec 5 2013, 17:32) *
частота появляется после поднятия сигнала locked - он у Вас в каком состоянии?

Сброса нет. В ФАПЧ только 1 входной сигнал - такт и 2 выходных - тоже такты

Не. что то все равно не так. Уже 50000 мкс промоделировано, а ФАПЧ так и не запустился
Go to the top of the page
 
+Quote Post
Yuva
сообщение Dec 6 2013, 07:31
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 21-09-11
Пользователь №: 67 310



Попытался сделать выходные частоты 5 и 10 МГц (думал, что проблема в большем коэффициенте умножения), такая же песня - не запускается PLL

Сообщение отредактировал Yuva - Dec 6 2013, 07:32
Go to the top of the page
 
+Quote Post
Full41
сообщение Dec 6 2013, 07:55
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 309
Регистрация: 31-03-08
Из: САНКТ-ПЕТЕРБУРГ
Пользователь №: 36 375



Цитата(Yuva @ Dec 6 2013, 10:05) *
`timescale 1 us/ 1 us
module test_chmod_vlg_tst();

reg inclk;
//////////////////////
wire out;
//////////////////////////////////
test_chmod i1
(
.inclk(inclk),
.out(out)
);
initial
begin
inclk = 0;
$display("Running testbench");
end

always
begin
#25 inclk = !inclk;
end
endmodule

Симулирую частоту 50 MHz. На выходе пытаюсь получить две частоты: 6,144 МHz и 3,072 MHz. Использую EDA RTL simulation.
Когда в timescale меняю наносекунды на пикосекунды, ФАПЧ через несколько периодов частоты начинает работать.
Насчет документации, Спасибо!


Сброса нет. В ФАПЧ только 1 входной сигнал - такт и 2 выходных - тоже такты

Не. что то все равно не так. Уже 50000 мкс промоделировано, а ФАПЧ так и не запустился


Попробуйте заменить `timescale 1 us/ 1 us на `timescale 1 ns/ 1 ps
Go to the top of the page
 
+Quote Post
Yuva
сообщение Dec 6 2013, 08:19
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 21-09-11
Пользователь №: 67 310



Цитата(Full41 @ Dec 6 2013, 11:55) *
Попробуйте заменить `timescale 1 us/ 1 us на `timescale 1 ns/ 1 ps

ФАПЧ запустился. Только это же не 50 Мгц получается, а 50 ГГЦ. Почему он вообще запустился, когда настроен на 50 МГц?

Сообщение отредактировал Yuva - Dec 6 2013, 08:20
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Dec 6 2013, 11:25
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(Yuva @ Dec 6 2013, 12:19) *
ФАПЧ запустился. Только это же не 50 Мгц получается, а 50 ГГЦ. Почему он вообще запустился, когда настроен на 50 МГц?

`timescale 1ns / 1ps - параметры, Вы их похоже неправильно понимаете. 1ns - основная величина, 1ps - точность. Таким образом, запись
Код
always @(*) #(5+0.001) refclk<=~refclk;

Говорит о тактовой частоте с периодом (10+0,002)нс, максимальная точность здесь 0.001, т.е. одна пикосекунда и меньше быть не может.
А что касается ФАПЧ, что в настройка может стоять одна величина, а реально будет другая, так это у Вас просто функциональное моделирование. Т.е. если подается на вход 100МГц, а на выходе должно быть 50МГц, то при изменении входа на 200 на выходе будет не 50, а 100. Т.е. банальное деление на 2 вне зависимости от настроек. Если хотите хотя бы приблизительно узнать, что творится внутри PLL, то используйте гейт-моделирование (хотя полностью посмотреть внутренности у Вас все равно не получится - там будут абстрактные модели, хотя и приближенные к реальности).
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 00:28
Рейтинг@Mail.ru


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