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

 
 
 
Reply to this topicStart new topic
Kokos
сообщение Dec 10 2012, 12:38
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 5-11-10
Из: Санкт-Петербург
Пользователь №: 60 667



Пытался смоделировать умножитель частоты но не получается.
Не понимаю почему на выходе при моделировании всегда 0? Кто-нибудь сталкивался с таким? как можно решить?

CODE
`timescale 1 ps / 1 ps
module after_definder (

input wire clk

);

wire out_pll;
wire loc;

pll_1 pll_x8(
.inclk0(clk),
.areset(1'b1),
.c0(out_pll),
.locked(loc)
);

endmodule
//testbentch
`timescale 1 ps / 1 ps

module after_definder_tb;

reg clk;

after_definder model(.clk(clk));

initial
begin
clk=0;
end

always
begin
#5000 clk=~clk;
end

endmodule
Go to the top of the page
 
+Quote Post
novchok
сообщение Dec 10 2012, 12:43
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 128
Регистрация: 19-08-10
Из: Смоленск
Пользователь №: 58 991



Некоторые требуют в начале сразу после сброса то ли сам сброс удерживать, то ли подать несколь тактов частоты в течение некоторого времени. Почитайте доки на PLL, там это описано.


--------------------
Herz укроп и педрила
Go to the top of the page
 
+Quote Post
arexol
сообщение Dec 10 2012, 12:43
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 317
Регистрация: 25-09-06
Пользователь №: 20 651



Цитата(Kokos @ Dec 10 2012, 15:38) *
Пытался смоделировать умножитель частоты но не получается.
Не понимаю почему на выходе при моделировании всегда 0? Кто-нибудь сталкивался с таким? как можно решить?

CODE
`timescale 1 ps / 1 ps
module after_definder (

input wire clk

);

wire out_pll;
wire loc;

pll_1 pll_x8(
.inclk0(clk),
.areset(1'b1),
.c0(out_pll),
.locked(loc)
);

endmodule
//testbentch
`timescale 1 ps / 1 ps

module after_definder_tb;

reg clk;

after_definder model(.clk(clk));

initial
begin
clk=0;
end

always
begin
#5000 clk=~clk;
end

endmodule



Попробуйте ресетом подергать чтобы был и передний и задний фронт
Go to the top of the page
 
+Quote Post
Kokos
сообщение Dec 10 2012, 12:57
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 5-11-10
Из: Санкт-Петербург
Пользователь №: 60 667



попробовал ресетом поиграть, но все равно так же.
когда резет=1 на выходе постоянно 0
когда резет=0 на выходе постоянно х

Go to the top of the page
 
+Quote Post
yaghtn
сообщение Dec 11 2012, 06:09
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 52
Регистрация: 7-11-05
Из: Чебоксары
Пользователь №: 10 546



Kokos, какое время симуляции, не слишком ли мало?
Лично мне как-то удобнее время симуляции задавать в самом тестбенче, конструкцией initial #(stoptime) $stop

В примере http://www.altera.com/support/examples/mod...simulation.html генерация начинается с 200ns.

Можно глянуть исходники, чтобы понять, как оно примерно написано и чего оно хочет.
К примеру c:\Altera\91sp2\modelsim_ase\altera\verilog\src\stratix_atoms.v :
Module Name : stratix_pll
Description : Timing simulation model for the Stratix StratixGX PLL.
In the functional mode, it is also the model for the altpll megafunction.
Go to the top of the page
 
+Quote Post
Kokos
сообщение Dec 11 2012, 07:43
Сообщение #6


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 5-11-10
Из: Санкт-Петербург
Пользователь №: 60 667



Посмотрел пример, попытался поставить все существующие у меня сигналы таким же образом, но не получилось. После чего, сгенерировал новый pll модуль с тем же именем, но уже в 9-м Квартусе (32р), до этого был в 11-м (64р). Добавил вход pllena и установил в единицу. Сигналы оставил теми же. Но из компиляции убрал файлы _syn.v и _bb.v и после чего заработало.
Go to the top of the page
 
+Quote Post

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

 


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


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