Gast
#2140226
Hallo, ich versuche mal meine Überlegung zu schildern, ich weiß das es das sicherlich schon zu häufe gibt aber selbst verstehen is besser als kopieren. Also meine überlegung ist das ich ein 2 bit Piso benötige um a und b gleichzeitig einzulesen und dann nacheinander auszugeben mitg lsb first. Die Daten liegen bei jeder steigenden Taktflanke an und sollen demensprechen auf dem gleichen takt wieder ausgegeben werden. Mir ist klar das hier eine Verzögerung stattfindet. DIe Daten liegen ja zeitgleich an und erst soll a dann ausgegeben werden einen takt und dann b einen takt. währendessen kommen aber ja schon wieder beim zweiten Takt neue Daten rein. Ich habe mir das wie folgt vorgestellt: Data : in std_logic_vector (1 downto 0); Clock : in std_logic; Serial : out std_logic; ... Signal shift : std:logic_vector (1 downto 0); Process (Clock) Begin IF(Clock'event AND Clock='1') THEN shift<= Data(0) & Data(1); ELSE shift<= shift(0) & shift(1); END IF; END Process; Serial<= shift(0); ich denke aber noch das ich shift<= Data(0) & Data(1) von einer Bedingung abhängig machen muss. Also parallel laden. If(Pl='1') THEN shift<= Data(0) & Data(1); ELSE ... Nur wie übergeb ich die Anweisung wenn er jeden Takt bzw bei jeder steigenden Taktflanke laden soll und dann getaktet nacheinander ausgibt. Irgendwo hänge ich mit dem verstehen bzw umsetzung. Wenn jemand mit mir dies detailiert durchgehen würde, würde ich mich sehr freuen. Vielen Dank


