The tool to generate FASM features attempts to minimize divergence from icebox naming.

Differences from IceStorm names:

  • / marks are replaced with _ to meet FASM naming convention
  • RAM
    • RamConfig CBIT[0-3] are combined into READ_MODE and WRITE_MODE
  • IO
    • IE and REN are inverted from icebox polarity
    • PINTYPE are not forwarded and instead SimpleInput and SimpleOutput features cover those bits

TODO:

  • [ ] RAMCONFIG CBITS
    • [X] Supports READ_MODE adn WRITE_MODE
    • [ ] Support RAM Cascade bits
    • [X] PowerUp inverted for 1k parts
  • [X] IE inverted for 1k parts
  • [X] REN inverted
  • [ ] Colbuf
    • All are on for now, but it's probably power hungry
    • [ ] Need to rework routing to represent Column Buffers
  • [ ] beyond simple IO
    • Should rework solution by in tech mapping and passing parameters

Push down to IceStorm:

  • [ ] store tiles as 2D bit arrays for manipulation in iceconfig
  • [ ] empty_*() methods should init to lowest power config IE bits so buffers are off