Jump to content
    

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

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

Share this post


Link to post
Share on other sites

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

Первый пример.

Взят обычный регистр, причем 4 бита.

Второй пример.

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

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

 

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

 

Share this post


Link to post
Share on other sites

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

 

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

 

Домик из веток.

Домик из чего-то еще

Домик из камней...

 

А Вам какой нужен?

Если Вы еще не прошли уровень RTL, то зачем Вам назначать выводы?

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

Share this post


Link to post
Share on other sites

А есть разница, использую я внешний clock (timer 555) или внутренний?

 

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

Share this post


Link to post
Share on other sites

А есть разница, использую я внешний clock (timer 555) или внутренний?

 

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

А зачем ?

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

Share this post


Link to post
Share on other sites

А есть разница, использую я внешний clock (timer 555) или внутренний?

Что такое "внутренний"? Откуда берется, если внутри ПЛИС обычно нет генераторов?

И что Вы понимаете под "внешний" и почему именно нестабильный "timer 555", а не кварц?

Про "синхронное проектирование" что-то читали?

 

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

 

Share this post


Link to post
Share on other sites

почему именно нестабильный "timer 555"

Потому что у меня нестабильный "timer 555"

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

Ценю вашу заботу :biggrin:

Ну правда, помогите разобраться.

Как clock от внешнего таймера с невысокой частотой повесить на LED?

Share this post


Link to post
Share on other sites

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

 

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

 

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

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

endmodule

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

 

Удачи! Rob.

Share this post


Link to post
Share on other sites

Чтобы использовать клоки, только как клоки:

reg [1:0] clkreg;
assign clkout=^clkreg;
always@(posedge сlk) clkreg[1] <= ~clkreg[0];
always@(negedge clk) clkreg[0] <= clkreg[1];

Edited by Leka

Share this post


Link to post
Share on other sites

Но так не работает.
Что значит "не работает"? Давайте, как сказал Иосиф Григорьевич, вы смоделируете, покажете нам скриншот RTL-модели и ещё раз спросите (если к тому времени не найдёте ответ).

 

Share this post


Link to post
Share on other sites

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...