разделят с N (5,7 ...) брояч

L

logic_gate

Guest
Привет,

моля някой да ми даде някаква идея за разделение от N (ODD: 5,7,9,11) брояч.Трябва да използвате дизайн Verilog.

благодарности

 
Ако търсите общ разтвор след това Checkout
8254 чип документация.Ако имате нужда от конкретни решения
тогава гледам на двукомпонентни дизайн брояч.напр.Ако имате нужда от разделят по 5
дизайн брояч, който да се брои от 0 до 4 в bianary, обикновено
MSB на втория или MSB на bianary брояч ще трябва да имате
изисква разделен CLK продукция.
Надявам се това да помогне!

 
Примерни раздели с 5 кръг
Съжалявам, но трябва вход, за да видите този прикачен файл

 
Тук е родово разделен часовник, генерирани модул!
Това ще доведе до 50% Nere часовник за стойността на нечетен делител
като в 8254.
Надявам се това да помогне!
Код:

модул делител (

/ / Извежда

output_clk,

/ / Изходи

CLK, reset_n, разделение

);

въвеждане на CLK, reset_n;

output_clk продукция;

вход [7:0] пропаст;

обл output_clk;

обл [7:0] брояч;

тел LD = (разделение [0])? ((output_clk)? (брояч == 1): (брояч == 0))

: (Брояч == 1);

Винаги @ (posedge CLK или reset_n negedge) започва

ако (! reset_n) започва

брояч <= 0;

output_clk <= 1'b0;

края иначе започва

ако (LD) започва

output_clk <= ~ output_clk;

брояч <= (1'b0, разделение [7:1]);

края друго

брояч <= брояч - 1;

приключвам

приключвам

endmodule / / делителмодул Test ();

обл CLK;

обл [7:0] пропаст;

обл reset_n;тел output_clk;

делител делител (

/ / Извежда

. output_clk (output_clk),

/ / Изходи

. CLK (CLK),

. reset_n (reset_n),

. разделят (разделение [7:0]));

първоначално започва

$ dumpfile ( "wave.vcd");

$ dumpvars ();

CLK = 0; reset_n = 0; разделят = 5;

# 33 reset_n = 1;

# 500 разделение = 10

# 500 разделение = 9;

# 500 разделение = 11;

# 500 разделение = 4;

# 500 $ покритие;

приключвам

Винаги # 5 CLK = ~ CLK;

endmodule / / изпитване
 

Welcome to EDABoard.com

Sponsor

Back
Top