https://github.com/wyvernsemi/mico32
LatticeMico32 instruction set simulator project
https://github.com/wyvernsemi/mico32
32-bits c-plus-plus com0com cpu-model debug embedded fpga gdb iss latticemico32 linux processor python3 risc serial-communication soft-core tcp-socket tkinter
Last synced: 19 days ago
JSON representation
LatticeMico32 instruction set simulator project
- Host: GitHub
- URL: https://github.com/wyvernsemi/mico32
- Owner: wyvernSemi
- License: gpl-3.0
- Created: 2016-09-03T11:22:14.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-11-25T10:07:39.000Z (5 months ago)
- Last Synced: 2025-03-28T09:11:15.867Z (about 1 month ago)
- Topics: 32-bits, c-plus-plus, com0com, cpu-model, debug, embedded, fpga, gdb, iss, latticemico32, linux, processor, python3, risc, serial-communication, soft-core, tcp-socket, tkinter
- Language: C++
- Homepage: http://www.anita-simulators.org.uk/wyvernsemi
- Size: 12.3 MB
- Stars: 9
- Watchers: 6
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# mico32
LatticeMico32 instruction set simulator project
![]()
Includes a C/C++ model of the lm32 CPU, with the following features:
* All supported core instructions
* All h/w modelled for configurable instructions
- Multiplier
- Divider
- Sign extender
- Barrel shifter
* Configurable internal memory
* All h/w debug break- and watchpoints modelled
* Cycle count functionality
* Configurable 'hardware', as per the Mico32
* Run-time and static disassembly
* Data and Instruction caches for timing model
* Optional MMU capability, via Data and Instruction TLBs
* Extensibility via callbacks
- Intercept memory accesses
- Regular callback with ability for external interrupt generation
- JTAG register access callback
* Configurable user defined execution break points
- On a given address
- After a single step, or clock tick
- After a fixed number of cycles
- On 'hardware' debug break point
* Access to internal Memory
* Access to internal state
* Compatible with Lattice Semiconductor GNU tool chain (lm32-elf-xx)
* Both C++ and C linkage interfaces available
* Separate GDB remote debug interface code is included
- Supports both virtual serial and TCP socket connectionsThere are build options for MSVC 2010, CYGWIN and Linux, and an embedded Linux system model case study. A Python3 GUI is also bundled for configuring and running cpumico32, and a GDB remote target interface is available for non-intrusive debug.
www.anita-simulators.org.uk/wyvernsemi