käyttäminen DDR SDRAM moduuli videon muistiin (XUPV2P)

B

BlackOps

Guest
Haluan suorittaa C ohjelma PowerPC on Virtex2 Pro,
jossa kaikki graphic on valvoa, oma ohjain on 1024x768 60Hz.

.

i käyttää TwinMOS 512MB CL3 PC3200 DDR SDRAM DIMM moduuli videon muistiin.i on käytettävä DDR muistia kuin videon muistiin.ja uskon, että organisaatio on kuin kuva, joissa i liitetty tähän viestiin.katsokoot.

Joten, C-ohjelmaa PPC.PPC kirjoittaa VGA tiedot kirjoitussuojakytkin FIFO, writeFIFO kirjoittaa nämä tiedot DDR muistia, toinen readFIFO lukee sen DDR ja välittää sen edelleen VGActrl State Machine, että VGActrl sitten kirjoittaa tietoa monitorin.

Uskon, että kaksi puskureina vahvistettujen valikoima on käytettävä niin, että ne vaihtaa, eikä glitches aikana kuvan päivitys.

writeFIFO kirjoittaa tietoja BUF1, kun BUF1 on täynnä, readFIFO alkaa lukuvirheitä BUF1.(kuva, jossa on sininen viiva), ja writeFIFO sitten kirjoittaa tietoja BUF2.

sitten, kun BUF2 on täynnä, readFIFO alkaa lukuvirheitä BUF2, (näkyy punainen viiva), ja writeFIFO sitten kirjoittaa tietoa uudelleen BUF1.ja niin edelleen.Kysymys:

Miten sanoa VGActrl State Machine että BUF1 (tai BUF2) on täynnä, niin se voi alkaa käsittelyssä sitä?se tapahtuu continiously ja nopeasti, joten kuva on päivitetty ajan ja näytetään oikein.

Minulla on 1024x768 ja 60 Hz VGA-ohjain.Voin siis laskea koko iskunvaimentimien tarvitaan.
(for one buffer)

(1024x768x24) / 8 = 2.359296 MBytes
(yhden puskuri)nopeus siirto on: 2,359296 x 60 Hz = 141,55776 MBytes /

sekunti

yhteensä muistia tarvitaan BUF1 BUF2 = 2,359296 2,359296 = 4.718592 MBytes
mutta suurin ongelma on nyt DDR IP-ydin ...Voinko käyttää Xilinx DDR PLB IP-ydin?
(DS425 v 2,00)on mahdollista käyttää kaksinkertaisen puskuroinnin kuvattu edellä Xilinx DDR IP-ydin?vai pitääkö minun kirjoittaa oman?ok, kerro minulle, mitä mieltä olet organisaatio kokonaisuudessaan, ja onko virheitä laskelmani ...kerro ur lausunnon.ja jos sen ok, voisi u neuvoa minulle, mitä aloitan?(i alreadyhave VHDL varten videosignaali sukupolvi) kiitokset!cya!
Anteeksi, mutta sinun on kirjautumistunnuksen nähdäksesi tämän liitäntävaatimuksia

 
No, olen luonut Base System Builder-hankkeen kanssa EDK. (XUPV2P veturilaitteilla)sekä lisätään UART ja 512MB dual rank muistin ohjain siellä.

sitten olen luonut oman perifeerinen malli PLB bussilla.

Nyt olen lisäämällä minun VHDL-koodin luotu reuna-ja tuot sen uudelleen ..

Minun on nyt yhdistämään kaiken oikein.
generated during the peripheral creating process and modified later to act as video controller.

katso minun user_logic.vhd tiedosto (sijaitsee: C: \ PROJECTS \ test4 \ pcores \ video_ctrl_v1_00_a \ HDL \ VHDL)
tuotti aikana reuna luoda prosessi ja muutettu myöhemmin toimimaan video-ohjain.

Code:-------------------------------------------------- ----------------------------

- Tiedoston nimi: user_logic.vhd

- Version: 1.00.a

- Kuvaus: Käyttäjän logiikkaa.

- Antopäivä: ti huhtikuu 15 15:45:33 2008 (jonka luominen ja tuontipolitiikkaa Perifeerinen Wizard)

- VHDL Standard: VHDL'93

-------------------------------------------------- ----------------------------

- Naming yleissopimukset:

- Aktiiviset alhainen signaaleja: "* _n"

- Kellosignaaleja: "CLK", "clk_div #", "clk_ # x"

- Palauta signaaleja: "RST", "rst_n"

- Rinnakkaislääkkeisiin: "C_ *"

- Käyttäjän määrittämät tyypit: "* _TYPE"

- State Machine ensi tilassa: "* _ns"

- State Machine tilasta: "* _cs"

- Kombinatorisista signaaleja: "* _com"

- Liukuhihnakäsittelyä tai rekisteriin viivytyksettä signaaleja: "* _d #"

- Vastatakuu signaaleja: "* cnt *"

- Kellon avulla signaaleja: "* _ce"

- Sisäinen versio ulostuloportti: "* _i"

- Laite nastat: "* _pin"

- Satamia: "- Nimet alkavat Isot kirjaimet"

- Prosessit: "* _PROCESS"

- Komponentti instantiations: "<ENTITY_> I_ <# | FUNC>"

-------------------------------------------------- ----------------------------- ÄLÄ MUOKKAA alla LINE --------------------

kirjasto IEEE;

käyttää ieee.std_logic_1164.all;

käyttää ieee.std_logic_arith.all;

käyttää ieee.std_logic_unsigned.all;kirjasto proc_common_v2_00_a;

käyttää proc_common_v2_00_a.proc_common_pkg.all;

- ÄLÄ MUOKKAA yli LINE --------------------- KÄYTTÖOPAS kirjastot lisätty-------------------------------------------------- ----------------------------

- Kokonaisuuden osa

-------------------------------------------------- ----------------------------

- Määritellään Generics:

- C_DWIDTH - Käyttäjän logiikka tiedot bussi leveys

- C_NUM_CE - Käyttäjän logiikka siru mahdollistaa bussi leveys

- C_WRFIFO_DWIDTH - Data leveys Kirjoita FIFO

- C_WRFIFO_DEPTH - Selattu Kirjoita FIFO

--

- Määritellään Satamat:

- Bus2IP_Clk - Bussi IP kellon

- Bus2IP_Reset - Bussi IP reset

- Bus2IP_Data - Bussi tutkimusajanjaksolle tiedot bussi käyttäjän logiikka

- Bus2IP_BE - Bussi IP byte mahdollistaa käyttäjälle logiikka

- Bus2IP_RdCE - Bussi IP lukea siru mahdollistaa käyttäjälle logiikka

- Bus2IP_WrCE - Bussi IP kirjoittaa siru mahdollistaa käyttäjälle logiikka

- Bus2IP_RdReq - Bussi IP lukea pyynnöstä

- Bus2IP_WrReq - Bussi IP kirjoittaa pyynnöstä

- IP2Bus_Data - IP-Bus tiedot bussi käyttäjän logiikka

- IP2Bus_Retry - IP-Bus retry vastaus

- IP2Bus_Error - IP-Bus virhe vastaus

- IP2Bus_ToutSup - IP-Bus-aikakatkaisu tukahduttaa

- IP2Bus_Busy - IP-Bus varattu vastaus

- IP2Bus_RdAck - IP-Bus lukea siirtää kuittaussanoman

- IP2Bus_WrAck - IP-Bus kirjoittaa siirtää kuittaussanoman

- IP2WFIFO_RdReq - IP WFIFO: IP lukea pyynnöstä

- IP2WFIFO_RdMark - IP WFIFO: mark alussa pakettimuotoista luetaan

- IP2WFIFO_RdRelease - IP WFIFO: Paluu WFIFO normaaliin FIFO toiminta

- IP2WFIFO_RdRestore - IP WFIFO: palauttaa WFIFO edelliseen pakettimuotoista merkki

- WFIFO2IP_Data - WFIFO IP: WFIFO lukea tietoja

- WFIFO2IP_RdAck - WFIFO IP: WFIFO lukea tunnustusta

- WFIFO2IP_AlmostEmpty - WFIFO IP: WFIFO lähes tyhjä

- WFIFO2IP_Empty - WFIFO IP: WFIFO tyhjä

- WFIFO2IP_Occupancy - WFIFO IP: WFIFO occupancy

-------------------------------------------------- ----------------------------yksikkö user_logic on

generic

(

- ADD USER Generics alla LINE ---------------

- KÄYTTÖOPAS rinnakkaislääkkeisiin lisätty

- ADD USER Generics yli LINE ---------------- ÄLÄ MUOKKAA alla LINE ---------------------

- Bussi-protokollan parametrit eivät lisää tai poistaa

C_DWIDTH: integer: = 64;

C_NUM_CE: integer: = 1;

C_WRFIFO_DWIDTH: integer: = 64;

C_WRFIFO_DEPTH: integer: = 512

- ÄLÄ MUOKKAA yli LINE ---------------------

);

satama

(

- ADD USER SATAMAAN alla LINE ------------------

- KÄYTTÖOPAS satamissa lisätty

- ADD USER SATAMAAN yli LINE ------------------- ÄLÄ MUOKKAA alla LINE ---------------------

- Bussi-protokollan satamiin, eivät lisää tai poistaa

Bus2IP_Clk: vuonna std_logic;

Bus2IP_Reset: vuonna std_logic;

Bus2IP_Data: vuonna std_logic_vector (0 on C_DWIDTH-1);

Bus2IP_BE: vuonna std_logic_vector (0 on C_DWIDTH/8-1);

Bus2IP_RdCE: vuonna std_logic_vector (0 on C_NUM_CE-1);

Bus2IP_WrCE: vuonna std_logic_vector (0 on C_NUM_CE-1);

Bus2IP_RdReq: vuonna std_logic;

Bus2IP_WrReq: vuonna std_logic;

IP2Bus_Data: Out std_logic_vector (0 on C_DWIDTH-1);

IP2Bus_Retry: Out std_logic;

IP2Bus_Error: Out std_logic;

IP2Bus_ToutSup: Out std_logic;

IP2Bus_Busy: Out std_logic;

IP2Bus_RdAck: Out std_logic;

IP2Bus_WrAck: Out std_logic;

IP2WFIFO_RdReq: Out std_logic;

IP2WFIFO_RdMark: Out std_logic;

IP2WFIFO_RdRelease: Out std_logic;

IP2WFIFO_RdRestore: Out std_logic;

WFIFO2IP_Data: vuonna std_logic_vector (0 on C_WRFIFO_DWIDTH-1);

WFIFO2IP_RdAck: vuonna std_logic;

WFIFO2IP_AlmostEmpty: vuonna std_logic;

WFIFO2IP_Empty: vuonna std_logic;

WFIFO2IP_Occupancy: vuonna std_logic_vector (0 on log2 (C_WRFIFO_DEPTH))

- ÄLÄ MUOKKAA yli LINE ---------------------

);

varten yhteisö user_logic;-------------------------------------------------- ----------------------------

- Arkkitehtuuri osa

-------------------------------------------------- ----------------------------arkkitehtuuri IMP on user_logic on- KÄYTTÖOPAS signaali kannanotot lisätty, sillä tarvitaan käyttäjän logiikka

COMPONENT VGAcore IS PORT (SysClk: IN STD_LOGIC - 100 MHz järjestelmän kellon alkaen AJ15 FPGA nastainen

OutClk: OUT STD_LOGIC - 65MHz 180 ° vaihe siirtynyt kello video-siruhsync: OUT STD_LOGIC - Horisontaalinen synkronointi signaalin D-sub-liitäntä

vsync: OUT STD_LOGIC - Vertikaalinen synkronointi signaalin D-sub-liitäntäSYNC: OUT STD_LOGIC; -! SYNC signaalin videon siru

BLANK: OUT STD_LOGIC; -! BLANK signaali videon siruRed_out: OUT STD_LOGIC_VECTOR (7 DOWNTO 0) - 8-bittinen punainen väri signaali

Green_out: OUT STD_LOGIC_VECTOR (7 DOWNTO 0) - 8-bittinen vihreä väri signaali

Blue_out: OUT STD_LOGIC_VECTOR (7 DOWNTO 0) - 8-bittinen sininen väri signaaliRed_in: IN STD_LOGIC_VECTOR (7 DOWNTO 0) - 8-bittinen punainen väri signaali

Green_in: IN STD_LOGIC_VECTOR (7 DOWNTO 0) - 8-bittinen vihreä väri signaali

Blue_in: IN STD_LOGIC_VECTOR (7 DOWNTO 0) - 8-bittinen sininen väri signaaliRow_out: OUT STD_LOGIC_VECTOR (10 DOWNTO 0);

Col_out: OUT STD_LOGIC_VECTOR (10 DOWNTO 0));END COMPONENT;aloittaa- KÄYTTÖOPAS logiikan toteuttamiseen lisättyvideo_ctrl_0: VGAcore

sataman kartta (

SysClk => Bus2IP_Clk,

OutClk =>

hsync =>

vsync =>

SYNC =>

BLANK =>

Red_out =>

Green_out =>

Blue_out =>

Red_in => WFIFO2IP_Data (0 ja 7),

Green_in => WFIFO2IP_Data (8 ja 15),

Blue_in => WFIFO2IP_Data (16 ja 23),

Row_out =>

Col_out =>);------------------------------------------

- Esimerkki koodi ajaa IP-Bus-signaaleja

------------------------------------------

IP2Bus_Data <= (muut =>'0 ');IP2Bus_WrAck <= Bus2IP_WrCE (0);

IP2Bus_RdAck <= Bus2IP_RdCE (0);

IP2Bus_Busy <='0 ';

IP2Bus_Error <='0 ';

IP2Bus_Retry <='0 ';

IP2Bus_ToutSup <='0 ';loppuun IMP;

 
hei,
Olen työskennellyt viimeinen vuosi M. TECH hankkeeseen.projektin on rakentaa opengl on FPGA.nyt tällä hetkellä olen työskennellyt Out esittää puolella ..että on näyttävä muistin sisällön näyttöyksikköä ......

i kirjallinen VGA-ohjain 800x600 75 Hz (HP 7540) MONITOR- HSYNC ---!!-------------------------------------------!!-----------
- ---- ----
- !<------------------------ 28.8221 meille ------------>!
- !<----------------------- 25.05us----------->!
--

- HBLANK ---!!-------------------------------------------!!-----------
- ---- ----
- !<------------------------ 28.8221 meille ------------>!
- !<----------------------- 25.05us----------->!
--
--
- ---- ----
- VSYNC ---!!-------------------------------------------!!-----------
--
- !<------------------------ 18,7629 ms ------------>!
-! <64ms>!
--Tämän olen saanut kun olen suunnittelussa .......tarkista, onko tämä signaalit ovat oikein .....tai i tarvetta seurata joitakin menettely ota ehdottaa minulle .........

2) i aikoo käyttää DDR2 RAM ..........Saan sekoittaa vuonna FRAME Puskuriliuos LUOMINEN JA virkistävä RATE ................

PLEASE GUIDE ME TEHDÄ TÄMÄN VAIHEET ........Thanks in Advance ...........

lähetä minulle, jos sinulla on jotain materiaalia tämän ........

minun id --- honnaraj.t (at) gmail.comthnk sinulle

 
file:

Ok, tässä on, kuinka tein muokata syntyy user_logic.vhd
Asiakirjatyyppi:
Code:-------------------------------------------------- ----------------------------

- User_logic.vhd - yksikkö / arkkitehtuuri pair

-------------------------------------------------- ----------------------------

--

- ************************************************ ***************************

- ** Copyright (c) 1995-2007 Xilinx, Inc. Kaikki oikeudet pidätetään. **

- ** **

- ** Xilinx, Inc. **

- ** Xilinx tarjoaa tämä malli, KOODI TAI TIETOJEN "AS IS" **

- ** AS tuomat ASIAKASTA, YKSINOMAAN KÄYTETTÄVÄT KEHITYSMAIDEN OHJELMAT JA **

- ** Ratkaisut Xilinx LAITTEISIIN. Toimittamalla tämän DESIGN, KOODI **

- ** TAI TIETOIHIN yhtenä mahdollisena TÄYTÄNTÖÖNPANO tätä toimintoa, **

- ** Sovelluksen tai STANDARD Xilinx tekee NO EDUSTUSKULUT **

- ** Kuin täytäntöönpano on vapaa VÄITTEET LOUKKAAMATTOMUUDESTA **

- ** JA OLET VASTUUSSA SAAMISEKSI mitään oikeuksia Saatat tarvita **

- ** For Your TÄYTÄNTÖÖNPANO. Xilinx NIMENOMAISESTI KIISTÄÄ KAIKKI **

- ** TAKUU mitään OSALTA suojan riittävyydestä, **

- ** Täytäntöönpanoon, mukaan lukien mutta ei rajoittuen MITÄÄN TAKUITA TAI **

- ** Edustustot kuin täytäntöönpano on vapaa VÄITTEET **

- ** LOUKKAAMATTOMUUDESTA TAKUUT KAUPALLISESTA JA FITNESS **

- ** TIETTYYN TARKOITUKSEEN. **

- ** **

- ************************************************ ***************************

--

-------------------------------------------------- ----------------------------

- Tiedoston nimi: user_logic.vhd

- Version: 1.00.a

- Kuvaus: Käyttäjän logiikkaa.

- Antopäivä: Ke huhtikuu 16 14:02:56 2008 (jonka luominen ja tuontipolitiikkaa Perifeerinen Wizard)

- VHDL Standard: VHDL'93

