vhdl: or vsech signalu

dejfson dejfson@gmail.com
Pátek Říjen 19 15:03:36 CEST 2007


Zdravim,
uz hledim do vhdl prilis dlouho a porad me nenapada jednoduche (i.e.
'krasne') reseni nasledujiciho problemu:

mam counter ktery ma generickou sirku sbernice. Kdyz vyrabim instanci toho
counteru, reknu si jaka ma byt
sirka te sbernice.

Rad bych implementoval do toho counteru JEDNO PROSTE OR HRADLO ktere bude
mit na vstupu vsechny vystupy
toho citace. myslel jsem ze tohle::

  process (LEDCnt) is
    variable orgate : std_logic;
  begin  -- process
    for I in LEDCnt'length-1 downto 1 loop
      orgate := LEDCnt(0) or LEDCnt(I);
    end loop;  -- I
    ZeroDetect <= orgate;
  end process;



je suprelegantni reseni problemu. samozrejme ze neni. v rtl je jasne videt
ze misto N-vstupoveho OR gate to
generuje pouze 2vstupovy. na prvnim vstupu je LEDCnt(0) a na druhem
LEDCnt(1). Coz je koneckoncu logicke.

Takze otazka: jak se takova vec resi?

zatim jsem to vyresil brute force metodou:

  CntEnable <= LEDCnt(0) or LEDCnt(1) or LEDCnt(2) or LEDCnt(3) or LEDCnt(4)
or LEDCnt(5) or LEDCnt(6) or LEDCnt(7) or LEDCnt(8) or LEDCnt(9) or
LEDCnt(10) or LEDCnt(11) or LEDCnt(12) or LEDCnt(13) or LEDCnt(14) or
LEDCnt(15) or LEDCnt(16) or LEDCnt(17);


coz je ovsem dost stupidni reseni.

d.
------------- další část ---------------
HTML příloha byla odstraněna...
URL: http://list.hw.cz/pipermail/hw-list/attachments/20071019/1c110a05/attachment-0002.htm 


Další informace o konferenci Hw-list