co je CONV_INTEGER(state_reg)? je to to same jako to_integer(unsigned(state_reg)) ?<br><br>potrebujete aby to jelo na 240MHz?<br><br>ja takove veci resim obvykle jako deklaraci konstantniho recordu a pouzivam ten record jako informaci jak vygenerovat VHDL kod pomoci genericu. Staci to pole a pocet polozek v poli a je to.<br>
<br>mimochodem - dival jste se na RTL co Vam vygeneruje za schema v obou pripadech?<br><br><br><br><br><div class="gmail_quote">2011/2/1 Marek Sembol <span dir="ltr">&lt;<a href="mailto:hwm.land@gmail.com">hwm.land@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Prosim o pomoc s nasledujicim problemem. Doufam ze fragment meho kodu<br>
bude stacit:) Mam (v ramci jednoho procesu) konstrukci:<br>
                case state_reg is<br>
                when &quot;0000&quot; =&gt;<br>
                        if (trigfiltered_reg(0) = &#39;1&#39;) then<br>
                                state_next &lt;= regset(0)(nextStateRange&#39;range);<br>
                        end if;<br>
                when &quot;0001&quot; =&gt;<br>
                        if (trigfiltered_reg(1) = &#39;1&#39;) then<br>
                                state_next &lt;= regset(1)(nextStateRange&#39;range);<br>
                        end if;<br>
-- a tak dale a tak dale az po<br>
                when &quot;1111&quot; =&gt;<br>
                        if (trigfiltered_reg(15) = &#39;1&#39;) then<br>
                                state_next &lt;= regset(15)(nextStateRange&#39;range);<br>
                        end if;<br>
                when others =&gt; null;<br>
                end case;<br>
<br>
Vysledek je funkcni, pise mi to max. hodiny 240MHz.<br>
Myslel jsem, ze konstrukce:<br>
                        if (trigfiltered_reg(CONV_INTEGER(state_reg)) = &#39;1&#39;) then<br>
                                state_next &lt;= regset(CONV_INTEGER(state_reg))(nextStateRange&#39;range);<br>
                        end if;<br>
bude shodna. Problem je, ze to nageneruje zcela jinak a vysledkem je<br>
max. takt 212MHz<br>
<br>
A ted moje otazky:<br>
1) proc?<br>
2) jak to vyresit aniz bych musel rucne psat vsechny ty vetve? (duvod:<br>
chci tu cast obecneji a pocet vetvi (4/8/16/32) ridit pomoci genericu.<br>
Dik za kazdou radu,<br>
Marek<br>
_______________________________________________<br>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
</blockquote></div><br>