-------------------------------------------------- ----------------------------

- Naming yleissopimukset:

- Aktiiviset alhainen signaaleja: "* _n"

- Kellosignaaleja: "CLK", "clk_div #", "clk_ # x"

- Palauta signaaleja: "RST", "rst_n"

- Rinnakkaislääkkeisiin: "C_ *"

- Käyttäjän määrittämät tyypit: "* _TYPE"

- State Machine ensi tilassa: "* _ns"

- State Machine tilasta: "* _cs"

- Kombinatorisista signaaleja: "* _com"

- Liukuhihnakäsittelyä tai rekisteriin viivytyksettä signaaleja: "* _d #"

- Vastatakuu signaaleja: "* cnt *"

- Kellon avulla signaaleja: "* _ce"

- Sisäinen versio ulostuloportti: "* _i"

- Laite nastat: "* _pin"

- Satamia: "- Nimet alkavat Isot kirjaimet"

- Prosessit: "* _PROCESS"

- Komponentti instantiations: "<ENTITY_> I_ <# | FUNC>"

-------------------------------------------------- ----------------------------- ÄLÄ MUOKKAA alla LINE --------------------

kirjasto IEEE;

käyttää ieee.std_logic_1164.all;

käyttää ieee.std_logic_arith.all;

käyttää ieee.std_logic_unsigned.all;kirjasto proc_common_v2_00_a;

käyttää proc_common_v2_00_a.proc_common_pkg.all;

- ÄLÄ MUOKKAA yli LINE --------------------- KÄYTTÖOPAS kirjastot lisätty-------------------------------------------------- ----------------------------

- Kokonaisuuden osa

-------------------------------------------------- ----------------------------

- Määritellään Generics:

- C_AWIDTH - Käyttäjän logiikka osoite bussi leveys

- C_MAX_AR_DWIDTH - Käyttäjän logiikka max tiedot bussi leveys osoite vaihtelee

- C_NUM_ADDR_RNG - Käyttäjän logiikka määrä osoite vaihtelee voidaan dekoodata

- C_WRFIFO_DWIDTH - Data leveys Kirjoita FIFO

- C_WRFIFO_DEPTH - Selattu Kirjoita FIFO

--

- Määritellään Satamat:

- Bus2IP_Clk - Bussi IP kellon

- Bus2IP_Reset - Bussi IP reset

- Bus2IP_Addr - Bussi IP-osoite bussi

- Bus2IP_Burst - Bussi IP burst-mode-karsinta

- Bus2IP_RNW - Bussi IP lukea / ei kirjoittaa

- Bus2IP_RdReq - Bussi IP lukea pyynnöstä

- Bus2IP_WrReq - Bussi IP kirjoittaa pyynnöstä

- IP2Bus_Retry - IP-Bus retry vastaus

- IP2Bus_Error - IP-Bus virhe vastaus

- IP2Bus_ToutSup - IP-Bus-aikakatkaisu tukahduttaa

- IP2Bus_AddrAck - IP-Bus-osoite kuittaussanoman

- IP2Bus_Busy - IP-Bus varattu vastaus

- IP2Bus_RdAck - IP-Bus lukea siirtää kuittaussanoman

- IP2Bus_WrAck - IP-Bus kirjoittaa siirtää kuittaussanoman

- IP2WFIFO_RdReq - IP WFIFO: IP lukea pyynnöstä

- IP2WFIFO_RdMark - IP WFIFO: mark alussa pakettimuotoista luetaan

- IP2WFIFO_RdRelease - IP WFIFO: Paluu WFIFO normaaliin FIFO toiminta

- IP2WFIFO_RdRestore - IP WFIFO: palauttaa WFIFO edelliseen pakettimuotoista merkki

- WFIFO2IP_Data - WFIFO IP: WFIFO lukea tietoja

- WFIFO2IP_RdAck - WFIFO IP: WFIFO lukea tunnustusta

- WFIFO2IP_AlmostEmpty - WFIFO IP: WFIFO lähes tyhjä

- WFIFO2IP_Empty - WFIFO IP: WFIFO tyhjä

- WFIFO2IP_Occupancy - WFIFO IP: WFIFO occupancy

- Bus2IP_ArData - Bussi tutkimusajanjaksolle tiedot bussi osoite vaihtelee

- Bus2IP_ArBE - Bussi IP byte mahdollistaa varten osoite vaihtelee

- Bus2IP_ArCS - Bussi IP siru valita, osoite vaihtelee

