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

clock LED (verilog)

Как в (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

Но так не работает.

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(demsp @ Mar 17 2018, 22:25) <{POST_SNAPBACK}>
Но так не работает.

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

Короче вопрос сам по себе не понятен...

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


Ссылка на сообщение
Поделиться на другие сайты
Выходы регистра я назначаю в PinPlanner'e (Quartus). А как назначить выход CLK?

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(demsp @ Mar 17 2018, 22:49) <{POST_SNAPBACK}>
Выходы регистра я назначаю в PinPlanner'e (Quartus). А как назначить выход CLK?


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

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

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

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


Ссылка на сообщение
Поделиться на другие сайты
А есть разница, использую я внешний clock (timer 555) или внутренний?

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

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(demsp @ Mar 17 2018, 23:16) <{POST_SNAPBACK}>
А есть разница, использую я внешний clock (timer 555) или внутренний?

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

А зачем ?
Как уже сказали, Вы увидите тускло горящий светодиод. Какая в этом практическая польза ?

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(demsp @ Mar 17 2018, 23:13) <{POST_SNAPBACK}>
А есть разница, использую я внешний clock (timer 555) или внутренний?

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

А самое главное. Это "сдать и забыть" или "профессионально научиться"???

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(iosifk @ Mar 17 2018, 23:19) <{POST_SNAPBACK}>
почему именно нестабильный "timer 555"

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

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

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


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

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

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

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

endmodule

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

Удачи! Rob.

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


Ссылка на сообщение
Поделиться на другие сайты
Чтобы использовать клоки, только как клоки:
Код
reg [1:0] clkreg;
assign clkout=^clkreg;
always@(posedge сlk) clkreg[1] <= ~clkreg[0];
always@(negedge clk) clkreg[0] <= clkreg[1];
Изменено пользователем Leka

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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Leka @ Mar 18 2018, 02:00) <{POST_SNAPBACK}>
assign clkout=^clkreg;

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


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


Ссылка на сообщение
Поделиться на другие сайты
Цитата(demsp @ Mar 17 2018, 22:25) <{POST_SNAPBACK}>
Но так не работает.
Что значит "не работает"? Давайте, как сказал Иосиф Григорьевич, вы смоделируете, покажете нам скриншот RTL-модели и ещё раз спросите (если к тому времени не найдёте ответ).

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


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

Так понимаю что вопрос из этой же темы.

 

<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 выходная частота на глобальной цепи, ей тактируются блоки внутри, но так же её надо вывести за пределы ПЛИС чере простой пин

 

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

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


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

Приветствую!

 

... что надо исплоьзовать что бы снять сигнал с глобальной цепи и вывести его на простой пин.
Проще всего и правильней использовать 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.

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти