Zdravim,<br>uz hledim do vhdl prilis dlouho a porad me nenapada jednoduche (i.e. 'krasne') reseni nasledujiciho problemu:<br><br>mam counter ktery ma generickou sirku sbernice. Kdyz vyrabim instanci toho counteru, reknu si jaka ma byt
<br>sirka te sbernice. <br><br>Rad bych implementoval do toho counteru JEDNO PROSTE OR HRADLO ktere bude mit na vstupu vsechny vystupy<br>toho citace. myslel jsem ze tohle::<br><br> process (LEDCnt) is<br> variable orgate : std_logic;
<br> begin -- process<br> for I in LEDCnt'length-1 downto 1 loop<br> orgate := LEDCnt(0) or LEDCnt(I);<br> end loop; -- I<br> ZeroDetect <= orgate;<br> end process;<br><br><br><br>je suprelegantni reseni problemu. samozrejme ze neni. v rtl je jasne videt ze misto N-vstupoveho OR gate to
<br>generuje pouze 2vstupovy. na prvnim vstupu je LEDCnt(0) a na druhem LEDCnt(1). Coz je koneckoncu logicke.<br><br>Takze otazka: jak se takova vec resi?<br><br>zatim jsem to vyresil brute force metodou:<br><br> 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);
<br><br><br>coz je ovsem dost stupidni reseni.<br><br>d.<br><br>