BerkeleyHCI / PolymorphicBlocks

A work-in-progress board-level hardware description language (HDL) providing design automation through generators and block polymorphism.
BSD 3-Clause "New" or "Revised" License
71 stars 11 forks source link

Abstract microcontroller type #23

Closed ducky64 closed 2 years ago

ducky64 commented 3 years ago

One that has a grab-bag of common IO types (digital, SPI, I2C, UART, CAN, USB), using #20.

A future feature would allow the IOs to be of all of the above types, though the design model and implementation for that is unclear. For now, there would be an API similar to the current new_io that returns a io of the appropriate type. Main benefit is that it could allow micros to be more interchangeable with abstract types instead of changing HDL.

Related: #15, which is also relevant to this.

ducky64 commented 2 years ago

Thoughts on architecture of the components involved:

Chip level:

Application circuit level:

Pin mapping level (IO controller wrapper / adapter):

Current state of things:

Defining a cross-level-of-abstraction pin mapping interface: