Parallel In Serial Out Shift Register (PISOSR) in VHDL

Persönliche Seite #3272197
Lesenswert?

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
Angehängte Dateien:
Persönliche Seite #3272244
Lesenswert?

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
Gast #3272251
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren