From caac6561c232dc445d34f44ecda8b6228d956978 Mon Sep 17 00:00:00 2001 From: Ayzen Date: Thu, 10 Sep 2026 14:18:20 +0300 Subject: [PATCH] fpga: pin placer cost table 2, add the built master bitstream MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ограничение MCU_MOSI OFFSET hold маргинально уже в стоке: запас +0.458 нс. Поэтому любое изменение нетлиста переставляет размещение и может его опрокинуть. A/B в ISE: сток - Timing Score 0, версия на маске при cost table 1 - 5480. Cost table 2 даёт Timing Score 0, причём запас по hold на MCU_MOSI больше стокового: +0.642 против +0.458 нс. Значение зафиксировано в VNA.xise одной строкой, иначе следующая сборка снова словит нарушение. Ресурсы финальной сборки: 2302 LUT против 2189 у стока (40% против 38% ёмкости xc6slx9). Промежуточные 2182, которые я приводил раньше, были из сборки с cost table 1 - её перебор потом переделал, и упаковка map изменилась. Битстрим положен как top_master_per_point_switching.bin, а не поверх top_master.bin: последний - одна из двух копий невосстановимого битстрима, из которого собран текущий combined.vnafw. Документ приведён в согласованное состояние: таблица контракта и описание Sweep.vhd отставали от версии на маске. Собрано и проверено на машине сборки: ISE 14.7 в виртуалке, xtclsh в батч-режиме. Co-Authored-By: Claude Opus 5 (1M context) --- .../reproduce/LibreVNA/FPGA/VNA/VNA.xise | 2 +- .../VNA/top_master_per_point_switching.bin | Bin 0 -> 341712 bytes .../reproduce/SHA256SUMS | 1 + device_firmware/per_point_switching.md | 113 ++++++++++++++---- 4 files changed, 89 insertions(+), 27 deletions(-) create mode 100644 device_firmware/multi_libreVNA_firmware/reproduce/LibreVNA/FPGA/VNA/top_master_per_point_switching.bin diff --git a/device_firmware/multi_libreVNA_firmware/reproduce/LibreVNA/FPGA/VNA/VNA.xise b/device_firmware/multi_libreVNA_firmware/reproduce/LibreVNA/FPGA/VNA/VNA.xise index 31ee3f6..5ce09d4 100644 --- a/device_firmware/multi_libreVNA_firmware/reproduce/LibreVNA/FPGA/VNA/VNA.xise +++ b/device_firmware/multi_libreVNA_firmware/reproduce/LibreVNA/FPGA/VNA/VNA.xise @@ -433,7 +433,7 @@ - + diff --git a/device_firmware/multi_libreVNA_firmware/reproduce/LibreVNA/FPGA/VNA/top_master_per_point_switching.bin b/device_firmware/multi_libreVNA_firmware/reproduce/LibreVNA/FPGA/VNA/top_master_per_point_switching.bin new file mode 100644 index 0000000000000000000000000000000000000000..fb0d90b84785314b45f687111be1e25cb805d8ce GIT binary patch literal 341712 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 jxSLGC5ex4`fji#1jg?x9tgF>#C*Jr|a3_Wm! shift_right(unsigned(last_stage), to_integer(unsigned(substage_width))) then +if port_stage = PORT_STAGE_DISABLED then -- "111", порт не излучает return false; end if; -return shift_right(stage, to_integer(unsigned(substage_width))) = unsigned(port_stage); +return (std_logic_vector(stage) and compare_mask) = (port_stage and compare_mask); ``` -Совместимость со стоком **строгая, а не приблизительная**. При `SUBSTAGE_BITS = 0` -сдвиг нулевой и условие вырождается в `stage_cnt = port_stage` плюс проверка -`port_stage <= STAGES`. Эта проверка не может ничего изменить: счётчик стадий -пробегает только `0..STAGES`, поэтому при `port_stage > STAGES` совпадения не было -бы и так. То есть для всех существующих вызовов поведение идентично — включая -ручной режим и анализатор спектра, где `STAGES = 0`. +Маска декодируется из `SUBSTAGE_BITS` тремя вентилями, причём нераспознанная +ширина даёт все единицы — чтобы неконфигурированный прибор никогда не выродился +в «каждый порт излучает в каждой стадии». -Значение выше последней порт-стадии никогда не совпадает — так хост глушит -излучение слейвов, посылая им 7. Старый хост слал «одну за последней», это тоже -глушит. +Совместимость со стоком **строгая, а не приблизительная**. При `SUBSTAGE_BITS = 0` +маска все единицы, и выражение становится буквально стоковым +`stage_cnt = port_stage`. Значит для всех существующих вызовов поведение +идентично — включая ручной режим и анализатор спектра, где `STAGES = 0`. + +Значение 7 зарезервировано под «порт выключен»: так хост глушит излучение +слейвов. Стоковый хост слал «одну за последней стадией», и это тоже не совпадает +ни с одной реальной стадией, так что новый битстрим работает и со старым хостом. ### `SPIConfig.vhd` и `top.vhd` @@ -101,6 +107,38 @@ when 6 => STAGES <= spi_buf_out(15 downto 13); В `top.vhd` добавлен сигнал `sweep_substage_bits` и проброшен от `SPIConfig` к `Sweep`. +### Почему маска, а не сдвиг + +Первая версия сравнивала `shift_right(stage_cnt, substage_bits)` с номером порта. +Функционально верно, но переменный сдвиг синтезируется в barrel shifter, а +вызывался он четырежды (по два на порт): **+142 LUT** при всего +3 регистрах. +Разводка поехала, и контрольная сборка показала нарушение hold на входе +`MCU_MOSI` — на шине, по которой MCU пишет регистры FPGA. Сбой там означал бы +неверную конфигурацию развёртки, то есть крайне неприятный в поиске отказ. + +Маска обходится несколькими вентилями и такого эффекта не даёт. + +### Cost table размещателя — обязательно + +Ограничение `MCU_MOSI OFFSET = IN ... BEFORE MCU_SCK` маргинально **уже в стоке**: +запас по hold всего +0.458 нс. Поэтому любое изменение нетлиста переставляет +размещение и может его опрокинуть. Проверено прямым A/B: сток даёт Timing Score 0, +первая версия правки — 1880, версия на маске при cost table 1 — 5480. + +Решается штатно, подбором cost table. В `VNA.xise` зафиксировано: + +```xml + +``` + +С этим значением **Timing Score 0**, а запас по hold на `MCU_MOSI` даже больше +стокового: +0.642 нс против +0.458. Ресурсы: 2302 LUT против 2189 у стока (40% +против 38% ёмкости xc6slx9). + +**Не сбрасывайте это свойство в 1.** Если после правок в VHDL тайминг снова +поедет — перебирайте cost table дальше (3, 4, 5…) и проверяйте `Timing Score` в +`top.par`; сборка каждого варианта около шести минут, синтез при этом кэширован. + ### Проверка Рядом лежит самопроверяющийся тестбенч `Test_Sweep.vhd` на четыре сценария: сток, @@ -112,8 +150,10 @@ when 6 => STAGES <= spi_buf_out(15 downto 13); ghdl -a --std=93 Sweep.vhd Test_Sweep.vhd && ghdl -r --std=93 Test_Sweep ``` -Тест проверен мутацией: если вернуть стоковое точное сравнение, сценарии с -под-стадиями падают, а стоковый продолжает проходить. +Тест проверен мутацией: если выбросить маску из сравнения, сценарии с +под-стадиями падают (8 сработавших проверок), а стоковый продолжает проходить. + +VHDL держите в чистом ASCII: GHDL отвергает не-ASCII символы даже в комментариях. ## Прошивка STM32 LibreVNA @@ -136,8 +176,6 @@ FPGA::SetupSweep(s.stages, s.port1Stage, s.port2Stage, s.syncMode != 0, ``` Собирать так же, как описано в [`reproduce/README.md`](multi_libreVNA_firmware/reproduce/README.md). -Отдельно: битстрим мастера единственный в своём роде, `top.bin` перезаписывается -каждой сборкой ISE — переименовывать сразу. ## Контроллер ключа (отдельный STM32) @@ -188,13 +226,36 @@ STM32 прибора в Hi-Z на обеих линиях (`GPIO_MODE_INPUT`, `N ### 1. Битстрим FPGA мастера (Xilinx ISE 14.7) +**Уже собран.** Лежит в `FPGA/VNA/top_master_per_point_switching.bin`, +sha256 `e184eb92bef1c698849511845fa8d754…`, Timing Score 0. Пересобирать нужно +только после правок в VHDL. + +Имя отдельное намеренно: `top_master.bin` оставлен нетронутым — это одна из двух +копий невосстановимого битстрима, из которого собран текущий `combined.vnafw` +(вторая — `extracted/master_fpga.bin`). Заменить его новым стоит только после +проверки на железе. + +Как собрать заново — в GUI: + 1. Скопировать [`multi_libreVNA_firmware/reproduce/LibreVNA/FPGA`](multi_libreVNA_firmware/reproduce/LibreVNA/FPGA) в общую папку виртуалки (`C:\shared\LibreVNA\FPGA`). 2. Открыть **`VNA.xise`** — проект мастера. Не `VNA_external_lo_slave.xise`. 3. Process → **Generate Programming File**. -4. Забрать `top.bin` **сразу** и переименовать в `top_master.bin`: оба проекта +4. Забрать `top.bin` **сразу** и переименовать в + `top_master_per_point_switching.bin`: оба проекта пишут в один и тот же файл, и следующая сборка его затрёт. Именно так был потерян исходный мастер-битстрим. +5. Проверить `Timing Score` в `top.par` — должен быть 0 (см. про cost table выше). + +Или из командной строки в госте, без GUI: + +```bash +cd ~/shared/LibreVNA/FPGA/VNA # лучше скопировать на локальный диск: vboxsf медленная +source /opt/Xilinx/14.7/ISE_DS/settings64.sh +printf 'project open VNA.xise\nprocess run "Generate Programming File"\nproject close\n' > /tmp/bit.tcl +xtclsh /tmp/bit.tcl +grep "Timing Score" top.par +``` Битстрим невоспроизводим побайтово (place & route недетерминирован плюс timestamp внутри), так что новый файл будет отличаться от старого при любом @@ -215,7 +276,7 @@ make BINPATH="<путь к arm-none-eabi из CubeIDE>/tools/bin" -j4 ```bash cd multi_libreVNA_firmware/reproduce/LibreVNA python3 AssembleFirmware.py \ - --bitstream FPGA/VNA/top_master.bin \ + --bitstream FPGA/VNA/top_master_per_point_switching.bin \ --mcu Software/VNA_embedded/build/VNA_embedded.bin \ --output ../combined_per_point_switching.vnafw ```