Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: clock LED (verilog)
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Языки проектирования на ПЛИС (FPGA)
demsp
Как в (4-bit'ном) регистре
Код
module reg4 (CLK, D, Q);
input CLK;
input  [3:0]  D;
output [3:0]  Q;
reg [3:0] Q;
always @(posedge CLK)
Q = D;
endmodule

повесить светодиод на clock (CLK)?
Вроде надо так
Код
module d_trig_verilog (CLK, D, Q);
input CLK;
input  [3:0]  D;
output [3:0]  Q;
output led_clk; // объявляем LED
reg [3:0] Q;
always @(posedge CLK)
Q = D;
assign led_clk = CLK; //назначаем LED как CLK
endmodule

Но так не работает.
iosifk
Цитата(demsp @ Mar 17 2018, 22:25) *
Но так не работает.

Первый пример.
Взят обычный регистр, причем 4 бита.
Второй пример.
Тот же регистр, но он почему-то не используется... А почему? Зачем для светодиода Вам хочется 4 бита?
И какова частота клока? Если высокая, то глаз ее будет воспринимать как слабое свечение...

Короче вопрос сам по себе не понятен...
demsp
Выходы регистра я назначаю в PinPlanner'e (Quartus). А как назначить выход CLK?
iosifk
Цитата(demsp @ Mar 17 2018, 22:49) *
Выходы регистра я назначаю в PinPlanner'e (Quartus). А как назначить выход CLK?


Сейчас попытаюсь вспомнить.

Домик из веток.
Домик из чего-то еще
Домик из камней...

А Вам какой нужен?
Если Вы еще не прошли уровень RTL, то зачем Вам назначать выводы?
Научитесь формулировать задачу, потом симулировать и отлаживать RTL... И только потом, когда пройдете эти "уровни", то и займетесь " как назначить выход"....
demsp
А есть разница, использую я внешний clock (timer 555) или внутренний?

Я же могу повесить LED'ы на разряды регистра. А как повесить LED на clock?
Flip-fl0p
Цитата(demsp @ Mar 17 2018, 23:16) *
А есть разница, использую я внешний clock (timer 555) или внутренний?

Я же могу повесить LED'ы на разряды регистра. А как повесить LED на clock?

А зачем ?
Как уже сказали, Вы увидите тускло горящий светодиод. Какая в этом практическая польза ?
iosifk
Цитата(demsp @ Mar 17 2018, 23:13) *
А есть разница, использую я внешний clock (timer 555) или внутренний?

Что такое "внутренний"? Откуда берется, если внутри ПЛИС обычно нет генераторов?
И что Вы понимаете под "внешний" и почему именно нестабильный "timer 555", а не кварц?
Про "синхронное проектирование" что-то читали?

А самое главное. Это "сдать и забыть" или "профессионально научиться"???
demsp
Цитата(iosifk @ Mar 17 2018, 23:19) *
почему именно нестабильный "timer 555"

Потому что у меня нестабильный "timer 555"
Цитата(iosifk @ Mar 17 2018, 23:19) *
А самое главное. Это "сдать и забыть" или "профессионально научиться"???

Ценю вашу заботу biggrin.gif
Ну правда, помогите разобраться.
Как clock от внешнего таймера с невысокой частотой повесить на LED?
RobFPGA
Приветствую!

Как тяжко все начинать с нуля (особенно методом ненаучного тыка).

Код
module top_test_led (
    input  wire CLK,
    output wire led_clk // объявляем LED
);

assign led_clk = CLK; //назначаем LED как CLK

endmodule

Увидите отличия от Вашего кода?

Удачи! Rob.
Leka
Чтобы использовать клоки, только как клоки:
Код
reg [1:0] clkreg;
assign clkout=^clkreg;
always@(posedge сlk) clkreg[1] <= ~clkreg[0];
always@(negedge clk) clkreg[0] <= clkreg[1];
demsp
Цитата(Leka @ Mar 18 2018, 02:00) *
assign clkout=^clkreg;

Поясните, пожалуйста, это означает clkout = XOR clkreg ?


AnatolySh
Цитата(demsp @ Mar 17 2018, 22:25) *
Но так не работает.
Что значит "не работает"? Давайте, как сказал Иосиф Григорьевич, вы смоделируете, покажете нам скриншот RTL-модели и ещё раз спросите (если к тому времени не найдёте ответ).
nbIBO
Так понимаю что вопрос из этой же темы.

<UCLK/clkout1_buf>, driving the net, <clk>, that is driving the following
(first 30) non-clock load pins.
< PIN: f_fifo0_clk.O; >
< PIN: f_fifo1_clk.O; >
This is not a recommended design practice in Spartan-6 due to limitations in
the global routing that may cause excessive delay, skew or unroutable
situations. It is recommended to only use a BUFG resource to drive clock
loads. If you wish to override this recommendation, you may use the
CLOCK_DEDICATED_ROUTE constraint (given below) in the .ucf file to demote
this message to a WARNING and allow your design to continue.
< PIN "UCLK/clkout1_buf.O" CLOCK_DEDICATED_ROUTE = FALSE; >

UCLK - clocking wizard xilinx

clk <= clkout1 выходная частота на глобальной цепи, ей тактируются блоки внутри, но так же её надо вывести за пределы ПЛИС чере простой пин

что надо исплоьзовать что бы снять сигнал с глобальной цепи и вывести его на простой пин.
RobFPGA
Приветствую!

Цитата(nbIBO @ Aug 9 2018, 17:38) *
... что надо исплоьзовать что бы снять сигнал с глобальной цепи и вывести его на простой пин.
Проще всего и правильней использовать ODDR2 для этого
Код
ODDR2 (
  .C0( clk),
  .C1(~clk),
  .D0(1'b1),
  .D1(1'b0),
  .CE(1'b1),
  .R(1'b0),
  .S(1'b0),
  .Q(net_to_out_pin)
);
В этом случае и волки сыты - clk используется как клок - и овцы довольны - клок на выходе имеет туже частоту что clk а также такую же задержку что и обычные выходы от триггеров.

Удачи! Rob.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.