--&gt;<br> Ale ocekavat stejny vysledek syntezatoru pri ruznych zapisech ac napriklad funkce ekvivalentnich je pro me spis nemyslitelne.<br><br><br>O tomhle bych si dovolil s uspechem pochybovat :) Rozhodne to neplati pro matematicke funkce, ktere ackoliv jsou asociativni, vysledny kod je jiny. Alespon tohle nam lili do hlavy chlapci z doulos. Mozna bych jeste nekde pohledal papiry.<br>
<br>jinak souhlasim s tim &#39;when others&#39;. tohle opravdu muze generovat jiny kod. dalsi moznosti je, ze pokud je typ integer unconstrained, vygeneruje se automaticky 32bitove cislo, ktere ma vetsinou za nasledek to, ze design &#39;jede&#39; pomaleji.<br>
<br><br>Kdyz uz jsme tak u tech diskuzi: zajimalo by me, jesli ma nekdo zkusenosti s Altera Timing questem. Ja jsem doted pouzival pouze klasicky timing designer. Na novy projekt zkousim timequest a nestacim se divit. neni mi jasne, jak v SDC zadeklarovat asynchronni casove domeny a osetrit spravne to, ze veskere signaly jsou propasovane dvojitym flipflopem....<br>
<br>d.<br><br><br><br><br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Doporucit reseni bez hlubsi znalosti problemu bude tezke ...<br>
<br>
Tosa<div><div></div><div class="h5"><br>
<br>
<br>
On 1.2.2011 19:00, Marek Sembol wrote:<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" target="_blank">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>
_______________________________________________<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" target="_blank">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>
</div></div></blockquote></div><br>