Historia zmianChangelog

Wykaz zmian, nowych funkcji i poprawek w projekcie FPGA Spartan-6 XC6SLX9. A list of changes, new features, and fixes in the FPGA Spartan-6 XC6SLX9 project.

Wersja 1.1Version 1.1

Data: 2026-10-10

Wersja 1.1 wprowadza trzy nowe komendy graficzne oraz rozszerza pamięć SRAM do pełnych 16 bitów danych, co umożliwia przełączanie buforów graficznych w locie.

Dodano

  • CMD_DRAW_LINE (23) — rysowanie linii algorytmem Bresenhama z opcjonalną grubością i stylem przerywanym (dash).
  • CMD_SET_BUF_LB (32) — przełączenie aktywnego bufora graficznego na dolny bajt SRAM (LB).
  • CMD_SET_BUF_UB (33) — przełączenie aktywnego bufora graficznego na górny bajt SRAM (UB).

Zmieniono

  • Szyna danych SRAM rozszerzona z 8 bitów (sram_data[7:0]) do 16 bitów (sram_data[15:0]).
  • Plik UCF — odkomentowano przypisania pinów dla górnego bajtu SRAM (D8–D15).
  • Kontroler SRAM (sram_ctrl.v) — dodano wejście buf_sel do przełączania między dolnym i górnym bajtem.
  • Interfejs CPU (cpu_ram.v) — dodano wyjście buf_sel i obsługę nowych komend.

Naprawiono

  • Bug w module cpu_ram.v (funkcja thick_step) powodujący przypadkowe piksele przy rysowaniu linii z grubością — rzutowanie $unsigned zamiast obcinania bitów znaku.
  • Bug w thick_begin — dodano zerowanie sygnału wr_req przed nowym blokiem grubości.

Uwagi

  • Domyślny bufor po resecie FPGA: LB (buf_sel = 0).
  • Zawartość górnego bajtu SRAM po włączeniu zasilania jest niezdefiniowana — przed pierwszym rysowaniem zaleca się wyczyszczenie bufora komendą CMD_CLEAR_FRAMEBUFFER.
  • Szczegóły techniczne nowych komend znajdują się na stronie Sterowanie CPU.

Date: 2026-10-10

Version 1.1 introduces three new graphics commands and extends the SRAM data bus to a full 16 bits, enabling graphics buffer switching on the fly.

Added

  • CMD_DRAW_LINE (23) — line drawing using Bresenham's algorithm with optional thickness and dashed style.
  • CMD_SET_BUF_LB (32) — switch the active graphics buffer to the lower byte of SRAM (LB).
  • CMD_SET_BUF_UB (33) — switch the active graphics buffer to the upper byte of SRAM (UB).

Changed

  • SRAM data bus extended from 8 bits (sram_data[7:0]) to 16 bits (sram_data[15:0]).
  • UCF file — uncommented pin assignments for the upper SRAM byte (D8–D15).
  • SRAM controller (sram_ctrl.v) — added buf_sel input for switching between lower and upper byte.
  • CPU interface (cpu_ram.v) — added buf_sel output and support for new commands.

Fixed

  • Bug in cpu_ram.v (thick_step task) causing random pixels when drawing lines with thickness — $unsigned cast instead of truncating the sign bit.
  • Bug in thick_begin — added wr_req clearing before a new thickness block.

Notes

  • Default buffer after FPGA reset: LB (buf_sel = 0).
  • The contents of the upper SRAM byte after power-up are undefined — before first drawing, it is recommended to clear the buffer with CMD_CLEAR_FRAMEBUFFER.
  • Technical details of the new commands are available on the CPU Control page.

← Powrót do strony głównej ← Back to home page