Вернул ядро ФИФО в оригинальное состояние.
Скомпиллировал два раза проект, один (работающий), у которого в исходняке написано:
Код
wire [31:0] tx_fifo_data_in = data_fr_dsp;
И другой (неработающий) с желаемой мной перестановкой байтов путём такой строки:
Код
wire [31:0] tx_fifo_data_in = {data_fr_dsp[7:0], data_fr_dsp[15:8], data_fr_dsp[23:16], data_fr_dsp[31:24]};
Начал искать потерянные 10 слайсов во втором варианте.
Сравнил репорты синтезатора, коим у меня сейчас XST (в файлах top.syr).
Никакой принципиальной разницы не увидел. Результаты по использованию ресурсов таковы (у обоих вариантов):
Код
Device utilization summary:
---------------------------
Selected Device : 3s1000lfg320-4
Number of Slices: 1678 out of 7680 21%
Number of Slice Flip Flops: 1758 out of 15360 11%
Number of 4 input LUTs: 3032 out of 15360 19%
Number used as logic: 3017
Number used as Shift registers: 15
Number of IOs: 106
Number of bonded IOBs: 106 out of 221 47%
IOB Flip Flops: 3
Number of BRAMs: 13 out of 24 54%
Number of GCLKs: 8 out of 8 100%
Number of DCMs: 3 out of 4 75%
Есть отличия в таблицах
Clock Information и
Asynchronous Control Signals Information в названиях связей соответственно
Clock buffer(FF name) и
Buffer(FF name), однако в графе
Load у обоих вариантов одни и те же числа. Так что имхо это не принципиально.
Смотрю дальше отличия в репортах маппера (в файлах top_map.mrp). И тут сразу вижу отличия.
Вот для работающего варианта 1:
Код
Design Summary
--------------
Number of errors: 0
Number of warnings: 438
Logic Utilization:
Number of Slice Flip Flops: 1,705 out of 15,360 11%
Number of 4 input LUTs: 2,541 out of 15,360 16%
Logic Distribution:
Number of occupied Slices: 1,999 out of 7,680 26%
Number of Slices containing only related logic: 1,999 out of 1,999 100%
Number of Slices containing unrelated logic: 0 out of 1,999 0%
*See NOTES below for an explanation of the effects of unrelated logic
Total Number 4 input LUTs: 2,730 out of 15,360 17%
Number used as logic: 2,541
Number used as a route-thru: 176
Number used as Shift registers: 13
Number of bonded IOBs: 95 out of 221 42%
IOB Flip Flops: 13
IOB Dual-Data Rate Flops: 6
Number of Block RAMs: 13 out of 24 54%
Number of GCLKs: 8 out of 8 100%
Number of DCMs: 3 out of 4 75%
Number of RPM macros: 1
Total equivalent gate count for design: 906,874
Additional JTAG gate count for IOBs: 4,560
А вот для неработающего варианта 2:
Код
Design Summary
--------------
Number of errors: 0
Number of warnings: 438
Logic Utilization:
Number of Slice Flip Flops: 1,705 out of 15,360 11%
Number of 4 input LUTs: 2,541 out of 15,360 16%
Logic Distribution:
Number of occupied Slices: 1,989 out of 7,680 25%
Number of Slices containing only related logic: 1,989 out of 1,989 100%
Number of Slices containing unrelated logic: 0 out of 1,989 0%
*See NOTES below for an explanation of the effects of unrelated logic
Total Number 4 input LUTs: 2,730 out of 15,360 17%
Number used as logic: 2,541
Number used as a route-thru: 176
Number used as Shift registers: 13
Number of bonded IOBs: 95 out of 221 42%
IOB Flip Flops: 13
IOB Dual-Data Rate Flops: 6
Number of Block RAMs: 13 out of 24 54%
Number of GCLKs: 8 out of 8 100%
Number of DCMs: 3 out of 4 75%
Number of RPM macros: 1
Total equivalent gate count for design: 906,874
Additional JTAG gate count for IOBs: 4,560
Как видно, недостача 10 слайсов. Куда они делись? Непонятно.
В остальном файлы репорта маппера отличаются только в секции 11 (Timing Report).
Там разные времена, причём в варианте 1 один констрейнт не выполнен - на клок передачи Эзернета, а во втором два - на клок передачи Эзернета и на клок приёма Эзернета.
Вот тут и вопрос - может из-за этого и не работает?
Правда после PAR-а все констрейнты выполняются.
Короче, не знаю где искать причину неработы нужного мне варианта 2.
Кто подскажет как быть?
Попробовал использовать другой синтезатор. У меня стоял Sinplify 8.2 pro.
Но Translate сразу заругался на неполные имена цепей в ucf-файле типа такого:
Код
Could not find net(s) '*gmac_core/SYNC_TX_RESET_I/RESET_OUT*' in the design.
Я так понял, что
* он не переваривает.
Это как-то можно преодолеть?
Пока поставил качать версию 8.8.04. Вдруг там будет с этим нормально.
Пока попытаюсь поправить имена цепей.