Skip to content
This repository has been archived by the owner on Apr 20, 2024. It is now read-only.

Clean up IOCell types and parameterization #86

Merged
merged 1 commit into from
Sep 14, 2020
Merged

Conversation

jerryz123
Copy link
Contributor

No description provided.

Copy link
Contributor

@colinschmidt colinschmidt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jerryz123 jerryz123 merged commit e6e1ed8 into master Sep 14, 2020
Copy link
Collaborator

@jwright6323 jwright6323 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A little late since this was merged already, but I think this actually regresses on some features and should be partially reverted.


abstract class AnalogIOCell extends IOCell {
val io: AnalogIOCellBundle
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think you should have changed this; it was done this way intentionally to allow the user to extend the IOCellBundle with foundry IO cell pins. Can you have multiple IOs in BlackBoxes now?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can add this feature back in

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool, thanks. I think everything else looks good, for the record.

Copy link
Contributor Author

@jerryz123 jerryz123 Sep 14, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, it seems like you can already do this in the current system:

class FancyDigitalGPIOCellBundle extends DigitalGPIOCellBundle {
  val extra = Output(Bool())
}

class FancyDigitalGPIOCell extends GenericIOCell with DigitalGPIOCell {
  override val io = IO(new FancyDigitalGPIOCellBundle)
}

so no changes are necessary?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think override works- you'll call IO twice and end up with phantom IOs that are disconnected (also I don't think you can call IO twice in BlackBox anyway)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NVM the above doesn't work.

iocell/src/main/scala/chisel/IOCell.scala Show resolved Hide resolved
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants