-
Thread
Counter in 2 Process
Hallo, ich übe mich gerade in VHDL und habe ein Problem was ich nicht verstehe. Ich möchte einen count in 2 Process hoch zählen und da bekomme ich immer einen fehler. Könnte mir jmd einen Tipp geben wäre nett [vhdl] signal count
https://github.com/chkrr00k/sram-controller/blob/master/sram.vhd ahhh jetzt sehe ich es --> [vhdl .]VHDL-Code[/vhdl .] mfg Schuby
-
Thread
8-Bit CPU Selbstbau
Und wie willst du es umsetzen? Mit diskreten Logik-Bausteinen a la 74XX-Reihe oder per FPGA und VHDL?
alle die Anfängerfehler in deinem Zieldesign drin. BTW: such mal nach meinen "Postulaten für Anfänger" im VHDL Forum. In diesen Threads kannst du all die Fehler der anderen Anfänger finden, die du auch machen wirst. - https://www.mikrocontroller.net/search?query=Postulate&forums%
-
Thread
Ein wirklich blöder Fehler, den ich nicht sehe
falsch.png) - Quartus sieht keinen Grund, den out-Port irgendwie zu bespassen. Macht man aus [vhdl] led(counter) <= '1'; [/vhdl] [vhdl] led <= std_logic_vector(unsigned'("00000001") sll counter mod 8); [/vhdl] (weist also alle Elemente des out-Ports zu, kommt das richtige raus (richtig.png
paar ganz klassische Anfängerfehler zum "Selber nachmachen" finden will, der sucht einfach nach "Postulate": https://www.mikrocontroller.net/search?query=Postulate&forums%5B%5D=9 Lutz Locus schrieb im Beitrag #7292879: > weil Doppelminus ja grade bei VHDL eine kommentarzeile einleitet .. Dagegen
-
Thread
Unterschied zwischen übergabe nach Name und Übergabe nach Position
, ODD); K3 : ZWEI_BIT_PARITY portmap (C(1), A(3), GERADE, UNGERADE); end architecture; [/vhdl]
Notfallseelsorge schrieb im Beitrag #7136970: > a)..... und > b)..... Muss man halt einfach so als Postulat hinnehmen. Ich sag meinen Praktikanten immer: "mach mal eine VHDL-Beschreibung davon", er kapiert dann, was ich meine und programmiert frohgemut drauflos und zeigt mir stolz sein Programm, wenn
-
Thread
Unterschied zwischen cast und convert bei VHDL Datentypen?
Was wird denn bei "cast" und "convert" von VHDL Datentypen anders gemacht? Danke :D
darauf aufbauende wie signed und unsigned nicht einfach nach Integer casten. Und ja, die meisten VHDL-Tutorials sind grottenschlecht und auf dem Stand von VHDL-87 oder VHDL-93.
-
Thread
Taster - VHDL
Fatih F. schrieb im Beitrag #6671165: [vhdl] process if (falling_edge (buttonpress) ) then tick = '1'; else tick = '0'; end if; end process; [/vhdl] Wechselerkennung funktioniert in echter Hardware anders. Signal-Zuweisung
einsynchronisieren" und "Flankenerkennung". Und noch ein Tipp: such hier im FPGA-Forum nach "Postulate": https://www.mikrocontroller.net/search?query=postulate&forums%5B%5D=9&max_age=-&sort_by_date=1 Versuche, diese Postulate zu verstehen und beachte sie! Im Besonderen beachte die Stelle, wo steht
-
Thread
Entwicklung eines RAM mit Interface - Probleme mit der Synthese/Impl.
Leben nicht: [vhdl] if(falling_edge(nWE) or falling_edge(nOE)) then [/vhdl] Alles, das mit _edge() oder 'event beschrieben wird, ergibt ein Flipflop. Und das, was du da beschreibst, ist ein "Dual-Clock-Input-Flipflop
; [/vhdl] BTW: Du kannst Eingängen keinen Defaultwert geben: [vhdl] nCS : in std_logic := '1'; -- low-active Chip-Enable of the SRAM device; defaults to '1' (inactive)
-
Thread
Hilfe bei PWM Takteiler
Coolrunner II XC2C64A, der Eingangstakt beträgt 150 MHz. Ich bin absoluter Anfänger bezüglich VHDL und komme dort leider grade nicht weiter. Vielen Dank im voraus.
> Anhängend mein Code. So wie du mit dem PWMClk generiert man keine Takte. Such mal nach "Postulate" hier im Forum. Eines davon ist: es gibt (für Anfänger) nur 1 einzigen Takt im Design. Und das ist der Quarzoszillator, der aussen angeschlossen ist. > Beide wait until .. in einen Process packen
-
Thread
State Machine zwei oder ein Prozess
HDL_Coding_Techniques/state_machines/state_machines_2.vhd ein konkretes Beispiel. Der erste Prozess enthält ein [vhdl]rising_edge(clk)[/vhdl] Statement (und "clk" in der Sensitivity-Liste), dem zweiten Prozess fehlt dieses Statement; er ist daher kombinatorisch (hier steht dann "state" in der Sensitivity-Liste).
rising_edge()'-Scopes. Der asynchrone Reset ist der einzige Fall, wo man so etwas tun darf ohne vom VHDL-Gott mit einem Blitz gesteinigt zu werden. Ob das in anderen Fällen noch synthesefähig ist, habe ich nie probiert. Es gibt keinen rationalen Grund, das zu tun.
-
Thread
Select auf fallende und steigende Flanke
Markus W. schrieb im Beitrag #5401284: > Simulationsmässig geht es. Das ist der Trick an VHDL: in der Simualtion kannst du alles machen. Umsetzbar in reale Hardware sind dagegen bestenfalls 10% (oder eher nur 5%) der VHDL-Sprachkonstrukte. Welche in Hardware abgebildet werden können, das steht
... when others => -- keine Flanke null; end case; end process; [/vhdl]
-
Thread
Timer asynchron setzten
Ich vermute, dass es mit dem Pulsprinzip besser geht. Der entscheidende Punkt ist der: [vhdl] process begin wait until rising_edge(clk); if (pulse_ms='1') then speakerSignal <= not speakerSignal; end if; end process; [/vhdl] Getaktet wird mit der vollen Systemfrequenz
der für die Verhaltenssimulation bestimmt ist, vorsorglich eine Laufzeit einzubauen. Sowas also: [vhdl] process (clk) begin if rising_edg(clk) then Ausgang <= Eingang after 10ns; end if; end process; [/vhdl] Das hatten wir letzthin im https://www.mikrocontroller.net
-
Thread
FPGA-Benutzung als Bastler sinnfrei?
Seite vorbei. Ist quasi meine kleine VHDL-Bibel geworden. http://www.lothar-miller.de/s9y/
Miller an einigen inhaltlichen Punkten herummäkelt. Das liegt aber wohl an seinen Dogmen^W äh Postulaten...
-
Thread
FPGA dazu geeignet?
Dann solltest du bald mit den ersten Spielereien auf dem FPGA anfangen. Und mein Vorschlag: nimm VHDL (dann bekommst du hier am ehesten Hilfe) und such hier im Forum nach "Postulate", dann findest du schon mal die üblichsten Anfängerprobleme... ;-)
-
Thread
ClockDivider nicht synthetisierbar (VHDL/FPGA Anfänger)
Interessant, es liegt an dem "unglücklichen" elsif. Damit gehts: [vhdl] if counter = 0 then clk_en <= '1'; else clk_en <= '0'; end if; [/vhdl] Damit gehts nicht: [vhdl] if counter = 0 then clk_en <= '1'; else counter
Mist, meinte natürlich: [vhdl] if counter = 0 then clk_en <= '1'; elsif counter = 1 then clk_en <= '0'; end if; [/vhdl]
-
Thread
Drehrichtungserkennung
Ton0500 übergeben Ton1000 <= y; -- Signal y an Ton1000 übergeben end Behavioral; [/vhdl]
falling_edge (takt10hzpb) then t10hzpb1<=not t10hzpb1; end if; Such mal nach "Postulate" hier im Forum. Eines davon ist: nur 1 Takt im ganzen Design. Und jede Missachtung eines der anderen Postulate führt ebenfalls zu Fehlern, die eine Simulation nicht findet...
-
Thread
iCEstick/VHDL
Hab' mir den iCEstick von Lattice besorgt, um damit VHDL zu erlernen. Ich hab' zunächst mal ein lauffähiges, einfaches Beispiel in VHDL für den iCEstick vermisst (anscheinend stellt Lattice nur Beispiele in Verilog für den iCEstick zur Verfügung) und jetzt
Beispiel hier zum Thema "don't care" = '-': [pre] One definite drawback of using don’t cares in your VHDL code is that some synthesizers and some simulators often times do not handle them correctly. Most VHDL-type textbooks recommend not to use don’t care symbols in your VHDL models, so beware. [/pre
-
Thread
Assembler wieder auf dem Weg nach vorn Gesperrt
was andere schreiben hat mit dem 8-Bit-MSR-Thema nichts zu tun. Und es natürlich klar, daß sein Postulat "es get nicht besser" von anderen wiederlegt werden muß. Auf seiner Forums-Homepage nennt er sein Interesse an Naturwissenschaft. Ein solcher würde dieses C-Programm selber schreiben, um nachzuweisen
Erfahrung in 10 Jahren Hobby/Studium/Beruf: Sehr viel C, viel C++, AVR-Assembler, MIPS-Assembler, VHDL, Softwareentwicklung für Supercomputer, Skriptsprachen fürs Web. Und du? Ein paar Hobby-Projekte in Assembler, Ende der Fahnenstange. Moby A. schrieb im Beitrag #4381848: > Wie kommst Du auf den
-
Thread
4, bzw. 16 verschiedene Zufallszahlen
Das hier ist mehrfach kritisch: [vhdl] if (btnC = '0') then [/vhdl] 1. Tasterprellen (unschön) http://www.lothar-miller.de/s9y/categories/18-Flankenerkennung http://www.lothar-miller.de/s9y/categories/5-Entprellung 2. nicht synchronisierter
ist das Buch von Reichardt/Schwarz (VHDL-Synthese). Und auf Lothars Seite findest du sehr viele Beispiele, wie man Problemstellungen mit VHDL geschickt angeht, und welche beliebten Fehler man unbedingt vermeiden sollte. Wenn ich mich richtig
-
Thread
FPGA Diode ansteuern
: http://www.lothar-miller.de/s9y/archives/16-Takt-im-Prozess.html BTW2: ein "after" in einer VHDL-Beschreibung für die Synthese ist sinnlos und verwirrend BTW3: ich wiederhole an dieser Stelle mal gleich das Postulat für Anfänger: Ein Design hat genau 1 Takt, der immer auf die selbe Flanke reagiert
sind immer "aktiv". Mein schlimmer Verdacht: Deine Vorstellungen von der Hardwarebeschreibung (VHDL ist keine Programmiersprache!) sind noch grundlegend falsch... BTW: VHDL Code bitte als *.vhd Datei anhängen. Dann gibts Syntaxhighlighting gratis.
-
Thread
Wie schwer ist VHDL und FPGA zu erlernen?
Operator - Rechne niemals mit uneingeschränkten (std_logic) Vektoren Und dann das, was ich "meine Postulate" nenne (einfach hier im Forum mal danach suchen). Siehe zum Thema "VHDL ist geschwätzig und umständlich" das da und den darin verlinkten Thread: http://www.lothar-miller.de/s9y/archives/88-VHDL-vs
https://www.doulos.com/knowhow/vhdl_designers_guide/a_brief_history_of_vhdl/
-
Thread
2 Phasen Takt, Wegimpulsverzögerung
Fehlermeldungen? BTW: mit den pasenden Tags wird der Code schön formatiert. Probiers mal aus: [pre] [vhdl] dein VHDL-Code [/vhdl] [/pre]
Fehlermeldung. > BTW: mit den pasenden Tags wird der Code schön formatiert. > Probiers mal aus:[vhdl] > dein VHDL-Code > [/vhdl] Merci für die ganze Hilfe :-)
-
Thread
clock Generierung aus PWM Signal
Zahlen. Wenn das Eingangssignal schon jittert, was ist ann "absolut" genau? Ein Tipp: such hier im VHDL-Forum mal nach "Postulate".
Antwort! Aufgrund dieses Tipps: Lothar Miller schrieb im Beitrag #3867884: > Ein Tipp: such hier im VHDL-Forum mal nach "Postulate". lese ich bereits: Lothar Miller schrieb im Beitrag #3867926: > Zum Eintakten das da: > http://www.lothar-miller.de/s9y/categories/35-Einsynchronisieren Danke für
-
Thread
Kein Bild bei eigenem VGA
'0'; end if;[/vhdl]
Ja genau denn da [vhdl]signal x : integer range 0 to 16; signal y : integer range 0 to 20;[/vhdl] kann x hier nur maximal 16 sein [vhdl]if(x < 639) then x <= x + 1; end if;[/vhdl] und y nur maximal 20 [vhdl
-
Thread
DE0-Nano Board mit Ausgang von externen Sensoren anschließen (optischer Sensor)
. Warum legst Du die Ausgänge an denen die LEDs nicht leuchten sollen nicht einfach auf '0': [vhdl] LED2 <= '0'; LED3 <= '0'; LED4 <= '0'; LED5 <= '0'; LED6 <= '0'; LED7 <= '0'; [/vhdl] Duke
mir erst noch aneignen. Kann jemand ne schön leicht verdauliche Literatur zum einstiegt in die VHDL Programmierung mittels Quartus II empfehlen? Oder eine generelle Literatur zum Thema VHDL? Viele Grüße
-
Thread
FPGA Programmieren
Julian Franz schrieb im Beitrag #3687518: [VHDL] > blinker_o <= cnt_r; > blinker_oo<= not cnt_f; [/VHDL] Wie soll das funktionieren? Du weist einen 23 bit lange Vektor einem Bit zu.
nicht gleich einen Integer als Zähler und warum nicht die numeric_std? Such hier im Forum mal nach VHDL und Postulate, da dürfte schon mal das meiste drinstehen, was ein Anfänger beachten muss. Und dann wären da noch ein paar Eckdaten interessant: welche Eingangsfrequenz? Welche Taktfrequenz und welche
-
Thread
RS232 Daten Empfangen, Vergleichen, auf Monitor ausgeben (SPARTAN 3)
Uart wieder raussenden. Hast ja schon alle Kabel dran. Wie das Timing für einen VGA-Monitor in VHDL aus sieht habe ich auf meiner Homepage. Auch mit Simulation testbench. http://www.dossmatik.de/vhdl.html
Tipp: such im Forum hier mal nach Postulate und denk drüber nach. http://www.mikrocontroller.net/topic/197296 Insbesondere über das erste Postulat, das jedes Anfängerdesign genau 1 Takt hat. Und selbst ein Profi versucht möglichst nahe
-
Thread
Frage zu variable counter : std_logic_vector(2 downto 0) := "100";
case; counter := counter + 2; end if; end process; end Behavioral; [/vhdl]
Reinhard J. schrieb im Beitrag #3417782: > in meinem ersten VHDL Projekt Und das fängt schon mal gut an: [vhdl] variable state : std_logic_vector(1 downto 0); variable counter : std_logic_vector(2 downto 0) := "100"; [/vhdl] Siehe den
-
Thread
Drehgeber (rotary encoder) - VHDL
Also der zeitliche Ablauf wie ich das bisher glaubte verstanden zu haben: [vhdl]wait until rising_edge(clk);[/vhdl] Es wird auf die steigende Taktflanke gewartet. [vhdl]if count0 < 255 and encin(0) = '1' then elsif count0 > 0 and encin(0) = '0' then end if;[/vhdl
if Bedingung, das ist ja Bool, auch zu anderen Zeiten als zur steigenden Flanke? Obwohl ich ja [vhdl]wait until rising_edge(clk);[/vhdl] geschrieben hatte?
-
Thread
Verständnissproblem sequeziell/parallel
Taster auf meinem Entwicklungsbord) > ... > wait until rising_edge(t); Aua... Such mal nach "Postulate" hier im VHDL-Forum... Ok, die Karten werden neu gemischt: spinne schrieb im Beitrag #3285911: [vhdl] architecture Behave of MUL is signal b : std_logic; begin process begin
meinem Entwicklungsbord) >> ... >> wait until rising_edge(t); > Aua... > Such mal nach "Postulate" hier im VHDL-Forum... Da wird wahrscheinlich das "Einsynchronisieren" gemeint? Aber ich habe gar kein anderen Taktsignal. Oder liegt mein Fehler woanders?..
-
Thread
UART-Transmitter in VHDL
tick <= '0'; end if; end if; end if; end Process; end Behavioral; [/vhdl] und hier der Code für den Transmitter [vhdl] entity Transmitter is Port ( din : in std_logic_vector (7 downto 0); send : in STD_LOGIC; clk : in STD_LOGIC;
state <= Warte; end if; end case; end if; end process; end architecture; [/vhdl] und die Gesamtschaltung: [vhdl] entity UART_Transmitter is Port ( din : in std_logic_vector (7 downto 0); send : in STD_LOGIC; clk : in STD_LOGIC;
-
Thread
Fehler während Synthese -> Place:1108 (ISE)
/categories/42-RS232 in der Zeile: [vhdl] if (rxd_sr(3 downto 2) = "10") then -- fallende Flanke Startbit [/vhdl] gemacht wird. Siehe dazu http://www.lothar-miller.de/s9y/categories/18-Flankenerkennung http://www.lothar-miller.de
erstmal auffällt, ist dass Deine lösung zum > RS232-senden/-empfangen ungefähr ein 10-tel von meinem VHDL code ist. > Auch die Flankenerkennung habe ich umständlich über 2 processe gelöst > (einen für steigend und einen für fallend). Das ist es, was VHDL etwas zu Unrecht in den Verruf bringt, eine
-
Thread
Pinbelegung?!
0'; end if; end if; end process; Servo<= ServoTakt; end ServoPuls; [/vhdl]
Regel 1: Der Clock ist heilig. [vhdl] process (Takt10u) begin if (Takt10u='1' and Takt10u'event) then [/vhdl] daraus mach mal ganz schnell: [vhdl] process (clkM) begin if rising_edge(clkM) then if Takt10u
-
Thread
Process wird kontinuierlich durchloffen - Altium LiveDesign Board
case; end if; end if; END Process; -- Ausgabe hier weggelassen end Behavioral; [/vhdl]
Daniel Schindler schrieb im Beitrag #2940240: [vhdl] Process(usignal) BEGIN if(test = '1') then if (reset='0') then [/vhdl] Diese Sensitivliste ist unvollständig --> die Simulation passt nicht zur Realität... :-o > Nach einigem Stöbern
-
Thread
Mehrfache Instanziierung ein Komponente
Gefahr gesagt? Wichtig (ganz wichtig!) ist aber, dass dir klar ist: >>>> VHDL ist nicht FPGA! <<<< In einem VHDL Kurs kannst du vieles lernen, was VHDL kann. Und vieles davon kannst du oder darfst niemals in einem FPGA umsetzen. Ich schreibe dir eine geläufige VHDL-Zeile, die kein Synthesizer auf ein FPGA bekommt: [vhdl] wait for 1 ms; [/vhdl] EDIT: zu spät abgeschickt... :-(
-
Thread
-
Thread
Frage zur Erstellung eines VHDL - Codes
soviel gegoogelt, aber ich finde keine Erklärung dafür.. Sieh dir einfach mal hier im Forum alle die VHDL-Threads durch, wo du das Wort "Anfänger" oder "Postulate" findest... ;-) Christian Knabe schrieb im Beitrag #2719907: > Handelt es sich dabei denn um einen FlipFlop o. Ä.? Bei Xilinx ist das ein
nicht ;) Ein großer Schrit ist schon einmal, wenn du den Takt korrekt beschreibst. Also anstelle [vhdl] C='1' [/vhdl] wäre [vhdl] rising_edge(C) [/vhdl] zu schreiben. Die erste Beschreibung sagt: solange das Signal C '1' ist, dann übernehme D nach Q, das ist wie Lothar schon sagte ein Latch und hat
-
Thread
Zustand von halbiertem Takt abfragen: Setup/Hold okay?
150MHz-Takt? Warum verwendest du nicht den 75MHz-Takt direkt? Ich würde dein Beispiel so schreiben: [vhdl] flipflop <= clk75; [/vhdl] Ach, so hattest du das nicht gemeint? Was fehlt dann an deinem Beispiel, damit man dein Problem nachvollziehen könnte? [vhdl] process(Clk75) begin if rising_edge
: [vhdl] if rising_edge(Clk75) then ... elsif falling_edge(Clk75) then ... end if; [/vhdl] Und der Witz: das geht sogar, wenn man weiß, was dabei erlaubt ist... ;-) Das hatten wir letzhin im
-
Thread
Parallel oder sequenziell
@ VHDL Anfänger Es gibt mir ein wenig zu denken, dass hier ein /next_state/ in einer Ein-Prozess-Beschreibung auftaucht: [vhdl] if (sck'event and (sck='1') then : NextState <= S1; [/vhdl]
VHDL Anfänger schrieb im Beitrag #2667859: > ist eine Schreibweise zu empfehlen? Such mal hier im Forum nach meinen Postulaten... Die Zusammenfassung: es gibt in einen (Anfänger-)Design nur 1 Takt, das
-
Thread
kruder Fehler bei FPGA-Programmierung (ISE WEBpack-Schematic)
posten. :D Eine Frage hätte ich noch. Wir wollen noch 4-Bit-Busse zum Setzen der Werte verwenden. [vhdl]Port (signal set_s1 : in unsigned(3 downto 0));[/vhdl] Reicht es da aus, einfach auf diese Busse zu reagieren? [vhdl]Set: process (set_s1) begin[/vhdl] Oder brauchen wir noch ein enable-Wire? (set_s1
ganze Design /synchron/ machst, hat in der Sensitivliste nur der Takt was zu suchen. Such mal nach "VHDL Postulate" hier im Forum... ;-) https://www.mikrocontroller.net/search?query=vhdl+postulate Und leih dir mal die Bücher da aus: https://www.mikrocontroller.net/topic/221103#2213592
-
Thread
process innerhalb eines prozesses starten
da an: http://www.lothar-miller.de/s9y/archives/61-Lauflicht.html Such mal hier im Forum nach "VHDL Postulate", du wirst ein paar solche Anfängerthreads finden...
kombinatorische Schleifen/Zähler bauen? Meine (getakteten) Prozesse sehen üblicherweise so aus: [vhdl] process begin wait until rising_edge(clk); : end process; [/vhdl] Der Vorteil: keine fehlerhafte Sensitivliste möglich. Ok, VHDL2008 gibts auch... ;-)
-
Thread
Aufruf einer CLK-gesteuerten FSM mittels einer Buttonflanke
auf dem Board An-Aus-An-Aus-An-Aus gehen, also 101010. Bisher dachte ich da an folgendes: [vhdl] Procedure Sequenz ( signal CLK_2Hz : in STD_LOGIC; signal State : inout BIT_VECTOR; signal LED1 : out STD_LOGIC) is begin if (CLK_2Hz='1' and CLK_2Hz'event) then
Software wird die Schritt für Schritt x-mal nacheinander (sequentiell) abgearbeitet. In Hardware (VHDL) produziert eine for-Schleife aber x-mal die selbe Baugruppe. In der Hardware wird die komplette Schleife zum selben Zeitpunkt abgearbeitet.
-
Thread
Probleme mit einfachem VHDL-Modul
nichts anfangen kann. Was habe ich getan? Ich habe ein Modul mit folgender Entity erstellt: [VHDL] entity mod27 is Port ( C : in STD_LOGIC; testClock : in STD_LOGIC; Bits : out STD_LOGIC_VECTOR (4 downto 0)); end mod27; [/VHDL] Das Modul soll lediglich die Clock
In der Simulation funktioniert alles wunderbar. Das zugehörige UCF-File sieht wie folgt aus: [VHDL] NET "C" LOC = "B8"; NET "Bits<0>" LOC = "J14"; NET "Bits<1>" LOC = "J15"; NET "Bits<2>" LOC = "K15"; NET "Bits<3>" LOC = "K14"; NET "Bits<4>" LOC = "E16"; [/VHDL] ------------------------
-
Thread
Taktsignal in der Mitte der "High-Phase" abtasten
bist an der falschen Ecke unterwegs. Du weißt es nur noch nicht... Mit rising_edge() werden in VHDL keine Taktabfragen sondern einfach nur D-Flipflops beschrieben. Hier nochmal meine Postulate: [pre] Ein Design (insbesondere ein Anfängerdesign) hat genau 1 Takt, der immer auf dieselbe Flanke
-
Thread
Frequency divider Ausgang als Clock
end if; end if; end process; outClk <= clkState1 XOR clkState2; end Behavioral; [/vhdl]
.. [vhdl] outClk <= clkState1 XOR clkState2; [/vhdl] Aua, ein Takt aus einer kombinatorische Verknüpfung. Das kann gern mal Glitches geben! Du solltst einen Takt für (externe) Komponenten nicht aus
-
Thread
ADCS7476 Timingprobleme
Flanke sein. Das Problem ist jetzt, wenn ich einen Prozess schreibe dann muss ich die Daten bei [vhdl]falling_edge(clock)[/vhdl] einlesen. Aber wie setzte ich CS auf low? Denn wenn das auch bei einer fallenden Flanke gemacht wird, dann ist die erste Flanke nach dem Chipenable eine fallende. Hat da
braucht? Sieh dir mal den http://www.mikrocontroller.net/topic/197296 an. Die dort festgelegten Postulate gelten auch für dich... ;-)
-
Thread
State machine für SPI
schrieb im Beitrag #2357400: [vhdl] if (rising_edge(clk)) then -- eine STEIGENDE Flanke von clk SPI_SCK <= clk AND SPI_CLK_EN; -- --> was meinst du: welchen Pegel hat clk an dieser Stelle IMMER? [/vhdl] Mir ist
Ich finds in VHDL angenehm, signale und variablen klein, constante, typen und generics groß zu schreiben. Daran erkenne ich immer obs etwas veränderliches oder konstantes ist. Ist in VHDL ein bisschen geschmacksache
-
Thread
vhdl: signalinitialisierung funktioniert nicht
danny w. schrieb im Beitrag #2336534: [vhdl] process(drehzahl) -- wenn sich drehzahl ändert, wird teiler verhätlnis über for-schleife neu berechnet [/vhdl] Dass du dich da mal nicht täuschst. Was meinst du, wie dieser Prozess umgesetzt wird
dass der Vergleicher 256 mal parallel abgebildet wird. Du hast deinen Prof falsch verstanden. C und VHDL sind was völlig anderes. In VHDL beschreibst du nur Logik-Elemente und FlipFlops.
-
Thread
VHDL - For-Schleife
not(button_control); end if; end loop; end if; end process; [/vhdl]
Synthese mit /wait until/ nur Flanken auswerten... Das hier könnte z.B. leicht Probleme machen: [vhdl] wait until a='0' and b='1' and cnt=1200; [/vhdl]
-
Thread
VHDL Freeware (LGPL) Synthese Werkzeug
Alexander Kiebler schrieb im Beitrag #2317957: > gutes VHDL-Synthese-Werkzeug. Also keinen Simulator, Decius schrieb im Beitrag #2318270: > der Opensource VHDL-Compiler GHDL Wie war das noch mal? Zitat aus http://packages.debian.org/de/squeeze/ghdl
kann nicht alles statisch machen. Darum geht es nicht. Es geht darum das damit so gut wie *alle* VHDL-Anfänger auf die Nase fallen. Jeder hat vorher schonmal Software gemacht und das Verhalten von Signalen und Variablen ist in VHDL nun mal komplett anders. Wenn man sich erstmal auf die Signale konzentriet
-
Thread
Aktionen bei steigender und fallender Flanke durchführen
Guten morgen Ich bin immer noch dabei mich in VHDL einzugewöhnen (Xilinx, Spartan 3). Im Moment bin ich dabei, einen Übertrager für SPI zu schreiben. Damit der SPI Takt unabhängig vom Systemtakt verwendet werden kann und weil ich auch ganz gerne einen
Regeln muß fundiert begründet werden können. [/pre] Warum schaffe ich es, in meinen Designs diese Postulate meist einzuhalten? Und, falls ich eine Regel verletze, immer einen guten Grund dafür habe?