- IP2Bus_ArData - IP-Bus tiedot bussi osoite vaihtelee

-------------------------------------------------- ----------------------------yksikkö user_logic on

generic

(

- ADD USER Generics alla LINE ---------------

- KÄYTTÖOPAS rinnakkaislääkkeisiin lisätty

- ADD USER Generics yli LINE ---------------- ÄLÄ MUOKKAA alla LINE ---------------------

- Bussi-protokollan parametrit eivät lisää tai poistaa

C_AWIDTH: integer: = 32;

C_MAX_AR_DWIDTH: integer: = 64;

C_NUM_ADDR_RNG: integer: = 1;

C_WRFIFO_DWIDTH: integer: = 64;

C_WRFIFO_DEPTH: integer: = 512

- ÄLÄ MUOKKAA yli LINE ---------------------

);

satama

(

- ADD USER SATAMAAN alla LINE ------------------

VideoClk: OUT std_logic;

horsync: OUT std_logic;

versync: OUT std_logic;

ChipSync: OUT std_logic;

ChipBlank: OUT std_logic;

Red_chip: OUT STD_LOGIC_VECTOR (7 DOWNTO 0) - 8-bittinen punainen väri signaali

Green_chip: OUT STD_LOGIC_VECTOR (7 DOWNTO 0) - 8-bittinen vihreä väri signaali

Blue_chip: OUT STD_LOGIC_VECTOR (7 DOWNTO 0) - 8-bittinen sininen väri signaali

- KÄYTTÖOPAS satamissa lisätty

- ADD USER SATAMAAN yli LINE ------------------- ÄLÄ MUOKKAA alla LINE ---------------------

- Bussi-protokollan satamiin, eivät lisää tai poistaa

Bus2IP_Clk: vuonna std_logic;

Bus2IP_Reset: vuonna std_logic;

Bus2IP_Addr: vuonna std_logic_vector (0 on C_AWIDTH-1);

Bus2IP_Burst: vuonna std_logic;

Bus2IP_RNW: vuonna std_logic;

Bus2IP_RdReq: vuonna std_logic;

Bus2IP_WrReq: vuonna std_logic;

IP2Bus_Retry: Out std_logic;

IP2Bus_Error: Out std_logic;

IP2Bus_ToutSup: Out std_logic;

IP2Bus_AddrAck: Out std_logic;

IP2Bus_Busy: Out std_logic;

IP2Bus_RdAck: Out std_logic;

IP2Bus_WrAck: Out std_logic;

IP2WFIFO_RdReq: Out std_logic;

IP2WFIFO_RdMark: Out std_logic;

IP2WFIFO_RdRelease: Out std_logic;

IP2WFIFO_RdRestore: Out std_logic;

WFIFO2IP_Data: vuonna std_logic_vector (0 on C_WRFIFO_DWIDTH-1);

WFIFO2IP_RdAck: vuonna std_logic;

WFIFO2IP_AlmostEmpty: vuonna std_logic;

WFIFO2IP_Empty: vuonna std_logic;

WFIFO2IP_Occupancy: vuonna std_logic_vector (0 on log2 (C_WRFIFO_DEPTH));

Bus2IP_ArData: vuonna std_logic_vector (0 on C_MAX_AR_DWIDTH-1);

Bus2IP_ArBE: vuonna std_logic_vector (0 on C_MAX_AR_DWIDTH/8-1);

Bus2IP_ArCS: vuonna std_logic_vector (0 on C_NUM_ADDR_RNG-1);

IP2Bus_ArData: Out std_logic_vector (0 on C_MAX_AR_DWIDTH-1)

- ÄLÄ MUOKKAA yli LINE ---------------------

);

varten yhteisö user_logic;-------------------------------------------------- ----------------------------

- Arkkitehtuuri osa

-------------------------------------------------- ----------------------------arkkitehtuuri IMP on user_logic on- KÄYTTÖOPAS signaali kannanotot lisätty, sillä tarvitaan käyttäjän logiikka

signaali RedIN: STD_LOGIC_VECTOR (7 DOWNTO 0);

signaali GreenIN: STD_LOGIC_VECTOR (7 DOWNTO 0);

signaali BlueIN: STD_LOGIC_VECTOR (7 DOWNTO 0);

- Nämä signaalit ovat VGAcore yksikkö

signaali ColOUT: STD_LOGIC_VECTOR (10 DOWNTO 0): = "00000000000";

signaali RowOUT: STD_LOGIC_VECTOR (10 DOWNTO 0): = "00000000000";

