Skip to content

Commit 320aa25

Browse files
author
Oron Port
committed
constrained resources wip
1 parent de2b576 commit 320aa25

File tree

8 files changed

+23
-16
lines changed

8 files changed

+23
-16
lines changed
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package dfhdl.platforms.resources
22
import dfhdl.Encoded
3+
import dfhdl.hw.constraints.*
34

45
enum Button extends Encoded.Toggle:
56
case Released, Pressed
67

78
object Button:
89
final case class Resource(
910
activeState: Button = Button.Pressed,
10-
level: IOLevel = IOLevel.LVCMOS33
11+
ioc: io = io(standard = io.Standard.LVCMOS33)
1112
)(using RCtx) extends ToggleIO
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
package dfhdl.platforms.resources
22
import dfhdl.platforms.resources.Resource.CanConnect
3+
import dfhdl.hw.constraints.*
34

45
trait IO extends Resource
56
object IO:
67
given [T <: IO, R <: IO]: CanConnect[T, R] = new CanConnect[T, R] {}
8+
9+
trait HasIOConstraints extends IO:
10+
val ioc: io

lib/src/main/scala/dfhdl/platforms/resources/IOLevel.scala

Lines changed: 0 additions & 7 deletions
This file was deleted.
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package dfhdl.platforms.resources
22
import dfhdl.Encoded
3+
import dfhdl.hw.constraints.*
34

45
enum Led extends Encoded.Toggle:
56
case Off, On
67
object Led:
78
final case class Resource(
89
activeState: Led = Led.Off,
9-
level: IOLevel = IOLevel.LVCMOS33
10+
ioc: io = io(standard = io.Standard.LVCMOS33)
1011
)(using RCtx) extends ToggleIO
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
package dfhdl.platforms.resources
22
import dfhdl.core.ClkCfg.Rate
3+
import dfhdl.hw.constraints.*
34

4-
final case class Oscillator(rate: Rate, level: IOLevel)(using RCtx) extends HasIOLevel
5+
final case class Oscillator(
6+
rate: Rate,
7+
ioc: io = io(standard = io.Standard.LVCMOS33)
8+
)(using RCtx) extends HasIOConstraints
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
package dfhdl.platforms.resources
2+
import dfhdl.hw.constraints.*
23

3-
final case class Sig(level: IOLevel = IOLevel.LVCMOS33)(using RCtx) extends HasIOLevel
4+
final case class Sig(
5+
ioc: io = io(standard = io.Standard.LVCMOS33)
6+
)(using RCtx) extends HasIOConstraints
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package dfhdl.platforms.resources
22
import dfhdl.Encoded
3+
import dfhdl.hw.constraints.*
34

45
enum SwitchUD extends Encoded.Toggle:
56
case Down, Up
67
object SwitchUD:
78
final case class Resource(
89
activeState: SwitchUD = SwitchUD.Up,
9-
level: IOLevel = IOLevel.LVCMOS33
10+
ioc: io = io(standard = io.Standard.LVCMOS33)
1011
)(using RCtx)
1112
extends ToggleIO
1213

@@ -15,7 +16,7 @@ enum SwitchRL extends Encoded.Toggle:
1516
object SwitchRL:
1617
final case class Resource(
1718
activeState: SwitchRL = SwitchRL.Right,
18-
level: IOLevel = IOLevel.LVCMOS33
19+
ioc: io = io(standard = io.Standard.LVCMOS33)
1920
)(using RCtx)
2021
extends ToggleIO
2122

@@ -24,7 +25,7 @@ enum SwitchNS extends Encoded.Toggle:
2425
object SwitchNS:
2526
final case class Resource(
2627
activeState: SwitchNS = SwitchNS.North,
27-
level: IOLevel = IOLevel.LVCMOS33
28+
ioc: io = io(standard = io.Standard.LVCMOS33)
2829
)(using RCtx)
2930
extends ToggleIO
3031

@@ -33,6 +34,6 @@ enum SwitchEW extends Encoded.Toggle:
3334
object SwitchEW:
3435
final case class Resource(
3536
activeState: SwitchEW = SwitchEW.East,
36-
level: IOLevel = IOLevel.LVCMOS33
37+
ioc: io = io(standard = io.Standard.LVCMOS33)
3738
)(using RCtx)
3839
extends ToggleIO
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package dfhdl.platforms.resources
22
import dfhdl.Encoded.Toggle
33

4-
trait ToggleIO[T <: Toggle] extends HasIOLevel:
4+
trait ToggleIO[T <: Toggle] extends HasIOConstraints:
55
val activeState: T

0 commit comments

Comments
 (0)