Skip to content

Instantly share code, notes, and snippets.

@ret
Created August 29, 2019 22:39
Show Gist options
  • Save ret/3b762574d65b05736adf7d7382cc48b5 to your computer and use it in GitHub Desktop.
Save ret/3b762574d65b05736adf7d7382cc48b5 to your computer and use it in GitHub Desktop.
repro files: yosys 0.9 generating extra spaces in .json parameters
NOTE:
Yosys version: `Yosys 0.9+1 (git sha1 a0b666f2, clang 10.0.1 -fPIC -Os)`
Steps to repro issue of extra spaces in PULLUP parameter value (top.json output) value generated by .ys script:
This gist includes the `top.il`, and `.v` files needed to repro.
Nextpnr fails with the spaces in the .json file `ERROR: expected numeric value for parameter 'PULLUP' on cell 'uart_0__rx_0'`.
# Automatically generated by nMigen 98278a044d74d95a6e0edd2fb59bbdad8d067919. Do not edit.
attribute \generator "nMigen"
attribute \nmigen.hierarchy "top.uartfifo.uart.uart_nmigen"
module \uart_nmigen
attribute \src "collatz_driver.py:43"
wire width 1 input 0 \clk
attribute \src "collatz_driver.py:43"
wire width 1 input 1 \rst
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:17"
wire width 1 output 2 \tx_ack
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:22"
wire width 1 output 3 \rx_rdy
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:22"
wire width 1 \rx_rdy$next
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:12"
wire width 1 output 4 \tx_o
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:15"
wire width 8 input 5 \tx_data
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:16"
wire width 1 input 6 \tx_rdy
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:13"
wire width 1 input 7 \rx_i
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:19"
wire width 8 output 8 \rx_data
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:23"
wire width 1 input 9 \rx_ack
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:31"
wire width 10 \tx_shreg
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:31"
wire width 10 \tx_shreg$next
process $group_0
assign \tx_o 1'0
assign \tx_o \tx_shreg [0]
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:32"
wire width 4 \tx_count
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:32"
wire width 4 \tx_count$next
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:35"
wire width 1 $1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:35"
cell $eq $2
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \tx_count
connect \B 1'0
connect \Y $1
end
process $group_1
assign \tx_ack 1'0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:35"
switch { $1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:35"
case 1'1
assign \tx_ack 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:43"
case
end
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:35"
wire width 1 $3
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:35"
cell $eq $4
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \tx_count
connect \B 1'0
connect \Y $3
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:30"
wire width 4 \tx_phase
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:30"
wire width 4 \tx_phase$next
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:44"
wire width 1 $5
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:44"
cell $ne $6
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \tx_phase
connect \B 1'0
connect \Y $5
end
process $group_2
assign \tx_shreg$next \tx_shreg
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:35"
switch { $3 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:35"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:37"
switch { \tx_rdy }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:37"
case 1'1
assign \tx_shreg$next { 1'1 \tx_data 1'0 }
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:43"
case
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:44"
switch { $5 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:44"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:46"
case
assign \tx_shreg$next { 1'1 \tx_shreg [9:1] }
end
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \tx_shreg$next 10'1111111111
end
sync init
update \tx_shreg 10'1111111111
sync posedge \clk
update \tx_shreg \tx_shreg$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:35"
wire width 1 $7
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:35"
cell $eq $8
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \tx_count
connect \B 1'0
connect \Y $7
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:44"
wire width 1 $9
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:44"
cell $ne $10
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \tx_phase
connect \B 1'0
connect \Y $9
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:49"
wire width 5 $11
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:49"
wire width 5 $12
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:49"
cell $sub $13
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 5
connect \A \tx_count
connect \B 1'1
connect \Y $12
end
connect $11 $12
process $group_3
assign \tx_count$next \tx_count
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:35"
switch { $7 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:35"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:37"
switch { \tx_rdy }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:37"
case 1'1
assign \tx_count$next 4'1010
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:43"
case
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:44"
switch { $9 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:44"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:46"
case
assign \tx_count$next $11 [3:0]
end
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \tx_count$next 4'0000
end
sync init
update \tx_count 4'0000
sync posedge \clk
update \tx_count \tx_count$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:35"
wire width 1 $14
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:35"
cell $eq $15
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \tx_count
connect \B 1'0
connect \Y $14
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:44"
wire width 1 $16
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:44"
cell $ne $17
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \tx_phase
connect \B 1'0
connect \Y $16
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:45"
wire width 5 $18
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:45"
wire width 5 $19
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:45"
cell $sub $20
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 5
connect \A \tx_phase
connect \B 1'1
connect \Y $19
end
connect $18 $19
process $group_4
assign \tx_phase$next \tx_phase
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:35"
switch { $14 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:35"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:37"
switch { \tx_rdy }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:37"
case 1'1
assign \tx_phase$next 4'1001
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:43"
case
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:44"
switch { $16 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:44"
case 1'1
assign \tx_phase$next $18 [3:0]
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:46"
case
assign \tx_phase$next 4'1001
end
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \tx_phase$next 4'0000
end
sync init
update \tx_phase 4'0000
sync posedge \clk
update \tx_phase \tx_phase$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:54"
wire width 10 \rx_shreg
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:54"
wire width 10 \rx_shreg$next
process $group_5
assign \rx_data 8'00000000
assign \rx_data \rx_shreg [8:1]
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:20"
wire width 1 \rx_err
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:55"
wire width 4 \rx_count
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:55"
wire width 4 \rx_count$next
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
wire width 1 $21
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
cell $eq $22
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_count
connect \B 1'0
connect \Y $21
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:59"
wire width 1 $23
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:59"
wire width 1 $24
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:59"
cell $not $25
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_shreg [0]
connect \Y $24
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:59"
wire width 1 $26
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:59"
cell $and $27
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $24
connect \B \rx_shreg [9]
connect \Y $26
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:59"
cell $not $28
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A $26
connect \Y $23
end
process $group_6
assign \rx_err 1'0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
switch { $21 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
case 1'1
assign \rx_err $23
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:70"
case
end
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
wire width 1 $29
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
cell $eq $30
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_count
connect \B 1'0
connect \Y $29
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:60"
wire width 1 $31
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:60"
cell $not $32
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_i
connect \Y $31
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
wire width 1 $33
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
cell $not $34
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_rdy
connect \Y $33
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
wire width 1 $35
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
cell $or $36
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_ack
connect \B $33
connect \Y $35
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:53"
wire width 4 \rx_phase
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:53"
wire width 4 \rx_phase$next
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:71"
wire width 1 $37
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:71"
cell $ne $38
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_phase
connect \B 1'0
connect \Y $37
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:79"
wire width 1 $39
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:79"
cell $eq $40
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_count
connect \B 1'1
connect \Y $39
end
process $group_7
assign \rx_rdy$next \rx_rdy
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
switch { $29 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:60"
switch { $31 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:60"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
switch { $35 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
case 1'1
assign \rx_rdy$next 1'0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:68"
case
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:70"
case
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:71"
switch { $37 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:71"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:73"
case
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:79"
switch { $39 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:79"
case 1'1
assign \rx_rdy$next 1'1
end
end
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \rx_rdy$next 1'0
end
sync init
update \rx_rdy 1'0
sync posedge \clk
update \rx_rdy \rx_rdy$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:21"
wire width 1 \rx_ovf
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:21"
wire width 1 \rx_ovf$next
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
wire width 1 $41
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
cell $eq $42
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_count
connect \B 1'0
connect \Y $41
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:60"
wire width 1 $43
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:60"
cell $not $44
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_i
connect \Y $43
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
wire width 1 $45
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
cell $not $46
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_rdy
connect \Y $45
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
wire width 1 $47
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
cell $or $48
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_ack
connect \B $45
connect \Y $47
end
process $group_8
assign \rx_ovf$next \rx_ovf
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
switch { $41 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:60"
switch { $43 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:60"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
switch { $47 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
case 1'1
assign \rx_ovf$next 1'0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:68"
case
assign \rx_ovf$next 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:70"
case
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \rx_ovf$next 1'0
end
sync init
update \rx_ovf 1'0
sync posedge \clk
update \rx_ovf \rx_ovf$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
wire width 1 $49
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
cell $eq $50
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_count
connect \B 1'0
connect \Y $49
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:60"
wire width 1 $51
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:60"
cell $not $52
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_i
connect \Y $51
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
wire width 1 $53
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
cell $not $54
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_rdy
connect \Y $53
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
wire width 1 $55
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
cell $or $56
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_ack
connect \B $53
connect \Y $55
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:71"
wire width 1 $57
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:71"
cell $ne $58
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_phase
connect \B 1'0
connect \Y $57
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:76"
wire width 5 $59
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:76"
wire width 5 $60
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:76"
cell $sub $61
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 5
connect \A \rx_count
connect \B 1'1
connect \Y $60
end
connect $59 $60
process $group_9
assign \rx_count$next \rx_count
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
switch { $49 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:60"
switch { $51 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:60"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
switch { $55 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
case 1'1
assign \rx_count$next 4'1010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:68"
case
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:70"
case
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:71"
switch { $57 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:71"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:73"
case
assign \rx_count$next $59 [3:0]
end
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \rx_count$next 4'0000
end
sync init
update \rx_count 4'0000
sync posedge \clk
update \rx_count \rx_count$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
wire width 1 $62
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
cell $eq $63
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_count
connect \B 1'0
connect \Y $62
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:60"
wire width 1 $64
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:60"
cell $not $65
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_i
connect \Y $64
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
wire width 1 $66
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
cell $not $67
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_rdy
connect \Y $66
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
wire width 1 $68
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
cell $or $69
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_ack
connect \B $66
connect \Y $68
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:71"
wire width 1 $70
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:71"
cell $ne $71
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_phase
connect \B 1'0
connect \Y $70
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:72"
wire width 5 $72
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:72"
wire width 5 $73
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:72"
cell $sub $74
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 5
connect \A \rx_phase
connect \B 1'1
connect \Y $73
end
connect $72 $73
process $group_10
assign \rx_phase$next \rx_phase
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
switch { $62 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:60"
switch { $64 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:60"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
switch { $68 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:61"
case 1'1
assign \rx_phase$next 4'0101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:68"
case
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:70"
case
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:71"
switch { $70 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:71"
case 1'1
assign \rx_phase$next $72 [3:0]
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:73"
case
assign \rx_phase$next 4'1001
end
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \rx_phase$next 4'0000
end
sync init
update \rx_phase 4'0000
sync posedge \clk
update \rx_phase \rx_phase$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
wire width 1 $75
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
cell $eq $76
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_count
connect \B 1'0
connect \Y $75
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:71"
wire width 1 $77
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:71"
cell $ne $78
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_phase
connect \B 1'0
connect \Y $77
end
process $group_11
assign \rx_shreg$next \rx_shreg
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
switch { $75 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:58"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:70"
case
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:71"
switch { $77 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:71"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:73"
case
assign \rx_shreg$next { \rx_i \rx_shreg [9:1] }
end
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \rx_shreg$next 10'1111111111
end
sync init
update \rx_shreg 10'1111111111
sync posedge \clk
update \rx_shreg \rx_shreg$next
end
end
attribute \generator "nMigen"
attribute \nmigen.hierarchy "top.uartfifo.uart"
module \uart
attribute \src "collatz_driver.py:43"
wire width 1 input 0 \clk
attribute \src "collatz_driver.py:43"
wire width 1 input 1 \rst
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:10"
wire width 1 output 2 \tx
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:16"
wire width 1 output 3 \rx
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:18"
wire width 1 output 4 \rx_rdy
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:17"
wire width 8 output 5 \rx_data
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:13"
wire width 1 output 6 \tx_active
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:11"
wire width 8 input 7 \tx_data
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:12"
wire width 1 input 8 \tx_rdy
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:14"
wire width 1 output 9 \tx_done
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/build/res.py:137"
wire width 1 output 10 \uart_0__tx__o
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/build/res.py:137"
wire width 1 input 11 \uart_0__rx__i
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:17"
wire width 1 \uart_nmigen_tx_ack
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:22"
wire width 1 \uart_nmigen_rx_rdy
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:12"
wire width 1 \uart_nmigen_tx_o
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:15"
wire width 8 \uart_nmigen_tx_data
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:16"
wire width 1 \uart_nmigen_tx_rdy
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:13"
wire width 1 \uart_nmigen_rx_i
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:19"
wire width 8 \uart_nmigen_rx_data
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_nmigen.py:23"
wire width 1 \uart_nmigen_rx_ack
cell \uart_nmigen \uart_nmigen
connect \clk \clk
connect \rst \rst
connect \tx_ack \uart_nmigen_tx_ack
connect \rx_rdy \uart_nmigen_rx_rdy
connect \tx_o \uart_nmigen_tx_o
connect \tx_data \uart_nmigen_tx_data
connect \tx_rdy \uart_nmigen_tx_rdy
connect \rx_i \uart_nmigen_rx_i
connect \rx_data \uart_nmigen_rx_data
connect \rx_ack \uart_nmigen_rx_ack
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:21"
wire width 1 \tx_ack_old
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:21"
wire width 1 \tx_ack_old$next
process $group_0
assign \tx_ack_old$next \tx_ack_old
assign \tx_ack_old$next \uart_nmigen_tx_ack
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \tx_ack_old$next 1'0
end
sync init
update \tx_ack_old 1'0
sync posedge \clk
update \tx_ack_old \tx_ack_old$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:20"
wire width 1 \rx_rdy_old
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:20"
wire width 1 \rx_rdy_old$next
process $group_1
assign \rx_rdy_old$next \rx_rdy_old
assign \rx_rdy_old$next \uart_nmigen_rx_rdy
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \rx_rdy_old$next 1'0
end
sync init
update \rx_rdy_old 1'0
sync posedge \clk
update \rx_rdy_old \rx_rdy_old$next
end
process $group_2
assign \tx 1'0
assign \tx \uart_nmigen_tx_o
sync init
end
process $group_3
assign \uart_nmigen_tx_data 8'00000000
assign \uart_nmigen_tx_data \tx_data
sync init
end
process $group_4
assign \uart_nmigen_tx_rdy 1'0
assign \uart_nmigen_tx_rdy \tx_rdy
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:38"
wire width 1 $1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:38"
cell $not $2
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \uart_nmigen_tx_ack
connect \Y $1
end
process $group_5
assign \tx_active 1'0
assign \tx_active $1
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:39"
wire width 1 $3
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:39"
cell $not $4
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \tx_ack_old
connect \Y $3
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:39"
wire width 1 $5
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:39"
cell $and $6
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $3
connect \B \uart_nmigen_tx_ack
connect \Y $5
end
process $group_6
assign \tx_done 1'0
assign \tx_done $5
sync init
end
process $group_7
assign \uart_nmigen_rx_i 1'0
assign \uart_nmigen_rx_i \rx
sync init
end
process $group_8
assign \rx_data 8'00000000
assign \rx_data \uart_nmigen_rx_data
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:43"
wire width 1 $7
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:43"
cell $not $8
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \rx_rdy_old
connect \Y $7
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:43"
wire width 1 $9
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:43"
cell $and $10
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $7
connect \B \uart_nmigen_rx_rdy
connect \Y $9
end
process $group_9
assign \rx_rdy 1'0
assign \rx_rdy $9
sync init
end
wire width 1 $verilog_initial_trigger
process $group_10
assign \uart_nmigen_rx_ack 1'0
assign \uart_nmigen_rx_ack 1'1
assign $verilog_initial_trigger $verilog_initial_trigger
sync init
update $verilog_initial_trigger 1'0
end
process $group_11
assign \uart_0__tx__o 1'0
assign \uart_0__tx__o \tx
sync init
end
process $group_12
assign \rx 1'0
assign \rx \uart_0__rx__i
sync init
end
end
attribute \generator "nMigen"
attribute \nmigen.hierarchy "top.uartfifo.r_fifo.unbuffered"
module \unbuffered
attribute \src "collatz_driver.py:43"
wire width 1 input 0 \clk
attribute \src "collatz_driver.py:43"
wire width 1 input 1 \rst
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:65"
wire width 8 input 2 \din
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:67"
wire width 1 input 3 \we
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:66"
wire width 1 output 4 \writable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:139"
wire width 1 input 5 \replace
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:69"
wire width 8 output 6 \dout
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:71"
wire width 1 input 7 \re
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:70"
wire width 1 output 8 \readable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:138"
wire width 10 output 9 \level
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:138"
wire width 10 \level$next
memory width 8 size 1023 \storage
cell $meminit $1
parameter \MEMID "\\storage"
parameter \ABITS 10
parameter \WIDTH 8
parameter \WORDS 1023
parameter \PRIORITY 0
connect \ADDR 10'0000000000
connect \DATA 8184'000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:152"
wire width 1 \storage_w_en
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:152"
wire width 10 \storage_w_addr
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:152"
wire width 8 \storage_w_data
cell $memwr \wrport
parameter \MEMID "\\storage"
parameter \ABITS 10
parameter \WIDTH 8
parameter \CLK_ENABLE 1
parameter \CLK_POLARITY 1
parameter \PRIORITY 0
connect \CLK \clk
connect \EN { { \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en } }
connect \ADDR \storage_w_addr
connect \DATA \storage_w_data
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:154"
wire width 1 \storage_r_en
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:154"
wire width 10 \storage_r_addr
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:154"
wire width 8 \storage_r_data
cell $memrd \rdport
parameter \MEMID "\\storage"
parameter \ABITS 10
parameter \WIDTH 8
parameter \CLK_ENABLE 1
parameter \CLK_POLARITY 1
parameter \TRANSPARENT 0
connect \CLK \clk
connect \EN \storage_r_en
connect \ADDR \storage_r_addr
connect \DATA \storage_r_data
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:144"
wire width 1 $2
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:144"
cell $ne $3
parameter \A_SIGNED 0
parameter \A_WIDTH 10
parameter \B_SIGNED 0
parameter \B_WIDTH 10
parameter \Y_WIDTH 1
connect \A \level
connect \B 10'1111111111
connect \Y $2
end
process $group_0
assign \writable 1'0
assign \writable $2
sync init
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:145"
wire width 1 $4
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:145"
cell $ne $5
parameter \A_SIGNED 0
parameter \A_WIDTH 10
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \level
connect \B 1'0
connect \Y $4
end
process $group_1
assign \readable 1'0
assign \readable $4
sync init
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:155"
wire width 10 \produce
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:155"
wire width 10 \produce$next
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:102"
wire width 11 $6
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:102"
wire width 11 $7
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:102"
cell $sub $8
parameter \A_SIGNED 0
parameter \A_WIDTH 10
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 11
connect \A \produce
connect \B 1'1
connect \Y $7
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:102"
wire width 11 $9
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:102"
wire width 1 $10
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:102"
cell $eq $11
parameter \A_SIGNED 0
parameter \A_WIDTH 10
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \produce
connect \B 1'0
connect \Y $10
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:102"
cell $mux $12
parameter \WIDTH 11
connect \A $7
connect \B 11'01111111110
connect \S $10
connect \Y $9
end
connect $6 $9
process $group_2
assign \storage_w_addr 10'0000000000
assign \storage_w_addr \produce
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:163"
switch { \replace }
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:163"
case 1'1
assign \storage_w_addr $6 [9:0]
end
sync init
end
process $group_3
assign \storage_w_data 8'00000000
assign \storage_w_data \din
sync init
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:161"
wire width 1 $13
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:161"
cell $or $14
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \writable
connect \B \replace
connect \Y $13
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:161"
wire width 1 $15
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:161"
cell $and $16
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \we
connect \B $13
connect \Y $15
end
process $group_4
assign \storage_w_en 1'0
assign \storage_w_en $15
sync init
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $17
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $and $18
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \writable
connect \B \we
connect \Y $17
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $19
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $not $20
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \replace
connect \Y $19
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $21
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $and $22
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $17
connect \B $19
connect \Y $21
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 11 $23
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 11 $24
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
cell $add $25
parameter \A_SIGNED 0
parameter \A_WIDTH 10
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 11
connect \A \produce
connect \B 1'1
connect \Y $24
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 11 $26
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 1 $27
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
cell $eq $28
parameter \A_SIGNED 0
parameter \A_WIDTH 10
parameter \B_SIGNED 0
parameter \B_WIDTH 10
parameter \Y_WIDTH 1
connect \A \produce
connect \B 10'1111111110
connect \Y $27
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
cell $mux $29
parameter \WIDTH 11
connect \A $24
connect \B 11'00000000000
connect \S $27
connect \Y $26
end
connect $23 $26
process $group_5
assign \produce$next \produce
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:165"
switch { $21 }
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:165"
case 1'1
assign \produce$next $23 [9:0]
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \produce$next 10'0000000000
end
sync init
update \produce 10'0000000000
sync posedge \clk
update \produce \produce$next
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:156"
wire width 10 \consume
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:156"
wire width 10 \consume$next
process $group_6
assign \storage_r_addr 10'0000000000
assign \storage_r_addr \consume
sync init
end
process $group_7
assign \dout 8'00000000
assign \dout \storage_r_data
sync init
end
process $group_8
assign \storage_r_en 1'0
assign \storage_r_en \re
sync init
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:148"
wire width 1 $30
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:148"
cell $and $31
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \readable
connect \B \re
connect \Y $30
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 11 $32
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 11 $33
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
cell $add $34
parameter \A_SIGNED 0
parameter \A_WIDTH 10
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 11
connect \A \consume
connect \B 1'1
connect \Y $33
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 11 $35
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 1 $36
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
cell $eq $37
parameter \A_SIGNED 0
parameter \A_WIDTH 10
parameter \B_SIGNED 0
parameter \B_WIDTH 10
parameter \Y_WIDTH 1
connect \A \consume
connect \B 10'1111111110
connect \Y $36
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
cell $mux $38
parameter \WIDTH 11
connect \A $33
connect \B 11'00000000000
connect \S $36
connect \Y $35
end
connect $32 $35
process $group_9
assign \consume$next \consume
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:174"
switch { $30 }
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:174"
case 1'1
assign \consume$next $32 [9:0]
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \consume$next 10'0000000000
end
sync init
update \consume 10'0000000000
sync posedge \clk
update \consume \consume$next
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $39
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $and $40
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \writable
connect \B \we
connect \Y $39
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $41
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $not $42
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \replace
connect \Y $41
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $43
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $and $44
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $39
connect \B $41
connect \Y $43
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:177"
wire width 1 $45
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:148"
wire width 1 $46
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:148"
cell $and $47
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \readable
connect \B \re
connect \Y $46
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:177"
cell $not $48
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A $46
connect \Y $45
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:177"
wire width 1 $49
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:177"
cell $and $50
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $43
connect \B $45
connect \Y $49
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:178"
wire width 11 $51
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:178"
wire width 11 $52
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:178"
cell $add $53
parameter \A_SIGNED 0
parameter \A_WIDTH 10
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 11
connect \A \level
connect \B 1'1
connect \Y $52
end
connect $51 $52
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:148"
wire width 1 $54
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:148"
cell $and $55
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \readable
connect \B \re
connect \Y $54
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:179"
wire width 1 $56
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $57
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $and $58
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \writable
connect \B \we
connect \Y $57
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $59
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $not $60
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \replace
connect \Y $59
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $61
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $and $62
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $57
connect \B $59
connect \Y $61
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:179"
cell $not $63
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A $61
connect \Y $56
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:179"
wire width 1 $64
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:179"
cell $and $65
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $54
connect \B $56
connect \Y $64
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:180"
wire width 11 $66
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:180"
wire width 11 $67
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:180"
cell $sub $68
parameter \A_SIGNED 0
parameter \A_WIDTH 10
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 11
connect \A \level
connect \B 1'1
connect \Y $67
end
connect $66 $67
process $group_10
assign \level$next \level
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:177"
switch { $49 }
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:177"
case 1'1
assign \level$next $51 [9:0]
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:179"
switch { $64 }
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:179"
case 1'1
assign \level$next $66 [9:0]
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \level$next 10'0000000000
end
sync init
update \level 10'0000000000
sync posedge \clk
update \level \level$next
end
end
attribute \generator "nMigen"
attribute \nmigen.hierarchy "top.uartfifo.r_fifo"
module \r_fifo
attribute \src "collatz_driver.py:43"
wire width 1 input 0 \clk
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:70"
wire width 1 output 1 \readable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:70"
wire width 1 \readable$next
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:69"
wire width 8 output 2 \dout
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:71"
wire width 1 input 3 \re
attribute \src "collatz_driver.py:43"
wire width 1 input 4 \rst
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:66"
wire width 1 output 5 \writable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:65"
wire width 8 input 6 \din
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:67"
wire width 1 input 7 \we
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:65"
wire width 8 \unbuffered_din
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:67"
wire width 1 \unbuffered_we
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:66"
wire width 1 \unbuffered_writable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:139"
wire width 1 \unbuffered_replace
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:69"
wire width 8 \unbuffered_dout
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:71"
wire width 1 \unbuffered_re
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:70"
wire width 1 \unbuffered_readable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:138"
wire width 10 \unbuffered_level
cell \unbuffered \unbuffered
connect \clk \clk
connect \rst \rst
connect \din \unbuffered_din
connect \we \unbuffered_we
connect \writable \unbuffered_writable
connect \replace \unbuffered_replace
connect \dout \unbuffered_dout
connect \re \unbuffered_re
connect \readable \unbuffered_readable
connect \level \unbuffered_level
end
process $group_0
assign \unbuffered_din 8'00000000
assign \unbuffered_din \din
sync init
end
process $group_1
assign \unbuffered_we 1'0
assign \unbuffered_we \we
sync init
end
process $group_2
assign \writable 1'0
assign \writable \unbuffered_writable
sync init
end
wire width 1 $verilog_initial_trigger
process $group_3
assign \unbuffered_replace 1'0
assign \unbuffered_replace 1'0
assign $verilog_initial_trigger $verilog_initial_trigger
sync init
update $verilog_initial_trigger 1'0
end
process $group_4
assign \dout 8'00000000
assign \dout \unbuffered_dout
sync init
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:254"
wire width 1 $1
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:254"
cell $not $2
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \readable
connect \Y $1
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:254"
wire width 1 $3
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:254"
cell $or $4
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $1
connect \B \re
connect \Y $3
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:254"
wire width 1 $5
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:254"
cell $and $6
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \unbuffered_readable
connect \B $3
connect \Y $5
end
process $group_5
assign \unbuffered_re 1'0
assign \unbuffered_re $5
sync init
end
process $group_6
assign \readable$next \readable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:256"
switch { \re \unbuffered_re }
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:256"
case 2'-1
assign \readable$next 1'1
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:258"
case 2'1-
assign \readable$next 1'0
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \readable$next 1'0
end
sync init
update \readable 1'0
sync posedge \clk
update \readable \readable$next
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:236"
wire width 11 \level
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:261"
wire width 11 $7
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:261"
cell $add $8
parameter \A_SIGNED 0
parameter \A_WIDTH 10
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 11
connect \A \unbuffered_level
connect \B \readable
connect \Y $7
end
process $group_7
assign \level 11'00000000000
assign \level $7
sync init
end
end
attribute \generator "nMigen"
attribute \nmigen.hierarchy "top.uartfifo.w_fifo.unbuffered"
module \unbuffered$1
attribute \src "collatz_driver.py:43"
wire width 1 input 0 \clk
attribute \src "collatz_driver.py:43"
wire width 1 input 1 \rst
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:65"
wire width 8 input 2 \din
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:67"
wire width 1 input 3 \we
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:66"
wire width 1 output 4 \writable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:139"
wire width 1 input 5 \replace
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:69"
wire width 8 output 6 \dout
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:71"
wire width 1 input 7 \re
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:70"
wire width 1 output 8 \readable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:138"
wire width 10 output 9 \level
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:138"
wire width 10 \level$next
memory width 8 size 1023 \storage
cell $meminit $1
parameter \MEMID "\\storage"
parameter \ABITS 10
parameter \WIDTH 8
parameter \WORDS 1023
parameter \PRIORITY 0
connect \ADDR 10'0000000000
connect \DATA 8184'000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:152"
wire width 1 \storage_w_en
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:152"
wire width 10 \storage_w_addr
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:152"
wire width 8 \storage_w_data
cell $memwr \wrport
parameter \MEMID "\\storage"
parameter \ABITS 10
parameter \WIDTH 8
parameter \CLK_ENABLE 1
parameter \CLK_POLARITY 1
parameter \PRIORITY 0
connect \CLK \clk
connect \EN { { \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en } }
connect \ADDR \storage_w_addr
connect \DATA \storage_w_data
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:154"
wire width 1 \storage_r_en
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:154"
wire width 10 \storage_r_addr
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:154"
wire width 8 \storage_r_data
cell $memrd \rdport
parameter \MEMID "\\storage"
parameter \ABITS 10
parameter \WIDTH 8
parameter \CLK_ENABLE 1
parameter \CLK_POLARITY 1
parameter \TRANSPARENT 0
connect \CLK \clk
connect \EN \storage_r_en
connect \ADDR \storage_r_addr
connect \DATA \storage_r_data
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:144"
wire width 1 $2
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:144"
cell $ne $3
parameter \A_SIGNED 0
parameter \A_WIDTH 10
parameter \B_SIGNED 0
parameter \B_WIDTH 10
parameter \Y_WIDTH 1
connect \A \level
connect \B 10'1111111111
connect \Y $2
end
process $group_0
assign \writable 1'0
assign \writable $2
sync init
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:145"
wire width 1 $4
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:145"
cell $ne $5
parameter \A_SIGNED 0
parameter \A_WIDTH 10
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \level
connect \B 1'0
connect \Y $4
end
process $group_1
assign \readable 1'0
assign \readable $4
sync init
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:155"
wire width 10 \produce
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:155"
wire width 10 \produce$next
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:102"
wire width 11 $6
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:102"
wire width 11 $7
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:102"
cell $sub $8
parameter \A_SIGNED 0
parameter \A_WIDTH 10
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 11
connect \A \produce
connect \B 1'1
connect \Y $7
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:102"
wire width 11 $9
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:102"
wire width 1 $10
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:102"
cell $eq $11
parameter \A_SIGNED 0
parameter \A_WIDTH 10
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \produce
connect \B 1'0
connect \Y $10
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:102"
cell $mux $12
parameter \WIDTH 11
connect \A $7
connect \B 11'01111111110
connect \S $10
connect \Y $9
end
connect $6 $9
process $group_2
assign \storage_w_addr 10'0000000000
assign \storage_w_addr \produce
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:163"
switch { \replace }
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:163"
case 1'1
assign \storage_w_addr $6 [9:0]
end
sync init
end
process $group_3
assign \storage_w_data 8'00000000
assign \storage_w_data \din
sync init
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:161"
wire width 1 $13
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:161"
cell $or $14
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \writable
connect \B \replace
connect \Y $13
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:161"
wire width 1 $15
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:161"
cell $and $16
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \we
connect \B $13
connect \Y $15
end
process $group_4
assign \storage_w_en 1'0
assign \storage_w_en $15
sync init
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $17
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $and $18
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \writable
connect \B \we
connect \Y $17
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $19
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $not $20
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \replace
connect \Y $19
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $21
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $and $22
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $17
connect \B $19
connect \Y $21
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 11 $23
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 11 $24
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
cell $add $25
parameter \A_SIGNED 0
parameter \A_WIDTH 10
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 11
connect \A \produce
connect \B 1'1
connect \Y $24
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 11 $26
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 1 $27
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
cell $eq $28
parameter \A_SIGNED 0
parameter \A_WIDTH 10
parameter \B_SIGNED 0
parameter \B_WIDTH 10
parameter \Y_WIDTH 1
connect \A \produce
connect \B 10'1111111110
connect \Y $27
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
cell $mux $29
parameter \WIDTH 11
connect \A $24
connect \B 11'00000000000
connect \S $27
connect \Y $26
end
connect $23 $26
process $group_5
assign \produce$next \produce
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:165"
switch { $21 }
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:165"
case 1'1
assign \produce$next $23 [9:0]
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \produce$next 10'0000000000
end
sync init
update \produce 10'0000000000
sync posedge \clk
update \produce \produce$next
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:156"
wire width 10 \consume
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:156"
wire width 10 \consume$next
process $group_6
assign \storage_r_addr 10'0000000000
assign \storage_r_addr \consume
sync init
end
process $group_7
assign \dout 8'00000000
assign \dout \storage_r_data
sync init
end
process $group_8
assign \storage_r_en 1'0
assign \storage_r_en \re
sync init
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:148"
wire width 1 $30
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:148"
cell $and $31
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \readable
connect \B \re
connect \Y $30
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 11 $32
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 11 $33
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
cell $add $34
parameter \A_SIGNED 0
parameter \A_WIDTH 10
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 11
connect \A \consume
connect \B 1'1
connect \Y $33
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 11 $35
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 1 $36
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
cell $eq $37
parameter \A_SIGNED 0
parameter \A_WIDTH 10
parameter \B_SIGNED 0
parameter \B_WIDTH 10
parameter \Y_WIDTH 1
connect \A \consume
connect \B 10'1111111110
connect \Y $36
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
cell $mux $38
parameter \WIDTH 11
connect \A $33
connect \B 11'00000000000
connect \S $36
connect \Y $35
end
connect $32 $35
process $group_9
assign \consume$next \consume
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:174"
switch { $30 }
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:174"
case 1'1
assign \consume$next $32 [9:0]
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \consume$next 10'0000000000
end
sync init
update \consume 10'0000000000
sync posedge \clk
update \consume \consume$next
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $39
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $and $40
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \writable
connect \B \we
connect \Y $39
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $41
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $not $42
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \replace
connect \Y $41
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $43
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $and $44
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $39
connect \B $41
connect \Y $43
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:177"
wire width 1 $45
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:148"
wire width 1 $46
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:148"
cell $and $47
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \readable
connect \B \re
connect \Y $46
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:177"
cell $not $48
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A $46
connect \Y $45
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:177"
wire width 1 $49
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:177"
cell $and $50
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $43
connect \B $45
connect \Y $49
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:178"
wire width 11 $51
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:178"
wire width 11 $52
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:178"
cell $add $53
parameter \A_SIGNED 0
parameter \A_WIDTH 10
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 11
connect \A \level
connect \B 1'1
connect \Y $52
end
connect $51 $52
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:148"
wire width 1 $54
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:148"
cell $and $55
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \readable
connect \B \re
connect \Y $54
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:179"
wire width 1 $56
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $57
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $and $58
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \writable
connect \B \we
connect \Y $57
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $59
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $not $60
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \replace
connect \Y $59
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $61
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $and $62
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $57
connect \B $59
connect \Y $61
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:179"
cell $not $63
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A $61
connect \Y $56
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:179"
wire width 1 $64
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:179"
cell $and $65
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $54
connect \B $56
connect \Y $64
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:180"
wire width 11 $66
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:180"
wire width 11 $67
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:180"
cell $sub $68
parameter \A_SIGNED 0
parameter \A_WIDTH 10
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 11
connect \A \level
connect \B 1'1
connect \Y $67
end
connect $66 $67
process $group_10
assign \level$next \level
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:177"
switch { $49 }
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:177"
case 1'1
assign \level$next $51 [9:0]
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:179"
switch { $64 }
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:179"
case 1'1
assign \level$next $66 [9:0]
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \level$next 10'0000000000
end
sync init
update \level 10'0000000000
sync posedge \clk
update \level \level$next
end
end
attribute \generator "nMigen"
attribute \nmigen.hierarchy "top.uartfifo.w_fifo"
module \w_fifo
attribute \src "collatz_driver.py:43"
wire width 1 input 0 \clk
attribute \src "collatz_driver.py:43"
wire width 1 input 1 \rst
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:66"
wire width 1 output 2 \writable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:67"
wire width 1 input 3 \we
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:65"
wire width 8 input 4 \din
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:70"
wire width 1 output 5 \readable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:70"
wire width 1 \readable$next
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:69"
wire width 8 output 6 \dout
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:71"
wire width 1 input 7 \re
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:65"
wire width 8 \unbuffered_din
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:67"
wire width 1 \unbuffered_we
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:66"
wire width 1 \unbuffered_writable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:139"
wire width 1 \unbuffered_replace
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:69"
wire width 8 \unbuffered_dout
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:71"
wire width 1 \unbuffered_re
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:70"
wire width 1 \unbuffered_readable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:138"
wire width 10 \unbuffered_level
cell \unbuffered$1 \unbuffered
connect \clk \clk
connect \rst \rst
connect \din \unbuffered_din
connect \we \unbuffered_we
connect \writable \unbuffered_writable
connect \replace \unbuffered_replace
connect \dout \unbuffered_dout
connect \re \unbuffered_re
connect \readable \unbuffered_readable
connect \level \unbuffered_level
end
process $group_0
assign \unbuffered_din 8'00000000
assign \unbuffered_din \din
sync init
end
process $group_1
assign \unbuffered_we 1'0
assign \unbuffered_we \we
sync init
end
process $group_2
assign \writable 1'0
assign \writable \unbuffered_writable
sync init
end
wire width 1 $verilog_initial_trigger
process $group_3
assign \unbuffered_replace 1'0
assign \unbuffered_replace 1'0
assign $verilog_initial_trigger $verilog_initial_trigger
sync init
update $verilog_initial_trigger 1'0
end
process $group_4
assign \dout 8'00000000
assign \dout \unbuffered_dout
sync init
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:254"
wire width 1 $1
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:254"
cell $not $2
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \readable
connect \Y $1
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:254"
wire width 1 $3
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:254"
cell $or $4
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $1
connect \B \re
connect \Y $3
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:254"
wire width 1 $5
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:254"
cell $and $6
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \unbuffered_readable
connect \B $3
connect \Y $5
end
process $group_5
assign \unbuffered_re 1'0
assign \unbuffered_re $5
sync init
end
process $group_6
assign \readable$next \readable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:256"
switch { \re \unbuffered_re }
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:256"
case 2'-1
assign \readable$next 1'1
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:258"
case 2'1-
assign \readable$next 1'0
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \readable$next 1'0
end
sync init
update \readable 1'0
sync posedge \clk
update \readable \readable$next
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:236"
wire width 11 \level
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:261"
wire width 11 $7
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:261"
cell $add $8
parameter \A_SIGNED 0
parameter \A_WIDTH 10
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 11
connect \A \unbuffered_level
connect \B \readable
connect \Y $7
end
process $group_7
assign \level 11'00000000000
assign \level $7
sync init
end
end
attribute \generator "nMigen"
attribute \nmigen.hierarchy "top.uartfifo"
module \uartfifo
attribute \src "collatz_driver.py:43"
wire width 1 input 0 \clk
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:20"
wire width 1 output 1 \tx
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:23"
wire width 1 output 2 \rx
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:70"
wire width 1 output 3 \readable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:69"
wire width 8 output 4 \dout
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:71"
wire width 1 input 5 \re
attribute \src "collatz_driver.py:43"
wire width 1 input 6 \rst
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:66"
wire width 1 output 7 \writable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:67"
wire width 1 input 8 \we
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:65"
wire width 8 input 9 \din
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/build/res.py:137"
wire width 1 output 10 \uart_0__tx__o
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/build/res.py:137"
wire width 1 input 11 \uart_0__rx__i
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:10"
wire width 1 \uart_tx
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:16"
wire width 1 \uart_rx
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:18"
wire width 1 \uart_rx_rdy
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:17"
wire width 8 \uart_rx_data
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:13"
wire width 1 \uart_tx_active
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:11"
wire width 8 \uart_tx_data
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:12"
wire width 1 \uart_tx_rdy
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_wrapper_nmigen.py:14"
wire width 1 \uart_tx_done
cell \uart \uart
connect \clk \clk
connect \rst \rst
connect \tx \uart_tx
connect \rx \uart_rx
connect \rx_rdy \uart_rx_rdy
connect \rx_data \uart_rx_data
connect \tx_active \uart_tx_active
connect \tx_data \uart_tx_data
connect \tx_rdy \uart_tx_rdy
connect \tx_done \uart_tx_done
connect \uart_0__tx__o \uart_0__tx__o
connect \uart_0__rx__i \uart_0__rx__i
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:66"
wire width 1 \r_fifo_writable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:65"
wire width 8 \r_fifo_din
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:67"
wire width 1 \r_fifo_we
cell \r_fifo \r_fifo
connect \clk \clk
connect \readable \readable
connect \dout \dout
connect \re \re
connect \rst \rst
connect \writable \r_fifo_writable
connect \din \r_fifo_din
connect \we \r_fifo_we
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:70"
wire width 1 \w_fifo_readable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:69"
wire width 8 \w_fifo_dout
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:71"
wire width 1 \w_fifo_re
cell \w_fifo \w_fifo
connect \clk \clk
connect \rst \rst
connect \writable \writable
connect \we \we
connect \din \din
connect \readable \w_fifo_readable
connect \dout \w_fifo_dout
connect \re \w_fifo_re
end
process $group_0
assign \tx 1'0
assign \tx \uart_tx
sync init
end
process $group_1
assign \rx 1'0
assign \rx \uart_rx
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:27"
wire width 1 \r_fifo_readable
process $group_2
assign \r_fifo_readable 1'0
assign \r_fifo_readable \readable
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:28"
wire width 1 \r_fifo_re
process $group_3
assign \r_fifo_re 1'0
assign \r_fifo_re \re
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:29"
wire width 8 \r_fifo_dout
process $group_4
assign \r_fifo_dout 8'00000000
assign \r_fifo_dout \dout
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:33"
wire width 1 \w_fifo_writable
process $group_5
assign \w_fifo_writable 1'0
assign \w_fifo_writable \writable
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:34"
wire width 1 \w_fifo_we
process $group_6
assign \w_fifo_we 1'0
assign \w_fifo_we \we
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:35"
wire width 8 \w_fifo_din
process $group_7
assign \w_fifo_din 8'00000000
assign \w_fifo_din \din
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:70"
wire width 1 \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:70"
wire width 1 \fsm_state$next
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:78"
wire width 1 $1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:78"
cell $and $2
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \uart_rx_rdy
connect \B \r_fifo_writable
connect \Y $1
end
process $group_8
assign \r_fifo_din 8'00000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:70"
switch \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:71"
attribute \nmigen.decoding "AWAIT_UART_DATA/0"
case 1'0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:78"
switch { $1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:78"
case 1'1
assign \r_fifo_din \uart_rx_data
end
end
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:78"
wire width 1 $3
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:78"
cell $and $4
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \uart_rx_rdy
connect \B \r_fifo_writable
connect \Y $3
end
process $group_9
assign \r_fifo_we 1'0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:70"
switch \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:71"
attribute \nmigen.decoding "AWAIT_UART_DATA/0"
case 1'0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:78"
switch { $3 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:78"
case 1'1
assign \r_fifo_we 1'1
end
end
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:78"
wire width 1 $5
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:78"
cell $and $6
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \uart_rx_rdy
connect \B \r_fifo_writable
connect \Y $5
end
process $group_10
assign \fsm_state$next \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:70"
switch \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:71"
attribute \nmigen.decoding "AWAIT_UART_DATA/0"
case 1'0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:78"
switch { $5 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:78"
case 1'1
assign \fsm_state$next 1'0
end
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \fsm_state$next 1'0
end
sync init
update \fsm_state 1'0
sync posedge \clk
update \fsm_state \fsm_state$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:85"
wire width 1 \fsm_state$7
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:85"
wire width 1 \fsm_state$7$next
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
wire width 1 $8
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
cell $not $9
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \uart_tx_active
connect \Y $8
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
wire width 1 $10
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
cell $and $11
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \w_fifo_readable
connect \B $8
connect \Y $10
end
process $group_11
assign \uart_tx_data 8'00000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:85"
switch \fsm_state$7
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:86"
attribute \nmigen.decoding "AWAIT_FIFO_DATA/0"
case 1'0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
switch { $10 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
case 1'1
assign \uart_tx_data \w_fifo_dout
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:106"
attribute \nmigen.decoding "AWAIT_FIFO_DATA_COMPLETE/1"
case 1'1
end
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
wire width 1 $12
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
cell $not $13
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \uart_tx_active
connect \Y $12
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
wire width 1 $14
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
cell $and $15
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \w_fifo_readable
connect \B $12
connect \Y $14
end
process $group_12
assign \uart_tx_rdy 1'0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:85"
switch \fsm_state$7
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:86"
attribute \nmigen.decoding "AWAIT_FIFO_DATA/0"
case 1'0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
switch { $14 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
case 1'1
assign \uart_tx_rdy 1'1
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:106"
attribute \nmigen.decoding "AWAIT_FIFO_DATA_COMPLETE/1"
case 1'1
end
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
wire width 1 $16
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
cell $not $17
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \uart_tx_active
connect \Y $16
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
wire width 1 $18
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
cell $and $19
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \w_fifo_readable
connect \B $16
connect \Y $18
end
process $group_13
assign \w_fifo_re 1'0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:85"
switch \fsm_state$7
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:86"
attribute \nmigen.decoding "AWAIT_FIFO_DATA/0"
case 1'0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
switch { $18 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
case 1'1
assign \w_fifo_re 1'1
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:106"
attribute \nmigen.decoding "AWAIT_FIFO_DATA_COMPLETE/1"
case 1'1
end
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
wire width 1 $20
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
cell $not $21
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \uart_tx_active
connect \Y $20
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
wire width 1 $22
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
cell $and $23
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \w_fifo_readable
connect \B $20
connect \Y $22
end
process $group_14
assign \fsm_state$7$next \fsm_state$7
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:85"
switch \fsm_state$7
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:86"
attribute \nmigen.decoding "AWAIT_FIFO_DATA/0"
case 1'0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
switch { $22 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:88"
case 1'1
assign \fsm_state$7$next 1'1
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:106"
attribute \nmigen.decoding "AWAIT_FIFO_DATA_COMPLETE/1"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:108"
switch { \uart_tx_done }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:108"
case 1'1
assign \fsm_state$7$next 1'0
end
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \fsm_state$7$next 1'0
end
sync init
update \fsm_state$7 1'0
sync posedge \clk
update \fsm_state$7 \fsm_state$7$next
end
end
attribute \generator "nMigen"
attribute \nmigen.hierarchy "top.collatz"
module \collatz
attribute \src "collatz_driver.py:43"
wire width 1 input 0 \clk
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:49"
wire width 34 input 1 \ld_x
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:50"
wire width 1 input 2 \start
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:43"
wire width 1 output 3 \done
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:44"
wire width 68 output 4 \out
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:46"
wire width 1 output 5 \err_n
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:46"
wire width 1 \err_n$next
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:45"
wire width 1 output 6 \err_x
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:45"
wire width 1 \err_x$next
attribute \src "collatz_driver.py:43"
wire width 1 input 7 \rst
memory width 34 size 4096 \mem
cell $meminit $1
parameter \MEMID "\\mem"
parameter \ABITS 13
parameter \WIDTH 34
parameter \WORDS 4096
parameter \PRIORITY 0
connect \ADDR 13'0000000000000
connect \DATA 139264'0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:66"
wire width 1 \mem_w_en
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:66"
wire width 12 \mem_w_addr
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:66"
wire width 34 \mem_w_data
cell $memwr \wrport
parameter \MEMID "\\mem"
parameter \ABITS 12
parameter \WIDTH 34
parameter \CLK_ENABLE 1
parameter \CLK_POLARITY 1
parameter \PRIORITY 0
connect \CLK \clk
connect \EN { { \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en \mem_w_en } }
connect \ADDR \mem_w_addr
connect \DATA \mem_w_data
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:53"
wire width 68 \x
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:53"
wire width 68 \x$next
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:49"
wire width 68 $2
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:49"
cell $pos $3
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \Y_WIDTH 68
connect \A \ld_x
connect \Y $2
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:78"
wire width 1 $4
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:78"
cell $gt $5
parameter \A_SIGNED 0
parameter \A_WIDTH 68
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \x
connect \B 1'1
connect \Y $4
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:57"
wire width 68 \next_x
process $group_0
assign \x$next \x
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:69"
switch { \start }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:69"
case 1'1
assign \x$next $2
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:77"
case
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:78"
switch { $4 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:78"
case 1'1
assign \x$next \next_x
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:83"
case
end
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \x$next 68'00000000000000000000000000000000000000000000000000000000000000000000
end
sync init
update \x 68'00000000000000000000000000000000000000000000000000000000000000000000
sync posedge \clk
update \x \x$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:54"
wire width 12 \n
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:54"
wire width 12 \n$next
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:78"
wire width 1 $6
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:78"
cell $gt $7
parameter \A_SIGNED 0
parameter \A_WIDTH 68
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \x
connect \B 1'1
connect \Y $6
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:58"
wire width 12 \next_n
process $group_1
assign \n$next \n
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:69"
switch { \start }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:69"
case 1'1
assign \n$next 12'000000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:77"
case
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:78"
switch { $6 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:78"
case 1'1
assign \n$next \next_n
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:83"
case
end
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \n$next 12'000000000000
end
sync init
update \n 12'000000000000
sync posedge \clk
update \n \n$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:118"
wire width 1 $8
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:118"
cell $lt $9
parameter \A_SIGNED 0
parameter \A_WIDTH 12
parameter \B_SIGNED 0
parameter \B_WIDTH 12
parameter \Y_WIDTH 1
connect \A \n
connect \B 12'111111111110
connect \Y $8
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
wire width 1 $10
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
cell $eq $11
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \x [67]
connect \B 1'0
connect \Y $10
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
wire width 1 $12
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
cell $eq $13
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \x [66]
connect \B 1'0
connect \Y $12
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
wire width 1 $14
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
cell $and $15
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $10
connect \B $12
connect \Y $14
end
process $group_2
assign \err_x$next \err_x
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:69"
switch { \start }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:69"
case 1'1
assign \err_x$next 1'0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:77"
case
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:118"
switch { $8 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:118"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:119"
switch { \x [0] }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:119"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
switch { $14 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:130"
case
assign \err_x$next 1'1
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:138"
case
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:144"
case
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \err_x$next 1'0
end
sync init
update \err_x 1'0
sync posedge \clk
update \err_x \err_x$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:118"
wire width 1 $16
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:118"
cell $lt $17
parameter \A_SIGNED 0
parameter \A_WIDTH 12
parameter \B_SIGNED 0
parameter \B_WIDTH 12
parameter \Y_WIDTH 1
connect \A \n
connect \B 12'111111111110
connect \Y $16
end
process $group_3
assign \err_n$next \err_n
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:69"
switch { \start }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:69"
case 1'1
assign \err_n$next 1'0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:77"
case
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:118"
switch { $16 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:118"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:144"
case
assign \err_n$next 1'1
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \err_n$next 1'0
end
sync init
update \err_n 1'0
sync posedge \clk
update \err_n \err_n$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:78"
wire width 1 $18
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:78"
cell $gt $19
parameter \A_SIGNED 0
parameter \A_WIDTH 68
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \x
connect \B 1'1
connect \Y $18
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:54"
wire width 68 $20
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:54"
cell $pos $21
parameter \A_SIGNED 0
parameter \A_WIDTH 12
parameter \Y_WIDTH 68
connect \A \n
connect \Y $20
end
process $group_4
assign \out 68'00000000000000000000000000000000000000000000000000000000000000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:69"
switch { \start }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:69"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:77"
case
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:78"
switch { $18 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:78"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:83"
case
assign \out $20
end
end
sync init
end
process $group_5
assign \mem_w_addr 12'000000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:69"
switch { \start }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:69"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:77"
case
assign \mem_w_addr \n
end
sync init
end
process $group_6
assign \mem_w_data 34'0000000000000000000000000000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:69"
switch { \start }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:69"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:77"
case
assign \mem_w_data \x [33:0]
end
sync init
end
process $group_7
assign \mem_w_en 1'0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:69"
switch { \start }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:69"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:77"
case
assign \mem_w_en 1'1
end
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:42"
wire width 1 \rdy
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:96"
wire width 1 $22
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:96"
cell $eq $23
parameter \A_SIGNED 0
parameter \A_WIDTH 68
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \x
connect \B 1'0
connect \Y $22
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:96"
wire width 1 $24
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:96"
cell $eq $25
parameter \A_SIGNED 0
parameter \A_WIDTH 68
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \x
connect \B 1'1
connect \Y $24
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:96"
wire width 1 $26
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:96"
cell $or $27
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $22
connect \B $24
connect \Y $26
end
process $group_8
assign \rdy 1'0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:96"
switch { $26 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:96"
case 1'1
assign \rdy 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:100"
case
assign \rdy 1'0
end
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:109"
wire width 1 $28
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:109"
cell $eq $29
parameter \A_SIGNED 0
parameter \A_WIDTH 68
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \x
connect \B 1'1
connect \Y $28
end
process $group_9
assign \done 1'0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:109"
switch { $28 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:109"
case 1'1
assign \done 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:113"
case
assign \done 1'0
end
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:118"
wire width 1 $30
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:118"
cell $lt $31
parameter \A_SIGNED 0
parameter \A_WIDTH 12
parameter \B_SIGNED 0
parameter \B_WIDTH 12
parameter \Y_WIDTH 1
connect \A \n
connect \B 12'111111111110
connect \Y $30
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
wire width 1 $32
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
cell $eq $33
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \x [67]
connect \B 1'0
connect \Y $32
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
wire width 1 $34
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
cell $eq $35
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \x [66]
connect \B 1'0
connect \Y $34
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
wire width 1 $36
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
cell $and $37
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $32
connect \B $34
connect \Y $36
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:127"
wire width 71 $38
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:127"
wire width 70 $39
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:127"
cell $mul $40
parameter \A_SIGNED 0
parameter \A_WIDTH 2
parameter \B_SIGNED 0
parameter \B_WIDTH 68
parameter \Y_WIDTH 70
connect \A 2'11
connect \B \x
connect \Y $39
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:127"
wire width 71 $41
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:127"
cell $add $42
parameter \A_SIGNED 0
parameter \A_WIDTH 70
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 71
connect \A $39
connect \B 1'1
connect \Y $41
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:127"
wire width 71 $43
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:127"
cell $sshr $44
parameter \A_SIGNED 0
parameter \A_WIDTH 71
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 71
connect \A $41
connect \B 1'1
connect \Y $43
end
connect $38 $43
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:141"
wire width 68 $45
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:141"
cell $sshr $46
parameter \A_SIGNED 0
parameter \A_WIDTH 68
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 68
connect \A \x
connect \B 1'1
connect \Y $45
end
process $group_10
assign \next_x 68'00000000000000000000000000000000000000000000000000000000000000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:118"
switch { $30 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:118"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:119"
switch { \x [0] }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:119"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
switch { $36 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
case 1'1
assign \next_x $38 [67:0]
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:130"
case
assign \next_x 68'00000000000000000000000000000000000000000000000000000000000000000001
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:138"
case
assign \next_x $45
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:144"
case
assign \next_x 68'00000000000000000000000000000000000000000000000000000000000000000001
end
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:118"
wire width 1 $47
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:118"
cell $lt $48
parameter \A_SIGNED 0
parameter \A_WIDTH 12
parameter \B_SIGNED 0
parameter \B_WIDTH 12
parameter \Y_WIDTH 1
connect \A \n
connect \B 12'111111111110
connect \Y $47
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
wire width 1 $49
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
cell $eq $50
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \x [67]
connect \B 1'0
connect \Y $49
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
wire width 1 $51
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
cell $eq $52
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \x [66]
connect \B 1'0
connect \Y $51
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
wire width 1 $53
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
cell $and $54
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $49
connect \B $51
connect \Y $53
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:128"
wire width 13 $55
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:128"
wire width 13 $56
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:128"
cell $add $57
parameter \A_SIGNED 0
parameter \A_WIDTH 12
parameter \B_SIGNED 0
parameter \B_WIDTH 2
parameter \Y_WIDTH 13
connect \A \n
connect \B 2'10
connect \Y $56
end
connect $55 $56
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:142"
wire width 13 $58
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:142"
wire width 13 $59
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:142"
cell $add $60
parameter \A_SIGNED 0
parameter \A_WIDTH 12
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 13
connect \A \n
connect \B 1'1
connect \Y $59
end
connect $58 $59
process $group_11
assign \next_n 12'000000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:118"
switch { $47 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:118"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:119"
switch { \x [0] }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:119"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
switch { $53 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:124"
case 1'1
assign \next_n $55 [11:0]
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:130"
case
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:138"
case
assign \next_n $58 [11:0]
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:144"
case
end
sync init
end
end
attribute \generator "nMigen"
attribute \nmigen.hierarchy "top.uart_printer.bcd1.cmag"
module \cmag
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:9"
wire width 4 input 0 \i_mag
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:18"
wire width 34 output 1 \o9
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:17"
wire width 34 output 2 \o8
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:16"
wire width 34 output 3 \o7
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:15"
wire width 34 output 4 \o6
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:14"
wire width 34 output 5 \o5
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:13"
wire width 34 output 6 \o4
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:12"
wire width 34 output 7 \o3
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:11"
wire width 34 output 8 \o2
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:10"
wire width 34 output 9 \o1
process $group_0
assign \o1 34'0000000000000000000000000000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:22"
switch \i_mag
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:23"
case 4'0000
assign \o1 34'0000000000000000000000000000000001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:31"
case 4'0001
assign \o1 34'0000000000000000000000000000001010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:39"
case 4'0010
assign \o1 34'0000000000000000000000000001100100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:47"
case 4'0011
assign \o1 34'0000000000000000000000001111101000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:55"
case 4'0100
assign \o1 34'0000000000000000000010011100010000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:63"
case 4'0101
assign \o1 34'0000000000000000011000011010100000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:71"
case 4'0110
assign \o1 34'0000000000000011110100001001000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:79"
case 4'0111
assign \o1 34'0000000000100110001001011010000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:87"
case 4'1000
assign \o1 34'0000000101111101011110000100000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:95"
case 4'1001
assign \o1 34'0000111011100110101100101000000000
end
sync init
end
process $group_1
assign \o2 34'0000000000000000000000000000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:22"
switch \i_mag
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:23"
case 4'0000
assign \o2 34'0000000000000000000000000000000010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:31"
case 4'0001
assign \o2 34'0000000000000000000000000000010100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:39"
case 4'0010
assign \o2 34'0000000000000000000000000011001000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:47"
case 4'0011
assign \o2 34'0000000000000000000000011111010000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:55"
case 4'0100
assign \o2 34'0000000000000000000100111000100000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:63"
case 4'0101
assign \o2 34'0000000000000000110000110101000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:71"
case 4'0110
assign \o2 34'0000000000000111101000010010000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:79"
case 4'0111
assign \o2 34'0000000001001100010010110100000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:87"
case 4'1000
assign \o2 34'0000001011111010111100001000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:95"
case 4'1001
assign \o2 34'0001110111001101011001010000000000
end
sync init
end
process $group_2
assign \o3 34'0000000000000000000000000000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:22"
switch \i_mag
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:23"
case 4'0000
assign \o3 34'0000000000000000000000000000000011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:31"
case 4'0001
assign \o3 34'0000000000000000000000000000011110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:39"
case 4'0010
assign \o3 34'0000000000000000000000000100101100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:47"
case 4'0011
assign \o3 34'0000000000000000000000101110111000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:55"
case 4'0100
assign \o3 34'0000000000000000000111010100110000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:63"
case 4'0101
assign \o3 34'0000000000000001001001001111100000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:71"
case 4'0110
assign \o3 34'0000000000001011011100011011000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:79"
case 4'0111
assign \o3 34'0000000001110010011100001110000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:87"
case 4'1000
assign \o3 34'0000010001111000011010001100000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:95"
case 4'1001
assign \o3 34'0010110010110100000101111000000000
end
sync init
end
process $group_3
assign \o4 34'0000000000000000000000000000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:22"
switch \i_mag
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:23"
case 4'0000
assign \o4 34'0000000000000000000000000000000100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:31"
case 4'0001
assign \o4 34'0000000000000000000000000000101000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:39"
case 4'0010
assign \o4 34'0000000000000000000000000110010000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:47"
case 4'0011
assign \o4 34'0000000000000000000000111110100000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:55"
case 4'0100
assign \o4 34'0000000000000000001001110001000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:63"
case 4'0101
assign \o4 34'0000000000000001100001101010000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:71"
case 4'0110
assign \o4 34'0000000000001111010000100100000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:79"
case 4'0111
assign \o4 34'0000000010011000100101101000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:87"
case 4'1000
assign \o4 34'0000010111110101111000010000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:95"
case 4'1001
assign \o4 34'0011101110011010110010100000000000
end
sync init
end
process $group_4
assign \o5 34'0000000000000000000000000000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:22"
switch \i_mag
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:23"
case 4'0000
assign \o5 34'0000000000000000000000000000000101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:31"
case 4'0001
assign \o5 34'0000000000000000000000000000110010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:39"
case 4'0010
assign \o5 34'0000000000000000000000000111110100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:47"
case 4'0011
assign \o5 34'0000000000000000000001001110001000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:55"
case 4'0100
assign \o5 34'0000000000000000001100001101010000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:63"
case 4'0101
assign \o5 34'0000000000000001111010000100100000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:71"
case 4'0110
assign \o5 34'0000000000010011000100101101000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:79"
case 4'0111
assign \o5 34'0000000010111110101111000010000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:87"
case 4'1000
assign \o5 34'0000011101110011010110010100000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:95"
case 4'1001
assign \o5 34'0100101010000001011111001000000000
end
sync init
end
process $group_5
assign \o6 34'0000000000000000000000000000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:22"
switch \i_mag
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:23"
case 4'0000
assign \o6 34'0000000000000000000000000000000110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:31"
case 4'0001
assign \o6 34'0000000000000000000000000000111100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:39"
case 4'0010
assign \o6 34'0000000000000000000000001001011000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:47"
case 4'0011
assign \o6 34'0000000000000000000001011101110000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:55"
case 4'0100
assign \o6 34'0000000000000000001110101001100000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:63"
case 4'0101
assign \o6 34'0000000000000010010010011111000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:71"
case 4'0110
assign \o6 34'0000000000010110111000110110000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:79"
case 4'0111
assign \o6 34'0000000011100100111000011100000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:87"
case 4'1000
assign \o6 34'0000100011110000110100011000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:95"
case 4'1001
assign \o6 34'0101100101101000001011110000000000
end
sync init
end
process $group_6
assign \o7 34'0000000000000000000000000000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:22"
switch \i_mag
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:23"
case 4'0000
assign \o7 34'0000000000000000000000000000000111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:31"
case 4'0001
assign \o7 34'0000000000000000000000000001000110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:39"
case 4'0010
assign \o7 34'0000000000000000000000001010111100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:47"
case 4'0011
assign \o7 34'0000000000000000000001101101011000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:55"
case 4'0100
assign \o7 34'0000000000000000010001000101110000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:63"
case 4'0101
assign \o7 34'0000000000000010101010111001100000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:71"
case 4'0110
assign \o7 34'0000000000011010101100111111000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:79"
case 4'0111
assign \o7 34'0000000100001011000001110110000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:87"
case 4'1000
assign \o7 34'0000101001101110010010011100000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:95"
case 4'1001
assign \o7 34'0110100001001110111000011000000000
end
sync init
end
process $group_7
assign \o8 34'0000000000000000000000000000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:22"
switch \i_mag
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:23"
case 4'0000
assign \o8 34'0000000000000000000000000000001000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:31"
case 4'0001
assign \o8 34'0000000000000000000000000001010000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:39"
case 4'0010
assign \o8 34'0000000000000000000000001100100000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:47"
case 4'0011
assign \o8 34'0000000000000000000001111101000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:55"
case 4'0100
assign \o8 34'0000000000000000010011100010000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:63"
case 4'0101
assign \o8 34'0000000000000011000011010100000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:71"
case 4'0110
assign \o8 34'0000000000011110100001001000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:79"
case 4'0111
assign \o8 34'0000000100110001001011010000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:87"
case 4'1000
assign \o8 34'0000101111101011110000100000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:95"
case 4'1001
assign \o8 34'0111011100110101100101000000000000
end
sync init
end
process $group_8
assign \o9 34'0000000000000000000000000000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:22"
switch \i_mag
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:23"
case 4'0000
assign \o9 34'0000000000000000000000000000001001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:31"
case 4'0001
assign \o9 34'0000000000000000000000000001011010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:39"
case 4'0010
assign \o9 34'0000000000000000000000001110000100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:47"
case 4'0011
assign \o9 34'0000000000000000000010001100101000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:55"
case 4'0100
assign \o9 34'0000000000000000010101111110010000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:63"
case 4'0101
assign \o9 34'0000000000000011011011101110100000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:71"
case 4'0110
assign \o9 34'0000000000100010010101010001000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:79"
case 4'0111
assign \o9 34'0000000101010111010100101010000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:87"
case 4'1000
assign \o9 34'0000110101101001001110100100000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:95"
case 4'1001
assign \o9 34'1000011000011100010001101000000000
end
sync init
end
end
attribute \generator "nMigen"
attribute \nmigen.hierarchy "top.uart_printer.bcd1"
module \bcd1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:107"
wire width 30 input 0 \mag
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:108"
wire width 34 input 1 \i_val
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:110"
wire width 34 output 2 \o_rem
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:109"
wire width 4 output 3 \o_digit
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:9"
wire width 4 \cmag_i_mag
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:18"
wire width 34 \cmag_o9
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:17"
wire width 34 \cmag_o8
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:16"
wire width 34 \cmag_o7
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:15"
wire width 34 \cmag_o6
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:14"
wire width 34 \cmag_o5
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:13"
wire width 34 \cmag_o4
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:12"
wire width 34 \cmag_o3
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:11"
wire width 34 \cmag_o2
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:10"
wire width 34 \cmag_o1
cell \cmag \cmag
connect \i_mag \cmag_i_mag
connect \o9 \cmag_o9
connect \o8 \cmag_o8
connect \o7 \cmag_o7
connect \o6 \cmag_o6
connect \o5 \cmag_o5
connect \o4 \cmag_o4
connect \o3 \cmag_o3
connect \o2 \cmag_o2
connect \o1 \cmag_o1
end
process $group_0
assign \cmag_i_mag 4'0000
assign \cmag_i_mag \mag [3:0]
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:120"
wire width 1 $1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:120"
cell $ge $2
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 1
connect \A \i_val
connect \B \cmag_o9
connect \Y $1
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:122"
wire width 1 $3
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:122"
cell $ge $4
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 1
connect \A \i_val
connect \B \cmag_o8
connect \Y $3
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:124"
wire width 1 $5
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:124"
cell $ge $6
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 1
connect \A \i_val
connect \B \cmag_o7
connect \Y $5
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:126"
wire width 1 $7
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:126"
cell $ge $8
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 1
connect \A \i_val
connect \B \cmag_o6
connect \Y $7
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:128"
wire width 1 $9
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:128"
cell $ge $10
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 1
connect \A \i_val
connect \B \cmag_o5
connect \Y $9
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:130"
wire width 1 $11
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:130"
cell $ge $12
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 1
connect \A \i_val
connect \B \cmag_o4
connect \Y $11
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:132"
wire width 1 $13
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:132"
cell $ge $14
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 1
connect \A \i_val
connect \B \cmag_o3
connect \Y $13
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:134"
wire width 1 $15
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:134"
cell $ge $16
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 1
connect \A \i_val
connect \B \cmag_o2
connect \Y $15
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:136"
wire width 1 $17
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:136"
cell $ge $18
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 1
connect \A \i_val
connect \B \cmag_o1
connect \Y $17
end
process $group_1
assign \o_digit 4'0000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:120"
switch { $17 $15 $13 $11 $9 $7 $5 $3 $1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:120"
case 9'--------1
assign \o_digit 4'1001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:122"
case 9'-------1-
assign \o_digit 4'1000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:124"
case 9'------1--
assign \o_digit 4'0111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:126"
case 9'-----1---
assign \o_digit 4'0110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:128"
case 9'----1----
assign \o_digit 4'0101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:130"
case 9'---1-----
assign \o_digit 4'0100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:132"
case 9'--1------
assign \o_digit 4'0011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:134"
case 9'-1-------
assign \o_digit 4'0010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:136"
case 9'1--------
assign \o_digit 4'0001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:138"
case
assign \o_digit 4'0000
end
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:120"
wire width 1 $19
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:120"
cell $ge $20
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 1
connect \A \i_val
connect \B \cmag_o9
connect \Y $19
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:122"
wire width 1 $21
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:122"
cell $ge $22
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 1
connect \A \i_val
connect \B \cmag_o8
connect \Y $21
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:124"
wire width 1 $23
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:124"
cell $ge $24
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 1
connect \A \i_val
connect \B \cmag_o7
connect \Y $23
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:126"
wire width 1 $25
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:126"
cell $ge $26
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 1
connect \A \i_val
connect \B \cmag_o6
connect \Y $25
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:128"
wire width 1 $27
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:128"
cell $ge $28
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 1
connect \A \i_val
connect \B \cmag_o5
connect \Y $27
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:130"
wire width 1 $29
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:130"
cell $ge $30
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 1
connect \A \i_val
connect \B \cmag_o4
connect \Y $29
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:132"
wire width 1 $31
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:132"
cell $ge $32
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 1
connect \A \i_val
connect \B \cmag_o3
connect \Y $31
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:134"
wire width 1 $33
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:134"
cell $ge $34
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 1
connect \A \i_val
connect \B \cmag_o2
connect \Y $33
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:136"
wire width 1 $35
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:136"
cell $ge $36
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 1
connect \A \i_val
connect \B \cmag_o1
connect \Y $35
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:121"
wire width 35 $37
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:121"
wire width 35 $38
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:121"
cell $sub $39
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 35
connect \A \i_val
connect \B \cmag_o9
connect \Y $38
end
connect $37 $38
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:123"
wire width 35 $40
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:123"
wire width 35 $41
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:123"
cell $sub $42
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 35
connect \A \i_val
connect \B \cmag_o8
connect \Y $41
end
connect $40 $41
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:125"
wire width 35 $43
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:125"
wire width 35 $44
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:125"
cell $sub $45
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 35
connect \A \i_val
connect \B \cmag_o7
connect \Y $44
end
connect $43 $44
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:127"
wire width 35 $46
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:127"
wire width 35 $47
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:127"
cell $sub $48
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 35
connect \A \i_val
connect \B \cmag_o6
connect \Y $47
end
connect $46 $47
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:129"
wire width 35 $49
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:129"
wire width 35 $50
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:129"
cell $sub $51
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 35
connect \A \i_val
connect \B \cmag_o5
connect \Y $50
end
connect $49 $50
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:131"
wire width 35 $52
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:131"
wire width 35 $53
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:131"
cell $sub $54
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 35
connect \A \i_val
connect \B \cmag_o4
connect \Y $53
end
connect $52 $53
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:133"
wire width 35 $55
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:133"
wire width 35 $56
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:133"
cell $sub $57
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 35
connect \A \i_val
connect \B \cmag_o3
connect \Y $56
end
connect $55 $56
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:135"
wire width 35 $58
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:135"
wire width 35 $59
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:135"
cell $sub $60
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 35
connect \A \i_val
connect \B \cmag_o2
connect \Y $59
end
connect $58 $59
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:137"
wire width 35 $61
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:137"
wire width 35 $62
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:137"
cell $sub $63
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 34
parameter \Y_WIDTH 35
connect \A \i_val
connect \B \cmag_o1
connect \Y $62
end
connect $61 $62
process $group_2
assign \o_rem 34'0000000000000000000000000000000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:120"
switch { $35 $33 $31 $29 $27 $25 $23 $21 $19 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:120"
case 9'--------1
assign \o_rem $37 [33:0]
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:122"
case 9'-------1-
assign \o_rem $40 [33:0]
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:124"
case 9'------1--
assign \o_rem $43 [33:0]
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:126"
case 9'-----1---
assign \o_rem $46 [33:0]
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:128"
case 9'----1----
assign \o_rem $49 [33:0]
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:130"
case 9'---1-----
assign \o_rem $52 [33:0]
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:132"
case 9'--1------
assign \o_rem $55 [33:0]
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:134"
case 9'-1-------
assign \o_rem $58 [33:0]
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:136"
case 9'1--------
assign \o_rem $61 [33:0]
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:138"
case
assign \o_rem \i_val
end
sync init
end
end
attribute \generator "nMigen"
attribute \nmigen.hierarchy "top.uart_printer.h8d_1"
module \h8d_1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:15"
wire width 8 input 0 \i
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:17"
wire width 8 output 1 \o_upper
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:16"
wire width 8 output 2 \o_lower
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:19"
wire width 4 \lower
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:20"
wire width 4 \upper
process $group_0
assign \lower 4'0000
assign \upper 4'0000
assign { \upper \lower } \i
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:25"
wire width 1 $1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:25"
cell $le $2
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 4
parameter \Y_WIDTH 1
connect \A \lower
connect \B 4'1001
connect \Y $1
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:26"
wire width 8 $3
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:26"
wire width 7 $4
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:26"
cell $add $5
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 6
parameter \Y_WIDTH 7
connect \A \lower
connect \B 6'110000
connect \Y $4
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:26"
cell $pos $6
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \Y_WIDTH 8
connect \A $4
connect \Y $3
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:28"
wire width 8 $7
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:28"
cell $add $8
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 7
parameter \Y_WIDTH 8
connect \A \lower
connect \B 7'1010111
connect \Y $7
end
process $group_2
assign \o_lower 8'00000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:25"
switch { $1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:25"
case 1'1
assign \o_lower $3
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:27"
case
assign \o_lower $7
end
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:29"
wire width 1 $9
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:29"
cell $le $10
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 4
parameter \Y_WIDTH 1
connect \A \upper
connect \B 4'1001
connect \Y $9
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:30"
wire width 8 $11
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:30"
wire width 7 $12
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:30"
cell $add $13
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 6
parameter \Y_WIDTH 7
connect \A \upper
connect \B 6'110000
connect \Y $12
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:30"
cell $pos $14
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \Y_WIDTH 8
connect \A $12
connect \Y $11
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:32"
wire width 8 $15
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:32"
cell $add $16
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 7
parameter \Y_WIDTH 8
connect \A \upper
connect \B 7'1010111
connect \Y $15
end
process $group_3
assign \o_upper 8'00000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:29"
switch { $9 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:29"
case 1'1
assign \o_upper $11
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:31"
case
assign \o_upper $15
end
sync init
end
end
attribute \generator "nMigen"
attribute \nmigen.hierarchy "top.uart_printer.h8d_2"
module \h8d_2
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:15"
wire width 8 input 0 \i
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:17"
wire width 8 output 1 \o_upper
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:16"
wire width 8 output 2 \o_lower
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:19"
wire width 4 \lower
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:20"
wire width 4 \upper
process $group_0
assign \lower 4'0000
assign \upper 4'0000
assign { \upper \lower } \i
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:25"
wire width 1 $1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:25"
cell $le $2
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 4
parameter \Y_WIDTH 1
connect \A \lower
connect \B 4'1001
connect \Y $1
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:26"
wire width 8 $3
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:26"
wire width 7 $4
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:26"
cell $add $5
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 6
parameter \Y_WIDTH 7
connect \A \lower
connect \B 6'110000
connect \Y $4
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:26"
cell $pos $6
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \Y_WIDTH 8
connect \A $4
connect \Y $3
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:28"
wire width 8 $7
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:28"
cell $add $8
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 7
parameter \Y_WIDTH 8
connect \A \lower
connect \B 7'1010111
connect \Y $7
end
process $group_2
assign \o_lower 8'00000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:25"
switch { $1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:25"
case 1'1
assign \o_lower $3
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:27"
case
assign \o_lower $7
end
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:29"
wire width 1 $9
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:29"
cell $le $10
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 4
parameter \Y_WIDTH 1
connect \A \upper
connect \B 4'1001
connect \Y $9
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:30"
wire width 8 $11
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:30"
wire width 7 $12
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:30"
cell $add $13
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 6
parameter \Y_WIDTH 7
connect \A \upper
connect \B 6'110000
connect \Y $12
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:30"
cell $pos $14
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \Y_WIDTH 8
connect \A $12
connect \Y $11
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:32"
wire width 8 $15
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:32"
cell $add $16
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 7
parameter \Y_WIDTH 8
connect \A \upper
connect \B 7'1010111
connect \Y $15
end
process $group_3
assign \o_upper 8'00000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:29"
switch { $9 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:29"
case 1'1
assign \o_upper $11
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:31"
case
assign \o_upper $15
end
sync init
end
end
attribute \generator "nMigen"
attribute \nmigen.hierarchy "top.uart_printer.h8d_3"
module \h8d_3
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:15"
wire width 8 input 0 \i
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:17"
wire width 8 output 1 \o_upper
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:16"
wire width 8 output 2 \o_lower
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:19"
wire width 4 \lower
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:20"
wire width 4 \upper
process $group_0
assign \lower 4'0000
assign \upper 4'0000
assign { \upper \lower } \i
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:25"
wire width 1 $1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:25"
cell $le $2
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 4
parameter \Y_WIDTH 1
connect \A \lower
connect \B 4'1001
connect \Y $1
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:26"
wire width 8 $3
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:26"
wire width 7 $4
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:26"
cell $add $5
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 6
parameter \Y_WIDTH 7
connect \A \lower
connect \B 6'110000
connect \Y $4
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:26"
cell $pos $6
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \Y_WIDTH 8
connect \A $4
connect \Y $3
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:28"
wire width 8 $7
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:28"
cell $add $8
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 7
parameter \Y_WIDTH 8
connect \A \lower
connect \B 7'1010111
connect \Y $7
end
process $group_2
assign \o_lower 8'00000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:25"
switch { $1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:25"
case 1'1
assign \o_lower $3
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:27"
case
assign \o_lower $7
end
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:29"
wire width 1 $9
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:29"
cell $le $10
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 4
parameter \Y_WIDTH 1
connect \A \upper
connect \B 4'1001
connect \Y $9
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:30"
wire width 8 $11
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:30"
wire width 7 $12
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:30"
cell $add $13
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 6
parameter \Y_WIDTH 7
connect \A \upper
connect \B 6'110000
connect \Y $12
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:30"
cell $pos $14
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \Y_WIDTH 8
connect \A $12
connect \Y $11
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:32"
wire width 8 $15
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:32"
cell $add $16
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 7
parameter \Y_WIDTH 8
connect \A \upper
connect \B 7'1010111
connect \Y $15
end
process $group_3
assign \o_upper 8'00000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:29"
switch { $9 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:29"
case 1'1
assign \o_upper $11
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:31"
case
assign \o_upper $15
end
sync init
end
end
attribute \generator "nMigen"
attribute \nmigen.hierarchy "top.uart_printer.h8d_4"
module \h8d_4
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:15"
wire width 8 input 0 \i
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:17"
wire width 8 output 1 \o_upper
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:16"
wire width 8 output 2 \o_lower
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:19"
wire width 4 \lower
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:20"
wire width 4 \upper
process $group_0
assign \lower 4'0000
assign \upper 4'0000
assign { \upper \lower } \i
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:25"
wire width 1 $1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:25"
cell $le $2
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 4
parameter \Y_WIDTH 1
connect \A \lower
connect \B 4'1001
connect \Y $1
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:26"
wire width 8 $3
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:26"
wire width 7 $4
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:26"
cell $add $5
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 6
parameter \Y_WIDTH 7
connect \A \lower
connect \B 6'110000
connect \Y $4
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:26"
cell $pos $6
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \Y_WIDTH 8
connect \A $4
connect \Y $3
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:28"
wire width 8 $7
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:28"
cell $add $8
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 7
parameter \Y_WIDTH 8
connect \A \lower
connect \B 7'1010111
connect \Y $7
end
process $group_2
assign \o_lower 8'00000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:25"
switch { $1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:25"
case 1'1
assign \o_lower $3
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:27"
case
assign \o_lower $7
end
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:29"
wire width 1 $9
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:29"
cell $le $10
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 4
parameter \Y_WIDTH 1
connect \A \upper
connect \B 4'1001
connect \Y $9
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:30"
wire width 8 $11
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:30"
wire width 7 $12
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:30"
cell $add $13
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 6
parameter \Y_WIDTH 7
connect \A \upper
connect \B 6'110000
connect \Y $12
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:30"
cell $pos $14
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \Y_WIDTH 8
connect \A $12
connect \Y $11
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:32"
wire width 8 $15
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:32"
cell $add $16
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 7
parameter \Y_WIDTH 8
connect \A \upper
connect \B 7'1010111
connect \Y $15
end
process $group_3
assign \o_upper 8'00000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:29"
switch { $9 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:29"
case 1'1
assign \o_upper $11
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:31"
case
assign \o_upper $15
end
sync init
end
end
attribute \generator "nMigen"
attribute \nmigen.hierarchy "top.uart_printer.inputfifo.unbuffered"
module \unbuffered$2
attribute \src "collatz_driver.py:43"
wire width 1 input 0 \clk
attribute \src "collatz_driver.py:43"
wire width 1 input 1 \rst
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:65"
wire width 37 input 2 \din
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:67"
wire width 1 input 3 \we
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:66"
wire width 1 output 4 \writable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:139"
wire width 1 input 5 \replace
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:69"
wire width 37 output 6 \dout
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:71"
wire width 1 input 7 \re
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:70"
wire width 1 output 8 \readable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:138"
wire width 7 output 9 \level
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:138"
wire width 7 \level$next
memory width 37 size 127 \storage
cell $meminit $1
parameter \MEMID "\\storage"
parameter \ABITS 7
parameter \WIDTH 37
parameter \WORDS 127
parameter \PRIORITY 0
connect \ADDR 7'0000000
connect \DATA 4699'0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:152"
wire width 1 \storage_w_en
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:152"
wire width 7 \storage_w_addr
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:152"
wire width 37 \storage_w_data
cell $memwr \wrport
parameter \MEMID "\\storage"
parameter \ABITS 7
parameter \WIDTH 37
parameter \CLK_ENABLE 1
parameter \CLK_POLARITY 1
parameter \PRIORITY 0
connect \CLK \clk
connect \EN { { \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en \storage_w_en } }
connect \ADDR \storage_w_addr
connect \DATA \storage_w_data
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:154"
wire width 1 \storage_r_en
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:154"
wire width 7 \storage_r_addr
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:154"
wire width 37 \storage_r_data
cell $memrd \rdport
parameter \MEMID "\\storage"
parameter \ABITS 7
parameter \WIDTH 37
parameter \CLK_ENABLE 1
parameter \CLK_POLARITY 1
parameter \TRANSPARENT 0
connect \CLK \clk
connect \EN \storage_r_en
connect \ADDR \storage_r_addr
connect \DATA \storage_r_data
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:144"
wire width 1 $2
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:144"
cell $ne $3
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \B_SIGNED 0
parameter \B_WIDTH 7
parameter \Y_WIDTH 1
connect \A \level
connect \B 7'1111111
connect \Y $2
end
process $group_0
assign \writable 1'0
assign \writable $2
sync init
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:145"
wire width 1 $4
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:145"
cell $ne $5
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \level
connect \B 1'0
connect \Y $4
end
process $group_1
assign \readable 1'0
assign \readable $4
sync init
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:155"
wire width 7 \produce
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:155"
wire width 7 \produce$next
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:102"
wire width 8 $6
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:102"
wire width 8 $7
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:102"
cell $sub $8
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 8
connect \A \produce
connect \B 1'1
connect \Y $7
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:102"
wire width 8 $9
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:102"
wire width 1 $10
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:102"
cell $eq $11
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \produce
connect \B 1'0
connect \Y $10
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:102"
cell $mux $12
parameter \WIDTH 8
connect \A $7
connect \B 8'01111110
connect \S $10
connect \Y $9
end
connect $6 $9
process $group_2
assign \storage_w_addr 7'0000000
assign \storage_w_addr \produce
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:163"
switch { \replace }
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:163"
case 1'1
assign \storage_w_addr $6 [6:0]
end
sync init
end
process $group_3
assign \storage_w_data 37'0000000000000000000000000000000000000
assign \storage_w_data \din
sync init
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:161"
wire width 1 $13
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:161"
cell $or $14
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \writable
connect \B \replace
connect \Y $13
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:161"
wire width 1 $15
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:161"
cell $and $16
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \we
connect \B $13
connect \Y $15
end
process $group_4
assign \storage_w_en 1'0
assign \storage_w_en $15
sync init
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $17
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $and $18
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \writable
connect \B \we
connect \Y $17
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $19
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $not $20
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \replace
connect \Y $19
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $21
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $and $22
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $17
connect \B $19
connect \Y $21
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 8 $23
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 8 $24
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
cell $add $25
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 8
connect \A \produce
connect \B 1'1
connect \Y $24
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 8 $26
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 1 $27
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
cell $eq $28
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \B_SIGNED 0
parameter \B_WIDTH 7
parameter \Y_WIDTH 1
connect \A \produce
connect \B 7'1111110
connect \Y $27
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
cell $mux $29
parameter \WIDTH 8
connect \A $24
connect \B 8'00000000
connect \S $27
connect \Y $26
end
connect $23 $26
process $group_5
assign \produce$next \produce
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:165"
switch { $21 }
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:165"
case 1'1
assign \produce$next $23 [6:0]
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \produce$next 7'0000000
end
sync init
update \produce 7'0000000
sync posedge \clk
update \produce \produce$next
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:156"
wire width 7 \consume
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:156"
wire width 7 \consume$next
process $group_6
assign \storage_r_addr 7'0000000
assign \storage_r_addr \consume
sync init
end
process $group_7
assign \dout 37'0000000000000000000000000000000000000
assign \dout \storage_r_data
sync init
end
process $group_8
assign \storage_r_en 1'0
assign \storage_r_en \re
sync init
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:148"
wire width 1 $30
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:148"
cell $and $31
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \readable
connect \B \re
connect \Y $30
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 8 $32
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 8 $33
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
cell $add $34
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 8
connect \A \consume
connect \B 1'1
connect \Y $33
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 8 $35
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
wire width 1 $36
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
cell $eq $37
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \B_SIGNED 0
parameter \B_WIDTH 7
parameter \Y_WIDTH 1
connect \A \consume
connect \B 7'1111110
connect \Y $36
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:95"
cell $mux $38
parameter \WIDTH 8
connect \A $33
connect \B 8'00000000
connect \S $36
connect \Y $35
end
connect $32 $35
process $group_9
assign \consume$next \consume
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:174"
switch { $30 }
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:174"
case 1'1
assign \consume$next $32 [6:0]
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \consume$next 7'0000000
end
sync init
update \consume 7'0000000
sync posedge \clk
update \consume \consume$next
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $39
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $and $40
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \writable
connect \B \we
connect \Y $39
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $41
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $not $42
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \replace
connect \Y $41
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $43
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $and $44
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $39
connect \B $41
connect \Y $43
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:177"
wire width 1 $45
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:148"
wire width 1 $46
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:148"
cell $and $47
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \readable
connect \B \re
connect \Y $46
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:177"
cell $not $48
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A $46
connect \Y $45
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:177"
wire width 1 $49
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:177"
cell $and $50
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $43
connect \B $45
connect \Y $49
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:178"
wire width 8 $51
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:178"
wire width 8 $52
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:178"
cell $add $53
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 8
connect \A \level
connect \B 1'1
connect \Y $52
end
connect $51 $52
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:148"
wire width 1 $54
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:148"
cell $and $55
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \readable
connect \B \re
connect \Y $54
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:179"
wire width 1 $56
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $57
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $and $58
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \writable
connect \B \we
connect \Y $57
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $59
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $not $60
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \replace
connect \Y $59
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
wire width 1 $61
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:149"
cell $and $62
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $57
connect \B $59
connect \Y $61
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:179"
cell $not $63
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A $61
connect \Y $56
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:179"
wire width 1 $64
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:179"
cell $and $65
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $54
connect \B $56
connect \Y $64
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:180"
wire width 8 $66
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:180"
wire width 8 $67
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:180"
cell $sub $68
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 8
connect \A \level
connect \B 1'1
connect \Y $67
end
connect $66 $67
process $group_10
assign \level$next \level
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:177"
switch { $49 }
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:177"
case 1'1
assign \level$next $51 [6:0]
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:179"
switch { $64 }
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:179"
case 1'1
assign \level$next $66 [6:0]
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \level$next 7'0000000
end
sync init
update \level 7'0000000
sync posedge \clk
update \level \level$next
end
end
attribute \generator "nMigen"
attribute \nmigen.hierarchy "top.uart_printer.inputfifo"
module \inputfifo
attribute \src "collatz_driver.py:43"
wire width 1 input 0 \clk
attribute \src "collatz_driver.py:43"
wire width 1 input 1 \rst
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:67"
wire width 1 input 2 \we
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:65"
wire width 37 input 3 \din
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:66"
wire width 1 output 4 \writable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:70"
wire width 1 output 5 \readable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:70"
wire width 1 \readable$next
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:69"
wire width 37 output 6 \dout
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:71"
wire width 1 input 7 \re
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:65"
wire width 37 \unbuffered_din
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:67"
wire width 1 \unbuffered_we
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:66"
wire width 1 \unbuffered_writable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:139"
wire width 1 \unbuffered_replace
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:69"
wire width 37 \unbuffered_dout
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:71"
wire width 1 \unbuffered_re
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:70"
wire width 1 \unbuffered_readable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:138"
wire width 7 \unbuffered_level
cell \unbuffered$2 \unbuffered
connect \clk \clk
connect \rst \rst
connect \din \unbuffered_din
connect \we \unbuffered_we
connect \writable \unbuffered_writable
connect \replace \unbuffered_replace
connect \dout \unbuffered_dout
connect \re \unbuffered_re
connect \readable \unbuffered_readable
connect \level \unbuffered_level
end
process $group_0
assign \unbuffered_din 37'0000000000000000000000000000000000000
assign \unbuffered_din \din
sync init
end
process $group_1
assign \unbuffered_we 1'0
assign \unbuffered_we \we
sync init
end
process $group_2
assign \writable 1'0
assign \writable \unbuffered_writable
sync init
end
wire width 1 $verilog_initial_trigger
process $group_3
assign \unbuffered_replace 1'0
assign \unbuffered_replace 1'0
assign $verilog_initial_trigger $verilog_initial_trigger
sync init
update $verilog_initial_trigger 1'0
end
process $group_4
assign \dout 37'0000000000000000000000000000000000000
assign \dout \unbuffered_dout
sync init
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:254"
wire width 1 $1
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:254"
cell $not $2
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \Y_WIDTH 1
connect \A \readable
connect \Y $1
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:254"
wire width 1 $3
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:254"
cell $or $4
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $1
connect \B \re
connect \Y $3
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:254"
wire width 1 $5
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:254"
cell $and $6
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \unbuffered_readable
connect \B $3
connect \Y $5
end
process $group_5
assign \unbuffered_re 1'0
assign \unbuffered_re $5
sync init
end
process $group_6
assign \readable$next \readable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:256"
switch { \re \unbuffered_re }
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:256"
case 2'-1
assign \readable$next 1'1
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:258"
case 2'1-
assign \readable$next 1'0
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \readable$next 1'0
end
sync init
update \readable 1'0
sync posedge \clk
update \readable \readable$next
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:236"
wire width 8 \level
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:261"
wire width 8 $7
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:261"
cell $add $8
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 8
connect \A \unbuffered_level
connect \B \readable
connect \Y $7
end
process $group_7
assign \level 8'00000000
assign \level $7
sync init
end
end
attribute \generator "nMigen"
attribute \nmigen.hierarchy "top.uart_printer"
module \uart_printer
attribute \src "collatz_driver.py:43"
wire width 1 input 0 \clk
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:40"
wire width 1 output 1 \writable
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:39"
wire width 37 input 2 \din
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:38"
wire width 1 input 3 \we
attribute \src "collatz_driver.py:43"
wire width 1 input 4 \rst
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:66"
wire width 1 input 5 \writable$1
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:67"
wire width 1 output 6 \we$2
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:65"
wire width 8 output 7 \din$3
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:107"
wire width 30 \bcd1_mag
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:107"
wire width 30 \bcd1_mag$next
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:108"
wire width 34 \bcd1_i_val
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:108"
wire width 34 \bcd1_i_val$next
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:110"
wire width 34 \bcd1_o_rem
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/bcd.py:109"
wire width 4 \bcd1_o_digit
cell \bcd1 \bcd1
connect \mag \bcd1_mag
connect \i_val \bcd1_i_val
connect \o_rem \bcd1_o_rem
connect \o_digit \bcd1_o_digit
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:15"
wire width 8 \h8d_1_i
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:17"
wire width 8 \h8d_1_o_upper
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:16"
wire width 8 \h8d_1_o_lower
cell \h8d_1 \h8d_1
connect \i \h8d_1_i
connect \o_upper \h8d_1_o_upper
connect \o_lower \h8d_1_o_lower
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:15"
wire width 8 \h8d_2_i
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:17"
wire width 8 \h8d_2_o_upper
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:16"
wire width 8 \h8d_2_o_lower
cell \h8d_2 \h8d_2
connect \i \h8d_2_i
connect \o_upper \h8d_2_o_upper
connect \o_lower \h8d_2_o_lower
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:15"
wire width 8 \h8d_3_i
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:17"
wire width 8 \h8d_3_o_upper
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:16"
wire width 8 \h8d_3_o_lower
cell \h8d_3 \h8d_3
connect \i \h8d_3_i
connect \o_upper \h8d_3_o_upper
connect \o_lower \h8d_3_o_lower
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:15"
wire width 8 \h8d_4_i
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:17"
wire width 8 \h8d_4_o_upper
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:16"
wire width 8 \h8d_4_o_lower
cell \h8d_4 \h8d_4
connect \i \h8d_4_i
connect \o_upper \h8d_4_o_upper
connect \o_lower \h8d_4_o_lower
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:67"
wire width 1 \inputfifo_we
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:65"
wire width 37 \inputfifo_din
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:66"
wire width 1 \inputfifo_writable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:70"
wire width 1 \inputfifo_readable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:69"
wire width 37 \inputfifo_dout
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:71"
wire width 1 \inputfifo_re
cell \inputfifo \inputfifo
connect \clk \clk
connect \rst \rst
connect \we \inputfifo_we
connect \din \inputfifo_din
connect \writable \inputfifo_writable
connect \readable \inputfifo_readable
connect \dout \inputfifo_dout
connect \re \inputfifo_re
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:58"
wire width 8 \h_1a
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:58"
wire width 8 \h_1a$next
process $group_0
assign \h8d_1_i 8'00000000
assign \h8d_1_i \h_1a
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:59"
wire width 8 \h_1b
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:59"
wire width 8 \h_1b$next
process $group_1
assign \h8d_2_i 8'00000000
assign \h8d_2_i \h_1b
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:60"
wire width 8 \h_1c
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:60"
wire width 8 \h_1c$next
process $group_2
assign \h8d_3_i 8'00000000
assign \h8d_3_i \h_1c
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:61"
wire width 8 \h_1d
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:61"
wire width 8 \h_1d$next
process $group_3
assign \h8d_4_i 8'00000000
assign \h8d_4_i \h_1d
sync init
end
process $group_4
assign \inputfifo_we 1'0
assign \inputfifo_we \we
sync init
end
process $group_5
assign \inputfifo_din 37'0000000000000000000000000000000000000
assign \inputfifo_din \din
sync init
end
process $group_6
assign \writable 1'0
assign \writable \inputfifo_writable
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:48"
wire width 34 \data
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:47"
wire width 3 \cmd
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:86"
wire width 5 \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:86"
wire width 5 \fsm_state$next
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
wire width 1 $4
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
cell $and $5
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \inputfifo_readable
connect \B \writable$1
connect \Y $4
end
process $group_7
assign \data 34'0000000000000000000000000000000000
assign \cmd 3'000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:86"
switch \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:87"
attribute \nmigen.decoding "READY/0"
case 5'00000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
switch { $4 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
case 1'1
assign { \cmd \data } \inputfifo_dout
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:134"
attribute \nmigen.decoding "V_1/1"
case 5'00001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:141"
attribute \nmigen.decoding "V_2/4"
case 5'00100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:148"
attribute \nmigen.decoding "V_3/5"
case 5'00101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:155"
attribute \nmigen.decoding "V_4/6"
case 5'00110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:164"
attribute \nmigen.decoding "D_1/2"
case 5'00010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:179"
attribute \nmigen.decoding "D_2/7"
case 5'00111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:193"
attribute \nmigen.decoding "D_3/8"
case 5'01000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:207"
attribute \nmigen.decoding "D_4/9"
case 5'01001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:221"
attribute \nmigen.decoding "D_5/10"
case 5'01010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:235"
attribute \nmigen.decoding "D_6/11"
case 5'01011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:249"
attribute \nmigen.decoding "D_7/12"
case 5'01100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:263"
attribute \nmigen.decoding "D_8/13"
case 5'01101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:278"
attribute \nmigen.decoding "D_9/14"
case 5'01110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:292"
attribute \nmigen.decoding "D_10/15"
case 5'01111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:316"
attribute \nmigen.decoding "H32_1a/3"
case 5'00011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:322"
attribute \nmigen.decoding "H32_1b/17"
case 5'10001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:332"
attribute \nmigen.decoding "H32_2a_space/18"
case 5'10010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:340"
attribute \nmigen.decoding "H32_2a/19"
case 5'10011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:346"
attribute \nmigen.decoding "H32_2b/20"
case 5'10100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:356"
attribute \nmigen.decoding "H32_3a_space/21"
case 5'10101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:364"
attribute \nmigen.decoding "H32_3a/22"
case 5'10110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:370"
attribute \nmigen.decoding "H32_3b/23"
case 5'10111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:380"
attribute \nmigen.decoding "H32_4a_space/24"
case 5'11000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:388"
attribute \nmigen.decoding "H32_4a/25"
case 5'11001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:394"
attribute \nmigen.decoding "H32_4b/26"
case 5'11010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:401"
attribute \nmigen.decoding "SPACE/16"
case 5'10000
end
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
wire width 1 $6
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
cell $and $7
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \inputfifo_readable
connect \B \writable$1
connect \Y $6
end
process $group_9
assign \inputfifo_re 1'0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:86"
switch \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:87"
attribute \nmigen.decoding "READY/0"
case 5'00000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
switch { $6 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
case 1'1
assign \inputfifo_re 1'1
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:134"
attribute \nmigen.decoding "V_1/1"
case 5'00001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:141"
attribute \nmigen.decoding "V_2/4"
case 5'00100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:148"
attribute \nmigen.decoding "V_3/5"
case 5'00101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:155"
attribute \nmigen.decoding "V_4/6"
case 5'00110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:164"
attribute \nmigen.decoding "D_1/2"
case 5'00010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:179"
attribute \nmigen.decoding "D_2/7"
case 5'00111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:193"
attribute \nmigen.decoding "D_3/8"
case 5'01000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:207"
attribute \nmigen.decoding "D_4/9"
case 5'01001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:221"
attribute \nmigen.decoding "D_5/10"
case 5'01010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:235"
attribute \nmigen.decoding "D_6/11"
case 5'01011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:249"
attribute \nmigen.decoding "D_7/12"
case 5'01100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:263"
attribute \nmigen.decoding "D_8/13"
case 5'01101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:278"
attribute \nmigen.decoding "D_9/14"
case 5'01110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:292"
attribute \nmigen.decoding "D_10/15"
case 5'01111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:316"
attribute \nmigen.decoding "H32_1a/3"
case 5'00011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:322"
attribute \nmigen.decoding "H32_1b/17"
case 5'10001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:332"
attribute \nmigen.decoding "H32_2a_space/18"
case 5'10010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:340"
attribute \nmigen.decoding "H32_2a/19"
case 5'10011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:346"
attribute \nmigen.decoding "H32_2b/20"
case 5'10100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:356"
attribute \nmigen.decoding "H32_3a_space/21"
case 5'10101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:364"
attribute \nmigen.decoding "H32_3a/22"
case 5'10110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:370"
attribute \nmigen.decoding "H32_3b/23"
case 5'10111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:380"
attribute \nmigen.decoding "H32_4a_space/24"
case 5'11000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:388"
attribute \nmigen.decoding "H32_4a/25"
case 5'11001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:394"
attribute \nmigen.decoding "H32_4b/26"
case 5'11010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:401"
attribute \nmigen.decoding "SPACE/16"
case 5'10000
end
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:50"
wire width 1 \nonlead0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:50"
wire width 1 \nonlead0$next
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
wire width 1 $8
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
cell $and $9
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \inputfifo_readable
connect \B \writable$1
connect \Y $8
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
wire width 1 $10
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
cell $gt $11
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $10
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
wire width 1 $12
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
cell $eq $13
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $12
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
wire width 1 $14
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
cell $or $15
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $10
connect \B $12
connect \Y $14
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
wire width 1 $16
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
cell $gt $17
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $16
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
wire width 1 $18
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
cell $eq $19
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $18
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
wire width 1 $20
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
cell $or $21
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $16
connect \B $18
connect \Y $20
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
wire width 1 $22
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
cell $gt $23
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $22
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
wire width 1 $24
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
cell $eq $25
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $24
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
wire width 1 $26
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
cell $or $27
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $22
connect \B $24
connect \Y $26
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
wire width 1 $28
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
cell $gt $29
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $28
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
wire width 1 $30
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
cell $eq $31
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $30
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
wire width 1 $32
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
cell $or $33
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $28
connect \B $30
connect \Y $32
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
wire width 1 $34
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
cell $gt $35
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $34
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
wire width 1 $36
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
cell $eq $37
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $36
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
wire width 1 $38
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
cell $or $39
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $34
connect \B $36
connect \Y $38
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
wire width 1 $40
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
cell $gt $41
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $40
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
wire width 1 $42
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
cell $eq $43
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $42
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
wire width 1 $44
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
cell $or $45
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $40
connect \B $42
connect \Y $44
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
wire width 1 $46
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
cell $gt $47
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $46
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
wire width 1 $48
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
cell $eq $49
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $48
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
wire width 1 $50
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
cell $or $51
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $46
connect \B $48
connect \Y $50
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
wire width 1 $52
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
cell $gt $53
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $52
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
wire width 1 $54
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
cell $eq $55
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $54
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
wire width 1 $56
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
cell $or $57
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $52
connect \B $54
connect \Y $56
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
wire width 1 $58
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
cell $gt $59
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $58
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
wire width 1 $60
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
cell $eq $61
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $60
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
wire width 1 $62
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
cell $or $63
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $58
connect \B $60
connect \Y $62
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
wire width 1 $64
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
cell $gt $65
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $64
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
wire width 1 $66
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
cell $eq $67
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $66
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
wire width 1 $68
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
cell $or $69
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $64
connect \B $66
connect \Y $68
end
process $group_10
assign \nonlead0$next \nonlead0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:86"
switch \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:87"
attribute \nmigen.decoding "READY/0"
case 5'00000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
switch { $8 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
case 1'1
assign \nonlead0$next 1'0
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:134"
attribute \nmigen.decoding "V_1/1"
case 5'00001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:141"
attribute \nmigen.decoding "V_2/4"
case 5'00100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:148"
attribute \nmigen.decoding "V_3/5"
case 5'00101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:155"
attribute \nmigen.decoding "V_4/6"
case 5'00110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:164"
attribute \nmigen.decoding "D_1/2"
case 5'00010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:166"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:166"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
switch { $14 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
case 1'1
assign \nonlead0$next 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:179"
attribute \nmigen.decoding "D_2/7"
case 5'00111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:180"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:180"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
switch { $20 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
case 1'1
assign \nonlead0$next 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:193"
attribute \nmigen.decoding "D_3/8"
case 5'01000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:194"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:194"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
switch { $26 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
case 1'1
assign \nonlead0$next 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:207"
attribute \nmigen.decoding "D_4/9"
case 5'01001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:208"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:208"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
switch { $32 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
case 1'1
assign \nonlead0$next 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:221"
attribute \nmigen.decoding "D_5/10"
case 5'01010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:222"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:222"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
switch { $38 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
case 1'1
assign \nonlead0$next 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:235"
attribute \nmigen.decoding "D_6/11"
case 5'01011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:236"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:236"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
switch { $44 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
case 1'1
assign \nonlead0$next 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:249"
attribute \nmigen.decoding "D_7/12"
case 5'01100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:250"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:250"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
switch { $50 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
case 1'1
assign \nonlead0$next 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:263"
attribute \nmigen.decoding "D_8/13"
case 5'01101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:264"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:264"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
switch { $56 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
case 1'1
assign \nonlead0$next 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:278"
attribute \nmigen.decoding "D_9/14"
case 5'01110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:279"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:279"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
switch { $62 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
case 1'1
assign \nonlead0$next 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:292"
attribute \nmigen.decoding "D_10/15"
case 5'01111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:293"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:293"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
switch { $68 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
case 1'1
assign \nonlead0$next 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:316"
attribute \nmigen.decoding "H32_1a/3"
case 5'00011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:322"
attribute \nmigen.decoding "H32_1b/17"
case 5'10001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:332"
attribute \nmigen.decoding "H32_2a_space/18"
case 5'10010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:340"
attribute \nmigen.decoding "H32_2a/19"
case 5'10011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:346"
attribute \nmigen.decoding "H32_2b/20"
case 5'10100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:356"
attribute \nmigen.decoding "H32_3a_space/21"
case 5'10101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:364"
attribute \nmigen.decoding "H32_3a/22"
case 5'10110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:370"
attribute \nmigen.decoding "H32_3b/23"
case 5'10111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:380"
attribute \nmigen.decoding "H32_4a_space/24"
case 5'11000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:388"
attribute \nmigen.decoding "H32_4a/25"
case 5'11001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:394"
attribute \nmigen.decoding "H32_4b/26"
case 5'11010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:401"
attribute \nmigen.decoding "SPACE/16"
case 5'10000
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \nonlead0$next 1'0
end
sync init
update \nonlead0 1'0
sync posedge \clk
update \nonlead0 \nonlead0$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:53"
wire width 8 \va
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:53"
wire width 8 \va$next
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
wire width 1 $70
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
cell $and $71
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \inputfifo_readable
connect \B \writable$1
connect \Y $70
end
process $group_11
assign \va$next \va
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:86"
switch \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:87"
attribute \nmigen.decoding "READY/0"
case 5'00000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
switch { $70 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:99"
switch \cmd
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:100"
case 3'100
assign \va$next \data [7:0]
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:108"
case 3'101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:114"
case 3'110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:123"
case 3'111
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:134"
attribute \nmigen.decoding "V_1/1"
case 5'00001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:141"
attribute \nmigen.decoding "V_2/4"
case 5'00100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:148"
attribute \nmigen.decoding "V_3/5"
case 5'00101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:155"
attribute \nmigen.decoding "V_4/6"
case 5'00110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:164"
attribute \nmigen.decoding "D_1/2"
case 5'00010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:179"
attribute \nmigen.decoding "D_2/7"
case 5'00111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:193"
attribute \nmigen.decoding "D_3/8"
case 5'01000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:207"
attribute \nmigen.decoding "D_4/9"
case 5'01001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:221"
attribute \nmigen.decoding "D_5/10"
case 5'01010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:235"
attribute \nmigen.decoding "D_6/11"
case 5'01011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:249"
attribute \nmigen.decoding "D_7/12"
case 5'01100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:263"
attribute \nmigen.decoding "D_8/13"
case 5'01101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:278"
attribute \nmigen.decoding "D_9/14"
case 5'01110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:292"
attribute \nmigen.decoding "D_10/15"
case 5'01111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:316"
attribute \nmigen.decoding "H32_1a/3"
case 5'00011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:322"
attribute \nmigen.decoding "H32_1b/17"
case 5'10001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:332"
attribute \nmigen.decoding "H32_2a_space/18"
case 5'10010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:340"
attribute \nmigen.decoding "H32_2a/19"
case 5'10011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:346"
attribute \nmigen.decoding "H32_2b/20"
case 5'10100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:356"
attribute \nmigen.decoding "H32_3a_space/21"
case 5'10101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:364"
attribute \nmigen.decoding "H32_3a/22"
case 5'10110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:370"
attribute \nmigen.decoding "H32_3b/23"
case 5'10111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:380"
attribute \nmigen.decoding "H32_4a_space/24"
case 5'11000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:388"
attribute \nmigen.decoding "H32_4a/25"
case 5'11001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:394"
attribute \nmigen.decoding "H32_4b/26"
case 5'11010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:401"
attribute \nmigen.decoding "SPACE/16"
case 5'10000
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \va$next 8'00000000
end
sync init
update \va 8'00000000
sync posedge \clk
update \va \va$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:54"
wire width 8 \vb
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:54"
wire width 8 \vb$next
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
wire width 1 $72
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
cell $and $73
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \inputfifo_readable
connect \B \writable$1
connect \Y $72
end
process $group_12
assign \vb$next \vb
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:86"
switch \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:87"
attribute \nmigen.decoding "READY/0"
case 5'00000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
switch { $72 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:99"
switch \cmd
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:100"
case 3'100
assign \vb$next \data [15:8]
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:108"
case 3'101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:114"
case 3'110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:123"
case 3'111
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:134"
attribute \nmigen.decoding "V_1/1"
case 5'00001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:141"
attribute \nmigen.decoding "V_2/4"
case 5'00100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:148"
attribute \nmigen.decoding "V_3/5"
case 5'00101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:155"
attribute \nmigen.decoding "V_4/6"
case 5'00110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:164"
attribute \nmigen.decoding "D_1/2"
case 5'00010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:179"
attribute \nmigen.decoding "D_2/7"
case 5'00111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:193"
attribute \nmigen.decoding "D_3/8"
case 5'01000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:207"
attribute \nmigen.decoding "D_4/9"
case 5'01001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:221"
attribute \nmigen.decoding "D_5/10"
case 5'01010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:235"
attribute \nmigen.decoding "D_6/11"
case 5'01011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:249"
attribute \nmigen.decoding "D_7/12"
case 5'01100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:263"
attribute \nmigen.decoding "D_8/13"
case 5'01101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:278"
attribute \nmigen.decoding "D_9/14"
case 5'01110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:292"
attribute \nmigen.decoding "D_10/15"
case 5'01111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:316"
attribute \nmigen.decoding "H32_1a/3"
case 5'00011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:322"
attribute \nmigen.decoding "H32_1b/17"
case 5'10001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:332"
attribute \nmigen.decoding "H32_2a_space/18"
case 5'10010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:340"
attribute \nmigen.decoding "H32_2a/19"
case 5'10011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:346"
attribute \nmigen.decoding "H32_2b/20"
case 5'10100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:356"
attribute \nmigen.decoding "H32_3a_space/21"
case 5'10101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:364"
attribute \nmigen.decoding "H32_3a/22"
case 5'10110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:370"
attribute \nmigen.decoding "H32_3b/23"
case 5'10111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:380"
attribute \nmigen.decoding "H32_4a_space/24"
case 5'11000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:388"
attribute \nmigen.decoding "H32_4a/25"
case 5'11001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:394"
attribute \nmigen.decoding "H32_4b/26"
case 5'11010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:401"
attribute \nmigen.decoding "SPACE/16"
case 5'10000
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \vb$next 8'00000000
end
sync init
update \vb 8'00000000
sync posedge \clk
update \vb \vb$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:55"
wire width 8 \vc
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:55"
wire width 8 \vc$next
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
wire width 1 $74
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
cell $and $75
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \inputfifo_readable
connect \B \writable$1
connect \Y $74
end
process $group_13
assign \vc$next \vc
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:86"
switch \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:87"
attribute \nmigen.decoding "READY/0"
case 5'00000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
switch { $74 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:99"
switch \cmd
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:100"
case 3'100
assign \vc$next \data [23:16]
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:108"
case 3'101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:114"
case 3'110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:123"
case 3'111
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:134"
attribute \nmigen.decoding "V_1/1"
case 5'00001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:141"
attribute \nmigen.decoding "V_2/4"
case 5'00100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:148"
attribute \nmigen.decoding "V_3/5"
case 5'00101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:155"
attribute \nmigen.decoding "V_4/6"
case 5'00110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:164"
attribute \nmigen.decoding "D_1/2"
case 5'00010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:179"
attribute \nmigen.decoding "D_2/7"
case 5'00111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:193"
attribute \nmigen.decoding "D_3/8"
case 5'01000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:207"
attribute \nmigen.decoding "D_4/9"
case 5'01001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:221"
attribute \nmigen.decoding "D_5/10"
case 5'01010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:235"
attribute \nmigen.decoding "D_6/11"
case 5'01011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:249"
attribute \nmigen.decoding "D_7/12"
case 5'01100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:263"
attribute \nmigen.decoding "D_8/13"
case 5'01101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:278"
attribute \nmigen.decoding "D_9/14"
case 5'01110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:292"
attribute \nmigen.decoding "D_10/15"
case 5'01111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:316"
attribute \nmigen.decoding "H32_1a/3"
case 5'00011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:322"
attribute \nmigen.decoding "H32_1b/17"
case 5'10001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:332"
attribute \nmigen.decoding "H32_2a_space/18"
case 5'10010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:340"
attribute \nmigen.decoding "H32_2a/19"
case 5'10011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:346"
attribute \nmigen.decoding "H32_2b/20"
case 5'10100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:356"
attribute \nmigen.decoding "H32_3a_space/21"
case 5'10101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:364"
attribute \nmigen.decoding "H32_3a/22"
case 5'10110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:370"
attribute \nmigen.decoding "H32_3b/23"
case 5'10111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:380"
attribute \nmigen.decoding "H32_4a_space/24"
case 5'11000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:388"
attribute \nmigen.decoding "H32_4a/25"
case 5'11001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:394"
attribute \nmigen.decoding "H32_4b/26"
case 5'11010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:401"
attribute \nmigen.decoding "SPACE/16"
case 5'10000
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \vc$next 8'00000000
end
sync init
update \vc 8'00000000
sync posedge \clk
update \vc \vc$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:56"
wire width 8 \vd
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:56"
wire width 8 \vd$next
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
wire width 1 $76
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
cell $and $77
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \inputfifo_readable
connect \B \writable$1
connect \Y $76
end
process $group_14
assign \vd$next \vd
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:86"
switch \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:87"
attribute \nmigen.decoding "READY/0"
case 5'00000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
switch { $76 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:99"
switch \cmd
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:100"
case 3'100
assign \vd$next \data [31:24]
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:108"
case 3'101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:114"
case 3'110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:123"
case 3'111
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:134"
attribute \nmigen.decoding "V_1/1"
case 5'00001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:141"
attribute \nmigen.decoding "V_2/4"
case 5'00100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:148"
attribute \nmigen.decoding "V_3/5"
case 5'00101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:155"
attribute \nmigen.decoding "V_4/6"
case 5'00110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:164"
attribute \nmigen.decoding "D_1/2"
case 5'00010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:179"
attribute \nmigen.decoding "D_2/7"
case 5'00111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:193"
attribute \nmigen.decoding "D_3/8"
case 5'01000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:207"
attribute \nmigen.decoding "D_4/9"
case 5'01001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:221"
attribute \nmigen.decoding "D_5/10"
case 5'01010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:235"
attribute \nmigen.decoding "D_6/11"
case 5'01011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:249"
attribute \nmigen.decoding "D_7/12"
case 5'01100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:263"
attribute \nmigen.decoding "D_8/13"
case 5'01101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:278"
attribute \nmigen.decoding "D_9/14"
case 5'01110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:292"
attribute \nmigen.decoding "D_10/15"
case 5'01111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:316"
attribute \nmigen.decoding "H32_1a/3"
case 5'00011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:322"
attribute \nmigen.decoding "H32_1b/17"
case 5'10001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:332"
attribute \nmigen.decoding "H32_2a_space/18"
case 5'10010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:340"
attribute \nmigen.decoding "H32_2a/19"
case 5'10011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:346"
attribute \nmigen.decoding "H32_2b/20"
case 5'10100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:356"
attribute \nmigen.decoding "H32_3a_space/21"
case 5'10101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:364"
attribute \nmigen.decoding "H32_3a/22"
case 5'10110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:370"
attribute \nmigen.decoding "H32_3b/23"
case 5'10111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:380"
attribute \nmigen.decoding "H32_4a_space/24"
case 5'11000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:388"
attribute \nmigen.decoding "H32_4a/25"
case 5'11001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:394"
attribute \nmigen.decoding "H32_4b/26"
case 5'11010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:401"
attribute \nmigen.decoding "SPACE/16"
case 5'10000
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \vd$next 8'00000000
end
sync init
update \vd 8'00000000
sync posedge \clk
update \vd \vd$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
wire width 1 $78
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
cell $and $79
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \inputfifo_readable
connect \B \writable$1
connect \Y $78
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:66"
wire width 1 \h_spaceout
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:66"
wire width 1 \h_spaceout$next
process $group_15
assign \fsm_state$next \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:86"
switch \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:87"
attribute \nmigen.decoding "READY/0"
case 5'00000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
switch { $78 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:99"
switch \cmd
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:100"
case 3'100
assign \fsm_state$next 5'00001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:108"
case 3'101
assign \fsm_state$next 5'00010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:114"
case 3'110
assign \fsm_state$next 5'00011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:123"
case 3'111
assign \fsm_state$next 5'00011
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:134"
attribute \nmigen.decoding "V_1/1"
case 5'00001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:135"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:135"
case 1'1
assign \fsm_state$next 5'00100
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:141"
attribute \nmigen.decoding "V_2/4"
case 5'00100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:142"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:142"
case 1'1
assign \fsm_state$next 5'00101
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:148"
attribute \nmigen.decoding "V_3/5"
case 5'00101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:149"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:149"
case 1'1
assign \fsm_state$next 5'00110
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:155"
attribute \nmigen.decoding "V_4/6"
case 5'00110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:156"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:156"
case 1'1
assign \fsm_state$next 5'00000
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:164"
attribute \nmigen.decoding "D_1/2"
case 5'00010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:166"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:166"
case 1'1
assign \fsm_state$next 5'00111
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:179"
attribute \nmigen.decoding "D_2/7"
case 5'00111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:180"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:180"
case 1'1
assign \fsm_state$next 5'01000
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:193"
attribute \nmigen.decoding "D_3/8"
case 5'01000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:194"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:194"
case 1'1
assign \fsm_state$next 5'01001
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:207"
attribute \nmigen.decoding "D_4/9"
case 5'01001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:208"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:208"
case 1'1
assign \fsm_state$next 5'01010
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:221"
attribute \nmigen.decoding "D_5/10"
case 5'01010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:222"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:222"
case 1'1
assign \fsm_state$next 5'01011
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:235"
attribute \nmigen.decoding "D_6/11"
case 5'01011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:236"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:236"
case 1'1
assign \fsm_state$next 5'01100
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:249"
attribute \nmigen.decoding "D_7/12"
case 5'01100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:250"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:250"
case 1'1
assign \fsm_state$next 5'01101
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:263"
attribute \nmigen.decoding "D_8/13"
case 5'01101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:264"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:264"
case 1'1
assign \fsm_state$next 5'01110
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:278"
attribute \nmigen.decoding "D_9/14"
case 5'01110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:279"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:279"
case 1'1
assign \fsm_state$next 5'01111
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:292"
attribute \nmigen.decoding "D_10/15"
case 5'01111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:293"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:293"
case 1'1
assign \fsm_state$next 5'10000
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:316"
attribute \nmigen.decoding "H32_1a/3"
case 5'00011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:317"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:317"
case 1'1
assign \fsm_state$next 5'10001
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:322"
attribute \nmigen.decoding "H32_1b/17"
case 5'10001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:323"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:323"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:327"
switch { \h_spaceout }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:327"
case 1'1
assign \fsm_state$next 5'10010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:329"
case
assign \fsm_state$next 5'10011
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:332"
attribute \nmigen.decoding "H32_2a_space/18"
case 5'10010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:333"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:333"
case 1'1
assign \fsm_state$next 5'10011
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:340"
attribute \nmigen.decoding "H32_2a/19"
case 5'10011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:341"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:341"
case 1'1
assign \fsm_state$next 5'10100
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:346"
attribute \nmigen.decoding "H32_2b/20"
case 5'10100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:347"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:347"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:351"
switch { \h_spaceout }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:351"
case 1'1
assign \fsm_state$next 5'10101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:353"
case
assign \fsm_state$next 5'10110
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:356"
attribute \nmigen.decoding "H32_3a_space/21"
case 5'10101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:357"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:357"
case 1'1
assign \fsm_state$next 5'10110
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:364"
attribute \nmigen.decoding "H32_3a/22"
case 5'10110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:365"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:365"
case 1'1
assign \fsm_state$next 5'10111
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:370"
attribute \nmigen.decoding "H32_3b/23"
case 5'10111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:371"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:371"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:375"
switch { \h_spaceout }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:375"
case 1'1
assign \fsm_state$next 5'11000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:377"
case
assign \fsm_state$next 5'11001
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:380"
attribute \nmigen.decoding "H32_4a_space/24"
case 5'11000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:381"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:381"
case 1'1
assign \fsm_state$next 5'11001
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:388"
attribute \nmigen.decoding "H32_4a/25"
case 5'11001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:389"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:389"
case 1'1
assign \fsm_state$next 5'11010
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:394"
attribute \nmigen.decoding "H32_4b/26"
case 5'11010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:395"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:395"
case 1'1
assign \fsm_state$next 5'10000
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:401"
attribute \nmigen.decoding "SPACE/16"
case 5'10000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:402"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:402"
case 1'1
assign \fsm_state$next 5'00000
end
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \fsm_state$next 5'00000
end
sync init
update \fsm_state 5'00000
sync posedge \clk
update \fsm_state \fsm_state$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
wire width 1 $80
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
cell $and $81
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \inputfifo_readable
connect \B \writable$1
connect \Y $80
end
process $group_16
assign \bcd1_mag$next \bcd1_mag
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:86"
switch \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:87"
attribute \nmigen.decoding "READY/0"
case 5'00000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
switch { $80 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:99"
switch \cmd
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:100"
case 3'100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:108"
case 3'101
assign \bcd1_mag$next 30'000000000000000000000000001001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:114"
case 3'110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:123"
case 3'111
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:134"
attribute \nmigen.decoding "V_1/1"
case 5'00001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:141"
attribute \nmigen.decoding "V_2/4"
case 5'00100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:148"
attribute \nmigen.decoding "V_3/5"
case 5'00101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:155"
attribute \nmigen.decoding "V_4/6"
case 5'00110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:164"
attribute \nmigen.decoding "D_1/2"
case 5'00010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:166"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:166"
case 1'1
assign \bcd1_mag$next 30'000000000000000000000000001000
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:179"
attribute \nmigen.decoding "D_2/7"
case 5'00111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:180"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:180"
case 1'1
assign \bcd1_mag$next 30'000000000000000000000000000111
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:193"
attribute \nmigen.decoding "D_3/8"
case 5'01000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:194"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:194"
case 1'1
assign \bcd1_mag$next 30'000000000000000000000000000110
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:207"
attribute \nmigen.decoding "D_4/9"
case 5'01001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:208"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:208"
case 1'1
assign \bcd1_mag$next 30'000000000000000000000000000101
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:221"
attribute \nmigen.decoding "D_5/10"
case 5'01010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:222"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:222"
case 1'1
assign \bcd1_mag$next 30'000000000000000000000000000100
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:235"
attribute \nmigen.decoding "D_6/11"
case 5'01011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:236"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:236"
case 1'1
assign \bcd1_mag$next 30'000000000000000000000000000011
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:249"
attribute \nmigen.decoding "D_7/12"
case 5'01100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:250"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:250"
case 1'1
assign \bcd1_mag$next 30'000000000000000000000000000010
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:263"
attribute \nmigen.decoding "D_8/13"
case 5'01101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:264"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:264"
case 1'1
assign \bcd1_mag$next 30'000000000000000000000000000001
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:278"
attribute \nmigen.decoding "D_9/14"
case 5'01110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:279"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:279"
case 1'1
assign \bcd1_mag$next 30'000000000000000000000000000000
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:292"
attribute \nmigen.decoding "D_10/15"
case 5'01111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:316"
attribute \nmigen.decoding "H32_1a/3"
case 5'00011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:322"
attribute \nmigen.decoding "H32_1b/17"
case 5'10001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:332"
attribute \nmigen.decoding "H32_2a_space/18"
case 5'10010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:340"
attribute \nmigen.decoding "H32_2a/19"
case 5'10011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:346"
attribute \nmigen.decoding "H32_2b/20"
case 5'10100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:356"
attribute \nmigen.decoding "H32_3a_space/21"
case 5'10101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:364"
attribute \nmigen.decoding "H32_3a/22"
case 5'10110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:370"
attribute \nmigen.decoding "H32_3b/23"
case 5'10111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:380"
attribute \nmigen.decoding "H32_4a_space/24"
case 5'11000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:388"
attribute \nmigen.decoding "H32_4a/25"
case 5'11001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:394"
attribute \nmigen.decoding "H32_4b/26"
case 5'11010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:401"
attribute \nmigen.decoding "SPACE/16"
case 5'10000
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \bcd1_mag$next 30'000000000000000000000000000000
end
sync init
update \bcd1_mag 30'000000000000000000000000000000
sync posedge \clk
update \bcd1_mag \bcd1_mag$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
wire width 1 $82
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
cell $and $83
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \inputfifo_readable
connect \B \writable$1
connect \Y $82
end
process $group_17
assign \bcd1_i_val$next \bcd1_i_val
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:86"
switch \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:87"
attribute \nmigen.decoding "READY/0"
case 5'00000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
switch { $82 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:99"
switch \cmd
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:100"
case 3'100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:108"
case 3'101
assign \bcd1_i_val$next \data
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:114"
case 3'110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:123"
case 3'111
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:134"
attribute \nmigen.decoding "V_1/1"
case 5'00001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:141"
attribute \nmigen.decoding "V_2/4"
case 5'00100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:148"
attribute \nmigen.decoding "V_3/5"
case 5'00101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:155"
attribute \nmigen.decoding "V_4/6"
case 5'00110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:164"
attribute \nmigen.decoding "D_1/2"
case 5'00010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:166"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:166"
case 1'1
assign \bcd1_i_val$next \bcd1_o_rem
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:179"
attribute \nmigen.decoding "D_2/7"
case 5'00111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:180"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:180"
case 1'1
assign \bcd1_i_val$next \bcd1_o_rem
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:193"
attribute \nmigen.decoding "D_3/8"
case 5'01000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:194"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:194"
case 1'1
assign \bcd1_i_val$next \bcd1_o_rem
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:207"
attribute \nmigen.decoding "D_4/9"
case 5'01001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:208"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:208"
case 1'1
assign \bcd1_i_val$next \bcd1_o_rem
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:221"
attribute \nmigen.decoding "D_5/10"
case 5'01010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:222"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:222"
case 1'1
assign \bcd1_i_val$next \bcd1_o_rem
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:235"
attribute \nmigen.decoding "D_6/11"
case 5'01011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:236"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:236"
case 1'1
assign \bcd1_i_val$next \bcd1_o_rem
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:249"
attribute \nmigen.decoding "D_7/12"
case 5'01100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:250"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:250"
case 1'1
assign \bcd1_i_val$next \bcd1_o_rem
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:263"
attribute \nmigen.decoding "D_8/13"
case 5'01101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:264"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:264"
case 1'1
assign \bcd1_i_val$next \bcd1_o_rem
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:278"
attribute \nmigen.decoding "D_9/14"
case 5'01110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:279"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:279"
case 1'1
assign \bcd1_i_val$next \bcd1_o_rem
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:292"
attribute \nmigen.decoding "D_10/15"
case 5'01111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:293"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:293"
case 1'1
assign \bcd1_i_val$next \bcd1_o_rem
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:316"
attribute \nmigen.decoding "H32_1a/3"
case 5'00011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:322"
attribute \nmigen.decoding "H32_1b/17"
case 5'10001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:332"
attribute \nmigen.decoding "H32_2a_space/18"
case 5'10010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:340"
attribute \nmigen.decoding "H32_2a/19"
case 5'10011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:346"
attribute \nmigen.decoding "H32_2b/20"
case 5'10100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:356"
attribute \nmigen.decoding "H32_3a_space/21"
case 5'10101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:364"
attribute \nmigen.decoding "H32_3a/22"
case 5'10110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:370"
attribute \nmigen.decoding "H32_3b/23"
case 5'10111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:380"
attribute \nmigen.decoding "H32_4a_space/24"
case 5'11000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:388"
attribute \nmigen.decoding "H32_4a/25"
case 5'11001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:394"
attribute \nmigen.decoding "H32_4b/26"
case 5'11010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:401"
attribute \nmigen.decoding "SPACE/16"
case 5'10000
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \bcd1_i_val$next 34'0000000000000000000010000000000000
end
sync init
update \bcd1_i_val 34'0000000000000000000010000000000000
sync posedge \clk
update \bcd1_i_val \bcd1_i_val$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
wire width 1 $84
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
cell $and $85
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \inputfifo_readable
connect \B \writable$1
connect \Y $84
end
process $group_18
assign \h_1a$next \h_1a
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:86"
switch \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:87"
attribute \nmigen.decoding "READY/0"
case 5'00000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
switch { $84 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:99"
switch \cmd
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:100"
case 3'100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:108"
case 3'101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:114"
case 3'110
assign \h_1a$next \data [31:24]
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:123"
case 3'111
assign \h_1a$next \data [31:24]
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:134"
attribute \nmigen.decoding "V_1/1"
case 5'00001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:141"
attribute \nmigen.decoding "V_2/4"
case 5'00100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:148"
attribute \nmigen.decoding "V_3/5"
case 5'00101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:155"
attribute \nmigen.decoding "V_4/6"
case 5'00110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:164"
attribute \nmigen.decoding "D_1/2"
case 5'00010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:179"
attribute \nmigen.decoding "D_2/7"
case 5'00111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:193"
attribute \nmigen.decoding "D_3/8"
case 5'01000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:207"
attribute \nmigen.decoding "D_4/9"
case 5'01001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:221"
attribute \nmigen.decoding "D_5/10"
case 5'01010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:235"
attribute \nmigen.decoding "D_6/11"
case 5'01011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:249"
attribute \nmigen.decoding "D_7/12"
case 5'01100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:263"
attribute \nmigen.decoding "D_8/13"
case 5'01101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:278"
attribute \nmigen.decoding "D_9/14"
case 5'01110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:292"
attribute \nmigen.decoding "D_10/15"
case 5'01111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:316"
attribute \nmigen.decoding "H32_1a/3"
case 5'00011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:322"
attribute \nmigen.decoding "H32_1b/17"
case 5'10001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:332"
attribute \nmigen.decoding "H32_2a_space/18"
case 5'10010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:340"
attribute \nmigen.decoding "H32_2a/19"
case 5'10011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:346"
attribute \nmigen.decoding "H32_2b/20"
case 5'10100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:356"
attribute \nmigen.decoding "H32_3a_space/21"
case 5'10101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:364"
attribute \nmigen.decoding "H32_3a/22"
case 5'10110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:370"
attribute \nmigen.decoding "H32_3b/23"
case 5'10111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:380"
attribute \nmigen.decoding "H32_4a_space/24"
case 5'11000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:388"
attribute \nmigen.decoding "H32_4a/25"
case 5'11001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:394"
attribute \nmigen.decoding "H32_4b/26"
case 5'11010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:401"
attribute \nmigen.decoding "SPACE/16"
case 5'10000
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \h_1a$next 8'00000000
end
sync init
update \h_1a 8'00000000
sync posedge \clk
update \h_1a \h_1a$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
wire width 1 $86
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
cell $and $87
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \inputfifo_readable
connect \B \writable$1
connect \Y $86
end
process $group_19
assign \h_1b$next \h_1b
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:86"
switch \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:87"
attribute \nmigen.decoding "READY/0"
case 5'00000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
switch { $86 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:99"
switch \cmd
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:100"
case 3'100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:108"
case 3'101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:114"
case 3'110
assign \h_1b$next \data [23:16]
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:123"
case 3'111
assign \h_1b$next \data [23:16]
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:134"
attribute \nmigen.decoding "V_1/1"
case 5'00001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:141"
attribute \nmigen.decoding "V_2/4"
case 5'00100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:148"
attribute \nmigen.decoding "V_3/5"
case 5'00101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:155"
attribute \nmigen.decoding "V_4/6"
case 5'00110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:164"
attribute \nmigen.decoding "D_1/2"
case 5'00010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:179"
attribute \nmigen.decoding "D_2/7"
case 5'00111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:193"
attribute \nmigen.decoding "D_3/8"
case 5'01000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:207"
attribute \nmigen.decoding "D_4/9"
case 5'01001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:221"
attribute \nmigen.decoding "D_5/10"
case 5'01010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:235"
attribute \nmigen.decoding "D_6/11"
case 5'01011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:249"
attribute \nmigen.decoding "D_7/12"
case 5'01100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:263"
attribute \nmigen.decoding "D_8/13"
case 5'01101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:278"
attribute \nmigen.decoding "D_9/14"
case 5'01110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:292"
attribute \nmigen.decoding "D_10/15"
case 5'01111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:316"
attribute \nmigen.decoding "H32_1a/3"
case 5'00011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:322"
attribute \nmigen.decoding "H32_1b/17"
case 5'10001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:332"
attribute \nmigen.decoding "H32_2a_space/18"
case 5'10010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:340"
attribute \nmigen.decoding "H32_2a/19"
case 5'10011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:346"
attribute \nmigen.decoding "H32_2b/20"
case 5'10100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:356"
attribute \nmigen.decoding "H32_3a_space/21"
case 5'10101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:364"
attribute \nmigen.decoding "H32_3a/22"
case 5'10110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:370"
attribute \nmigen.decoding "H32_3b/23"
case 5'10111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:380"
attribute \nmigen.decoding "H32_4a_space/24"
case 5'11000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:388"
attribute \nmigen.decoding "H32_4a/25"
case 5'11001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:394"
attribute \nmigen.decoding "H32_4b/26"
case 5'11010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:401"
attribute \nmigen.decoding "SPACE/16"
case 5'10000
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \h_1b$next 8'00000000
end
sync init
update \h_1b 8'00000000
sync posedge \clk
update \h_1b \h_1b$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
wire width 1 $88
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
cell $and $89
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \inputfifo_readable
connect \B \writable$1
connect \Y $88
end
process $group_20
assign \h_1c$next \h_1c
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:86"
switch \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:87"
attribute \nmigen.decoding "READY/0"
case 5'00000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
switch { $88 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:99"
switch \cmd
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:100"
case 3'100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:108"
case 3'101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:114"
case 3'110
assign \h_1c$next \data [15:8]
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:123"
case 3'111
assign \h_1c$next \data [15:8]
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:134"
attribute \nmigen.decoding "V_1/1"
case 5'00001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:141"
attribute \nmigen.decoding "V_2/4"
case 5'00100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:148"
attribute \nmigen.decoding "V_3/5"
case 5'00101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:155"
attribute \nmigen.decoding "V_4/6"
case 5'00110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:164"
attribute \nmigen.decoding "D_1/2"
case 5'00010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:179"
attribute \nmigen.decoding "D_2/7"
case 5'00111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:193"
attribute \nmigen.decoding "D_3/8"
case 5'01000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:207"
attribute \nmigen.decoding "D_4/9"
case 5'01001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:221"
attribute \nmigen.decoding "D_5/10"
case 5'01010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:235"
attribute \nmigen.decoding "D_6/11"
case 5'01011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:249"
attribute \nmigen.decoding "D_7/12"
case 5'01100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:263"
attribute \nmigen.decoding "D_8/13"
case 5'01101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:278"
attribute \nmigen.decoding "D_9/14"
case 5'01110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:292"
attribute \nmigen.decoding "D_10/15"
case 5'01111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:316"
attribute \nmigen.decoding "H32_1a/3"
case 5'00011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:322"
attribute \nmigen.decoding "H32_1b/17"
case 5'10001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:332"
attribute \nmigen.decoding "H32_2a_space/18"
case 5'10010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:340"
attribute \nmigen.decoding "H32_2a/19"
case 5'10011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:346"
attribute \nmigen.decoding "H32_2b/20"
case 5'10100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:356"
attribute \nmigen.decoding "H32_3a_space/21"
case 5'10101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:364"
attribute \nmigen.decoding "H32_3a/22"
case 5'10110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:370"
attribute \nmigen.decoding "H32_3b/23"
case 5'10111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:380"
attribute \nmigen.decoding "H32_4a_space/24"
case 5'11000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:388"
attribute \nmigen.decoding "H32_4a/25"
case 5'11001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:394"
attribute \nmigen.decoding "H32_4b/26"
case 5'11010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:401"
attribute \nmigen.decoding "SPACE/16"
case 5'10000
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \h_1c$next 8'00000000
end
sync init
update \h_1c 8'00000000
sync posedge \clk
update \h_1c \h_1c$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
wire width 1 $90
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
cell $and $91
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \inputfifo_readable
connect \B \writable$1
connect \Y $90
end
process $group_21
assign \h_1d$next \h_1d
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:86"
switch \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:87"
attribute \nmigen.decoding "READY/0"
case 5'00000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
switch { $90 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:99"
switch \cmd
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:100"
case 3'100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:108"
case 3'101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:114"
case 3'110
assign \h_1d$next \data [7:0]
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:123"
case 3'111
assign \h_1d$next \data [7:0]
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:134"
attribute \nmigen.decoding "V_1/1"
case 5'00001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:141"
attribute \nmigen.decoding "V_2/4"
case 5'00100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:148"
attribute \nmigen.decoding "V_3/5"
case 5'00101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:155"
attribute \nmigen.decoding "V_4/6"
case 5'00110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:164"
attribute \nmigen.decoding "D_1/2"
case 5'00010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:179"
attribute \nmigen.decoding "D_2/7"
case 5'00111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:193"
attribute \nmigen.decoding "D_3/8"
case 5'01000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:207"
attribute \nmigen.decoding "D_4/9"
case 5'01001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:221"
attribute \nmigen.decoding "D_5/10"
case 5'01010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:235"
attribute \nmigen.decoding "D_6/11"
case 5'01011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:249"
attribute \nmigen.decoding "D_7/12"
case 5'01100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:263"
attribute \nmigen.decoding "D_8/13"
case 5'01101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:278"
attribute \nmigen.decoding "D_9/14"
case 5'01110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:292"
attribute \nmigen.decoding "D_10/15"
case 5'01111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:316"
attribute \nmigen.decoding "H32_1a/3"
case 5'00011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:322"
attribute \nmigen.decoding "H32_1b/17"
case 5'10001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:332"
attribute \nmigen.decoding "H32_2a_space/18"
case 5'10010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:340"
attribute \nmigen.decoding "H32_2a/19"
case 5'10011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:346"
attribute \nmigen.decoding "H32_2b/20"
case 5'10100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:356"
attribute \nmigen.decoding "H32_3a_space/21"
case 5'10101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:364"
attribute \nmigen.decoding "H32_3a/22"
case 5'10110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:370"
attribute \nmigen.decoding "H32_3b/23"
case 5'10111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:380"
attribute \nmigen.decoding "H32_4a_space/24"
case 5'11000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:388"
attribute \nmigen.decoding "H32_4a/25"
case 5'11001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:394"
attribute \nmigen.decoding "H32_4b/26"
case 5'11010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:401"
attribute \nmigen.decoding "SPACE/16"
case 5'10000
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \h_1d$next 8'00000000
end
sync init
update \h_1d 8'00000000
sync posedge \clk
update \h_1d \h_1d$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
wire width 1 $92
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
cell $and $93
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \inputfifo_readable
connect \B \writable$1
connect \Y $92
end
process $group_22
assign \h_spaceout$next \h_spaceout
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:86"
switch \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:87"
attribute \nmigen.decoding "READY/0"
case 5'00000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
switch { $92 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:88"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:99"
switch \cmd
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:100"
case 3'100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:108"
case 3'101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:114"
case 3'110
assign \h_spaceout$next 1'0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:123"
case 3'111
assign \h_spaceout$next 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:134"
attribute \nmigen.decoding "V_1/1"
case 5'00001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:141"
attribute \nmigen.decoding "V_2/4"
case 5'00100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:148"
attribute \nmigen.decoding "V_3/5"
case 5'00101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:155"
attribute \nmigen.decoding "V_4/6"
case 5'00110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:164"
attribute \nmigen.decoding "D_1/2"
case 5'00010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:179"
attribute \nmigen.decoding "D_2/7"
case 5'00111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:193"
attribute \nmigen.decoding "D_3/8"
case 5'01000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:207"
attribute \nmigen.decoding "D_4/9"
case 5'01001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:221"
attribute \nmigen.decoding "D_5/10"
case 5'01010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:235"
attribute \nmigen.decoding "D_6/11"
case 5'01011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:249"
attribute \nmigen.decoding "D_7/12"
case 5'01100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:263"
attribute \nmigen.decoding "D_8/13"
case 5'01101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:278"
attribute \nmigen.decoding "D_9/14"
case 5'01110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:292"
attribute \nmigen.decoding "D_10/15"
case 5'01111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:316"
attribute \nmigen.decoding "H32_1a/3"
case 5'00011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:322"
attribute \nmigen.decoding "H32_1b/17"
case 5'10001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:332"
attribute \nmigen.decoding "H32_2a_space/18"
case 5'10010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:340"
attribute \nmigen.decoding "H32_2a/19"
case 5'10011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:346"
attribute \nmigen.decoding "H32_2b/20"
case 5'10100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:356"
attribute \nmigen.decoding "H32_3a_space/21"
case 5'10101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:364"
attribute \nmigen.decoding "H32_3a/22"
case 5'10110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:370"
attribute \nmigen.decoding "H32_3b/23"
case 5'10111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:380"
attribute \nmigen.decoding "H32_4a_space/24"
case 5'11000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:388"
attribute \nmigen.decoding "H32_4a/25"
case 5'11001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:394"
attribute \nmigen.decoding "H32_4b/26"
case 5'11010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:401"
attribute \nmigen.decoding "SPACE/16"
case 5'10000
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \h_spaceout$next 1'0
end
sync init
update \h_spaceout 1'0
sync posedge \clk
update \h_spaceout \h_spaceout$next
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:136"
wire width 1 $94
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:136"
cell $gt $95
parameter \A_SIGNED 0
parameter \A_WIDTH 8
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \va
connect \B 1'0
connect \Y $94
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:143"
wire width 1 $96
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:143"
cell $gt $97
parameter \A_SIGNED 0
parameter \A_WIDTH 8
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \vb
connect \B 1'0
connect \Y $96
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:150"
wire width 1 $98
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:150"
cell $gt $99
parameter \A_SIGNED 0
parameter \A_WIDTH 8
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \vc
connect \B 1'0
connect \Y $98
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:157"
wire width 1 $100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:157"
cell $gt $101
parameter \A_SIGNED 0
parameter \A_WIDTH 8
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \vd
connect \B 1'0
connect \Y $100
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
wire width 1 $102
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
cell $gt $103
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $102
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
wire width 1 $104
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
cell $eq $105
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $104
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
wire width 1 $106
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
cell $or $107
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $102
connect \B $104
connect \Y $106
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:173"
wire width 8 $108
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:173"
wire width 7 $109
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:173"
cell $add $110
parameter \A_SIGNED 0
parameter \A_WIDTH 6
parameter \B_SIGNED 0
parameter \B_WIDTH 4
parameter \Y_WIDTH 7
connect \A 6'110000
connect \B \bcd1_o_digit
connect \Y $109
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:173"
cell $pos $111
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \Y_WIDTH 8
connect \A $109
connect \Y $108
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
wire width 1 $112
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
cell $gt $113
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $112
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
wire width 1 $114
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
cell $eq $115
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $114
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
wire width 1 $116
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
cell $or $117
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $112
connect \B $114
connect \Y $116
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:187"
wire width 8 $118
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:187"
wire width 7 $119
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:187"
cell $add $120
parameter \A_SIGNED 0
parameter \A_WIDTH 6
parameter \B_SIGNED 0
parameter \B_WIDTH 4
parameter \Y_WIDTH 7
connect \A 6'110000
connect \B \bcd1_o_digit
connect \Y $119
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:187"
cell $pos $121
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \Y_WIDTH 8
connect \A $119
connect \Y $118
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
wire width 1 $122
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
cell $gt $123
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $122
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
wire width 1 $124
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
cell $eq $125
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $124
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
wire width 1 $126
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
cell $or $127
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $122
connect \B $124
connect \Y $126
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:201"
wire width 8 $128
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:201"
wire width 7 $129
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:201"
cell $add $130
parameter \A_SIGNED 0
parameter \A_WIDTH 6
parameter \B_SIGNED 0
parameter \B_WIDTH 4
parameter \Y_WIDTH 7
connect \A 6'110000
connect \B \bcd1_o_digit
connect \Y $129
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:201"
cell $pos $131
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \Y_WIDTH 8
connect \A $129
connect \Y $128
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
wire width 1 $132
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
cell $gt $133
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $132
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
wire width 1 $134
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
cell $eq $135
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $134
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
wire width 1 $136
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
cell $or $137
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $132
connect \B $134
connect \Y $136
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:215"
wire width 8 $138
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:215"
wire width 7 $139
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:215"
cell $add $140
parameter \A_SIGNED 0
parameter \A_WIDTH 6
parameter \B_SIGNED 0
parameter \B_WIDTH 4
parameter \Y_WIDTH 7
connect \A 6'110000
connect \B \bcd1_o_digit
connect \Y $139
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:215"
cell $pos $141
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \Y_WIDTH 8
connect \A $139
connect \Y $138
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
wire width 1 $142
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
cell $gt $143
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $142
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
wire width 1 $144
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
cell $eq $145
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $144
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
wire width 1 $146
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
cell $or $147
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $142
connect \B $144
connect \Y $146
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:229"
wire width 8 $148
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:229"
wire width 7 $149
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:229"
cell $add $150
parameter \A_SIGNED 0
parameter \A_WIDTH 6
parameter \B_SIGNED 0
parameter \B_WIDTH 4
parameter \Y_WIDTH 7
connect \A 6'110000
connect \B \bcd1_o_digit
connect \Y $149
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:229"
cell $pos $151
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \Y_WIDTH 8
connect \A $149
connect \Y $148
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
wire width 1 $152
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
cell $gt $153
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $152
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
wire width 1 $154
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
cell $eq $155
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $154
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
wire width 1 $156
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
cell $or $157
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $152
connect \B $154
connect \Y $156
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:243"
wire width 8 $158
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:243"
wire width 7 $159
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:243"
cell $add $160
parameter \A_SIGNED 0
parameter \A_WIDTH 6
parameter \B_SIGNED 0
parameter \B_WIDTH 4
parameter \Y_WIDTH 7
connect \A 6'110000
connect \B \bcd1_o_digit
connect \Y $159
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:243"
cell $pos $161
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \Y_WIDTH 8
connect \A $159
connect \Y $158
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
wire width 1 $162
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
cell $gt $163
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $162
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
wire width 1 $164
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
cell $eq $165
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $164
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
wire width 1 $166
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
cell $or $167
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $162
connect \B $164
connect \Y $166
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:257"
wire width 8 $168
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:257"
wire width 7 $169
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:257"
cell $add $170
parameter \A_SIGNED 0
parameter \A_WIDTH 6
parameter \B_SIGNED 0
parameter \B_WIDTH 4
parameter \Y_WIDTH 7
connect \A 6'110000
connect \B \bcd1_o_digit
connect \Y $169
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:257"
cell $pos $171
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \Y_WIDTH 8
connect \A $169
connect \Y $168
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
wire width 1 $172
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
cell $gt $173
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $172
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
wire width 1 $174
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
cell $eq $175
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $174
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
wire width 1 $176
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
cell $or $177
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $172
connect \B $174
connect \Y $176
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:271"
wire width 8 $178
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:271"
wire width 7 $179
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:271"
cell $add $180
parameter \A_SIGNED 0
parameter \A_WIDTH 6
parameter \B_SIGNED 0
parameter \B_WIDTH 4
parameter \Y_WIDTH 7
connect \A 6'110000
connect \B \bcd1_o_digit
connect \Y $179
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:271"
cell $pos $181
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \Y_WIDTH 8
connect \A $179
connect \Y $178
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
wire width 1 $182
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
cell $gt $183
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $182
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
wire width 1 $184
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
cell $eq $185
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $184
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
wire width 1 $186
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
cell $or $187
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $182
connect \B $184
connect \Y $186
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:286"
wire width 8 $188
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:286"
wire width 7 $189
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:286"
cell $add $190
parameter \A_SIGNED 0
parameter \A_WIDTH 6
parameter \B_SIGNED 0
parameter \B_WIDTH 4
parameter \Y_WIDTH 7
connect \A 6'110000
connect \B \bcd1_o_digit
connect \Y $189
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:286"
cell $pos $191
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \Y_WIDTH 8
connect \A $189
connect \Y $188
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
wire width 1 $192
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
cell $gt $193
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $192
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
wire width 1 $194
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
cell $eq $195
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $194
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
wire width 1 $196
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
cell $or $197
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $192
connect \B $194
connect \Y $196
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:300"
wire width 8 $198
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:300"
wire width 7 $199
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:300"
cell $add $200
parameter \A_SIGNED 0
parameter \A_WIDTH 6
parameter \B_SIGNED 0
parameter \B_WIDTH 4
parameter \Y_WIDTH 7
connect \A 6'110000
connect \B \bcd1_o_digit
connect \Y $199
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:300"
cell $pos $201
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \Y_WIDTH 8
connect \A $199
connect \Y $198
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:308"
wire width 1 $202
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:308"
cell $eq $203
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $202
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:308"
wire width 1 $204
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:308"
cell $eq $205
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'0
connect \Y $204
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:308"
wire width 1 $206
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:308"
cell $or $207
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $202
connect \B $204
connect \Y $206
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:310"
wire width 8 $208
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:310"
wire width 7 $209
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:310"
cell $add $210
parameter \A_SIGNED 0
parameter \A_WIDTH 6
parameter \B_SIGNED 0
parameter \B_WIDTH 4
parameter \Y_WIDTH 7
connect \A 6'110000
connect \B \bcd1_o_digit
connect \Y $209
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:310"
cell $pos $211
parameter \A_SIGNED 0
parameter \A_WIDTH 7
parameter \Y_WIDTH 8
connect \A $209
connect \Y $208
end
process $group_23
assign \din$3 8'00000000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:86"
switch \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:87"
attribute \nmigen.decoding "READY/0"
case 5'00000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:134"
attribute \nmigen.decoding "V_1/1"
case 5'00001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:135"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:135"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:136"
switch { $94 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:136"
case 1'1
assign \din$3 \va
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:141"
attribute \nmigen.decoding "V_2/4"
case 5'00100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:142"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:142"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:143"
switch { $96 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:143"
case 1'1
assign \din$3 \vb
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:148"
attribute \nmigen.decoding "V_3/5"
case 5'00101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:149"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:149"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:150"
switch { $98 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:150"
case 1'1
assign \din$3 \vc
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:155"
attribute \nmigen.decoding "V_4/6"
case 5'00110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:156"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:156"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:157"
switch { $100 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:157"
case 1'1
assign \din$3 \vd
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:164"
attribute \nmigen.decoding "D_1/2"
case 5'00010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:166"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:166"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
switch { $106 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
case 1'1
assign \din$3 $108
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:179"
attribute \nmigen.decoding "D_2/7"
case 5'00111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:180"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:180"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
switch { $116 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
case 1'1
assign \din$3 $118
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:193"
attribute \nmigen.decoding "D_3/8"
case 5'01000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:194"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:194"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
switch { $126 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
case 1'1
assign \din$3 $128
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:207"
attribute \nmigen.decoding "D_4/9"
case 5'01001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:208"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:208"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
switch { $136 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
case 1'1
assign \din$3 $138
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:221"
attribute \nmigen.decoding "D_5/10"
case 5'01010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:222"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:222"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
switch { $146 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
case 1'1
assign \din$3 $148
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:235"
attribute \nmigen.decoding "D_6/11"
case 5'01011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:236"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:236"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
switch { $156 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
case 1'1
assign \din$3 $158
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:249"
attribute \nmigen.decoding "D_7/12"
case 5'01100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:250"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:250"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
switch { $166 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
case 1'1
assign \din$3 $168
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:263"
attribute \nmigen.decoding "D_8/13"
case 5'01101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:264"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:264"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
switch { $176 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
case 1'1
assign \din$3 $178
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:278"
attribute \nmigen.decoding "D_9/14"
case 5'01110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:279"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:279"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
switch { $186 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
case 1'1
assign \din$3 $188
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:292"
attribute \nmigen.decoding "D_10/15"
case 5'01111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:293"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:293"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
switch { $196 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
case 1'1
assign \din$3 $198
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:308"
switch { $206 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:308"
case 1'1
assign \din$3 $208
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:316"
attribute \nmigen.decoding "H32_1a/3"
case 5'00011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:317"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:317"
case 1'1
assign \din$3 \h8d_1_o_upper
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:322"
attribute \nmigen.decoding "H32_1b/17"
case 5'10001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:323"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:323"
case 1'1
assign \din$3 \h8d_1_o_lower
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:332"
attribute \nmigen.decoding "H32_2a_space/18"
case 5'10010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:333"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:333"
case 1'1
assign \din$3 8'00100000
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:340"
attribute \nmigen.decoding "H32_2a/19"
case 5'10011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:341"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:341"
case 1'1
assign \din$3 \h8d_2_o_upper
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:346"
attribute \nmigen.decoding "H32_2b/20"
case 5'10100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:347"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:347"
case 1'1
assign \din$3 \h8d_2_o_lower
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:356"
attribute \nmigen.decoding "H32_3a_space/21"
case 5'10101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:357"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:357"
case 1'1
assign \din$3 8'00100000
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:364"
attribute \nmigen.decoding "H32_3a/22"
case 5'10110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:365"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:365"
case 1'1
assign \din$3 \h8d_3_o_upper
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:370"
attribute \nmigen.decoding "H32_3b/23"
case 5'10111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:371"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:371"
case 1'1
assign \din$3 \h8d_3_o_lower
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:380"
attribute \nmigen.decoding "H32_4a_space/24"
case 5'11000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:381"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:381"
case 1'1
assign \din$3 8'00100000
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:388"
attribute \nmigen.decoding "H32_4a/25"
case 5'11001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:389"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:389"
case 1'1
assign \din$3 \h8d_4_o_upper
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:394"
attribute \nmigen.decoding "H32_4b/26"
case 5'11010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:395"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:395"
case 1'1
assign \din$3 \h8d_4_o_lower
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:401"
attribute \nmigen.decoding "SPACE/16"
case 5'10000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:402"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:402"
case 1'1
assign \din$3 8'00100000
end
end
sync init
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:136"
wire width 1 $212
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:136"
cell $gt $213
parameter \A_SIGNED 0
parameter \A_WIDTH 8
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \va
connect \B 1'0
connect \Y $212
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:143"
wire width 1 $214
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:143"
cell $gt $215
parameter \A_SIGNED 0
parameter \A_WIDTH 8
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \vb
connect \B 1'0
connect \Y $214
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:150"
wire width 1 $216
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:150"
cell $gt $217
parameter \A_SIGNED 0
parameter \A_WIDTH 8
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \vc
connect \B 1'0
connect \Y $216
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:157"
wire width 1 $218
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:157"
cell $gt $219
parameter \A_SIGNED 0
parameter \A_WIDTH 8
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \vd
connect \B 1'0
connect \Y $218
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
wire width 1 $220
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
cell $gt $221
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $220
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
wire width 1 $222
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
cell $eq $223
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $222
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
wire width 1 $224
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
cell $or $225
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $220
connect \B $222
connect \Y $224
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
wire width 1 $226
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
cell $gt $227
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $226
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
wire width 1 $228
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
cell $eq $229
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $228
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
wire width 1 $230
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
cell $or $231
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $226
connect \B $228
connect \Y $230
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
wire width 1 $232
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
cell $gt $233
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $232
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
wire width 1 $234
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
cell $eq $235
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $234
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
wire width 1 $236
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
cell $or $237
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $232
connect \B $234
connect \Y $236
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
wire width 1 $238
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
cell $gt $239
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $238
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
wire width 1 $240
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
cell $eq $241
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $240
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
wire width 1 $242
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
cell $or $243
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $238
connect \B $240
connect \Y $242
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
wire width 1 $244
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
cell $gt $245
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $244
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
wire width 1 $246
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
cell $eq $247
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $246
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
wire width 1 $248
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
cell $or $249
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $244
connect \B $246
connect \Y $248
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
wire width 1 $250
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
cell $gt $251
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $250
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
wire width 1 $252
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
cell $eq $253
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $252
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
wire width 1 $254
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
cell $or $255
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $250
connect \B $252
connect \Y $254
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
wire width 1 $256
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
cell $gt $257
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $256
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
wire width 1 $258
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
cell $eq $259
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $258
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
wire width 1 $260
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
cell $or $261
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $256
connect \B $258
connect \Y $260
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
wire width 1 $262
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
cell $gt $263
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $262
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
wire width 1 $264
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
cell $eq $265
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $264
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
wire width 1 $266
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
cell $or $267
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $262
connect \B $264
connect \Y $266
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
wire width 1 $268
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
cell $gt $269
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $268
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
wire width 1 $270
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
cell $eq $271
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $270
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
wire width 1 $272
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
cell $or $273
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $268
connect \B $270
connect \Y $272
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
wire width 1 $274
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
cell $gt $275
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $274
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
wire width 1 $276
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
cell $eq $277
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'1
connect \Y $276
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
wire width 1 $278
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
cell $or $279
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $274
connect \B $276
connect \Y $278
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:308"
wire width 1 $280
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:308"
cell $eq $281
parameter \A_SIGNED 0
parameter \A_WIDTH 4
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \bcd1_o_digit
connect \B 1'0
connect \Y $280
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:308"
wire width 1 $282
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:308"
cell $eq $283
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A \nonlead0
connect \B 1'0
connect \Y $282
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:308"
wire width 1 $284
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:308"
cell $or $285
parameter \A_SIGNED 0
parameter \A_WIDTH 1
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 1
connect \A $280
connect \B $282
connect \Y $284
end
process $group_24
assign \we$2 1'0
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:86"
switch \fsm_state
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:87"
attribute \nmigen.decoding "READY/0"
case 5'00000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:134"
attribute \nmigen.decoding "V_1/1"
case 5'00001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:135"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:135"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:136"
switch { $212 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:136"
case 1'1
assign \we$2 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:141"
attribute \nmigen.decoding "V_2/4"
case 5'00100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:142"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:142"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:143"
switch { $214 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:143"
case 1'1
assign \we$2 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:148"
attribute \nmigen.decoding "V_3/5"
case 5'00101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:149"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:149"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:150"
switch { $216 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:150"
case 1'1
assign \we$2 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:155"
attribute \nmigen.decoding "V_4/6"
case 5'00110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:156"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:156"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:157"
switch { $218 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:157"
case 1'1
assign \we$2 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:164"
attribute \nmigen.decoding "D_1/2"
case 5'00010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:166"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:166"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
switch { $224 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:171"
case 1'1
assign \we$2 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:179"
attribute \nmigen.decoding "D_2/7"
case 5'00111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:180"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:180"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
switch { $230 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:185"
case 1'1
assign \we$2 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:193"
attribute \nmigen.decoding "D_3/8"
case 5'01000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:194"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:194"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
switch { $236 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:199"
case 1'1
assign \we$2 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:207"
attribute \nmigen.decoding "D_4/9"
case 5'01001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:208"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:208"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
switch { $242 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:213"
case 1'1
assign \we$2 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:221"
attribute \nmigen.decoding "D_5/10"
case 5'01010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:222"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:222"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
switch { $248 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:227"
case 1'1
assign \we$2 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:235"
attribute \nmigen.decoding "D_6/11"
case 5'01011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:236"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:236"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
switch { $254 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:241"
case 1'1
assign \we$2 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:249"
attribute \nmigen.decoding "D_7/12"
case 5'01100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:250"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:250"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
switch { $260 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:255"
case 1'1
assign \we$2 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:263"
attribute \nmigen.decoding "D_8/13"
case 5'01101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:264"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:264"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
switch { $266 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:269"
case 1'1
assign \we$2 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:278"
attribute \nmigen.decoding "D_9/14"
case 5'01110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:279"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:279"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
switch { $272 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:284"
case 1'1
assign \we$2 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:292"
attribute \nmigen.decoding "D_10/15"
case 5'01111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:293"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:293"
case 1'1
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
switch { $278 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:298"
case 1'1
assign \we$2 1'1
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:308"
switch { $284 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:308"
case 1'1
assign \we$2 1'1
end
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:316"
attribute \nmigen.decoding "H32_1a/3"
case 5'00011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:317"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:317"
case 1'1
assign \we$2 1'1
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:322"
attribute \nmigen.decoding "H32_1b/17"
case 5'10001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:323"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:323"
case 1'1
assign \we$2 1'1
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:332"
attribute \nmigen.decoding "H32_2a_space/18"
case 5'10010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:333"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:333"
case 1'1
assign \we$2 1'1
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:340"
attribute \nmigen.decoding "H32_2a/19"
case 5'10011
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:341"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:341"
case 1'1
assign \we$2 1'1
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:346"
attribute \nmigen.decoding "H32_2b/20"
case 5'10100
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:347"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:347"
case 1'1
assign \we$2 1'1
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:356"
attribute \nmigen.decoding "H32_3a_space/21"
case 5'10101
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:357"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:357"
case 1'1
assign \we$2 1'1
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:364"
attribute \nmigen.decoding "H32_3a/22"
case 5'10110
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:365"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:365"
case 1'1
assign \we$2 1'1
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:370"
attribute \nmigen.decoding "H32_3b/23"
case 5'10111
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:371"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:371"
case 1'1
assign \we$2 1'1
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:380"
attribute \nmigen.decoding "H32_4a_space/24"
case 5'11000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:381"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:381"
case 1'1
assign \we$2 1'1
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:388"
attribute \nmigen.decoding "H32_4a/25"
case 5'11001
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:389"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:389"
case 1'1
assign \we$2 1'1
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:394"
attribute \nmigen.decoding "H32_4b/26"
case 5'11010
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:395"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:395"
case 1'1
assign \we$2 1'1
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:401"
attribute \nmigen.decoding "SPACE/16"
case 5'10000
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:402"
switch { \writable$1 }
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:402"
case 1'1
assign \we$2 1'1
end
end
sync init
end
end
attribute \generator "nMigen"
attribute \top 1
attribute \nmigen.hierarchy "top"
module \top
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/build/res.py:129"
wire width 1 inout 0 \clk12_0__io
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/build/res.py:129"
wire width 1 inout 1 \uart_0__rx__io
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/build/res.py:129"
wire width 1 inout 2 \uart_0__tx__io
attribute \src "collatz_driver.py:43"
wire width 1 \clk
attribute \src "collatz_driver.py:43"
wire width 1 \rst
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:20"
wire width 1 \uartfifo_tx
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_fifo.py:23"
wire width 1 \uartfifo_rx
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:70"
wire width 1 \uartfifo_readable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:69"
wire width 8 \uartfifo_dout
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:71"
wire width 1 \uartfifo_re
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:66"
wire width 1 \uartfifo_writable
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:67"
wire width 1 \uartfifo_we
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/lib/fifo.py:65"
wire width 8 \uartfifo_din
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/build/res.py:137"
wire width 1 \uartfifo_uart_0__tx__o
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/build/res.py:137"
wire width 1 \uartfifo_uart_0__rx__i
cell \uartfifo \uartfifo
connect \clk \clk
connect \tx \uartfifo_tx
connect \rx \uartfifo_rx
connect \readable \uartfifo_readable
connect \dout \uartfifo_dout
connect \re \uartfifo_re
connect \rst \rst
connect \writable \uartfifo_writable
connect \we \uartfifo_we
connect \din \uartfifo_din
connect \uart_0__tx__o \uartfifo_uart_0__tx__o
connect \uart_0__rx__i \uartfifo_uart_0__rx__i
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:49"
wire width 34 \collatz_ld_x
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:50"
wire width 1 \collatz_start
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:43"
wire width 1 \collatz_done
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:44"
wire width 68 \collatz_out
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:46"
wire width 1 \collatz_err_n
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/Collatz.py:45"
wire width 1 \collatz_err_x
cell \collatz \collatz
connect \clk \clk
connect \ld_x \collatz_ld_x
connect \start \collatz_start
connect \done \collatz_done
connect \out \collatz_out
connect \err_n \collatz_err_n
connect \err_x \collatz_err_x
connect \rst \rst
end
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:40"
wire width 1 \uart_printer_writable
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:39"
wire width 37 \uart_printer_din
attribute \src "/Users/reto/gh/hw-bob-test/nmigen/uart-ex/uart_printer.py:38"
wire width 1 \uart_printer_we
cell \uart_printer \uart_printer
connect \clk \clk
connect \writable \uart_printer_writable
connect \din \uart_printer_din
connect \we \uart_printer_we
connect \rst \rst
connect \writable$1 \uartfifo_writable
connect \we$2 \uartfifo_we
connect \din$3 \uartfifo_din
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/build/res.py:137"
wire width 1 \clk12_0__i
cell \SB_GB_IO \clk12_0_0
parameter \IO_STANDARD "SB_LVCMOS33"
parameter \PIN_TYPE 1
connect \PACKAGE_PIN \clk12_0__io
connect \GLOBAL_BUFFER_OUTPUT \clk12_0__i
end
cell \SB_IO \uart_0__rx_0
parameter \IO_STANDARD "SB_LVTTL"
parameter \PULLUP "1"
parameter \PIN_TYPE 1
connect \PACKAGE_PIN \uart_0__rx__io
connect \D_IN_0 \uartfifo_uart_0__rx__i
end
cell \SB_IO \uart_0__tx_0
parameter \IO_STANDARD "SB_LVTTL"
parameter \PULLUP "1"
parameter \PIN_TYPE 25
connect \PACKAGE_PIN \uart_0__tx__io
connect \D_OUT_0 \uartfifo_uart_0__tx__o
end
process $group_0
assign \clk 1'0
assign \clk \clk12_0__i
sync init
end
attribute \src "collatz_driver.py:24"
wire width 1 \tx
process $group_1
assign \tx 1'0
assign \tx \uartfifo_tx
sync init
end
attribute \src "collatz_driver.py:25"
wire width 1 \rx
process $group_2
assign \rx 1'0
assign \rx \uartfifo_rx
sync init
end
attribute \src "collatz_driver.py:29"
wire width 34 \x
attribute \src "collatz_driver.py:29"
wire width 34 \x$next
process $group_3
assign \collatz_ld_x 34'0000000000000000000000000000000000
assign \collatz_ld_x \x
sync init
end
attribute \src "collatz_driver.py:73"
wire width 4 \fsm_state
attribute \src "collatz_driver.py:73"
wire width 4 \fsm_state$next
attribute \src "collatz_driver.py:76"
wire width 1 $1
attribute \src "collatz_driver.py:76"
cell $eq $2
parameter \A_SIGNED 0
parameter \A_WIDTH 8
parameter \B_SIGNED 0
parameter \B_WIDTH 7
parameter \Y_WIDTH 1
connect \A \uartfifo_dout
connect \B 7'1000001
connect \Y $1
end
process $group_4
assign \uartfifo_re 1'0
attribute \src "collatz_driver.py:73"
switch \fsm_state
attribute \src "collatz_driver.py:74"
attribute \nmigen.decoding "AWAIT_START/0"
case 4'0000
attribute \src "collatz_driver.py:75"
switch { \uartfifo_readable }
attribute \src "collatz_driver.py:75"
case 1'1
attribute \src "collatz_driver.py:76"
switch { $1 }
attribute \src "collatz_driver.py:76"
case 1'1
assign \uartfifo_re 1'1
attribute \src "collatz_driver.py:82"
case
assign \uartfifo_re 1'1
end
end
attribute \src "collatz_driver.py:88"
attribute \nmigen.decoding "INC/1"
case 4'0001
attribute \src "collatz_driver.py:93"
attribute \nmigen.decoding "CALC_START/2"
case 4'0010
attribute \src "collatz_driver.py:98"
attribute \nmigen.decoding "CALC/3"
case 4'0011
attribute \src "collatz_driver.py:116"
attribute \nmigen.decoding "R_1/4"
case 4'0100
attribute \src "collatz_driver.py:124"
attribute \nmigen.decoding "N_1/7"
case 4'0111
attribute \src "collatz_driver.py:132"
attribute \nmigen.decoding "X_1/8"
case 4'1000
attribute \src "collatz_driver.py:140"
attribute \nmigen.decoding "SUFFIX_1/9"
case 4'1001
attribute \src "collatz_driver.py:149"
attribute \nmigen.decoding "ERR_N_1/5"
case 4'0101
attribute \src "collatz_driver.py:159"
attribute \nmigen.decoding "ERR_N_2/11"
case 4'1011
attribute \src "collatz_driver.py:166"
attribute \nmigen.decoding "ERR_N_3/12"
case 4'1100
attribute \src "collatz_driver.py:174"
attribute \nmigen.decoding "ERR_X_1/6"
case 4'0110
attribute \src "collatz_driver.py:184"
attribute \nmigen.decoding "ERR_X_2/13"
case 4'1101
attribute \src "collatz_driver.py:191"
attribute \nmigen.decoding "ERR_X_3/14"
case 4'1110
attribute \src "collatz_driver.py:199"
attribute \nmigen.decoding "END/10"
case 4'1010
end
sync init
end
attribute \src "collatz_driver.py:76"
wire width 1 $3
attribute \src "collatz_driver.py:76"
cell $eq $4
parameter \A_SIGNED 0
parameter \A_WIDTH 8
parameter \B_SIGNED 0
parameter \B_WIDTH 7
parameter \Y_WIDTH 1
connect \A \uartfifo_dout
connect \B 7'1000001
connect \Y $3
end
attribute \src "collatz_driver.py:38"
wire width 12 \nmax
attribute \src "collatz_driver.py:38"
wire width 12 \nmax$next
attribute \src "collatz_driver.py:100"
wire width 1 $5
attribute \src "collatz_driver.py:100"
cell $gt $6
parameter \A_SIGNED 0
parameter \A_WIDTH 68
parameter \B_SIGNED 0
parameter \B_WIDTH 12
parameter \Y_WIDTH 1
connect \A \collatz_out
connect \B \nmax
connect \Y $5
end
process $group_5
assign \fsm_state$next \fsm_state
attribute \src "collatz_driver.py:73"
switch \fsm_state
attribute \src "collatz_driver.py:74"
attribute \nmigen.decoding "AWAIT_START/0"
case 4'0000
attribute \src "collatz_driver.py:75"
switch { \uartfifo_readable }
attribute \src "collatz_driver.py:75"
case 1'1
attribute \src "collatz_driver.py:76"
switch { $3 }
attribute \src "collatz_driver.py:76"
case 1'1
assign \fsm_state$next 4'0001
attribute \src "collatz_driver.py:82"
case
assign \fsm_state$next 4'0000
end
end
attribute \src "collatz_driver.py:88"
attribute \nmigen.decoding "INC/1"
case 4'0001
assign \fsm_state$next 4'0010
attribute \src "collatz_driver.py:93"
attribute \nmigen.decoding "CALC_START/2"
case 4'0010
assign \fsm_state$next 4'0011
attribute \src "collatz_driver.py:98"
attribute \nmigen.decoding "CALC/3"
case 4'0011
attribute \src "collatz_driver.py:99"
switch { \collatz_done }
attribute \src "collatz_driver.py:99"
case 1'1
attribute \src "collatz_driver.py:100"
switch { \collatz_err_x \collatz_err_n $5 }
attribute \src "collatz_driver.py:100"
case 3'--1
assign \fsm_state$next 4'0100
attribute \src "collatz_driver.py:108"
case 3'-1-
assign \fsm_state$next 4'0101
attribute \src "collatz_driver.py:110"
case 3'1--
assign \fsm_state$next 4'0110
attribute \src "collatz_driver.py:112"
case
assign \fsm_state$next 4'0001
end
end
attribute \src "collatz_driver.py:116"
attribute \nmigen.decoding "R_1/4"
case 4'0100
attribute \src "collatz_driver.py:117"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:117"
case 1'1
assign \fsm_state$next 4'0111
end
attribute \src "collatz_driver.py:124"
attribute \nmigen.decoding "N_1/7"
case 4'0111
attribute \src "collatz_driver.py:125"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:125"
case 1'1
assign \fsm_state$next 4'1000
end
attribute \src "collatz_driver.py:132"
attribute \nmigen.decoding "X_1/8"
case 4'1000
attribute \src "collatz_driver.py:133"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:133"
case 1'1
assign \fsm_state$next 4'1001
end
attribute \src "collatz_driver.py:140"
attribute \nmigen.decoding "SUFFIX_1/9"
case 4'1001
attribute \src "collatz_driver.py:141"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:141"
case 1'1
assign \fsm_state$next 4'1010
end
attribute \src "collatz_driver.py:149"
attribute \nmigen.decoding "ERR_N_1/5"
case 4'0101
attribute \src "collatz_driver.py:150"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:150"
case 1'1
assign \fsm_state$next 4'1011
end
attribute \src "collatz_driver.py:159"
attribute \nmigen.decoding "ERR_N_2/11"
case 4'1011
attribute \src "collatz_driver.py:160"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:160"
case 1'1
assign \fsm_state$next 4'1100
end
attribute \src "collatz_driver.py:166"
attribute \nmigen.decoding "ERR_N_3/12"
case 4'1100
attribute \src "collatz_driver.py:167"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:167"
case 1'1
assign \fsm_state$next 4'1010
end
attribute \src "collatz_driver.py:174"
attribute \nmigen.decoding "ERR_X_1/6"
case 4'0110
attribute \src "collatz_driver.py:175"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:175"
case 1'1
assign \fsm_state$next 4'1101
end
attribute \src "collatz_driver.py:184"
attribute \nmigen.decoding "ERR_X_2/13"
case 4'1101
attribute \src "collatz_driver.py:185"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:185"
case 1'1
assign \fsm_state$next 4'1110
end
attribute \src "collatz_driver.py:191"
attribute \nmigen.decoding "ERR_X_3/14"
case 4'1110
attribute \src "collatz_driver.py:192"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:192"
case 1'1
assign \fsm_state$next 4'1010
end
attribute \src "collatz_driver.py:199"
attribute \nmigen.decoding "END/10"
case 4'1010
attribute \src "collatz_driver.py:200"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:200"
case 1'1
assign \fsm_state$next 4'0001
end
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \fsm_state$next 4'0000
end
sync init
update \fsm_state 4'0000
sync posedge \clk
update \fsm_state \fsm_state$next
end
attribute \src "collatz_driver.py:90"
wire width 35 $7
attribute \src "collatz_driver.py:90"
wire width 35 $8
attribute \src "collatz_driver.py:90"
cell $add $9
parameter \A_SIGNED 0
parameter \A_WIDTH 34
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 35
connect \A \x
connect \B 1'1
connect \Y $8
end
connect $7 $8
process $group_6
assign \x$next \x
attribute \src "collatz_driver.py:73"
switch \fsm_state
attribute \src "collatz_driver.py:74"
attribute \nmigen.decoding "AWAIT_START/0"
case 4'0000
attribute \src "collatz_driver.py:88"
attribute \nmigen.decoding "INC/1"
case 4'0001
assign \x$next $7 [33:0]
attribute \src "collatz_driver.py:93"
attribute \nmigen.decoding "CALC_START/2"
case 4'0010
attribute \src "collatz_driver.py:98"
attribute \nmigen.decoding "CALC/3"
case 4'0011
attribute \src "collatz_driver.py:116"
attribute \nmigen.decoding "R_1/4"
case 4'0100
attribute \src "collatz_driver.py:124"
attribute \nmigen.decoding "N_1/7"
case 4'0111
attribute \src "collatz_driver.py:132"
attribute \nmigen.decoding "X_1/8"
case 4'1000
attribute \src "collatz_driver.py:140"
attribute \nmigen.decoding "SUFFIX_1/9"
case 4'1001
attribute \src "collatz_driver.py:149"
attribute \nmigen.decoding "ERR_N_1/5"
case 4'0101
attribute \src "collatz_driver.py:159"
attribute \nmigen.decoding "ERR_N_2/11"
case 4'1011
attribute \src "collatz_driver.py:166"
attribute \nmigen.decoding "ERR_N_3/12"
case 4'1100
attribute \src "collatz_driver.py:174"
attribute \nmigen.decoding "ERR_X_1/6"
case 4'0110
attribute \src "collatz_driver.py:184"
attribute \nmigen.decoding "ERR_X_2/13"
case 4'1101
attribute \src "collatz_driver.py:191"
attribute \nmigen.decoding "ERR_X_3/14"
case 4'1110
attribute \src "collatz_driver.py:199"
attribute \nmigen.decoding "END/10"
case 4'1010
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \x$next 34'0000000000000000000000000000000000
end
sync init
update \x 34'0000000000000000000000000000000000
sync posedge \clk
update \x \x$next
end
process $group_7
assign \collatz_start 1'0
attribute \src "collatz_driver.py:73"
switch \fsm_state
attribute \src "collatz_driver.py:74"
attribute \nmigen.decoding "AWAIT_START/0"
case 4'0000
attribute \src "collatz_driver.py:88"
attribute \nmigen.decoding "INC/1"
case 4'0001
attribute \src "collatz_driver.py:93"
attribute \nmigen.decoding "CALC_START/2"
case 4'0010
assign \collatz_start 1'1
attribute \src "collatz_driver.py:98"
attribute \nmigen.decoding "CALC/3"
case 4'0011
attribute \src "collatz_driver.py:116"
attribute \nmigen.decoding "R_1/4"
case 4'0100
attribute \src "collatz_driver.py:124"
attribute \nmigen.decoding "N_1/7"
case 4'0111
attribute \src "collatz_driver.py:132"
attribute \nmigen.decoding "X_1/8"
case 4'1000
attribute \src "collatz_driver.py:140"
attribute \nmigen.decoding "SUFFIX_1/9"
case 4'1001
attribute \src "collatz_driver.py:149"
attribute \nmigen.decoding "ERR_N_1/5"
case 4'0101
attribute \src "collatz_driver.py:159"
attribute \nmigen.decoding "ERR_N_2/11"
case 4'1011
attribute \src "collatz_driver.py:166"
attribute \nmigen.decoding "ERR_N_3/12"
case 4'1100
attribute \src "collatz_driver.py:174"
attribute \nmigen.decoding "ERR_X_1/6"
case 4'0110
attribute \src "collatz_driver.py:184"
attribute \nmigen.decoding "ERR_X_2/13"
case 4'1101
attribute \src "collatz_driver.py:191"
attribute \nmigen.decoding "ERR_X_3/14"
case 4'1110
attribute \src "collatz_driver.py:199"
attribute \nmigen.decoding "END/10"
case 4'1010
end
sync init
end
attribute \src "collatz_driver.py:100"
wire width 1 $10
attribute \src "collatz_driver.py:100"
cell $gt $11
parameter \A_SIGNED 0
parameter \A_WIDTH 68
parameter \B_SIGNED 0
parameter \B_WIDTH 12
parameter \Y_WIDTH 1
connect \A \collatz_out
connect \B \nmax
connect \Y $10
end
process $group_8
assign \nmax$next \nmax
attribute \src "collatz_driver.py:73"
switch \fsm_state
attribute \src "collatz_driver.py:74"
attribute \nmigen.decoding "AWAIT_START/0"
case 4'0000
attribute \src "collatz_driver.py:88"
attribute \nmigen.decoding "INC/1"
case 4'0001
attribute \src "collatz_driver.py:93"
attribute \nmigen.decoding "CALC_START/2"
case 4'0010
attribute \src "collatz_driver.py:98"
attribute \nmigen.decoding "CALC/3"
case 4'0011
attribute \src "collatz_driver.py:99"
switch { \collatz_done }
attribute \src "collatz_driver.py:99"
case 1'1
attribute \src "collatz_driver.py:100"
switch { \collatz_err_x \collatz_err_n $10 }
attribute \src "collatz_driver.py:100"
case 3'--1
assign \nmax$next \collatz_out [11:0]
attribute \src "collatz_driver.py:108"
case 3'-1-
attribute \src "collatz_driver.py:110"
case 3'1--
attribute \src "collatz_driver.py:112"
case
end
end
attribute \src "collatz_driver.py:116"
attribute \nmigen.decoding "R_1/4"
case 4'0100
attribute \src "collatz_driver.py:124"
attribute \nmigen.decoding "N_1/7"
case 4'0111
attribute \src "collatz_driver.py:132"
attribute \nmigen.decoding "X_1/8"
case 4'1000
attribute \src "collatz_driver.py:140"
attribute \nmigen.decoding "SUFFIX_1/9"
case 4'1001
attribute \src "collatz_driver.py:149"
attribute \nmigen.decoding "ERR_N_1/5"
case 4'0101
attribute \src "collatz_driver.py:159"
attribute \nmigen.decoding "ERR_N_2/11"
case 4'1011
attribute \src "collatz_driver.py:166"
attribute \nmigen.decoding "ERR_N_3/12"
case 4'1100
attribute \src "collatz_driver.py:174"
attribute \nmigen.decoding "ERR_X_1/6"
case 4'0110
attribute \src "collatz_driver.py:184"
attribute \nmigen.decoding "ERR_X_2/13"
case 4'1101
attribute \src "collatz_driver.py:191"
attribute \nmigen.decoding "ERR_X_3/14"
case 4'1110
attribute \src "collatz_driver.py:199"
attribute \nmigen.decoding "END/10"
case 4'1010
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \nmax$next 12'000000000000
end
sync init
update \nmax 12'000000000000
sync posedge \clk
update \nmax \nmax$next
end
attribute \src "collatz_driver.py:39"
wire width 12 \nmaxcnt
attribute \src "collatz_driver.py:39"
wire width 12 \nmaxcnt$next
attribute \src "collatz_driver.py:100"
wire width 1 $12
attribute \src "collatz_driver.py:100"
cell $gt $13
parameter \A_SIGNED 0
parameter \A_WIDTH 68
parameter \B_SIGNED 0
parameter \B_WIDTH 12
parameter \Y_WIDTH 1
connect \A \collatz_out
connect \B \nmax
connect \Y $12
end
attribute \src "collatz_driver.py:103"
wire width 13 $14
attribute \src "collatz_driver.py:103"
wire width 13 $15
attribute \src "collatz_driver.py:103"
cell $add $16
parameter \A_SIGNED 0
parameter \A_WIDTH 12
parameter \B_SIGNED 0
parameter \B_WIDTH 1
parameter \Y_WIDTH 13
connect \A \nmaxcnt
connect \B 1'1
connect \Y $15
end
connect $14 $15
process $group_9
assign \nmaxcnt$next \nmaxcnt
attribute \src "collatz_driver.py:73"
switch \fsm_state
attribute \src "collatz_driver.py:74"
attribute \nmigen.decoding "AWAIT_START/0"
case 4'0000
attribute \src "collatz_driver.py:88"
attribute \nmigen.decoding "INC/1"
case 4'0001
attribute \src "collatz_driver.py:93"
attribute \nmigen.decoding "CALC_START/2"
case 4'0010
attribute \src "collatz_driver.py:98"
attribute \nmigen.decoding "CALC/3"
case 4'0011
attribute \src "collatz_driver.py:99"
switch { \collatz_done }
attribute \src "collatz_driver.py:99"
case 1'1
attribute \src "collatz_driver.py:100"
switch { \collatz_err_x \collatz_err_n $12 }
attribute \src "collatz_driver.py:100"
case 3'--1
assign \nmaxcnt$next $14 [11:0]
attribute \src "collatz_driver.py:108"
case 3'-1-
attribute \src "collatz_driver.py:110"
case 3'1--
attribute \src "collatz_driver.py:112"
case
end
end
attribute \src "collatz_driver.py:116"
attribute \nmigen.decoding "R_1/4"
case 4'0100
attribute \src "collatz_driver.py:124"
attribute \nmigen.decoding "N_1/7"
case 4'0111
attribute \src "collatz_driver.py:132"
attribute \nmigen.decoding "X_1/8"
case 4'1000
attribute \src "collatz_driver.py:140"
attribute \nmigen.decoding "SUFFIX_1/9"
case 4'1001
attribute \src "collatz_driver.py:149"
attribute \nmigen.decoding "ERR_N_1/5"
case 4'0101
attribute \src "collatz_driver.py:159"
attribute \nmigen.decoding "ERR_N_2/11"
case 4'1011
attribute \src "collatz_driver.py:166"
attribute \nmigen.decoding "ERR_N_3/12"
case 4'1100
attribute \src "collatz_driver.py:174"
attribute \nmigen.decoding "ERR_X_1/6"
case 4'0110
attribute \src "collatz_driver.py:184"
attribute \nmigen.decoding "ERR_X_2/13"
case 4'1101
attribute \src "collatz_driver.py:191"
attribute \nmigen.decoding "ERR_X_3/14"
case 4'1110
attribute \src "collatz_driver.py:199"
attribute \nmigen.decoding "END/10"
case 4'1010
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \nmaxcnt$next 12'000000000000
end
sync init
update \nmaxcnt 12'000000000000
sync posedge \clk
update \nmaxcnt \nmaxcnt$next
end
attribute \src "collatz_driver.py:37"
wire width 34 \xmax
attribute \src "collatz_driver.py:37"
wire width 34 \xmax$next
attribute \src "collatz_driver.py:100"
wire width 1 $17
attribute \src "collatz_driver.py:100"
cell $gt $18
parameter \A_SIGNED 0
parameter \A_WIDTH 68
parameter \B_SIGNED 0
parameter \B_WIDTH 12
parameter \Y_WIDTH 1
connect \A \collatz_out
connect \B \nmax
connect \Y $17
end
process $group_10
assign \xmax$next \xmax
attribute \src "collatz_driver.py:73"
switch \fsm_state
attribute \src "collatz_driver.py:74"
attribute \nmigen.decoding "AWAIT_START/0"
case 4'0000
attribute \src "collatz_driver.py:88"
attribute \nmigen.decoding "INC/1"
case 4'0001
attribute \src "collatz_driver.py:93"
attribute \nmigen.decoding "CALC_START/2"
case 4'0010
attribute \src "collatz_driver.py:98"
attribute \nmigen.decoding "CALC/3"
case 4'0011
attribute \src "collatz_driver.py:99"
switch { \collatz_done }
attribute \src "collatz_driver.py:99"
case 1'1
attribute \src "collatz_driver.py:100"
switch { \collatz_err_x \collatz_err_n $17 }
attribute \src "collatz_driver.py:100"
case 3'--1
assign \xmax$next \x
attribute \src "collatz_driver.py:108"
case 3'-1-
attribute \src "collatz_driver.py:110"
case 3'1--
attribute \src "collatz_driver.py:112"
case
end
end
attribute \src "collatz_driver.py:116"
attribute \nmigen.decoding "R_1/4"
case 4'0100
attribute \src "collatz_driver.py:124"
attribute \nmigen.decoding "N_1/7"
case 4'0111
attribute \src "collatz_driver.py:132"
attribute \nmigen.decoding "X_1/8"
case 4'1000
attribute \src "collatz_driver.py:140"
attribute \nmigen.decoding "SUFFIX_1/9"
case 4'1001
attribute \src "collatz_driver.py:149"
attribute \nmigen.decoding "ERR_N_1/5"
case 4'0101
attribute \src "collatz_driver.py:159"
attribute \nmigen.decoding "ERR_N_2/11"
case 4'1011
attribute \src "collatz_driver.py:166"
attribute \nmigen.decoding "ERR_N_3/12"
case 4'1100
attribute \src "collatz_driver.py:174"
attribute \nmigen.decoding "ERR_X_1/6"
case 4'0110
attribute \src "collatz_driver.py:184"
attribute \nmigen.decoding "ERR_X_2/13"
case 4'1101
attribute \src "collatz_driver.py:191"
attribute \nmigen.decoding "ERR_X_3/14"
case 4'1110
attribute \src "collatz_driver.py:199"
attribute \nmigen.decoding "END/10"
case 4'1010
end
attribute \src "/usr/local/lib/python3.7/site-packages/nmigen/hdl/xfrm.py:518"
switch \rst
case 1'1
assign \xmax$next 34'0000000000000000000000000000000000
end
sync init
update \xmax 34'0000000000000000000000000000000000
sync posedge \clk
update \xmax \xmax$next
end
attribute \src "collatz_driver.py:119"
wire width 22 $signal
attribute \src "collatz_driver.py:127"
wire width 22 $signal$19
attribute \src "collatz_driver.py:143"
wire width 32 $signal$20
attribute \src "collatz_driver.py:143"
wire width 2 $signal$21
attribute \src "collatz_driver.py:153"
wire width 8 $signal$22
attribute \src "collatz_driver.py:153"
wire width 8 $signal$23
attribute \src "collatz_driver.py:153"
wire width 8 $signal$24
attribute \src "collatz_driver.py:153"
wire width 8 $signal$25
attribute \src "collatz_driver.py:153"
wire width 2 $signal$26
attribute \src "collatz_driver.py:162"
wire width 22 $signal$27
attribute \src "collatz_driver.py:178"
wire width 8 $signal$28
attribute \src "collatz_driver.py:178"
wire width 8 $signal$29
attribute \src "collatz_driver.py:178"
wire width 8 $signal$30
attribute \src "collatz_driver.py:178"
wire width 8 $signal$31
attribute \src "collatz_driver.py:178"
wire width 2 $signal$32
attribute \src "collatz_driver.py:187"
wire width 22 $signal$33
attribute \src "collatz_driver.py:203"
wire width 8 $signal$34
attribute \src "collatz_driver.py:203"
wire width 8 $signal$35
attribute \src "collatz_driver.py:203"
wire width 8 $signal$36
attribute \src "collatz_driver.py:203"
wire width 8 $signal$37
attribute \src "collatz_driver.py:203"
wire width 2 $signal$38
process $group_11
assign \uart_printer_din 37'0000000000000000000000000000000000000
attribute \src "collatz_driver.py:73"
switch \fsm_state
attribute \src "collatz_driver.py:74"
attribute \nmigen.decoding "AWAIT_START/0"
case 4'0000
attribute \src "collatz_driver.py:88"
attribute \nmigen.decoding "INC/1"
case 4'0001
attribute \src "collatz_driver.py:93"
attribute \nmigen.decoding "CALC_START/2"
case 4'0010
attribute \src "collatz_driver.py:98"
attribute \nmigen.decoding "CALC/3"
case 4'0011
attribute \src "collatz_driver.py:116"
attribute \nmigen.decoding "R_1/4"
case 4'0100
attribute \src "collatz_driver.py:117"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:117"
case 1'1
assign \uart_printer_din { 3'101 $signal \nmaxcnt }
end
attribute \src "collatz_driver.py:124"
attribute \nmigen.decoding "N_1/7"
case 4'0111
attribute \src "collatz_driver.py:125"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:125"
case 1'1
assign \uart_printer_din { 3'101 $signal$19 \nmax }
end
attribute \src "collatz_driver.py:132"
attribute \nmigen.decoding "X_1/8"
case 4'1000
attribute \src "collatz_driver.py:133"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:133"
case 1'1
assign \uart_printer_din { 3'101 \xmax }
end
attribute \src "collatz_driver.py:140"
attribute \nmigen.decoding "SUFFIX_1/9"
case 4'1001
attribute \src "collatz_driver.py:141"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:141"
case 1'1
assign \uart_printer_din { 3'111 $signal$21 $signal$20 }
end
attribute \src "collatz_driver.py:149"
attribute \nmigen.decoding "ERR_N_1/5"
case 4'0101
attribute \src "collatz_driver.py:150"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:150"
case 1'1
assign \uart_printer_din { 3'100 $signal$26 $signal$25 $signal$24 $signal$23 $signal$22 }
end
attribute \src "collatz_driver.py:159"
attribute \nmigen.decoding "ERR_N_2/11"
case 4'1011
attribute \src "collatz_driver.py:160"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:160"
case 1'1
assign \uart_printer_din { 3'101 $signal$27 \collatz_out } [36:0]
end
attribute \src "collatz_driver.py:166"
attribute \nmigen.decoding "ERR_N_3/12"
case 4'1100
attribute \src "collatz_driver.py:167"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:167"
case 1'1
assign \uart_printer_din { 3'101 \x }
end
attribute \src "collatz_driver.py:174"
attribute \nmigen.decoding "ERR_X_1/6"
case 4'0110
attribute \src "collatz_driver.py:175"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:175"
case 1'1
assign \uart_printer_din { 3'100 $signal$32 $signal$31 $signal$30 $signal$29 $signal$28 }
end
attribute \src "collatz_driver.py:184"
attribute \nmigen.decoding "ERR_X_2/13"
case 4'1101
attribute \src "collatz_driver.py:185"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:185"
case 1'1
assign \uart_printer_din { 3'101 $signal$33 \collatz_out } [36:0]
end
attribute \src "collatz_driver.py:191"
attribute \nmigen.decoding "ERR_X_3/14"
case 4'1110
attribute \src "collatz_driver.py:192"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:192"
case 1'1
assign \uart_printer_din { 3'101 \x }
end
attribute \src "collatz_driver.py:199"
attribute \nmigen.decoding "END/10"
case 4'1010
attribute \src "collatz_driver.py:200"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:200"
case 1'1
assign \uart_printer_din { 3'100 $signal$38 $signal$37 $signal$36 $signal$35 $signal$34 }
end
end
sync init
end
process $group_12
assign \uart_printer_we 1'0
attribute \src "collatz_driver.py:73"
switch \fsm_state
attribute \src "collatz_driver.py:74"
attribute \nmigen.decoding "AWAIT_START/0"
case 4'0000
attribute \src "collatz_driver.py:88"
attribute \nmigen.decoding "INC/1"
case 4'0001
attribute \src "collatz_driver.py:93"
attribute \nmigen.decoding "CALC_START/2"
case 4'0010
attribute \src "collatz_driver.py:98"
attribute \nmigen.decoding "CALC/3"
case 4'0011
attribute \src "collatz_driver.py:116"
attribute \nmigen.decoding "R_1/4"
case 4'0100
attribute \src "collatz_driver.py:117"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:117"
case 1'1
assign \uart_printer_we 1'1
end
attribute \src "collatz_driver.py:124"
attribute \nmigen.decoding "N_1/7"
case 4'0111
attribute \src "collatz_driver.py:125"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:125"
case 1'1
assign \uart_printer_we 1'1
end
attribute \src "collatz_driver.py:132"
attribute \nmigen.decoding "X_1/8"
case 4'1000
attribute \src "collatz_driver.py:133"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:133"
case 1'1
assign \uart_printer_we 1'1
end
attribute \src "collatz_driver.py:140"
attribute \nmigen.decoding "SUFFIX_1/9"
case 4'1001
attribute \src "collatz_driver.py:141"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:141"
case 1'1
assign \uart_printer_we 1'1
end
attribute \src "collatz_driver.py:149"
attribute \nmigen.decoding "ERR_N_1/5"
case 4'0101
attribute \src "collatz_driver.py:150"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:150"
case 1'1
assign \uart_printer_we 1'1
end
attribute \src "collatz_driver.py:159"
attribute \nmigen.decoding "ERR_N_2/11"
case 4'1011
attribute \src "collatz_driver.py:160"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:160"
case 1'1
assign \uart_printer_we 1'1
end
attribute \src "collatz_driver.py:166"
attribute \nmigen.decoding "ERR_N_3/12"
case 4'1100
attribute \src "collatz_driver.py:167"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:167"
case 1'1
assign \uart_printer_we 1'1
end
attribute \src "collatz_driver.py:174"
attribute \nmigen.decoding "ERR_X_1/6"
case 4'0110
attribute \src "collatz_driver.py:175"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:175"
case 1'1
assign \uart_printer_we 1'1
end
attribute \src "collatz_driver.py:184"
attribute \nmigen.decoding "ERR_X_2/13"
case 4'1101
attribute \src "collatz_driver.py:185"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:185"
case 1'1
assign \uart_printer_we 1'1
end
attribute \src "collatz_driver.py:191"
attribute \nmigen.decoding "ERR_X_3/14"
case 4'1110
attribute \src "collatz_driver.py:192"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:192"
case 1'1
assign \uart_printer_we 1'1
end
attribute \src "collatz_driver.py:199"
attribute \nmigen.decoding "END/10"
case 4'1010
attribute \src "collatz_driver.py:200"
switch { \uart_printer_writable }
attribute \src "collatz_driver.py:200"
case 1'1
assign \uart_printer_we 1'1
end
end
sync init
end
connect \rst 1'0
connect $signal 22'0000000000000000000000
connect $signal$19 22'0000000000000000000000
connect $signal$20 32'00010010001101000101011010101011
connect $signal$21 2'00
connect $signal$22 8'01001110
connect $signal$23 8'00100000
connect $signal$24 8'00000000
connect $signal$25 8'00000000
connect $signal$26 2'00
connect $signal$27 22'0000000000000000000000
connect $signal$28 8'01011000
connect $signal$29 8'00100000
connect $signal$30 8'00000000
connect $signal$31 8'00000000
connect $signal$32 2'00
connect $signal$33 22'0000000000000000000000
connect $signal$34 8'00001101
connect $signal$35 8'00001010
connect $signal$36 8'00000111
connect $signal$37 8'00000000
connect $signal$38 2'00
end
# Automatically generated by nMigen 98278a044d74d95a6e0edd2fb59bbdad8d067919. Do not edit.
read_verilog uart_tx.v
read_verilog uart_rx.v
read_ilang top.il
# (script_after_read placeholder)
synth_ice40 -top top
# (script_after_synth placeholder)
write_json top.json
//////////////////////////////////////////////////////////////////////
// File Downloaded from http://www.nandland.com
//////////////////////////////////////////////////////////////////////
// This file contains the UART Receiver. This receiver is able to
// receive 8 bits of serial data, one start bit, one stop bit,
// and no parity bit. When receive is complete o_rx_dv will be
// driven high for one clock cycle.
//
// Set Parameter CLKS_PER_BIT as follows:
// CLKS_PER_BIT = (Frequency of i_Clock)/(Frequency of UART)
// Example: 10 MHz Clock, 115200 baud UART
// (10000000)/(115200) = 87
module uart_rx
(
input i_Clock,
input i_Rx_Serial,
output o_Rx_DV,
output [7:0] o_Rx_Byte
);
// #(parameter CLKS_PER_BIT)
parameter CLKS_PER_BIT = 104;
parameter s_IDLE = 3'b000;
parameter s_RX_START_BIT = 3'b001;
parameter s_RX_DATA_BITS = 3'b010;
parameter s_RX_STOP_BIT = 3'b011;
parameter s_CLEANUP = 3'b100;
reg r_Rx_Data_R = 1'b1;
reg r_Rx_Data = 1'b1;
reg [7:0] r_Clock_Count = 0;
reg [2:0] r_Bit_Index = 0; //8 bits total
reg [7:0] r_Rx_Byte = 0;
reg r_Rx_DV = 0;
reg [2:0] r_SM_Main = 0;
// Purpose: Double-register the incoming data.
// This allows it to be used in the UART RX Clock Domain.
// (It removes problems caused by metastability)
always @(posedge i_Clock)
begin
r_Rx_Data_R <= i_Rx_Serial;
r_Rx_Data <= r_Rx_Data_R;
end
// Purpose: Control RX state machine
always @(posedge i_Clock)
begin
case (r_SM_Main)
s_IDLE :
begin
r_Rx_DV <= 1'b0;
r_Clock_Count <= 0;
r_Bit_Index <= 0;
if (r_Rx_Data == 1'b0) // Start bit detected
r_SM_Main <= s_RX_START_BIT;
else
r_SM_Main <= s_IDLE;
end
// Check middle of start bit to make sure it's still low
s_RX_START_BIT :
begin
if (r_Clock_Count == (CLKS_PER_BIT-1)/2)
begin
if (r_Rx_Data == 1'b0)
begin
r_Clock_Count <= 0; // reset counter, found the middle
r_SM_Main <= s_RX_DATA_BITS;
end
else
r_SM_Main <= s_IDLE;
end
else
begin
r_Clock_Count <= r_Clock_Count + 1;
r_SM_Main <= s_RX_START_BIT;
end
end // case: s_RX_START_BIT
// Wait CLKS_PER_BIT-1 clock cycles to sample serial data
s_RX_DATA_BITS :
begin
if (r_Clock_Count < CLKS_PER_BIT-1)
begin
r_Clock_Count <= r_Clock_Count + 1;
r_SM_Main <= s_RX_DATA_BITS;
end
else
begin
r_Clock_Count <= 0;
r_Rx_Byte[r_Bit_Index] <= r_Rx_Data;
// Check if we have received all bits
if (r_Bit_Index < 7)
begin
r_Bit_Index <= r_Bit_Index + 1;
r_SM_Main <= s_RX_DATA_BITS;
end
else
begin
r_Bit_Index <= 0;
r_SM_Main <= s_RX_STOP_BIT;
end
end
end // case: s_RX_DATA_BITS
// Receive Stop bit. Stop bit = 1
s_RX_STOP_BIT :
begin
// Wait CLKS_PER_BIT-1 clock cycles for Stop bit to finish
if (r_Clock_Count < CLKS_PER_BIT-1)
begin
r_Clock_Count <= r_Clock_Count + 1;
r_SM_Main <= s_RX_STOP_BIT;
end
else
begin
r_Rx_DV <= 1'b1;
r_Clock_Count <= 0;
r_SM_Main <= s_CLEANUP;
end
end // case: s_RX_STOP_BIT
// Stay here 1 clock
s_CLEANUP :
begin
r_SM_Main <= s_IDLE;
r_Rx_DV <= 1'b0;
end
default :
r_SM_Main <= s_IDLE;
endcase
end
assign o_Rx_DV = r_Rx_DV;
assign o_Rx_Byte = r_Rx_Byte;
endmodule // uart_rx
//////////////////////////////////////////////////////////////////////
// File Downloaded from http://www.nandland.com
//////////////////////////////////////////////////////////////////////
// This file contains the UART Transmitter. This transmitter is able
// to transmit 8 bits of serial data, one start bit, one stop bit,
// and no parity bit. When transmit is complete o_Tx_done will be
// driven high for one clock cycle.
//
// Set Parameter CLKS_PER_BIT as follows:
// CLKS_PER_BIT = (Frequency of i_Clock)/(Frequency of UART)
// Example: 10 MHz Clock, 115200 baud UART
// (10000000)/(115200) = 87
module uart_tx
(
input i_Clock,
input i_Tx_DV,
input [7:0] i_Tx_Byte,
output o_Tx_Active,
output reg o_Tx_Serial,
output o_Tx_Done
);
// #(parameter CLKS_PER_BIT = 104)
parameter CLKS_PER_BIT = 104;
parameter s_IDLE = 3'b000;
parameter s_TX_START_BIT = 3'b001;
parameter s_TX_DATA_BITS = 3'b010;
parameter s_TX_STOP_BIT = 3'b011;
parameter s_CLEANUP = 3'b100;
reg [2:0] r_SM_Main = 0;
reg [7:0] r_Clock_Count = 0;
reg [2:0] r_Bit_Index = 0;
reg [7:0] r_Tx_Data = 0;
reg r_Tx_Done = 0;
reg r_Tx_Active = 0;
always @(posedge i_Clock)
begin
case (r_SM_Main)
s_IDLE :
begin
o_Tx_Serial <= 1'b1; // Drive Line High for Idle
r_Tx_Done <= 1'b0;
r_Clock_Count <= 0;
r_Bit_Index <= 0;
if (i_Tx_DV == 1'b1)
begin
r_Tx_Active <= 1'b1;
r_Tx_Data <= i_Tx_Byte;
r_SM_Main <= s_TX_START_BIT;
end
else
r_SM_Main <= s_IDLE;
end // case: s_IDLE
// Send out Start Bit. Start bit = 0
s_TX_START_BIT :
begin
o_Tx_Serial <= 1'b0;
// Wait CLKS_PER_BIT-1 clock cycles for start bit to finish
if (r_Clock_Count < CLKS_PER_BIT-1)
begin
r_Clock_Count <= r_Clock_Count + 1;
r_SM_Main <= s_TX_START_BIT;
end
else
begin
r_Clock_Count <= 0;
r_SM_Main <= s_TX_DATA_BITS;
end
end // case: s_TX_START_BIT
// Wait CLKS_PER_BIT-1 clock cycles for data bits to finish
s_TX_DATA_BITS :
begin
o_Tx_Serial <= r_Tx_Data[r_Bit_Index];
if (r_Clock_Count < CLKS_PER_BIT-1)
begin
r_Clock_Count <= r_Clock_Count + 1;
r_SM_Main <= s_TX_DATA_BITS;
end
else
begin
r_Clock_Count <= 0;
// Check if we have sent out all bits
if (r_Bit_Index < 7)
begin
r_Bit_Index <= r_Bit_Index + 1;
r_SM_Main <= s_TX_DATA_BITS;
end
else
begin
r_Bit_Index <= 0;
r_SM_Main <= s_TX_STOP_BIT;
end
end
end // case: s_TX_DATA_BITS
// Send out Stop bit. Stop bit = 1
s_TX_STOP_BIT :
begin
o_Tx_Serial <= 1'b1;
// Wait CLKS_PER_BIT-1 clock cycles for Stop bit to finish
if (r_Clock_Count < CLKS_PER_BIT-1)
begin
r_Clock_Count <= r_Clock_Count + 1;
r_SM_Main <= s_TX_STOP_BIT;
end
else
begin
r_Tx_Done <= 1'b1;
r_Clock_Count <= 0;
r_SM_Main <= s_CLEANUP;
r_Tx_Active <= 1'b0;
end
end // case: s_Tx_STOP_BIT
// Stay here 1 clock
s_CLEANUP :
begin
r_Tx_Done <= 1'b1;
r_SM_Main <= s_IDLE;
end
default :
r_SM_Main <= s_IDLE;
endcase
end
assign o_Tx_Active = r_Tx_Active;
assign o_Tx_Done = r_Tx_Done;
endmodule // uart_tx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment