Xilinx ML405 Evaluation platform

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
hygren
Inlägg: 130
Blev medlem: 9 november 2007, 15:52:37
Ort: Göteborg
Kontakt:

Xilinx ML405 Evaluation platform

Inlägg av hygren »

Jag är fullständig nybörjare på VHDL. Vill lära mig och har fått tag på ett Xilinx ML405 evalueringskort med en Virtex4 XC4VFX20 på.

http://www.xilinx.com/products/devkits/ ... -UNI-G.htm

Har fått igång och kört de olika demo som finns på från början och skulle nu vilja skriva något eget för att se att jag fattat något. Har installerat Xilinx ISE 10.1 WebPack.

Det stora problemet nu är att det är väldigt mycket lullull mellan min kod och exempelvis en LED på kortet. Hur sjutton går jag tillväga för att t ex få en LED att blinka? Har skrivit kod och fått ok på syntax och har även simulerat med stimuli m.m. och det funkar fint. Hur får jag ut det till kortet?

Jag har även en Xilinx Platform Cable USB, ska jag använda den?

Mycket tacksam för hjälp!
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Inlägg av blueint »

Man definierar funktion. (ej programmerar mao!)

Så för en blinkande led definierar en ingång (input) för oscillator och en utgång (output) för lysdioden.
Definiera (always) en klockdelare med delningsfaktor (count=count+1) t.ex. 25000000 för en 50 MHz klocka.
Därefter sätter man oscillatorns utgång och en registerbit som argument (clock_div(osc_out,led_bit)) till klockdelaren.
Till sist kopplar man (wire) lysdioden till registerbiten.

En helt annan paradigm att tänka i mao :-)

VHDL för hardcore.. och Verilog för dom som är vana med C.
Verilog har vissa begränsningar, bl.a. i samband med effektiv initialisering av datastrukturer.

Du kan använda USB kabeln om du får "impact" att prata med ditt kort genom den. Annars blir det parallell-ports JTAG.
Tekko
Inlägg: 9009
Blev medlem: 28 november 2004, 20:19:15

Inlägg av Tekko »

Med en A/D kan du bygga ett mycket exakt instrument för mätning, tex FFT, oscilloskop, multimeter och annat.

Du kan se mer om denna FPGA på www.national.com genom att leta dig vidare till "the analog by design show"
bjolin
Inlägg: 123
Blev medlem: 22 september 2006, 11:21:20
Ort: Linköping

Inlägg av bjolin »

Kabeln är din anslutning till kortet. Programmeringen kan köras via ISE ( i alla fall den fristående komersiella produkten).
I ISE kan du koppla ihop en port i din entity med en lämplig pinne på kretsen samt definiera vilken typ av ut/ingång du ska använda. Personligen tycker jag att dokumentation till utvecklingskortet är viktig så att jag vet var klockan går in mm. (Har ett Memec-kort på skrivbordet på jobbet).
Börja med att skapa din funktion och simulera denna, funkar det är det dags att syntetisera, ansluta in- och utgångar samt köra place and route mm tills din konstruktion kan laddas ner på FPGA;n.
VHDL är roligt, men kanske inte alltid den mest effektiva vägen till alla konstruktioner. (Det finns en del verktyg på en betydligt högre abstraktionsnivå)
Lycka till.
Seven11
Inlägg: 547
Blev medlem: 13 maj 2004, 23:43:33

Inlägg av Seven11 »

ganska schysst att du kör med en Virtex 4:a och är nybörjare :D

Om du markerar top-level koden och trycker på "Configure Target Device" i process fönstret så startar iMPACT upp det är ISE:s program för att skicka över implementeringen till FPGA:n den kommer köra en JTAG Boundary Scan och fråga dig efter bit filer till kretsen. När du valt dessa så kör den automatiskt igång "programmering".

EDIT: Tekko, varför kom A/D in här? Det är en bit mellan att bygga Blink-a-LED och FFT maskiner...
hygren
Inlägg: 130
Blev medlem: 9 november 2007, 15:52:37
Ort: Göteborg
Kontakt:

Inlägg av hygren »

I vilket minne hamnar det då? Är det i FPGA:ns inbyggda flashminne? Jag måste väl dessutom mappa min output till en user i/o?
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