- nämä seignals ovat writeFIFO

signaali Kolonni: STD_LOGIC_VECTOR (10 DOWNTO 0): = "00000000000";

signaali Row: STD_LOGIC_VECTOR (10 DOWNTO 0): = "00000000000";COMPONENT VGAcore IS PORT (SysClk: IN STD_LOGIC - 100 MHz järjestelmän kellon alkaen AJ15 FPGA nastainen

OutClk: OUT STD_LOGIC - 65MHz 180 ° vaihe siirtynyt kello video-siruhsync: OUT STD_LOGIC - Horisontaalinen synkronointi signaalin D-sub-liitäntä

vsync: OUT STD_LOGIC - Vertikaalinen synkronointi signaalin D-sub-liitäntäSYNC: OUT STD_LOGIC; -! SYNC signaalin videon siru

BLANK: OUT STD_LOGIC; -! BLANK signaali videon siruRed_out: OUT STD_LOGIC_VECTOR (7 DOWNTO 0) - 8-bittinen punainen väri signaali

Green_out: OUT STD_LOGIC_VECTOR (7 DOWNTO 0) - 8-bittinen vihreä väri signaali

Blue_out: OUT STD_LOGIC_VECTOR (7 DOWNTO 0) - 8-bittinen sininen väri signaaliRed_in: IN STD_LOGIC_VECTOR (7 DOWNTO 0) - 8-bittinen punainen väri signaali

Green_in: IN STD_LOGIC_VECTOR (7 DOWNTO 0) - 8-bittinen vihreä väri signaali

Blue_in: IN STD_LOGIC_VECTOR (7 DOWNTO 0) - 8-bittinen sininen väri signaaliRow_out: OUT STD_LOGIC_VECTOR (10 DOWNTO 0);

Col_out: OUT STD_LOGIC_VECTOR (10 DOWNTO 0));END COMPONENT;------------------------------------------

- Signaalit käyttäjän logiikan osoite valikoima esimerkki

------------------------------------------

tyyppi BYTE_RAM_TYPE on array (0-255) on std_logic_vector (0 7);

tyyppi DO_TYPE on array (0 C_NUM_ADDR_RNG-1) on std_logic_vector (0 on C_MAX_AR_DWIDTH-1);

signaali ar_data_out: DO_TYPE;

signaali ar_address: std_logic_vector (0 7);

signaali ar_select: std_logic_vector (0, 0);

signaali ar_read_enable: std_logic;

signaali ar_read_ack_dly1: std_logic;

signaali ar_read_ack: std_logic;

signaali ar_write_ack: std_logic;aloittaa- KÄYTTÖOPAS logiikan toteuttamiseen lisätty

video_ctrl_0: VGAcore

sataman kartta (

SysClk => Bus2IP_Clk,

OutClk => VideoClk,

hsync => horsync,

vsync => versync,

SYNC => ChipSync,

BLANK => ChipBlank,

Red_out => Red_chip,

Green_out => Green_chip,

Blue_out => Blue_chip,

Red_in => RedIN,

Green_in => GreenIN,

Blue_in => BlueIN,

Row_out => RowOUT,

Col_out => ColOUT);- Tässä menee täytäntöönpanosta logiikkaa tehdä graphic.

- The State Machine retreives RGB tiedot ja pikselin kanta

- Tiedot writeFIFO, vertaa pikselin kannan

- Nykyinen Row_out ja Col_out on VGAcore yksikkö ja

- Assignes tämän RGB tietoja nykyisen pikselinSarake <= WFIFO2IP_Data (24 ja 34);

Rivi <= WFIFO2IP_Data (35 ja 45);DRAW_GRAPHIC: prosessi (Bus2IP_Clk) on

aloittaa

