ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 марта
571412 Топик полностью
POV (10.01.2015 13:32 - 14:12, просмотров: 423) ответил misyachniy на IF/ELSE - приоритетный шифратор.
О, ответ появился.. Блаарю. Тогда еще вопросец, у?... двунаправленная шина.. не работает чего-то.. Имеется сдвиговый регистр, параллельный выход q[] которого должен подключаться к двунаправленной шине. Но есть еще один "потребитель" данных с этой шины. Делаю всё это так (выкинув неважное тут): SUBDESIGN matrix ( fQ[15..0] : OUTPUT; r0Q[15..0] : BIDIR; r1Q[15..0] : BIDIR; uRW : INPUT; uBank : INPUT; ) VARIABLE Qspi : lpm_shiftreg WITH (LPM_WIDTH = 16, LPM_DIRECTION = "LEFT"); -- тригер для двунаправленной шины данных buf[15..0] : NODE; BEGIN FOR i IN 0 TO 15 GENERATE buf[i] = TRI(Qspi.q[i], uRW); -- пока не читаем память, выход тригера открыт END GENERATE; if uBank THEN r0Q[] = buf[]; Qspi.data[] = r0Q[]; ELSE r1Q[] = buf[]; Qspi.data[] = r1Q[]; END IF; END; Так компилятор при любом входе тригеров (т.е. вместо uRW и ставлю GND или VCC) пишет, что тригер постоянно енаблед. И далее всё это тянет за собой нерабочесть кода.
Warning (13046): Tri-state node(s) do not directly drive top-level pin(s) Warning (13049): Converted tri-state buffer "buf[0]" feeding internal logic into a wire ... Warning (13049): Converted tri-state buffer "buf[15]" feeding internal logic into a wire Warning (13034): The following nodes have both tri-state and non-tri-state drivers Warning (13035): Inserted always-enabled tri-state buffer between "r0Q[0]" and its non-tri-state driver. ... Warning (13035): Inserted always-enabled tri-state buffer between "r1Q[15]" and its non-tri-state driver. Info (13060): One or more bidirs are fed by always enabled tri-state buffers Info (13061): Fan-out of permanently enabled tri-state buffer feeding bidir "r0Q[0]" is moved to its source ... Info (13061): Fan-out of permanently enabled tri-state buffer feeding bidir "r1Q[15]" is moved to its source Warning (13009): TRI or OPNDRN buffers permanently enabled Warning (13010): Node "r0Q[0]~synth" ...
А вот если сделать два набора тригеров между выходом регистра и перед каждой шиной r0Q и r1Q, то работает. Я видимо не понимаю как работает ПЛИСка и как корректно писать к ней прогу.