ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
4 декабря
187892 Топик полностью
Ruslan (03.04.2010 00:26 - 00:30, просмотров: 246) ответил IgorChem на Помогайте коллективным разумом, вроде изменил доступ к массиву до двухпортового, но все еще не компилится... Через 5 минут синтеза оборвал на 9%.
Ругается то что не может разместить в блочную память. У тебя используется асинхронное чтение. Вот тут:  always @(posedge NextStep) begin begin G39<=H38; G38<=H37; G37<=H36; G36<=H35; G35<=H34; G34<=H33; G33<=H32; G32<=H31; G31<=H30; G30<=H29; G29<=H28; G28<=H27; G27<=H26; G26<=H25; G25<=H24; G24<=H23; G23<=H22; G22<=H21; G21<=H20; G20<=H19; G19<=H18; G18<=H17; G17<=H16; G16<=H15; G15<=H14; G14<=H13; G13<=H12; G12<=H11; G11<=H10; G10<=H09; G09<=H08; G08<=H07; G07<=H06; G06<=H05; G05<=H04; G04<=H03; G03<=H02; G02<=H01; G01<=H00; if(NadoT) begin RingData[BeginPos]<= H39; NadoT<=NadoT-1; if((BeginPos&1023)==0) TimeStep[BeginPos[12:10]]<=CurTime; BeginPos<=BeginPos+1; end end Перепиши код так чтобы все тактировалось от одного clk. Пусть будет sys_clk = 100 Мгц. Далее входные данные ты складываешь в двух-портовое FIFO или RAM по частоте in_clk = 400 Мгц. Предлагаю данные класть по 32 бита. Для это пишешь входной блок который кладет в промежуточный регистр по байту, а на четвертом клоке кладет в двух-портовое FIFO или RAM. Входной блок тактируется in_clk. Далее на выходе двух-портового FIFO или RAM ты имеешь 32 бита на частоте 100 Мгц. И вот по этим 100 Мгц ты проводишь всю математику. И по этому sys_clk, выдвигаешь свои данные. А так у тебя какая то каша из синхронных и асинхронных блоков. P.S. Квартус на 46% все еще продолжает компилировать. :)