if (Bus2IP_Clk'event ja Bus2IP_Clk ='1 ') sittenif (sarake = ColOUT ja Row = RowOUT) sitten

RedIN <= WFIFO2IP_Data (0 7);

GreenIN <= WFIFO2IP_Data (8 ja 15);

BlueIN <= WFIFO2IP_Data (16 ja 23);

muuten

RedIN <= "00000000";

GreenIN <= "00000000";

BlueIN <= "00000000";

end if;end if;Lopeta prosessi;------------------------------------------

- Esimerkki koodin käyttöoikeudet logiikka osoite vaihtelee

--

- Huomautus:

- Esimerkki koodi esitetään tässä on näyttämään yksi tapa käyttää

- Käyttäjän logiikan osoite erilaisia ominaisuuksia.
Nämä * _Ar * IPIC signaaleja

- Ovat näille käyttäjän logiikan osoite vaihtelee.
Jokainen käyttäjä logiikka

- Osoite vaihteluväli on oma osoite tilaa ja on myöntänyt bittinen

- Euroopan Bus2IP_ArCS/Bus2IP_ArCE signaaleja ilmoitettu valinnasta

- Tällä alueella.
Tyypillisesti nämä käyttäjän logiikan osoite vaihtelee käytetään

- Pannaan täytäntöön muistin ohjain tyyppi sydämiä, mutta se voi myös käyttää

- Vuonna sydämiä, jotka on tarpeen käyttää muita osoite tilaa (ei C_BASEADDR

- Se perustuu), kpl siltoja.
Tämä koodinpätkä päättelee 1 256x64-bittinen (byte

- Saatavilla) yhden sataman Block RAM jonka XST.

------------------------------------------

ar_select <= Bus2IP_ArCS;

ar_read_enable <= (Bus2IP_ArCS (0)) ja Bus2IP_RdReq;

ar_read_ack <= ar_read_ack_dly1;

ar_write_ack <= (Bus2IP_ArCS (0)) ja Bus2IP_WrReq;ar_address <= Bus2IP_Addr (C_AWIDTH-11 on C_AWIDTH-4);- Tämä prosessi tuottaa luku ilmoittaa 1 kello jälkeen lukea mahdollistaa

- Esitetään, että Bram estää.
The Bram lohko on 1 vuorokauden viive

- Alkaen lukea mahdollistaa tietojen pois.

BRAM_RD_ACK_PROC: prosessi (Bus2IP_Clk) on

aloittaaif (Bus2IP_Clk'event ja Bus2IP_Clk ='1 ') sitten

if (Bus2IP_Reset ='1 ') sitten

ar_read_ack_dly1 <='0 ';

muuten

ar_read_ack_dly1 <= ar_read_enable;

end if;

end if;Lopeta prosessi BRAM_RD_ACK_PROC;- Pannaan täytäntöön Block RAM (s)

BRAM_GEN: for i in 0 C_NUM_ADDR_RNG-1 tuottaa

vakio NUM_BYTE_LANES: integer: = (C_MAX_AR_DWIDTH 7) / 8;

aloittaaBYTE_BRAM_GEN: for byte_index vuonna 0 NUM_BYTE_LANES-1 tuottaa

signaali ram: BYTE_RAM_TYPE;

signaali write_enable: std_logic;

signaali data_in: std_logic_vector (0 7);

signaali data_out: std_logic_vector (0 7);

signaali read_address: std_logic_vector (0 7);

aloittaawrite_enable <= ei (Bus2IP_RNW) ja

Bus2IP_ArCS (i) ja

Bus2IP_ArBE (byte_index);data_in <= Bus2IP_ArData (byte_index * 8 byte_index * 8 7);

ar_data_out (i) (byte_index * 8 byte_index * 8 7) <= data_out;BYTE_RAM_PROC: prosessi (Bus2IP_Clk) on

aloittaaif (Bus2IP_Clk'event ja Bus2IP_Clk ='1 ') sitten

if (write_enable ='1 ') sitten

ram (CONV_INTEGER (ar_address)) <= data_in;

end if;

read_address <= ar_address;

end if;Lopeta prosessi BYTE_RAM_PROC;data_out <= ram (CONV_INTEGER (read_address));lopussa tuottaa BYTE_BRAM_GEN;lopussa tuottaa BRAM_GEN;- Pannaan täytäntöön Block RAM lukea mux

IP2BUS_ARDATA_PROC: prosessi (ar_data_out, ar_select) on

aloittaatapauksessa ar_select on

kun "1" => IP2Bus_ArData <= ar_data_out (0);

kun muut => IP2Bus_ArData <= (muut =>'0 ');

loppuun tapauksessa;Lopeta prosessi IP2BUS_ARDATA_PROC;------------------------------------------

- Esimerkki koodi ajaa IP-Bus-signaaleja

------------------------------------------

IP2Bus_WrAck <= ar_write_ack;

IP2Bus_RdAck <= ar_read_ack;

IP2Bus_AddrAck <= ar_write_ack tai ar_read_enable;

IP2Bus_Busy <='0 ';

IP2Bus_Error <='0 ';

IP2Bus_Retry <='0 ';

IP2Bus_ToutSup <='0 ';loppuun IMP;

 

Welcome to EDABoard.com

Sponsor

Back
Top