Discusie FPGA

Jochem

Golden Member

Ik denk dat je gezien je vragen eens moet beginnen met een simpel voorbeeld, zoals een blink-a-led...

Heb geduld: alle dingen zijn moeilijk voordat ze gemakkelijk worden.

Ik denk dat ik die stap wel voor bij ben, Nieuw programma led met input switch. Daarna naar de pin planner en daar zet je de pinnen goed.
Bij het board mee geleverde source staan de pinnen al goed.

Jochem

Golden Member

Laat het stukje VHDL van die blink-a-led eens zien dan?

Ik zie ook een 3 digit 7-segment display. Dat is een leuke tweede stap, al helemaal als hij gemultiplexd is. Gewoon zorgen dat er met elke druk op een knop een cijfer opgehoogd wordt. Met debouncing natuurlijk.

[Bericht gewijzigd door Jochem op 18 februari 2020 17:57:15 (66%)]

Heb geduld: alle dingen zijn moeilijk voordat ze gemakkelijk worden.
bprosman

Golden Member

Bij het board mee geleverde source staan de pinnen al goed.

Bij Xilinx gaat dat met een .UCF bestand.

De jongere generatie loopt veel te vaak zijn PIC achterna.

Op 18 februari 2020 16:38:32 schreef benleentje:
Ook Microcontroller tegenwoordig geen hobby spul is maar ook professioneel word toegepast

Geen enkele micro is ooit bedacht voor hobby. Het is allemaal voor professionele toepassingen. En daarnaast was het ook leuk voor hobby toepasbaar. Sinds de AVR voor het Arduino platform is gebruikt ging het helemaal los in de hobby hoek, maar AVR wordt evenzoveel in professionele producten gebruikt. En dat was een uitstapje naar micros.

TS, wat ga je nou met die VGA poort doen dan? Wat is je beeld daarbij? PInnen moet je uiteraard aanpassen naar de hardware die je hebt, en het gebruikte device ook. Misschien ook wel de i/o standaard.

Xilinx Vivado gebruikt een XDC file voor constraints. UCF was ISE. ... maar de TS heeft geen Xilinx maar Intel.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

@ flip flop daar heb je helemaal gelijk in.

Ik doelde meer op het feit dat er lange tijd een groot gat zat tussen de rekenkracht van een cpu en micro controller en dat dat gat steeds kleiner word.

nahh... In de begintijd van de microcontrollers waren die dingen helemaal niet zo slap t.o.v. een CPU. De Intel 80186 is een tijd lang een populaire microcontroller geweest.... Zelf bedenken hoe dat zich verhoudt met de PCs van die tijd. :-)

Ik heb de indruk dat ze later, en dan vooral Atmel en Microchip gedacht hebben: Met 20MHz heb je toch genoeg? Waarom zouden we de boel sneller maken? Tijden lang kon je met een beetje "zorg" een Atmel tot bijna 40MHz opdraaien terwijl ie het bleef doen. Maar atmel bleef die dingen als "max 20" verkopen.

[Bericht gewijzigd door rew op 20 februari 2020 08:57:55 (39%)]

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Jochem

Ik zie ook een 3 digit 7-segment display. Dat is een leuke tweede stap

Ja met het 7-segment display ben ik nu bezig , En ik vindt het zeker niet gemakkelijk ,Ik heb nu al gezien dat er meerdere manieren zijn om dit voor elkaar te verkrijgen.

bprosman

Golden Member

Op Udemy staan een paar mooie online trainingen. Zijn niet gratis maar wel goed.

De jongere generatie loopt veel te vaak zijn PIC achterna.

Met heel veel pijn en moeite heb ik van een Youtube filmpje een script over getypt.
Wel veel van geleerd !
Dit komt er nauwkeurig die ; en spaties in VHDL.

Gisteren is mijn board binnen gekomen , Test led knippert.
Alleen die JTAG proggrammer (imitatie) van Altera is helaas nog niet afgestuurd.Na afsturen duurt het nog 30-50 dagen voor ontvangst.

Zoiets heet geen "script". Dat refereert meer naar software en dat is het, nogmaals, niet.
Die ; op het eind is uiteraard wel belangrijk, net als bij veel andere talen. Maar spaties? Dat herken ik niet zo. Ja ok, aan elkaar getypt zal het niet werken nee.

[Bericht gewijzigd door flipflop op 20 februari 2020 21:57:59 (48%)]

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Jochem

Golden Member

Ik zie ook niet helemaal in wat het probleem is.
Althans, deze syntactische futiliteiten lijken mij nou niet het voorbeeld van wat er nauwkeurig moet in VHDL. Dan kom je nog wel andere dingen tegen vrees ik.

Op 18 februari 2020 17:52:13 schreef Jochem:
Laat het stukje VHDL van die blink-a-led eens zien dan?

Ik ben nog steeds benieuwd...

Heb geduld: alle dingen zijn moeilijk voordat ze gemakkelijk worden.

Op 20 februari 2020 21:10:56 schreef jos3:
.Na afsturen duurt het nog 30-50 dagen voor ontvangst.

Dat varieert ENORM. Gisteren binnengekomen: 12 feb besteld. Gisteren binnengekomen 22 jan besteld. 11 feb binnen 6 jan besteld.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
trix

Golden Member

ik begrijp dat een FPGA niet zoals een micro controller stap voor stap werkt, maar meer "alles tegelijk".
hoe gaat dat dan met tijd kritische dingen zoals een stappen motor b.v.

eigenwijs = ook wijs

Sequentiële processen kun je in goede banen leiden met een FSM: Finite State Machine. Van 1 staat kun je dan naar een andere, onder te bepalen voorwaarden.

vhdl code:


type stepper_motor_fsm is (idle, right_1, right_2, right_3, right_4, left_1, left_2, left_3, left_4);
signal stepper_motor_state: stepper_motor_fsm:= idle;
signal stepper_clock: std_logic:= '0';
signal left_signal: std_logic:= '0';
signal right_signal: std_logic:= '0';
signal stepper_out: std_logic_vector(3 downto 0):= (others => '0');

een_of_ander_proces: process (stepper_clock)
begin
 if stepper_clock'event and stepper_clock = '1' then
  case stepper_motor_state is
   when idle =>
    if left_signal = '1' then
     stepper_motor_state <= left_1;
    end if;
    if right_signal = '1' then
     stepper_motor_state <= right_1;
    end if;
   when left_1 =>
    stepper_motor_state <= left_2;
    stepper_out <= "1000";
   when left_2 =>
    --...bla bla bla code enzo
   when others =>
    stepper_motor_state <= idle;
  end case;
 end if;
end process een_of_ander_proces;

Ook kun je bijvoorbeeld door middel van een teller bepaalde vordering in een proces bijhouden.

https://i.redd.it/35rxjikgfai41.png

1 electron per seconde = 16 atto ampere!

Tijdkritische dingen gaan juist veel beter met digitale logica. Je hoeft immers niet steeds (zoals bij een micro) te wachten totdat ie een keer bij de juiste instructie langs komt.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein