Hallo, ich habe mit vielen Beispielen, die ich so im Internet fand rumproboert, aber nix hinbekommen. Jetzt habe ich mir ein 2-bit PISO selbst geschrieben. Und auch ein TB dazu. Leider bin ich mit VHDL noch nicht soweit, dass ich das zum Simulieren bekomme. Die Grundfunktion eines PISO's ist mir bekannt. Ich wollte versuchen zu simulieren, wieviel Ressourcen ich jeweils benoetige wenn ich die Input Anzahle erhoehe und fange mit einem 2 Bit PISO an. Wenn das funktioniert, wollte ich einfach die Input Anzahl schrittweise erhoehen. Im Anhang sind die beiden Dateien und ich wuerde mich freuen, wenn mir jemand zeigen kann, was da noch fehlt um das simulieren zu koennen. An den Eingaengen sollten jeweils irgendwelche Daten parallel anliegen und am Ausgang sollten sie bitzahl mal schneller rausgeschoben werden. Das ganze kontinuierlich. Falls es interessiert, ich benutze Libero SoC 11.1. Vielen Dank, Mark
Vielleicht sollte man erst mal aussagekräftige Namen nehmen, und nicht nur A,B,S,Y. Und ein paar Kommentare in den Sourcecode, was da überhaupt passieren soll.
Hallo Pitty, was passieren soll hab ich ja schon geschrieben. Parallele Daten die bitweise syncron ankommen zu seriellen Datem umwandeln. Hier nochmal die Ein- und Ausgaenge des PISO's: port( Data : in std_logic_vector(1 downto 0); Enable : in std_logic; Shiften : in std_logic; Shiftin : in std_logic; Aclr : in std_logic; Clock : in std_logic; Shiftout : out std_logic Den Code hat mir die Software erzeugt, nachdem ich mit Smartdesigner ein PISO gebaut habe. A, B, S, Y sind vermutlich irgendwelche internen Signale. Mark
Mark W. schrieb: > Den Code hat mir die Software erzeugt Aha. Und die Testbench auch? Die passt nämlich nicht zum DUT:
1 | # vsim -gui work.serializer_tb |
2 | # ** Note: (vsim-3812) Design is being optimized... |
3 | # |
4 | # ** Error: serializer_tb.vhd(88): (vopt-3473) Component instance "/serializer_tb/P2S_2bit_0 : P2S_2bit" is not bound. |
Außerdem kann da auch nicht viel passieren, da die Eingänge nicht wirklich stimuliert werden:
1 | P2S_2bit_0 : P2S_2bit |
2 | port map( |
3 | -- Inputs
|
4 | en => '0', |
5 | shiften => '0', |
6 | shiftin => '0', |
7 | aclr => '0', |
8 | clk => SYSCLK, |
9 | Data => (others => '0'), |
10 | -- Outputs
|
11 | shiftout => open |
12 | );
|
Duke
Hallo Duke, ja die Testbench wurde auch generiert. Da ich gereade anfange mit VHDL kann ich noch nicht vom Code aud fie Funktion schliessen. Deswegen hatte ich mir das Grundgeruest grafisch erzeugt. ich wuerde auch gerne andere Beispiele nehmen, falls jemand da code zu posten kann. Mark
Hallo, wenn du was an den Port-Definitionen änderst, speicher dir den Stimulus aus deiner aktullen Testbench und generiere diese dann neu, anschließend kopierst du den Stimulus wieder in die neue Testbench. Das ist wesentlicher schneller + fehlerunanfälliger. Gruß Jonas
Hallo, ich hab es jetzt mit einem Multiplexer geloest. Funktioniert auch. Dank meinem neuen Buch R&S, VHDL Synthese, beginne ich es auch zu verstehen. Gruss, Mark
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.