Skip to content

Commit b75b93d

Browse files
committedJul 24, 2015
misoclib/com/uart: replace revered Migen FIFO function with specific _get_uart_fifo function for our use case.
1 parent 0a115f6 commit b75b93d

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed
 

Diff for: ‎misoclib/com/uart/__init__.py

+11-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,15 @@
22
from migen.bank.description import *
33
from migen.bank.eventmanager import *
44
from migen.genlib.record import Record
5-
from migen.actorlib.fifo import FIFO
5+
from migen.actorlib.fifo import SyncFIFO, AsyncFIFO
6+
7+
8+
def _get_uart_fifo(depth, sink_cd="sys", source_cd="sys"):
9+
if sink_cd != source_cd:
10+
fifo = AsyncFIFO([("data", 8)], depth)
11+
return ClockDomainsRenamer({"write": sink_cd, "read": source_cd})(fifo)
12+
else:
13+
return SyncFIFO([("data", 8)], depth)
614

715

816
class UART(Module, AutoCSR):
@@ -22,7 +30,7 @@ def __init__(self, phy,
2230
# # #
2331

2432
# TX
25-
tx_fifo = FIFO([("data", 8)], tx_fifo_depth, source_cd=phy_cd)
33+
tx_fifo = _get_uart_fifo(tx_fifo_depth, source_cd=phy_cd)
2634
self.submodules += tx_fifo
2735

2836
tx_irqs = {
@@ -40,7 +48,7 @@ def __init__(self, phy,
4048

4149

4250
# RX
43-
rx_fifo = FIFO([("data", 8)], rx_fifo_depth, sink_cd=phy_cd)
51+
rx_fifo = _get_uart_fifo(rx_fifo_depth, sink_cd=phy_cd)
4452
self.submodules += rx_fifo
4553

4654
rx_irqs = {

0 commit comments

Comments
 (0)