logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

VHDL: Odwrotne przypisanie bitów w STD_LOGIC_VECTOR

kozak_sc 05 Sie 2009 22:54 2404 2
REKLAMA
  • #1 6861688
    kozak_sc
    Poziom 23  
    Posty: 752
    Pomógł: 25
    Ocena: 118
    Cześć
    Mam pytanko a mianowicie zrobiłem sobie buforek 10 bitowy

    variable DataBuffer:STD_LOGIC_VECTOR(9 downto 0);

    i miałem przypisanie

    DATA_OUT<=DataBuffer(7 downto 0);

    gdzie DATA_OUT : out STD_LOGIC_VECTOR (7 downto 0)

    i zmieniła mi się koncepcja i muszę zrobić tak żeby te 8 bitów było przypisane odwrotnie tzn coś takiego

    DATA_OUT<=DataBuffer(0 to 7);

    i synteza mi wywala DataBuffer can not be used with range to.
    Jako że jestem początkujący w temacie proszę o pomoc. Jak zrobić takie przypisanie bo robienie bit po bicie jest bardzo nieeleganckie.

    Pozdrawiam
    Michał
  • REKLAMA
  • #2 6865477
    Szymon Tarnowski
    Poziom 27  
    Posty: 1292
    Pomógł: 61
    Ocena: 181
    Taka uroda VHDLa że bywa marudny w takich sytuacjach. Chyba najładniej będzie wyglądać przypisanie przy pomocy FOR ... GENERATE.
  • #3 6883704
    _kristos_
    Poziom 1  
    Posty: 1
    To mój pierwszy post tutaj więc witam wszystkich serdecznie.

    Tak jak Pan Szymon pisał, VHDL jest dość restrykcyjny co do zgodności typów, zakresów, itp. Nie widzę potrzeby używania FOR...GENERATE w takiej sytuacji, wystarczy zwykła pętla for
    W miejscu gdzie ma nastąpić przypisanie (7 downto 0) do (0 to 7) wystarczy napisać:
    
    for i in 0 to 7 loop
        DATA_OUT(i) <= DataBuffer(7-i);
    end loop;
    


    Program do syntezy (w moim przypadku XILINX ISE 9.1) stworzył ładny rejestr 8 bitowy, gdzie na wejściu jest (7:0) a na wyjściu (0:7)
REKLAMA