Miten lukea \ kirjoittaa tietoja käyttämällä asynkronisia CLK?

X

xtcx

Guest
Hi friends!, minulla on ongelma, jossa minun pakkauksenhallinta lähettää ja vastaanottaa tietoja 2MHZ sclk (codec sisäinen) clk.It toimii päällikön ja siten sclk (at) 2MHz ei ohjata ulkoisten keinoin.I'll selittää vaiheissa.
1) Olen lukenut \ kirjoittaa codec @ 2MHz sclk (codec CLK, Master) on samaan aikaan SDI-SDO
2) codec kirjoittaa 32-bittinen tietoja Tx_buffer ja lukee 32-bittinen tiedot Rx_buffer (FPGA)
3) Kun olet lukenut 32-bittiä (1 kuva) ja 16us, pakkauksenhallinta menee tyhjäkäynnille till 64us.
4) Tämä idleaikaa vastaamaan näytteenotto aika, joka on 16kHz (64us).
5) koodekki lukee \ kirjoittaa tietoa @ 2MHz vain tai se ei toimi
6) LUE: At 17us, kun koodekki pysäkit kirjallisesti \ käsittelyssä, aloitan lukeminen Tx_buffer (rinnakkain sarja) @ 1Mbps käyttää FPGA CLK @ 1MHz.Joten lopuksi kokonaan minun toiminnassa 48us.Remaining 16us on vapaa
7) kirjoittaa: At 17us, kun koodekki pysäkit kirjallisesti \ käsittelyssä, aloitan kirjallisesti RX_buffer (sarja rinnakkaisiin) @ 1Mbps käyttäen FPGA CLK (at) 1MHZ.Taas Päätän kuluessa 48us.
8) Sekä 1MHz lue \ kirjoita Tx_buffer ja Rx_buffer tapahtuu vuodesta 17us ja 48us (32-bittinen @ 1MHz).
9) Tämä toiminto on ikuisesti.
Kyse on siitä, että sillä koodekki kellon 2MHz ei ole tarkkoja verrattuna FPGA CLK, FPGA kellon siirtyy nopeammin codec CLK.Tämän vuoksi löydän puuttuvat tiedot jonnekin ... Jos en yksinkertaisesti korvata FPGA 1MHz on koodekin n (2MHz \ 2 = 1MHz) 1MHz CLK, niin olen voinut saan oikean äänen ulostuloa ... Mitä couldbe tarkkaa syytä ?.... Onko tämä ongelma asynkronisen toiminnan ?.... Eikö kellot synczing oikein ?.... Jos kaikki toiminta tehdään käyttäen koodekkia Sclk, niin en löydä mitään ongelmia.
Onko kellään kohtaavat tämän ongelman?tai on jokin idea liittyy tähän? ... Onko käyttäen FIFO voisi ratkaista ?..... Kiitos

 
todennäköisesti se johtui kellon synkronointi riitaisia sclk ja FPGA-kellon.

Voisitteko lähettää osan koodia tähän, jotta voimme analysoida päätyä tiedot rajan JM Kello verkkotunnuksen.
tai u kanisteri email we aikaa ycherjier (at) yahoo.com, jotta voin tarkastella yksityiskohtaisesti ja discuess täällä.

on yksinkertainen tapa, jossa käytetään 2 FF tehdä tietojen synkronointi 2 JM kellon.

 
Tässä on valmis koodi ... Voit turvallisesti ohittaa kannanotot vastaavat valtion = s0.Si9nce nämä ovat vain codec initialization vaiheet
Vain lausunnot valtion <= S1 järjestyksessä tarvitaan ... selitykseni lopussa tämän koodin ...library IEEE;
käytön IEEE.STD_LOGIC_1164.ALL;
käytön IEEE.STD_LOGIC_ARITH.ALL;
käytön IEEE.STD_LOGIC_UNSIGNED.ALL;-------------------- ENTITY JULISTUS -------------------------
yksikkö SDR_PSK on
PORT (
CLK: IN STD_LOGIC;
sclk: in std_logic;
SW2: IN STD_LOGIC;
sdofs: in std_logic;
SDO: in std_logic;
RST: out std_logic;
SE: InOut std_logic;
SDI: out std_logic;
sdifs: out std_logic;
---------
LED: OUT std_logic_vector (15 downto 0): = x "0000";
- Clk_sdata_op: OUT STD_LOGIC;
- Clk_data_op: OUT STD_LOGIC;
- ----------
TxB: OUT STD_LOGIC;
- Rxb: OUT STD_LOGIC;
INT_OP: OUT STD_LOGIC;
TEST_OP: OUT STD_LOGIC
- Sdofs_op: OUT STD_LOGIC
)
lopussa SDR_PSK;
------------------------ SIGNAALIT JULISTUS ------------------------ --------------
architecture Behavioral of SDR_PSK on
----------- CODEC -------------
TYYPPIHYVÄKSYNTÄÄ Main (S0, S1);
SIGNAL State: tärkeimmät;

TYYPPIHYVÄKSYNTÄÄ INTERRUPTS1 IS (EI, SYNC_ON, SYNC_OFF);
SIGNAL Interrupt: INTERRUPTS1: = EI;
- SIGNAL Interrupt: INTEGER: = 0;
SIGNAL sig: INTEGER RANGE 0: sta 188: = 1;
SIGNAL sig1, T: INTEGER RANGE 0 TO 150: = 0; - tulee alkaa 0
signaali Rx_buff1, Rx_buff2: std_logic_vector (15 downto 0): = "0000000000000000";
signaali Tx_buff1, Tx_buff2: std_logic_vector (15 downto 0): = "0000000000000000";
signaali tx1, TX2, Tx: std_logic_vector (31 downto 0);
signaali RX1, RX2, Rx: std_logic_vector (31 downto 0): = x "00000000";
signaali enab: std_logic: = '0 ';
vakio CA1: std_logic_vector (15 downto 0): = x "8901";
vakio CA2: std_logic_vector (15 downto 0): = x "8101";
vakio CA3: std_logic_vector (15 downto 0): = x "8a7b";
-------- MARKER ----------
---- SIGNAL MARKER1: std_logic_vector (31 downto 0): = "01111110011111100111111001111110";
SIGNAL MARKER1: std_logic_vector (15 downto 0): = "0111111001111110";
SIGNAL DATA_Tx, DATA_Rx: STD_LOGIC;
SIGNAL TEST_REG: std_logic_vector (31 downto 0): = x "AAAAAAAA";
---- SIGNAL BUFFER_Tx: std_logic_vector (47 downto 0);
SIGNAL BUFFER_MARKER, dummy: std_logic_vector (15 downto 0);
SIGNAL FLAG_RAMSWAP: STD_LOGIC: = '0 ';
SIGNAL BUFFER_Tx, BUFFER_Rx: std_logic_vector (31 downto 0);
--
-------------- CODING -----------
SIGNAL CLK_RECOV_PRE: STD_LOGIC;
SIGNAL Mnchr_Rx, Mnchr_Tx, MONOSHOT_inv: STD_LOGIC;
SIGNAL Mnchr_Rx_inv, Mnchr_Rx_delay: STD_LOGIC;
SIGNAL CLK_RECOV, CLK_RECOV_inv: STD_LOGIC;
SIGNAL A, B, C, D, E, F, G, H, X: STD_LOGIC;
SIGNAL A1, B1, C1, D1, E1, F1: STD_LOGIC;
SIGNAL MONOSHOT: STD_LOGIC;
SIGNAL M, N, O, M1, N1: INTEGER: = 0;
SIGNAL clk_data, clk_sdata: STD_LOGIC;--
----------------------- Esivalittu ASSIGNEMENTS ------------------------- ---------------------------
ALOITA
----- Koodaus ja MARKER ---
- TxB <= DATA_Tx;
- Rxb <= DATA_Rx;
- clk_sdata_op <= clk_sdata;
- clk_data_op <= clk_data;
DATA_Rx <= DATA_Tx;
-------------------------------------------------- -------------------------------------------------- --------------------
- 1.CODECINTERFACEMODULE
-------------------------------------------------- -------------------------------------------------- -------------------
prosessi (CLK, sclk, valtio, SW2, sdofs, SE, enab)
Muuttuja i, I1: INTEGER: = 0;
VARIABLE j: Integer: = 0;
VARIABLE lämpötila, temp2: STD_LOGIC: = '0 ';

aloittaa
-------------------------------------------------- -------------------------------------------------- ------------
IF (SW2 = '0 ') then
sig <= 0;
Valtion <= s0;
sig1 <= 0;
IF (enab = '0 ') then
SE <= '0 ';
RST <= '0 ';
enab <= '1 ';
Elsif (enab = '1 ') THEN
SE <= '1 ';
RST <= '1 ';
enab <= '1 ';
end if;
Elsif rising_edge (sclk) jälkeen
enab <= '0 '; - Anna silmukka siirtää seuraavan kerran
-----------------------------------------------
- CONTROL WORD CONFIGURATION
-----------------------------------------------
-----------------------------------------------
- Control Word 1
-----------------------------------------------
Jos valtio on
kun S0 =>
sig <= sig 1;
Jos SIG

kun 1 => sdifs <= '1 ';
kun 2 => sdifs <= '0 ';
SDI <= CA1 (15);
kun 3 => SDI <= CA1 (14);
kun 4 => SDI <= CA1 (13);
kun 5 => SDI <= CA1 (12);
kun 6 => SDI <= CA1 (11);
Kun 7 => SDI <= CA1 (10);
Kun 8 => SDI <= CA1 (9);
Kun 9 => SDI <= CA1 (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Viileä" border="0" />

;
kun 10 => SDI <= CA1 (7);
kun 11 => SDI <= CA1 (6);
Kun 12 => SDI <= CA1 (5);
Kun 13 => SDI <= CA1 (4);
Kun 14 => SDI <= CA1 (3);
kun 15 => SDI <= CA1 (2);
kun 16 => SDI <= CA1 (1);
kun 17 => SDI <= CA1 (0);

--------------------------------------------
- Control Word 2
--------------------------------------------
Kun 18 => sdifs <= '1 ';
Kun 19 => sdifs <= '0 ';
SDI <= CA2 (15);
Kun 20 => SDI <= CA2 (14);
Kun 21 => SDI <= CA2 (13);
Kun 22 => SDI <= CA2 (12);
Kun 23 => SDI <= CA2 (11);
Kun 24 => SDI <= CA2 (10);
kun 25 => SDI <= CA2 (9);
Kun 26 => SDI <= CA2 (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Viileä" border="0" />

;
Kun 27 => SDI <= CA2 (7);
Kun 28 => SDI <= CA2 (6);
kun 29 => SDI <= CA2 (5);
kun 30 => SDI <= CA2 (4);
Kun 31 => SDI <= CA2 (3);
Kun 32 => SDI <= CA2 (2);
Kun 33 => SDI <= CA2 (1);
Kun 34 => SDI <= CA2 (0);

----------------------------------------------
- Control Word 3
-----------------------------------------------
Kun 35 => sdifs <= '1 '; - CONTROL Rekisteröityminen C
Kun 36 => sdifs <= '0 ';
SDI <= CA3 (15);
Kun 37 => SDI <= CA3 (14);
Kun 38 => SDI <= CA3 (13);
Kun 39 => SDI <= CA3 (12);
kun 40 => SDI <= CA3 (11);
Kun 41 => SDI <= CA3 (10);
Kun 42 => SDI <= CA3 (9);
Kun 43 => SDI <= CA3 (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Viileä" border="0" />

;
kun 44 => SDI <= CA3 (7);
Kun 45 => SDI <= CA3 (6);
Kun 46 => SDI <= CA3 (5);
kun 47 => SDI <= CA3 (4);
Kun 48 => SDI <= CA3 (3);
Kun 49 => SDI <= CA3 (2);
kun 50 => SDI <= CA3 (1);
Kun 51 => SDI <= CA3 (0);
Valtion <= s1;
sig1 <= 0;
kun muut =>
vuoden osalta;
------- CODEC INITIALIZATION PROSESSI TOTEUTTI --------------------------------------- -----
-------------------------------------------------
- DATA puskuri-OUT (Tämä on aina silmukka)
-------------------------------------------------
KUN s1 =>
sdifs <= sdofs;
sig1 <= sig1 1;
Jos sig1 on
KUN 0 =>

IF (sdofs = '1 ') THEN
sig1 <= 1;
Elsif (sdofs = '0 ') then
sig1 <= 0;
END IF;

Kun 1 => SDI <= Tx_buff1 (15);
Rx_buff1 (15) <= SDO;
KESKEYTTÄÄ <= SYNC_ON;
Kun 2 => SDI <= Tx_buff1 (14);
Rx_buff1 (14) <= SDO;
KUN 3 => SDI <= Tx_buff1 (13);
Rx_buff1 (13) <= SDO;
KUN 4 => SDI <= Tx_buff1 (12);
Rx_buff1 (12) <= SDO;
Kun 5 => SDI <= Tx_buff1 (11);
Rx_buff1 (11) <= SDO;
KUN 6 => SDI <= Tx_buff1 (10);
Rx_buff1 (10) <= SDO;
KUN 7 => SDI <= Tx_buff1 (9);
Rx_buff1 (9) <= SDO;
KUN 8 => SDI <= Tx_buff1 (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Viileä" border="0" />

;
Rx_buff1 (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Viileä" border="0" />

<= SDO;
KUN 9 => SDI <= Tx_buff1 (7);
Rx_buff1 (7) <= SDO;
Kun 10 => SDI <= Tx_buff1 (6);
Rx_buff1 (6) <= SDO;
Kun 11 => SDI <= Tx_buff1 (5);
Rx_buff1 (5) <= SDO;
Jolloin 12 => SDI <= Tx_buff1 (4);
Rx_buff1 (4) <= SDO;
Kun 13 => SDI <= Tx_buff1 (3);
Rx_buff1 (3) <= SDO;
Kun 14 => SDI <= Tx_buff1 (2);
Rx_buff1 (2) <= SDO;
Kun 15 => SDI <= Tx_buff1 (1);
Rx_buff1 (1) <= SDO;
Kun 16 => SDI <= Tx_buff1 (0);
Rx_buff1 (0) <= SDO;

Kun 17 => SDI <= Tx_buff2 (15);
Rx_buff2 (15) <= SDO;
MILLOIN 18 => SDI <= Tx_buff2 (14);
Rx_buff2 (14) <= SDO;
Jolloin 19 => SDI <= Tx_buff2 (13);
Rx_buff2 (13) <= SDO;
Kun 20 => SDI <= Tx_buff2 (12);
Rx_buff2 (12) <= SDO;
MILLOIN 21 => SDI <= Tx_buff2 (11);
Rx_buff2 (11) <= SDO;
Kun 22 => SDI <= Tx_buff2 (10);
Rx_buff2 (10) <= SDO;
MILLOIN 23 => SDI <= Tx_buff2 (9);
Rx_buff2 (9) <= SDO;
MILLOIN 24 => SDI <= Tx_buff2 (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Viileä" border="0" />

;
Rx_buff2 (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Viileä" border="0" />

<= SDO;
Kun 25 => SDI <= Tx_buff2 (7);
Rx_buff2 (7) <= SDO;
MILLOIN 26 => SDI <= Tx_buff2 (6);
Rx_buff2 (6) <= SDO;
MILLOIN 27 => SDI <= Tx_buff2 (5);
Rx_buff2 (5) <= SDO;
MILLOIN 28 => SDI <= Tx_buff2 (4);
Rx_buff2 (4) <= SDO;
Kun 29 => SDI <= Tx_buff2 (3);
Rx_buff2 (3) <= SDO;
Kun 30 => SDI <= Tx_buff2 (2);
Rx_buff2 (2) <= SDO;
MILLOIN 31 => SDI <= Tx_buff2 (1);
Rx_buff2 (1) <= SDO;
MILLOIN 32 => SDI <= Tx_buff2 (0);
Rx_buff2 (0) <= SDO;

MILLOIN 33 =>
Tx_buff1 <= Rx (31 downto 16);
Tx_buff2 <= Rx (15 downto 0);
TX (31 downto 16) <= Rx_buff1;
TX (15 downto 0) <= Rx_buff2;
johti <= Tx_buff1;
Kun 100 => KESKEYTTÄÄ <= SYNC_OFF;
MILLOIN 126 => sig1 <= 0;
Kun muut => NULL;
END CASE;
kun muut =>
vuoden osalta;
end if;
END PROCESS;

-------------------------------------------------- -------------------------------------------------- -------------------------
-------- 2.MARKERANDBITSTUFFING
-------------------------------------------------- -------------------------------------------------- -------------------------
PROCESS (clk_sdata, clk_data, CLK, sclk) IS
Muuttuja i, I1: INTEGER: = 0;
VARIABLE lämpötila, temp2: STD_LOGIC: = '0 ';
VARIABLE FLAG_LOOP: STD_LOGIC: = '1 ';
ALOITA
---------------------------------
---- CODEC CLOCK GENERATOR @ 1MHz
---------------------------------

JOS RISING_EDGE (clk) then
I1: = I1 1;
IF (i1 = 40) then
temp2: = NOT (temp2);
clk_data <= temp2;
I1: = 0;
END IF;
END IF;
---------------------------------
CASE KESKEYTTÄÄ IS
KUN SYNC_ON =>
C: Jos RISING_EDGE (clk_data) THEN

- IF (keskeytys = SYNC_ON) THEN
INT_OP <= '1 ';
M1 <= M1 1;
N1 <= N1 1;
IF (m1> = 0 ja M1 <= 30) then
Data_Tx <= Tx (M1) - convertuing puskuri tiedot sarja
RX <= Data_Rx (M1);
Elsif (m1 = 31) then
Data_Tx <= Tx (M1) - convertuing puskuri tiedot sarja
RX <= Data_Rx (M1);
END IF;
- Elsif (keskeytys = SYNC_OFF) THEN
KUN SYNC_OFF =>
M1 <= 0;
INT_OP <= '0 ';
Kun muut => NULL;
END CASE;
END IF;
- END IF;
END PROCESS;
End Behavioral;
-------------------------------------------------- -------------------------------------------------- -----
Vaikka Codec loop of State = S1 on aina silmukka, joka kerää tietoja SDO (sekä kirjoittaa tiedot SDI) ja tallentaa sen väliaikaisesti Rx_buff1 & Rx_buffer2 (LCH & Rxh), Tx_buff1 & Tx_buff2 resp.Totally 32 bittiä.Klo määrä 33 (sig1) Välitän Temp puskuri Rx_buff1 & 2 Tx ja Tx_buff1 & 2 RX.Joten Rx ja TX on 32-bittinen puskuri jokainen, joka omistaa koodekkia tiedot. (Tx luetaan tietoja koodekki taas RX tiedot kirjoitetaan codec). Kaikki toimet, jotka on tehty tähän mennessä vain tehdä aina CODEC n SCLK.KAIKKI CODEC Lue \ kirjoittaa toiminta on koodattu mukaan "rising_edge (sclk)", jossa SCLK syntyy koodekin itse asynchronouly klo 2MHz.Joten kaikki toiminnot suorittaa klo 2MHz.Nyt minun täytyy lukea \ kirjoittamaan tietoja Tx-ja Rx Vastaava käyttäen 1MHz CLK saada 1Mbps tietojen rate.That minun tarvitsee muuttaa 2Mbps tietoja jatkuvasti 1Mbps korko .... Jos 1MHz olen syntyy se minun 80MHz FPGA-päällikkö CLK panos jonka mukaan "Marker ja Bit täyte." Nyt tässä tulee ongelma ... tietoja, joita voi lukea FPGA: n 1MHz CLK ei vaiheessa tai täsmälleen sama ja sclk.Tarkistin asian jakamalla 1MHz alk. SCLK (codec CLK) ja ristiintarkastaa ja verrataan minun FPGA syntyy 1MHz CLK.Molemmat eivät ole ollenkaan sama asia .. vaikuttaa siltä, että pakkauksenhallintaa CLK ei 1MHz mutta joissakin 999.1MHz .. Sen vuoksi en voi nähdä FPGA 1MHz CLK siirtää nopeammin Sclk (at) 1MHz ja CRO selvästi ... Here Termi "keskeytä" on tuottaa lipun exaclty tekohetkellä koodekki lue \ kirjoita alkaa ... siis asetan tiedot samaan aikaan monena välttää tietojen puuttuu .. valvoo mieltä tässä, että minun on nopeasti sijoitan data kuluessa Keskeytä = SYNC_ON ..... No, jos sinulla on epäilyksiä liittyviä, vain kysyä .... Kiitos etuja !.....

 
Hei, anteeksi .. en ole tuttuja VHDL mutta uskon voi karkeasti arvata, mitä koodi tehdä.

Minulla piirtää lohkokaavio että discrib järjestelmään.Toivottavasti ei virheisiin.

ei, minulla on epäilyksiä, voit mainita "Kun olet lukenut 32-bittiä (1 kuva) ja 16us, pakkauksenhallinta menee tyhjäkäynnille till 64us."

että sitä aluksi, ensimmäinen 32 sclk kelloa siirretään voimassa tiedot koodekin ja FPGA sitten, kun ensimmäiset 32 vuorokauden koodekki menee valmiustilassa tilassa 64us siellä
FPGA kerää, kun ensimmäinen 32 sclk kellon ja siirtää sen ulos 1MHz.

joten kysymykseni on, mikä on edellytys, jos koodekki ota tyhjäkäynnille?Näitkö sclk vielä trasmiting?
Oma arvaus on, sitä ei trasmiting mitään signaalia ja pysyvät korkea tai matala noin 64us.

toisella puolella, entä 1MHz puolella, voit WAN signaalin jatkuvasti trasmiting tai se voidaan lopettaa jonkin aikaa ja lähettää edelleen, kun tiedot on valmis?

minun näkökulmasta sclk alkaen pakkauksenhallinta sammuttaa ja 64us joka on riittävän pitkään, jotta voit lähettää tietoja ulos 1MHz.

Minulla on liitettävä asiakirja, ja voit etsiä kuva 3 ja kuva 4.
http://www.edaboard.com/viewtopic.php?p=429921 # 429921

Toivottavasti se auttaa ....
Anteeksi, mutta sinun täytyy kirjautua nähdäksesi tämän liitteen

 
Anteeksi että olen myöhässä vastauksen ... Ensinnäkin kiitän teitä etuja!
cherjier kirjoitti:

joten kysymykseni on, mikä on edellytys, jos koodekki ota tyhjäkäynnille?
Näitkö sclk vielä trasmiting ?....
 
Quote:

No, tässä on, että koodekki on päällikkö, joka siinä mielessä, että tiedot ja CLK timming ei ole hallittavissa FPGA ... Kuinka voit lukea tietoja eri CLK verkkotunnuksen, jos synkronoit? ...
 
Kiitos koodin cherjier!, Koodi ei ole tärkeää, mutta käsite ei .... siis ole ongelma, jos se ei VHDL, kaikki se tarkoittaa, että autat mielessä! ... En kuitenkaan voinut vain osittain ymmärtää, että koodin, koska olemme suunnittelijoita, emme tarvitse paljon code.What me nyt tarvitsemme käsite ... olen vähän epävarma CDC (kellon verkkotunnuksen risteyksessä) ... Tässä kaaviossa sclk syötetään 1. D-FF, sitten FPGA CLK to 2nd D-FF.What on hyötyä tästä? .. voitteko selittää minulle CDC: n avulla, että kuva vähän?. Tällä välin olen myös tarkistaa aikaisempia yhteyksiä. . Jos en löydä aion kyllästynyt tähän pian, .. Kiitos etuja ....

 
oikeastaan mitä Zerox100 sanoi, on totta myös, u voidaan panna täytäntöön 2 Kello async FIFO tietojen synkronointiin, mutta teidän tapauksessa se mielestäni sarjan 2 FF olisi ok.

Olen vetää sinua aaltomuodossa osalta hyöty käyttämällä CDC piiri.<img src="http://images.elektroda.net/5_1207032669_thumb.jpg" border="0" alt="How to read\write data using asynchronous clk?" title="Miten lukea \ kirjoittaa tietoja käyttämällä asynkronisia CLK?"/> pääkohdat on toinen FF, jos toinen FF rekisteröi Q ensimmäisen FF, kun Q ensimmäisen FF muuttuu, kun toinen FF on näytteenotto-Q, se aiheuttaa metastability joka näkyy aaltomuoto edellä .tämä edellytys tapahtuu whrn kasvaa reunan sclk ja FPGA Kello on liian lähellä.

käyttäen kolmas FF tulee antaa signaali onnistuneesti rajan kellon verkkotunnuksen.

Sitä paitsi joissakin tapauksissa, suunnittelija käyttämällä Sync piiri ohjaussignaalille tai kättely signaali vain.

Esimerkiksi, jos ohjaussignaali pulssijono on jatkuvasti ajan ja tämä signaali on rajan muihin kellon verkkotunnuksen, jos se ei saa ylittää onnistuneesti, näet, että jotkut pulssin puuttuu ja pulssijono ei on jatkuvasti ajan.

 

Welcome to EDABoard.com

Sponsor

Back
Top