När du kör Boundary Scan i iMPACT så visar den de enheter som är kopplade via den jtag slingan. En enhet är själva FPGAn och en är kanske ett konfigurationsflash som man kan lägga in en fast fpgakonfigurationsfil i.

Om du vill kan du programmera fpgan direkt och se resultatet så fort programmeringen är klar. Dock försvinner konfigureringen när spänningen slås av. Alternativt kan du programmera konfigurationsflashet och då "bootar" fpgan programmeringen vid spänningspåslag.
Den första metoden används mest vid utveckling, medan man senare fixar en mer permanent lösning med metod två när kodandet är färdigt.
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

I ISE används en fil ".ucf" som står för user constraint file. Den definierar bl.a. upp vilka signaler som är kopplade till vilka fysiska pinnar på fpgan.
I ditt fall med lysdioden på ML401 får man titta antigen på ritningen eller i dokumentationen vilken pinne som lysdioden är kopplad mot.
Pinnarna döps typ "AA1" etc. I tutorial-filerna finns säkert med ucf filer som du kan titta i.
En annan viktig sak som oftast görs i ".ucf" filen (som visserligen går att göra inifrån vhdlkoden) är att sätta I/O-typ, dvs om vilken typ av signaler som porten ska använda sig av (LVTTL, LVDS etc)

Fortsätt labba, lovar att det är kul... Jag var helt grön för ett par år sedan men nu gör jag en del ganska fräsiga saker med fpga. (kört med spartan-3, virtex-4 och har fått hem en ML501 med virtex 5 som jag inte hunnit lattja med än)
hygren
Inlägg: 130
Blev medlem: 9 november 2007, 15:52:37
Ort: Göteborg
Kontakt:

Inlägg av hygren »

Har kört en boundary scan nu och får upp:
Device 1 (ACECF, xccace)
Device 2 (PROM2, xcf32p)
Device 3 (FPGA, xc4vfx20)
Device 4 (CPLD, xc95144xl)

Så om jag kör impact direkt mot fpga:n så riskerar jag inte att ta bort demo-materialet?
hygren
Inlägg: 130
Blev medlem: 9 november 2007, 15:52:37
Ort: Göteborg
Kontakt:

Inlägg av hygren »

När jag är inne på project properties och ska välja vilken FPGA jag har så finns inte XC4VFX20 att välja, bara FX12 och tre andra. När jag gör user constraints då för att säga vilka portar som ska till vilka I/O så får jag ju upp portar för FX12 istället. Hur väljer jag FX20???
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

Om du kör impact direkt mot fpgan så förstör du inte demo-materialet....

När det gäller FX20 så verkar det enl denna sida som om gratisversionen av ISE (Webpack) inte stödjer den.
Det ställer till det en del för dig för då måste du ha ISE foundation (den skarpa versionen) för att kunna generera bit-filen till FX20.
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

Hygren, man kan ladda ner en 60-dagars eval version av ISE foundation. Med den kan du köra skarpt mot FX20.
hygren
Inlägg: 130
Blev medlem: 9 november 2007, 15:52:37
Ort: Göteborg
Kontakt:

Inlägg av hygren »

Hittade en ML403 evaluation board istället. Den har FX12. Ska testa mer när jag är tillbaka på jobbet imorrn. Tack för hjälpen!
hygren
Inlägg: 130
Blev medlem: 9 november 2007, 15:52:37
Ort: Göteborg
Kontakt:

Inlägg av hygren »

Jag vill ju inte riktigt köra i 50MHz, skrev ihop den här koden, kommer den funka?

Kod: Markera allt

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity c1hz is
port( clk:in bit; clkout:out bit);
end c1hz;

architecture behavior of c1hz is
begin
process(clk)
variable cnt : integer range 0 to 50000000;
begin
if (clk'event and clk='1') then
if (cnt=50000000) then
cnt:=0;
clkout<='1';
else if (cnt=25000000) then
clkout<='0';
else
cnt := cnt+1;

end if;
end if;
end process;
end behavior; 
Hur kopplar jag ihop olika funktioner med varandra? Ingång till funktionen ovan är ju den vanliga 50MHz-klockan, men ingången på min blinkare vill jag ju ska vara utgången från funktionen ovan. Hur gör jag det?
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

"component" i vhdl är lösningen... Hinner inte skriva ett exempel nu. Men du kan nog hitta det i någon tutorial.
Skriv svar