dělit N počítadlo

A

A2k

Guest
Ahoj,

Im hledají trochu pomoci / rad!

Im Projektování pult pro zařízení a já používám flip obvody, aby tak učinily.Im
pomocí d-flip flop typ pak pomocí které flip flop jako komponenta pro
další moduly.Problém jsem dostat je, když jsem použít flip flop jako
Modul Nejsem dostat výstupní průběhy jsem očekával.Ve skutečnosti Im
Získání žádné křivky!

Zde je kód pro můj flip flop:

subjektu dflipflop je
Port (D: v std_logic;
ČLK: v std_logic;
Q: mimo std_logic;
Q_bar: z std_logic);
konec dflipflop;

Behaviorální architektura z dflipflop je
začít
procesu (CLK)
začít
if (Clk'event a Clk = '1 '), pak
Q <= D;
Q_bar <= není (D);

end if;

ukončení procesu;
Behaviorální konce;

Pak jsem používat tento kód jako součást vytvořit namítají, že se bude dělit
o 2, 4, 8 a 16.

Například zde je kód pro můj dělit o 2 počítadlo použití výše uvedené
kód jako součást:

subjektu divide_by_two je
Port (ČLK: v std_logic;
Clk_out: z std_logic);
konec divide_by_two;

Behaviorální architektura z divide_by_two je

složka dflipflop je
Port (D: v std_logic;
ČLK: v std_logic;
Q: mimo std_logic;
Q_bar: z std_logic);
konce složky;

signál D: std_logic;
- Signál F: std_logic;
začít

uuu: dflipflop port map (D, CLK, Clk_Out, D);

Behaviorální konce;

Kód se kompiluje v pořádku.Po ladění kódu Myslím, že problém
je to, že můj Q_bar je rovna mou D místo naopak
ale nemůžu nastavit D se rovná Q_bar.

Doufám, že po pohledu na to tak dlouho, že je ve skutečnosti
jednoduchá chyba na mé straně a jakoukoli pomoc by být celek ocenil.

Prosím kontaktujte mě na b00003716 @ [EMAIL PROTECTED]

 
Možná by sis měl instatiate svůj flip-flop, jako je toto:

signál D: std_logic;

uuu: dflipflop
port map (
D => není (D),
CLK => Clk,
Q => D,
Q_bar => Otevřít);

Clk_out <= D;

Nemyslím si, že Q_bar je nutná

 
Na tom není nic špatného děje ..všechny UR omyl.

Podívejte se na vaše flip-flop, flop váš filp nemá reset nebo přednastavené pin.Pro dělit 2 z hodiny, u připojení Q 'PIN vaší flip flop na pin D vaší flip flop.Toto uspořádání nepochybně dává ua vydělte 2 z hodiny.Ale ... ale co se děje na simulaci ...původně Q 'je uninitalized, že je' U ', takže když hodiny je dodáván s flip flop váš kód projde' U 'to' D 'vstup vašeho flipflop a tak u mít' U "na výstupu. Uvidíme, jestli chcete Váš okruh do práce byste se měli ujistit, že Q 'PIN vašeho flop by měly být ve známém stavu ('0' prefreably od '1 'způsobí fázový posun). jediný způsob, jak ur obvodu práce má obsahovat reset pin v ur filp flop kód. přenést tento pin se do svého top subjektu. okruh bude pracovat, jakmile uvolníte obvodu od reset.
Doufám, že jste pochopil, ne-li mail zpět

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Úsměv" border="0" />
 
Napište kód pro synchronní čítač s n bitů.Take výstupu na každý bit pak jste propast n bitů.Například máte 4bit pult s CLK vstup.pak výstup na LSB bude Q0 = CLK / 2, Q1 = CLK / 4 a tak dále.Doufám, že chápete, co říkám.Proč jste se používat jednotlivé D flip-flop?To je myšlenka, ale v reálném kódu musíte přidat RST vstup příliš.
TL

 
tran napsal:

Napište kód pro synchronní čítač s n bitů.
Take výstupu na každý bit pak jste propast n bitů.
Například máte 4bit pult s CLK vstup.
pak výstup na LSB bude Q0 = CLK / 2, Q1 = CLK / 4 a tak dále.
Doufám, že chápete, co říkám.
Proč jste se používat jednotlivé D flip-flop?
To je myšlenka, ale v reálném kódu musíte přidat RST vstup příliš.

TL
 
proč VHDL postavit pult s DFF "ručně"!

Ve skutečnosti byste měli použít numeric_std knihovny
a používat tyto pokyny:proces (Raz, ČLK)
pokud Raz = '1 'pak qint <= (ostatní => '0');
elsif rising_edge (CLK)
qint <= std_logic_vector (unstigned (dint) 1);
end if;
ukončení procesu;
qout <= qint;

 
Nedávno jsem narazil na problém, žádný signál změny, protože na to, kde jsem byla sondáž výstupního signálu.

Ujistěte se, že se díváte na logiku čipu výstup, a ne výstup externí disk tranzistor.

 

Welcome to EDABoard.com

Sponsor

Back
Top