yosys4gal/models
2024-05-06 01:56:47 -05:00
..
.gitignore Add initial GAL22V10 model 2024-05-05 20:02:46 -05:00
GAL16V8_reg.v Complete prove_equiv script and add flashing script 2024-05-04 20:55:57 -05:00
GAL16V8_reg_tb.v Complete prove_equiv script and add flashing script 2024-05-04 20:55:57 -05:00
GAL16V8_wrapper.v Add initial GAL22V10 model 2024-05-05 20:02:46 -05:00
GAL22V10_reg.v Add initial GAL22V10 model 2024-05-05 20:02:46 -05:00
GAL22V10_reg_tb.v Add initial GAL22V10 model 2024-05-05 20:02:46 -05:00
GAL22V10_wrapper.v Add initial GAL22V10 model 2024-05-05 20:02:46 -05:00
prove_equiv.tcl Add initial GAL22V10 model 2024-05-05 20:02:46 -05:00
README.md Add model README and fix typo 2024-05-06 01:56:47 -05:00

Model-Based Verification Checking

To assist with verification checking, yosys4gal includes Verilog models of the supported GAL16V8 and GAL22V10 chips. These Verilog read in the tool-generated fuse map and the behavior should match that of the original Verilog. The provided script performs this check using yosys' SAT solver:

./prove_equiv.tcl -- <JEDEC FILE> <PCF CONSTRAINTS> <VERILOG FILES...>

Limitations

The models only support the functionality of the GAL chips which is supported in yosys4gal. I.e. the GAL16V8 model only supports registered mode and the GAL22V10 model doesn't support asynchronous set/reset. Also note that a failure to prove equivalence does not imply inequivalence. In particular, yosys can struggle to synthesize the GAL22V10 model correctly. The false positive rate, however, should be zero.

Dependencies

  • yosys 0.38 or higher
  • jedutil from MAME utilities
  • xxd from Vim