Skip to content

Instantly share code, notes, and snippets.

@eddyb
Created December 8, 2019 05:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eddyb/65057afd4f3c9181da15dcdfdc968290 to your computer and use it in GitHub Desktop.
Save eddyb/65057afd4f3c9181da15dcdfdc968290 to your computer and use it in GitHub Desktop.
# Automatically generated by nMigen 0.1.dev1+g6765021.dirty. Do not edit.
attribute \generator "nMigen"
attribute \nmigen.hierarchy "top.uart"
module \uart
attribute \src "/home/eddy/Projects/halogen/uart.py:21"
wire width 1 input 0 \rx_i
attribute \src "/home/eddy/Projects/halogen/uart.py:20"
wire width 1 output 1 \tx_o
attribute \src "/home/eddy/Projects/halogen/uart.py:30"
wire width 1 output 2 \rx_rdy
attribute \src "/home/eddy/Projects/halogen/uart.py:30"
wire width 1 \rx_rdy$next
attribute \src "/home/eddy/Projects/halogen/uart.py:31"
wire width 1 input 3 \rx_ack
attribute \src "/home/eddy/Projects/halogen/uart.py:27"
wire width 8 output 4 \rx_data
attribute \src "/home/eddy/Projects/halogen/uart.py:24"
wire width 1 input 5 \tx_rdy
attribute \src "/home/eddy/Projects/halogen/uart.py:23"
wire width 8 input 6 \tx_data
attribute \src "/home/eddy/Projects/halogen/uart.py:25"
wire width 1 output 7 \tx_ack
attribute \src "nmigen/vendor/lattice_ice40.py:364"
wire width 1 input 8 \rst
attribute \src "nmigen/vendor/lattice_ice40.py:364"
wire width 1 input 9 \clk
attribute \src "/home/eddy/Projects/halogen/uart.py:37"
wire width 10 \tx_shreg
attribute \src "/home/eddy/Projects/halogen/uart.py:37"
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 "/home/eddy/Projects/halogen/uart.py:38"
wire width 4 \tx_count
attribute \src "/home/eddy/Projects/halogen/uart.py:38"
wire width 4 \tx_count$next
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
wire width 1 $1
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
cell $eq $2
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \tx_count
connect \B 1'0
connect \Y $1
end
process $group_1
assign \tx_ack 1'0
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
switch { $1 }
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
case 1'1
assign \tx_ack 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:49"
case
end
sync init
end
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
wire width 1 $3
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
cell $eq $4
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \tx_count
connect \B 1'0
connect \Y $3
end
attribute \src "/home/eddy/Projects/halogen/uart.py:36"
wire width 7 \tx_phase
attribute \src "/home/eddy/Projects/halogen/uart.py:36"
wire width 7 \tx_phase$next
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
wire width 1 $5
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
cell $ne $6
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \tx_phase
connect \B 1'0
connect \Y $5
end
process $group_2
assign \tx_shreg$next \tx_shreg
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
switch { $3 }
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:43"
switch { \tx_rdy }
attribute \src "/home/eddy/Projects/halogen/uart.py:43"
case 1'1
assign \tx_shreg$next { 1'1 \tx_data 1'0 }
end
attribute \src "/home/eddy/Projects/halogen/uart.py:49"
case
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
switch { $5 }
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:52"
case
assign \tx_shreg$next { 1'1 \tx_shreg [9:1] }
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
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 "/home/eddy/Projects/halogen/uart.py:41"
wire width 1 $7
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
cell $eq $8
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \tx_count
connect \B 1'0
connect \Y $7
end
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
wire width 1 $9
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
cell $ne $10
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \tx_phase
connect \B 1'0
connect \Y $9
end
attribute \src "/home/eddy/Projects/halogen/uart.py:55"
wire width 5 $11
attribute \src "/home/eddy/Projects/halogen/uart.py:55"
wire width 5 $12
attribute \src "/home/eddy/Projects/halogen/uart.py:55"
cell $sub $13
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 3'101
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 "/home/eddy/Projects/halogen/uart.py:41"
switch { $7 }
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:43"
switch { \tx_rdy }
attribute \src "/home/eddy/Projects/halogen/uart.py:43"
case 1'1
assign \tx_count$next 4'1010
end
attribute \src "/home/eddy/Projects/halogen/uart.py:49"
case
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
switch { $9 }
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:52"
case
assign \tx_count$next $11 [3:0]
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
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 "/home/eddy/Projects/halogen/uart.py:41"
wire width 1 $14
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
cell $eq $15
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \tx_count
connect \B 1'0
connect \Y $14
end
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
wire width 1 $16
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
cell $ne $17
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \tx_phase
connect \B 1'0
connect \Y $16
end
attribute \src "/home/eddy/Projects/halogen/uart.py:51"
wire width 8 $18
attribute \src "/home/eddy/Projects/halogen/uart.py:51"
wire width 8 $19
attribute \src "/home/eddy/Projects/halogen/uart.py:51"
cell $sub $20
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 4'1000
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 "/home/eddy/Projects/halogen/uart.py:41"
switch { $14 }
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:43"
switch { \tx_rdy }
attribute \src "/home/eddy/Projects/halogen/uart.py:43"
case 1'1
assign \tx_phase$next 7'1100111
end
attribute \src "/home/eddy/Projects/halogen/uart.py:49"
case
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
switch { $16 }
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
case 1'1
assign \tx_phase$next $18 [6:0]
attribute \src "/home/eddy/Projects/halogen/uart.py:52"
case
assign \tx_phase$next 7'1100111
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \tx_phase$next 7'0000000
end
sync init
update \tx_phase 7'0000000
sync posedge \clk
update \tx_phase \tx_phase$next
end
attribute \src "/home/eddy/Projects/halogen/uart.py:60"
wire width 10 \rx_shreg
attribute \src "/home/eddy/Projects/halogen/uart.py:60"
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 "/home/eddy/Projects/halogen/uart.py:28"
wire width 1 \rx_err
attribute \src "/home/eddy/Projects/halogen/uart.py:61"
wire width 4 \rx_count
attribute \src "/home/eddy/Projects/halogen/uart.py:61"
wire width 4 \rx_count$next
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
wire width 1 $21
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
cell $eq $22
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_count
connect \B 1'0
connect \Y $21
end
attribute \src "/home/eddy/Projects/halogen/uart.py:65"
wire width 1 $23
attribute \src "/home/eddy/Projects/halogen/uart.py:65"
wire width 1 $24
attribute \src "/home/eddy/Projects/halogen/uart.py:65"
cell $not $25
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_shreg [0]
connect \Y $24
end
attribute \src "/home/eddy/Projects/halogen/uart.py:65"
wire width 1 $26
attribute \src "/home/eddy/Projects/halogen/uart.py:65"
cell $and $27
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A $24
connect \B \rx_shreg [9]
connect \Y $26
end
attribute \src "/home/eddy/Projects/halogen/uart.py:65"
cell $not $28
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A $26
connect \Y $23
end
process $group_6
assign \rx_err 1'0
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
switch { $21 }
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
case 1'1
assign \rx_err $23
attribute \src "/home/eddy/Projects/halogen/uart.py:76"
case
end
sync init
end
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
wire width 1 $29
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
cell $eq $30
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_count
connect \B 1'0
connect \Y $29
end
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
wire width 1 $31
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
cell $not $32
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_i
connect \Y $31
end
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
wire width 1 $33
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
cell $not $34
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_rdy
connect \Y $33
end
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
wire width 1 $35
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
cell $or $36
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_ack
connect \B $33
connect \Y $35
end
attribute \src "/home/eddy/Projects/halogen/uart.py:59"
wire width 7 \rx_phase
attribute \src "/home/eddy/Projects/halogen/uart.py:59"
wire width 7 \rx_phase$next
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
wire width 1 $37
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
cell $ne $38
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_phase
connect \B 1'0
connect \Y $37
end
attribute \src "/home/eddy/Projects/halogen/uart.py:85"
wire width 1 $39
attribute \src "/home/eddy/Projects/halogen/uart.py:85"
cell $eq $40
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_count
connect \B 1'1
connect \Y $39
end
process $group_7
assign \rx_rdy$next \rx_rdy
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
switch { $29 }
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
switch { $31 }
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
switch { $35 }
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
case 1'1
assign \rx_rdy$next 1'0
attribute \src "/home/eddy/Projects/halogen/uart.py:74"
case
end
end
attribute \src "/home/eddy/Projects/halogen/uart.py:76"
case
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
switch { $37 }
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:79"
case
attribute \src "/home/eddy/Projects/halogen/uart.py:85"
switch { $39 }
attribute \src "/home/eddy/Projects/halogen/uart.py:85"
case 1'1
assign \rx_rdy$next 1'1
end
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
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 "/home/eddy/Projects/halogen/uart.py:29"
wire width 1 \rx_ovf
attribute \src "/home/eddy/Projects/halogen/uart.py:29"
wire width 1 \rx_ovf$next
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
wire width 1 $41
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
cell $eq $42
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_count
connect \B 1'0
connect \Y $41
end
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
wire width 1 $43
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
cell $not $44
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_i
connect \Y $43
end
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
wire width 1 $45
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
cell $not $46
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_rdy
connect \Y $45
end
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
wire width 1 $47
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
cell $or $48
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_ack
connect \B $45
connect \Y $47
end
process $group_8
assign \rx_ovf$next \rx_ovf
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
switch { $41 }
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
switch { $43 }
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
switch { $47 }
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
case 1'1
assign \rx_ovf$next 1'0
attribute \src "/home/eddy/Projects/halogen/uart.py:74"
case
assign \rx_ovf$next 1'1
end
end
attribute \src "/home/eddy/Projects/halogen/uart.py:76"
case
end
attribute \src "nmigen/hdl/xfrm.py:528"
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 "/home/eddy/Projects/halogen/uart.py:64"
wire width 1 $49
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
cell $eq $50
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_count
connect \B 1'0
connect \Y $49
end
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
wire width 1 $51
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
cell $not $52
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_i
connect \Y $51
end
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
wire width 1 $53
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
cell $not $54
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_rdy
connect \Y $53
end
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
wire width 1 $55
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
cell $or $56
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_ack
connect \B $53
connect \Y $55
end
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
wire width 1 $57
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
cell $ne $58
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_phase
connect \B 1'0
connect \Y $57
end
attribute \src "/home/eddy/Projects/halogen/uart.py:82"
wire width 5 $59
attribute \src "/home/eddy/Projects/halogen/uart.py:82"
wire width 5 $60
attribute \src "/home/eddy/Projects/halogen/uart.py:82"
cell $sub $61
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 3'101
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 "/home/eddy/Projects/halogen/uart.py:64"
switch { $49 }
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
switch { $51 }
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
switch { $55 }
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
case 1'1
assign \rx_count$next 4'1010
attribute \src "/home/eddy/Projects/halogen/uart.py:74"
case
end
end
attribute \src "/home/eddy/Projects/halogen/uart.py:76"
case
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
switch { $57 }
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:79"
case
assign \rx_count$next $59 [3:0]
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
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 "/home/eddy/Projects/halogen/uart.py:64"
wire width 1 $62
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
cell $eq $63
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_count
connect \B 1'0
connect \Y $62
end
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
wire width 1 $64
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
cell $not $65
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_i
connect \Y $64
end
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
wire width 1 $66
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
cell $not $67
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_rdy
connect \Y $66
end
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
wire width 1 $68
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
cell $or $69
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_ack
connect \B $66
connect \Y $68
end
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
wire width 1 $70
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
cell $ne $71
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_phase
connect \B 1'0
connect \Y $70
end
attribute \src "/home/eddy/Projects/halogen/uart.py:78"
wire width 8 $72
attribute \src "/home/eddy/Projects/halogen/uart.py:78"
wire width 8 $73
attribute \src "/home/eddy/Projects/halogen/uart.py:78"
cell $sub $74
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 4'1000
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 "/home/eddy/Projects/halogen/uart.py:64"
switch { $62 }
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
switch { $64 }
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
switch { $68 }
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
case 1'1
assign \rx_phase$next 7'0110100
attribute \src "/home/eddy/Projects/halogen/uart.py:74"
case
end
end
attribute \src "/home/eddy/Projects/halogen/uart.py:76"
case
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
switch { $70 }
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
case 1'1
assign \rx_phase$next $72 [6:0]
attribute \src "/home/eddy/Projects/halogen/uart.py:79"
case
assign \rx_phase$next 7'1100111
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \rx_phase$next 7'0000000
end
sync init
update \rx_phase 7'0000000
sync posedge \clk
update \rx_phase \rx_phase$next
end
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
wire width 1 $75
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
cell $eq $76
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_count
connect \B 1'0
connect \Y $75
end
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
wire width 1 $77
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
cell $ne $78
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_phase
connect \B 1'0
connect \Y $77
end
process $group_11
assign \rx_shreg$next \rx_shreg
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
switch { $75 }
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:76"
case
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
switch { $77 }
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:79"
case
assign \rx_shreg$next { \rx_i \rx_shreg [9:1] }
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
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.cd_sync"
module \cd_sync
attribute \src "nmigen/vendor/lattice_ice40.py:364"
wire width 1 output 0 \rst
attribute \src "nmigen/vendor/lattice_ice40.py:364"
wire width 1 output 1 \clk
attribute \src "nmigen/build/res.py:137"
wire width 1 input 2 \clk12_0__i
attribute \src "nmigen/vendor/lattice_ice40.py:354"
wire width 1 \por_clk
process $group_0
assign \por_clk 1'0
assign \por_clk \clk12_0__i
sync init
end
attribute \src "nmigen/vendor/lattice_ice40.py:357"
wire width 1 \ready
attribute \src "nmigen/vendor/lattice_ice40.py:357"
wire width 1 \ready$next
attribute \src "nmigen/vendor/lattice_ice40.py:356"
wire width 8 \timer
attribute \src "nmigen/vendor/lattice_ice40.py:356"
wire width 8 \timer$next
attribute \src "nmigen/vendor/lattice_ice40.py:359"
wire width 1 $1
attribute \src "nmigen/vendor/lattice_ice40.py:359"
cell $eq $2
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 4'1000
parameter \Y_WIDTH 1'1
connect \A \timer
connect \B 8'10110100
connect \Y $1
end
process $group_1
assign \ready$next \ready
attribute \src "nmigen/vendor/lattice_ice40.py:359"
switch { $1 }
attribute \src "nmigen/vendor/lattice_ice40.py:359"
case 1'1
assign \ready$next 1'1
attribute \src "nmigen/vendor/lattice_ice40.py:361"
case
end
sync init
update \ready 1'0
sync posedge \por_clk
update \ready \ready$next
end
attribute \src "nmigen/vendor/lattice_ice40.py:359"
wire width 1 $3
attribute \src "nmigen/vendor/lattice_ice40.py:359"
cell $eq $4
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 4'1000
parameter \Y_WIDTH 1'1
connect \A \timer
connect \B 8'10110100
connect \Y $3
end
attribute \src "nmigen/vendor/lattice_ice40.py:362"
wire width 9 $5
attribute \src "nmigen/vendor/lattice_ice40.py:362"
wire width 9 $6
attribute \src "nmigen/vendor/lattice_ice40.py:362"
cell $add $7
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 4'1001
connect \A \timer
connect \B 1'1
connect \Y $6
end
connect $5 $6
process $group_2
assign \timer$next \timer
attribute \src "nmigen/vendor/lattice_ice40.py:359"
switch { $3 }
attribute \src "nmigen/vendor/lattice_ice40.py:359"
case 1'1
attribute \src "nmigen/vendor/lattice_ice40.py:361"
case
assign \timer$next $5 [7:0]
end
sync init
update \timer 8'00000000
sync posedge \por_clk
update \timer \timer$next
end
process $group_3
assign \clk 1'0
assign \clk \clk12_0__i
sync init
end
attribute \src "nmigen/vendor/lattice_ice40.py:369"
wire width 1 $8
attribute \src "nmigen/vendor/lattice_ice40.py:369"
cell $not $9
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \ready
connect \Y $8
end
process $group_4
assign \rst 1'0
assign \rst $8
sync init
end
end
attribute \generator "nMigen"
attribute \top 1
attribute \nmigen.hierarchy "top"
module \top
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 0 \clk12_0__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 1 \led_0__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 2 \led_1__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 3 \led_2__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 4 \led_3__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 5 \led_4__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 6 \uart_0__cts__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 7 \uart_0__dcd__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 8 \uart_0__dsr__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 9 \uart_0__dtr__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 10 \uart_0__rts__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 11 \uart_0__rx__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 12 \uart_0__tx__io
attribute \src "nmigen/vendor/lattice_ice40.py:364"
wire width 1 \clk
attribute \src "nmigen/vendor/lattice_ice40.py:364"
wire width 1 \rst
attribute \src "/home/eddy/Projects/halogen/uart.py:21"
wire width 1 \uart_rx_i
attribute \src "/home/eddy/Projects/halogen/uart.py:20"
wire width 1 \uart_tx_o
attribute \src "/home/eddy/Projects/halogen/uart.py:30"
wire width 1 \uart_rx_rdy
attribute \src "/home/eddy/Projects/halogen/uart.py:31"
wire width 1 \uart_rx_ack
attribute \src "/home/eddy/Projects/halogen/uart.py:31"
wire width 1 \uart_rx_ack$next
attribute \src "/home/eddy/Projects/halogen/uart.py:27"
wire width 8 \uart_rx_data
attribute \src "/home/eddy/Projects/halogen/uart.py:24"
wire width 1 \uart_tx_rdy
attribute \src "/home/eddy/Projects/halogen/uart.py:24"
wire width 1 \uart_tx_rdy$next
attribute \src "/home/eddy/Projects/halogen/uart.py:23"
wire width 8 \uart_tx_data
attribute \src "/home/eddy/Projects/halogen/uart.py:23"
wire width 8 \uart_tx_data$next
attribute \src "/home/eddy/Projects/halogen/uart.py:25"
wire width 1 \uart_tx_ack
cell \uart \uart
connect \rx_i \uart_rx_i
connect \tx_o \uart_tx_o
connect \rx_rdy \uart_rx_rdy
connect \rx_ack \uart_rx_ack
connect \rx_data \uart_rx_data
connect \tx_rdy \uart_tx_rdy
connect \tx_data \uart_tx_data
connect \tx_ack \uart_tx_ack
connect \rst \rst
connect \clk \clk
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \cd_sync_clk12_0__i
cell \cd_sync \cd_sync
connect \rst \rst
connect \clk \clk
connect \clk12_0__i \cd_sync_clk12_0__i
end
cell \SB_GB_IO \clk12_0_0
parameter \IO_STANDARD "SB_LVCMOS"
parameter \PIN_TYPE 6'1
connect \PACKAGE_PIN \clk12_0__io
connect \GLOBAL_BUFFER_OUTPUT \cd_sync_clk12_0__i
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \led_0__o
attribute \src "nmigen/build/res.py:137"
wire width 1 \led_0__o$next
cell \SB_IO \led_0_0
parameter \IO_STANDARD "SB_LVCMOS"
parameter \PIN_TYPE 6'11001
connect \PACKAGE_PIN \led_0__io
connect \D_OUT_0 \led_0__o
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \led_1__o
attribute \src "nmigen/build/res.py:137"
wire width 1 \led_1__o$next
cell \SB_IO \led_1_0
parameter \IO_STANDARD "SB_LVCMOS"
parameter \PIN_TYPE 6'11001
connect \PACKAGE_PIN \led_1__io
connect \D_OUT_0 \led_1__o
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \led_2__o
attribute \src "nmigen/build/res.py:137"
wire width 1 \led_2__o$next
cell \SB_IO \led_2_0
parameter \IO_STANDARD "SB_LVCMOS"
parameter \PIN_TYPE 6'11001
connect \PACKAGE_PIN \led_2__io
connect \D_OUT_0 \led_2__o
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \led_3__o
attribute \src "nmigen/build/res.py:137"
wire width 1 \led_3__o$next
cell \SB_IO \led_3_0
parameter \IO_STANDARD "SB_LVCMOS"
parameter \PIN_TYPE 6'11001
connect \PACKAGE_PIN \led_3__io
connect \D_OUT_0 \led_3__o
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \led_4__o
attribute \src "nmigen/build/res.py:137"
wire width 1 \led_4__o$next
cell \SB_IO \led_4_0
parameter \IO_STANDARD "SB_LVCMOS"
parameter \PIN_TYPE 6'11001
connect \PACKAGE_PIN \led_4__io
connect \D_OUT_0 \led_4__o
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \uart_0__cts__i
cell \SB_IO \uart_0__cts_0
parameter \IO_STANDARD "SB_LVTTL"
parameter \PULLUP 1'1
parameter \PIN_TYPE 6'1
connect \PACKAGE_PIN \uart_0__cts__io
connect \D_IN_0 \uart_0__cts__i
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \uart_0__dcd__i
cell \SB_IO \uart_0__dcd_0
parameter \IO_STANDARD "SB_LVTTL"
parameter \PULLUP 1'1
parameter \PIN_TYPE 6'1
connect \PACKAGE_PIN \uart_0__dcd__io
connect \D_IN_0 \uart_0__dcd__i
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \uart_0__dsr__i
cell \SB_IO \uart_0__dsr_0
parameter \IO_STANDARD "SB_LVTTL"
parameter \PULLUP 1'1
parameter \PIN_TYPE 6'1
connect \PACKAGE_PIN \uart_0__dsr__io
connect \D_IN_0 \uart_0__dsr__i
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \uart_0__dtr__o
cell \SB_IO \uart_0__dtr_0
parameter \IO_STANDARD "SB_LVTTL"
parameter \PULLUP 1'1
parameter \PIN_TYPE 6'11001
connect \PACKAGE_PIN \uart_0__dtr__io
connect \D_OUT_0 \uart_0__dtr__o
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \uart_0__rts__o
cell \SB_IO \uart_0__rts_0
parameter \IO_STANDARD "SB_LVTTL"
parameter \PULLUP 1'1
parameter \PIN_TYPE 6'11001
connect \PACKAGE_PIN \uart_0__rts__io
connect \D_OUT_0 \uart_0__rts__o
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \uart_0__rx__i
cell \SB_IO \uart_0__rx_0
parameter \IO_STANDARD "SB_LVTTL"
parameter \PULLUP 1'1
parameter \PIN_TYPE 6'1
connect \PACKAGE_PIN \uart_0__rx__io
connect \D_IN_0 \uart_0__rx__i
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \uart_0__tx__o
cell \SB_IO \uart_0__tx_0
parameter \IO_STANDARD "SB_LVTTL"
parameter \PULLUP 1'1
parameter \PIN_TYPE 6'11001
connect \PACKAGE_PIN \uart_0__tx__io
connect \D_OUT_0 \uart_0__tx__o
end
attribute \src "aoc-2019-1.py:17"
wire width 2 \err
attribute \src "aoc-2019-1.py:17"
wire width 2 \err$next
attribute \src "aoc-2019-1.py:18"
wire width 1 $1
attribute \src "aoc-2019-1.py:18"
cell $ne $2
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'10
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \err
connect \B 1'0
connect \Y $1
end
attribute \src "aoc-2019-1.py:19"
wire width 6 $3
attribute \src "aoc-2019-1.py:15"
wire width 6 $4
attribute \src "aoc-2019-1.py:15"
cell $pos $5
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'101
parameter \Y_WIDTH 3'110
connect \A { \led_4__o \led_3__o \led_2__o \led_1__o \led_0__o }
connect \Y $4
end
attribute \src "aoc-2019-1.py:19"
wire width 6 $6
attribute \src "aoc-2019-1.py:19"
cell $and $7
parameter \A_SIGNED 1'1
parameter \A_WIDTH 3'110
parameter \B_SIGNED 1'1
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 3'110
connect \A $4
connect \B 6'101111
connect \Y $6
end
attribute \src "aoc-2019-1.py:19"
wire width 6 $8
attribute \src "aoc-2019-1.py:19"
wire width 4 $9
attribute \src "aoc-2019-1.py:19"
cell $sshl $10
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'10
parameter \Y_WIDTH 3'100
connect \A 1'1
connect \B \err
connect \Y $9
end
attribute \src "aoc-2019-1.py:19"
cell $pos $11
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \Y_WIDTH 3'110
connect \A $9
connect \Y $8
end
attribute \src "aoc-2019-1.py:19"
wire width 6 $12
attribute \src "aoc-2019-1.py:19"
cell $or $13
parameter \A_SIGNED 1'1
parameter \A_WIDTH 3'110
parameter \B_SIGNED 1'1
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 3'110
connect \A $6
connect \B $8
connect \Y $12
end
connect $3 $12
process $group_0
assign \led_0__o$next \led_0__o
assign \led_1__o$next \led_1__o
assign \led_2__o$next \led_2__o
assign \led_3__o$next \led_3__o
assign \led_4__o$next \led_4__o
attribute \src "aoc-2019-1.py:18"
switch { $1 }
attribute \src "aoc-2019-1.py:18"
case 1'1
assign { \led_4__o$next \led_3__o$next \led_2__o$next \led_1__o$next \led_0__o$next } $3 [4:0]
attribute \src "aoc-2019-1.py:20"
case
assign { \led_4__o$next \led_3__o$next \led_2__o$next \led_1__o$next \led_0__o$next } 5'10000
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \led_0__o$next 1'0
assign \led_1__o$next 1'0
assign \led_2__o$next 1'0
assign \led_3__o$next 1'0
assign \led_4__o$next 1'0
end
sync init
update \led_0__o 1'0
update \led_1__o 1'0
update \led_2__o 1'0
update \led_3__o 1'0
update \led_4__o 1'0
sync posedge \clk
update \led_0__o \led_0__o$next
update \led_1__o \led_1__o$next
update \led_2__o \led_2__o$next
update \led_3__o \led_3__o$next
update \led_4__o \led_4__o$next
end
process $group_5
assign \uart_rx_i 1'0
assign \uart_rx_i { \uart_0__rx__i }
sync init
end
process $group_6
assign \uart_0__tx__o 1'0
assign { \uart_0__tx__o } \uart_tx_o
sync init
end
process $group_7
assign \uart_rx_ack$next \uart_rx_ack
attribute \src "aoc-2019-1.py:41"
switch { \uart_rx_rdy }
attribute \src "aoc-2019-1.py:41"
case 1'1
assign \uart_rx_ack$next 1'1
attribute \src "aoc-2019-1.py:75"
case
assign \uart_rx_ack$next 1'0
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \uart_rx_ack$next 1'0
end
sync init
update \uart_rx_ack 1'0
sync posedge \clk
update \uart_rx_ack \uart_rx_ack$next
end
attribute \src "aoc-2019-1.py:44"
wire width 1 $14
attribute \src "aoc-2019-1.py:44"
cell $not $15
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_rx_ack
connect \Y $14
end
attribute \src "aoc-2019-1.py:45"
wire width 1 $16
attribute \src "aoc-2019-1.py:45"
cell $eq $17
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'101
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 5'10010
connect \Y $16
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $18
attribute \src "aoc-2019-1.py:53"
cell $ge $19
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'110000
connect \Y $18
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $20
attribute \src "aoc-2019-1.py:53"
cell $le $21
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'111001
connect \Y $20
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $22
attribute \src "aoc-2019-1.py:53"
cell $and $23
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A $18
connect \B $20
connect \Y $22
end
attribute \src "aoc-2019-1.py:35"
wire width 1 \out_en
attribute \src "aoc-2019-1.py:35"
wire width 1 \out_en$next
attribute \src "aoc-2019-1.py:65"
wire width 1 $24
attribute \src "aoc-2019-1.py:65"
cell $eq $25
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'100000
connect \Y $24
end
attribute \src "aoc-2019-1.py:67"
wire width 1 $26
attribute \src "aoc-2019-1.py:67"
cell $eq $27
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 4'1010
connect \Y $26
end
process $group_8
assign \err$next \err
attribute \src "aoc-2019-1.py:41"
switch { \uart_rx_rdy }
attribute \src "aoc-2019-1.py:41"
case 1'1
attribute \src "aoc-2019-1.py:44"
switch { $14 }
attribute \src "aoc-2019-1.py:44"
case 1'1
attribute \src "aoc-2019-1.py:45"
switch { $22 $16 }
attribute \src "aoc-2019-1.py:45"
case 2'-1
assign \err$next 2'00
attribute \src "aoc-2019-1.py:53"
case 2'1-
attribute \src "aoc-2019-1.py:57"
case
attribute \src "aoc-2019-1.py:58"
switch { \out_en }
attribute \src "aoc-2019-1.py:58"
case 1'1
assign \err$next 2'01
attribute \src "aoc-2019-1.py:60"
case
attribute \src "aoc-2019-1.py:65"
switch { $26 $24 }
attribute \src "aoc-2019-1.py:65"
case 2'-1
attribute \src "aoc-2019-1.py:67"
case 2'1-
attribute \src "aoc-2019-1.py:73"
case
assign \err$next 2'10
end
end
end
end
attribute \src "aoc-2019-1.py:75"
case
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \err$next 2'00
end
sync init
update \err 2'00
sync posedge \clk
update \err \err$next
end
attribute \src "aoc-2019-1.py:33"
wire width 27 \in_val
attribute \src "aoc-2019-1.py:33"
wire width 27 \in_val$next
attribute \src "aoc-2019-1.py:44"
wire width 1 $28
attribute \src "aoc-2019-1.py:44"
cell $not $29
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_rx_ack
connect \Y $28
end
attribute \src "aoc-2019-1.py:45"
wire width 1 $30
attribute \src "aoc-2019-1.py:45"
cell $eq $31
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'101
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 5'10010
connect \Y $30
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $32
attribute \src "aoc-2019-1.py:53"
cell $ge $33
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'110000
connect \Y $32
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $34
attribute \src "aoc-2019-1.py:53"
cell $le $35
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'111001
connect \Y $34
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $36
attribute \src "aoc-2019-1.py:53"
cell $and $37
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A $32
connect \B $34
connect \Y $36
end
attribute \src "aoc-2019-1.py:55"
wire width 32 $38
attribute \src "aoc-2019-1.py:55"
wire width 31 $39
attribute \src "aoc-2019-1.py:55"
cell $mul $40
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 5'11111
connect \A \in_val
connect \B 4'1010
connect \Y $39
end
attribute \src "aoc-2019-1.py:55"
wire width 9 $41
attribute \src "aoc-2019-1.py:55"
cell $sub $42
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 4'1001
connect \A \uart_rx_data
connect \B 6'110000
connect \Y $41
end
attribute \src "aoc-2019-1.py:55"
wire width 32 $43
attribute \src "aoc-2019-1.py:55"
cell $add $44
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11111
parameter \B_SIGNED 1'0
parameter \B_WIDTH 4'1001
parameter \Y_WIDTH 6'100000
connect \A $39
connect \B $41
connect \Y $43
end
connect $38 $43
process $group_9
assign \in_val$next \in_val
attribute \src "aoc-2019-1.py:41"
switch { \uart_rx_rdy }
attribute \src "aoc-2019-1.py:41"
case 1'1
attribute \src "aoc-2019-1.py:44"
switch { $28 }
attribute \src "aoc-2019-1.py:44"
case 1'1
attribute \src "aoc-2019-1.py:45"
switch { $36 $30 }
attribute \src "aoc-2019-1.py:45"
case 2'-1
assign \in_val$next 27'000000000000000000000000000
attribute \src "aoc-2019-1.py:53"
case 2'1-
assign \in_val$next $38 [26:0]
attribute \src "aoc-2019-1.py:57"
case
attribute \src "aoc-2019-1.py:58"
switch { \out_en }
attribute \src "aoc-2019-1.py:58"
case 1'1
attribute \src "aoc-2019-1.py:60"
case
assign \in_val$next 27'000000000000000000000000000
end
end
end
attribute \src "aoc-2019-1.py:75"
case
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \in_val$next 27'000000000000000000000000000
end
sync init
update \in_val 27'000000000000000000000000000
sync posedge \clk
update \in_val \in_val$next
end
attribute \src "aoc-2019-1.py:44"
wire width 1 $45
attribute \src "aoc-2019-1.py:44"
cell $not $46
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_rx_ack
connect \Y $45
end
attribute \src "aoc-2019-1.py:45"
wire width 1 $47
attribute \src "aoc-2019-1.py:45"
cell $eq $48
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'101
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 5'10010
connect \Y $47
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $49
attribute \src "aoc-2019-1.py:53"
cell $ge $50
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'110000
connect \Y $49
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $51
attribute \src "aoc-2019-1.py:53"
cell $le $52
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'111001
connect \Y $51
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $53
attribute \src "aoc-2019-1.py:53"
cell $and $54
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A $49
connect \B $51
connect \Y $53
end
attribute \src "aoc-2019-1.py:65"
wire width 1 $55
attribute \src "aoc-2019-1.py:65"
cell $eq $56
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'100000
connect \Y $55
end
attribute \src "aoc-2019-1.py:67"
wire width 1 $57
attribute \src "aoc-2019-1.py:67"
cell $eq $58
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 4'1010
connect \Y $57
end
attribute \src "aoc-2019-1.py:36"
wire width 27 \out_val
attribute \src "aoc-2019-1.py:36"
wire width 27 \out_val$next
attribute \src "aoc-2019-1.py:82"
wire width 32 $59
attribute \src "aoc-2019-1.py:38"
wire width 3 \out_idx
attribute \src "aoc-2019-1.py:38"
wire width 3 \out_idx$next
attribute \src "aoc-2019-1.py:82"
wire width 1 $60
attribute \src "aoc-2019-1.py:82"
cell $eq $61
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 1'0
connect \Y $60
end
attribute \src "aoc-2019-1.py:82"
cell $mux $62
parameter \WIDTH 6'100000
connect \A 32'00000000000000000000000000000000
connect \B 32'00000000000000000000000000000001
connect \S $60
connect \Y $59
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $63
attribute \src "aoc-2019-1.py:82"
wire width 1 $64
attribute \src "aoc-2019-1.py:82"
cell $eq $65
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 1'1
connect \Y $64
end
attribute \src "aoc-2019-1.py:82"
cell $mux $66
parameter \WIDTH 6'100000
connect \A $59
connect \B 32'00000000000000000000000000001010
connect \S $64
connect \Y $63
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $67
attribute \src "aoc-2019-1.py:82"
wire width 1 $68
attribute \src "aoc-2019-1.py:82"
cell $eq $69
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'10
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 2'10
connect \Y $68
end
attribute \src "aoc-2019-1.py:82"
cell $mux $70
parameter \WIDTH 6'100000
connect \A $63
connect \B 32'00000000000000000000000001100100
connect \S $68
connect \Y $67
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $71
attribute \src "aoc-2019-1.py:82"
wire width 1 $72
attribute \src "aoc-2019-1.py:82"
cell $eq $73
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'10
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 2'11
connect \Y $72
end
attribute \src "aoc-2019-1.py:82"
cell $mux $74
parameter \WIDTH 6'100000
connect \A $67
connect \B 32'00000000000000000000001111101000
connect \S $72
connect \Y $71
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $75
attribute \src "aoc-2019-1.py:82"
wire width 1 $76
attribute \src "aoc-2019-1.py:82"
cell $eq $77
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'100
connect \Y $76
end
attribute \src "aoc-2019-1.py:82"
cell $mux $78
parameter \WIDTH 6'100000
connect \A $71
connect \B 32'00000000000000000010011100010000
connect \S $76
connect \Y $75
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $79
attribute \src "aoc-2019-1.py:82"
wire width 1 $80
attribute \src "aoc-2019-1.py:82"
cell $eq $81
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'101
connect \Y $80
end
attribute \src "aoc-2019-1.py:82"
cell $mux $82
parameter \WIDTH 6'100000
connect \A $75
connect \B 32'00000000000000011000011010100000
connect \S $80
connect \Y $79
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $83
attribute \src "aoc-2019-1.py:82"
wire width 1 $84
attribute \src "aoc-2019-1.py:82"
cell $eq $85
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'110
connect \Y $84
end
attribute \src "aoc-2019-1.py:82"
cell $mux $86
parameter \WIDTH 6'100000
connect \A $79
connect \B 32'00000000000011110100001001000000
connect \S $84
connect \Y $83
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $87
attribute \src "aoc-2019-1.py:82"
wire width 1 $88
attribute \src "aoc-2019-1.py:82"
cell $eq $89
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'111
connect \Y $88
end
attribute \src "aoc-2019-1.py:82"
cell $mux $90
parameter \WIDTH 6'100000
connect \A $83
connect \B 32'00000000100110001001011010000000
connect \S $88
connect \Y $87
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $91
attribute \src "aoc-2019-1.py:82"
wire width 1 $92
attribute \src "aoc-2019-1.py:82"
cell $eq $93
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 4'1000
connect \Y $92
end
attribute \src "aoc-2019-1.py:82"
cell $mux $94
parameter \WIDTH 6'100000
connect \A $87
connect \B 32'00000101111101011110000100000000
connect \S $92
connect \Y $91
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $95
attribute \src "aoc-2019-1.py:82"
wire width 1 $96
attribute \src "aoc-2019-1.py:82"
cell $eq $97
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 4'1001
connect \Y $96
end
attribute \src "aoc-2019-1.py:82"
cell $mux $98
parameter \WIDTH 6'100000
connect \A $91
connect \B 32'00111011100110101100101000000000
connect \S $96
connect \Y $95
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $99
attribute \src "aoc-2019-1.py:84"
cell $ge $100
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 6'100000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B $95
connect \Y $99
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $101
attribute \src "aoc-2019-1.py:89"
cell $not $102
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $101
end
attribute \src "aoc-2019-1.py:95"
wire width 1 $103
attribute \src "aoc-2019-1.py:95"
cell $ne $104
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 1'0
connect \Y $103
end
process $group_10
assign \out_en$next \out_en
attribute \src "aoc-2019-1.py:41"
switch { \uart_rx_rdy }
attribute \src "aoc-2019-1.py:41"
case 1'1
attribute \src "aoc-2019-1.py:44"
switch { $45 }
attribute \src "aoc-2019-1.py:44"
case 1'1
attribute \src "aoc-2019-1.py:45"
switch { $53 $47 }
attribute \src "aoc-2019-1.py:45"
case 2'-1
assign \out_en$next 1'0
attribute \src "aoc-2019-1.py:53"
case 2'1-
attribute \src "aoc-2019-1.py:57"
case
attribute \src "aoc-2019-1.py:58"
switch { \out_en }
attribute \src "aoc-2019-1.py:58"
case 1'1
attribute \src "aoc-2019-1.py:60"
case
attribute \src "aoc-2019-1.py:65"
switch { $57 $55 }
attribute \src "aoc-2019-1.py:65"
case 2'-1
attribute \src "aoc-2019-1.py:67"
case 2'1-
assign \out_en$next 1'1
attribute \src "aoc-2019-1.py:73"
case
end
end
end
end
attribute \src "aoc-2019-1.py:75"
case
end
attribute \src "aoc-2019-1.py:79"
switch { \out_en }
attribute \src "aoc-2019-1.py:79"
case 1'1
attribute \src "aoc-2019-1.py:84"
switch { $101 $99 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
attribute \src "aoc-2019-1.py:95"
switch { $103 }
attribute \src "aoc-2019-1.py:95"
case 1'1
attribute \src "aoc-2019-1.py:97"
case
assign \out_en$next 1'0
end
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \out_en$next 1'0
end
sync init
update \out_en 1'0
sync posedge \clk
update \out_en \out_en$next
end
attribute \src "aoc-2019-1.py:44"
wire width 1 $105
attribute \src "aoc-2019-1.py:44"
cell $not $106
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_rx_ack
connect \Y $105
end
attribute \src "aoc-2019-1.py:45"
wire width 1 $107
attribute \src "aoc-2019-1.py:45"
cell $eq $108
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'101
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 5'10010
connect \Y $107
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $109
attribute \src "aoc-2019-1.py:53"
cell $ge $110
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'110000
connect \Y $109
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $111
attribute \src "aoc-2019-1.py:53"
cell $le $112
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'111001
connect \Y $111
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $113
attribute \src "aoc-2019-1.py:53"
cell $and $114
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A $109
connect \B $111
connect \Y $113
end
attribute \src "aoc-2019-1.py:63"
wire width 29 $115
attribute \src "aoc-2019-1.py:63"
wire width 27 $116
attribute \src "aoc-2019-1.py:63"
cell $div $117
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'10
parameter \Y_WIDTH 5'11011
connect \A \in_val
connect \B 2'11
connect \Y $116
end
attribute \src "aoc-2019-1.py:63"
wire width 27 $118
attribute \src "nmigen/back/rtlil.py:516"
wire width 1 $119
attribute \src "nmigen/back/rtlil.py:516"
cell $eq $120
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \in_val
connect \B 1'0
connect \Y $119
end
attribute \src "aoc-2019-1.py:63"
cell $mux $121
parameter \WIDTH 5'11011
connect \A $116
connect \B 27'000000000000000000000000000
connect \S $119
connect \Y $118
end
attribute \src "aoc-2019-1.py:63"
wire width 28 $122
attribute \src "aoc-2019-1.py:63"
cell $add $123
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11011
parameter \Y_WIDTH 5'11100
connect \A \out_val
connect \B $118
connect \Y $122
end
attribute \src "aoc-2019-1.py:63"
wire width 29 $124
attribute \src "aoc-2019-1.py:63"
cell $sub $125
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'10
parameter \Y_WIDTH 5'11101
connect \A $122
connect \B 2'10
connect \Y $124
end
connect $115 $124
attribute \src "aoc-2019-1.py:82"
wire width 32 $126
attribute \src "aoc-2019-1.py:82"
wire width 1 $127
attribute \src "aoc-2019-1.py:82"
cell $eq $128
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 1'0
connect \Y $127
end
attribute \src "aoc-2019-1.py:82"
cell $mux $129
parameter \WIDTH 6'100000
connect \A 32'00000000000000000000000000000000
connect \B 32'00000000000000000000000000000001
connect \S $127
connect \Y $126
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $130
attribute \src "aoc-2019-1.py:82"
wire width 1 $131
attribute \src "aoc-2019-1.py:82"
cell $eq $132
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 1'1
connect \Y $131
end
attribute \src "aoc-2019-1.py:82"
cell $mux $133
parameter \WIDTH 6'100000
connect \A $126
connect \B 32'00000000000000000000000000001010
connect \S $131
connect \Y $130
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $134
attribute \src "aoc-2019-1.py:82"
wire width 1 $135
attribute \src "aoc-2019-1.py:82"
cell $eq $136
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'10
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 2'10
connect \Y $135
end
attribute \src "aoc-2019-1.py:82"
cell $mux $137
parameter \WIDTH 6'100000
connect \A $130
connect \B 32'00000000000000000000000001100100
connect \S $135
connect \Y $134
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $138
attribute \src "aoc-2019-1.py:82"
wire width 1 $139
attribute \src "aoc-2019-1.py:82"
cell $eq $140
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'10
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 2'11
connect \Y $139
end
attribute \src "aoc-2019-1.py:82"
cell $mux $141
parameter \WIDTH 6'100000
connect \A $134
connect \B 32'00000000000000000000001111101000
connect \S $139
connect \Y $138
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $142
attribute \src "aoc-2019-1.py:82"
wire width 1 $143
attribute \src "aoc-2019-1.py:82"
cell $eq $144
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'100
connect \Y $143
end
attribute \src "aoc-2019-1.py:82"
cell $mux $145
parameter \WIDTH 6'100000
connect \A $138
connect \B 32'00000000000000000010011100010000
connect \S $143
connect \Y $142
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $146
attribute \src "aoc-2019-1.py:82"
wire width 1 $147
attribute \src "aoc-2019-1.py:82"
cell $eq $148
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'101
connect \Y $147
end
attribute \src "aoc-2019-1.py:82"
cell $mux $149
parameter \WIDTH 6'100000
connect \A $142
connect \B 32'00000000000000011000011010100000
connect \S $147
connect \Y $146
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $150
attribute \src "aoc-2019-1.py:82"
wire width 1 $151
attribute \src "aoc-2019-1.py:82"
cell $eq $152
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'110
connect \Y $151
end
attribute \src "aoc-2019-1.py:82"
cell $mux $153
parameter \WIDTH 6'100000
connect \A $146
connect \B 32'00000000000011110100001001000000
connect \S $151
connect \Y $150
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $154
attribute \src "aoc-2019-1.py:82"
wire width 1 $155
attribute \src "aoc-2019-1.py:82"
cell $eq $156
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'111
connect \Y $155
end
attribute \src "aoc-2019-1.py:82"
cell $mux $157
parameter \WIDTH 6'100000
connect \A $150
connect \B 32'00000000100110001001011010000000
connect \S $155
connect \Y $154
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $158
attribute \src "aoc-2019-1.py:82"
wire width 1 $159
attribute \src "aoc-2019-1.py:82"
cell $eq $160
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 4'1000
connect \Y $159
end
attribute \src "aoc-2019-1.py:82"
cell $mux $161
parameter \WIDTH 6'100000
connect \A $154
connect \B 32'00000101111101011110000100000000
connect \S $159
connect \Y $158
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $162
attribute \src "aoc-2019-1.py:82"
wire width 1 $163
attribute \src "aoc-2019-1.py:82"
cell $eq $164
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 4'1001
connect \Y $163
end
attribute \src "aoc-2019-1.py:82"
cell $mux $165
parameter \WIDTH 6'100000
connect \A $158
connect \B 32'00111011100110101100101000000000
connect \S $163
connect \Y $162
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $166
attribute \src "aoc-2019-1.py:84"
cell $ge $167
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 6'100000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B $162
connect \Y $166
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $168
attribute \src "aoc-2019-1.py:89"
cell $not $169
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $168
end
attribute \src "aoc-2019-1.py:87"
wire width 33 $170
attribute \src "aoc-2019-1.py:82"
wire width 32 $171
attribute \src "aoc-2019-1.py:82"
wire width 1 $172
attribute \src "aoc-2019-1.py:82"
cell $eq $173
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 1'0
connect \Y $172
end
attribute \src "aoc-2019-1.py:82"
cell $mux $174
parameter \WIDTH 6'100000
connect \A 32'00000000000000000000000000000000
connect \B 32'00000000000000000000000000000001
connect \S $172
connect \Y $171
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $175
attribute \src "aoc-2019-1.py:82"
wire width 1 $176
attribute \src "aoc-2019-1.py:82"
cell $eq $177
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 1'1
connect \Y $176
end
attribute \src "aoc-2019-1.py:82"
cell $mux $178
parameter \WIDTH 6'100000
connect \A $171
connect \B 32'00000000000000000000000000001010
connect \S $176
connect \Y $175
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $179
attribute \src "aoc-2019-1.py:82"
wire width 1 $180
attribute \src "aoc-2019-1.py:82"
cell $eq $181
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'10
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 2'10
connect \Y $180
end
attribute \src "aoc-2019-1.py:82"
cell $mux $182
parameter \WIDTH 6'100000
connect \A $175
connect \B 32'00000000000000000000000001100100
connect \S $180
connect \Y $179
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $183
attribute \src "aoc-2019-1.py:82"
wire width 1 $184
attribute \src "aoc-2019-1.py:82"
cell $eq $185
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'10
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 2'11
connect \Y $184
end
attribute \src "aoc-2019-1.py:82"
cell $mux $186
parameter \WIDTH 6'100000
connect \A $179
connect \B 32'00000000000000000000001111101000
connect \S $184
connect \Y $183
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $187
attribute \src "aoc-2019-1.py:82"
wire width 1 $188
attribute \src "aoc-2019-1.py:82"
cell $eq $189
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'100
connect \Y $188
end
attribute \src "aoc-2019-1.py:82"
cell $mux $190
parameter \WIDTH 6'100000
connect \A $183
connect \B 32'00000000000000000010011100010000
connect \S $188
connect \Y $187
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $191
attribute \src "aoc-2019-1.py:82"
wire width 1 $192
attribute \src "aoc-2019-1.py:82"
cell $eq $193
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'101
connect \Y $192
end
attribute \src "aoc-2019-1.py:82"
cell $mux $194
parameter \WIDTH 6'100000
connect \A $187
connect \B 32'00000000000000011000011010100000
connect \S $192
connect \Y $191
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $195
attribute \src "aoc-2019-1.py:82"
wire width 1 $196
attribute \src "aoc-2019-1.py:82"
cell $eq $197
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'110
connect \Y $196
end
attribute \src "aoc-2019-1.py:82"
cell $mux $198
parameter \WIDTH 6'100000
connect \A $191
connect \B 32'00000000000011110100001001000000
connect \S $196
connect \Y $195
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $199
attribute \src "aoc-2019-1.py:82"
wire width 1 $200
attribute \src "aoc-2019-1.py:82"
cell $eq $201
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'111
connect \Y $200
end
attribute \src "aoc-2019-1.py:82"
cell $mux $202
parameter \WIDTH 6'100000
connect \A $195
connect \B 32'00000000100110001001011010000000
connect \S $200
connect \Y $199
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $203
attribute \src "aoc-2019-1.py:82"
wire width 1 $204
attribute \src "aoc-2019-1.py:82"
cell $eq $205
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 4'1000
connect \Y $204
end
attribute \src "aoc-2019-1.py:82"
cell $mux $206
parameter \WIDTH 6'100000
connect \A $199
connect \B 32'00000101111101011110000100000000
connect \S $204
connect \Y $203
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $207
attribute \src "aoc-2019-1.py:82"
wire width 1 $208
attribute \src "aoc-2019-1.py:82"
cell $eq $209
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 4'1001
connect \Y $208
end
attribute \src "aoc-2019-1.py:82"
cell $mux $210
parameter \WIDTH 6'100000
connect \A $203
connect \B 32'00111011100110101100101000000000
connect \S $208
connect \Y $207
end
attribute \src "aoc-2019-1.py:87"
wire width 33 $211
attribute \src "aoc-2019-1.py:87"
cell $sub $212
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 6'100000
parameter \Y_WIDTH 6'100001
connect \A \out_val
connect \B $207
connect \Y $211
end
connect $170 $211
process $group_11
assign \out_val$next \out_val
attribute \src "aoc-2019-1.py:41"
switch { \uart_rx_rdy }
attribute \src "aoc-2019-1.py:41"
case 1'1
attribute \src "aoc-2019-1.py:44"
switch { $105 }
attribute \src "aoc-2019-1.py:44"
case 1'1
attribute \src "aoc-2019-1.py:45"
switch { $113 $107 }
attribute \src "aoc-2019-1.py:45"
case 2'-1
assign \out_val$next 27'000000000000000000000000000
attribute \src "aoc-2019-1.py:53"
case 2'1-
attribute \src "aoc-2019-1.py:57"
case
attribute \src "aoc-2019-1.py:58"
switch { \out_en }
attribute \src "aoc-2019-1.py:58"
case 1'1
attribute \src "aoc-2019-1.py:60"
case
assign \out_val$next $115 [26:0]
end
end
end
attribute \src "aoc-2019-1.py:75"
case
end
attribute \src "aoc-2019-1.py:79"
switch { \out_en }
attribute \src "aoc-2019-1.py:79"
case 1'1
attribute \src "aoc-2019-1.py:84"
switch { $168 $166 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
assign \out_val$next $170 [26:0]
attribute \src "aoc-2019-1.py:89"
case 2'1-
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \out_val$next 27'000000000000000000000000000
end
sync init
update \out_val 27'000000000000000000000000000
sync posedge \clk
update \out_val \out_val$next
end
attribute \src "aoc-2019-1.py:37"
wire width 4 \out_digit
attribute \src "aoc-2019-1.py:37"
wire width 4 \out_digit$next
attribute \src "aoc-2019-1.py:44"
wire width 1 $213
attribute \src "aoc-2019-1.py:44"
cell $not $214
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_rx_ack
connect \Y $213
end
attribute \src "aoc-2019-1.py:45"
wire width 1 $215
attribute \src "aoc-2019-1.py:45"
cell $eq $216
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'101
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 5'10010
connect \Y $215
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $217
attribute \src "aoc-2019-1.py:53"
cell $ge $218
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'110000
connect \Y $217
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $219
attribute \src "aoc-2019-1.py:53"
cell $le $220
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'111001
connect \Y $219
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $221
attribute \src "aoc-2019-1.py:53"
cell $and $222
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A $217
connect \B $219
connect \Y $221
end
attribute \src "aoc-2019-1.py:65"
wire width 1 $223
attribute \src "aoc-2019-1.py:65"
cell $eq $224
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'100000
connect \Y $223
end
attribute \src "aoc-2019-1.py:67"
wire width 1 $225
attribute \src "aoc-2019-1.py:67"
cell $eq $226
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 4'1010
connect \Y $225
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $227
attribute \src "aoc-2019-1.py:82"
wire width 1 $228
attribute \src "aoc-2019-1.py:82"
cell $eq $229
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 1'0
connect \Y $228
end
attribute \src "aoc-2019-1.py:82"
cell $mux $230
parameter \WIDTH 6'100000
connect \A 32'00000000000000000000000000000000
connect \B 32'00000000000000000000000000000001
connect \S $228
connect \Y $227
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $231
attribute \src "aoc-2019-1.py:82"
wire width 1 $232
attribute \src "aoc-2019-1.py:82"
cell $eq $233
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 1'1
connect \Y $232
end
attribute \src "aoc-2019-1.py:82"
cell $mux $234
parameter \WIDTH 6'100000
connect \A $227
connect \B 32'00000000000000000000000000001010
connect \S $232
connect \Y $231
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $235
attribute \src "aoc-2019-1.py:82"
wire width 1 $236
attribute \src "aoc-2019-1.py:82"
cell $eq $237
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'10
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 2'10
connect \Y $236
end
attribute \src "aoc-2019-1.py:82"
cell $mux $238
parameter \WIDTH 6'100000
connect \A $231
connect \B 32'00000000000000000000000001100100
connect \S $236
connect \Y $235
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $239
attribute \src "aoc-2019-1.py:82"
wire width 1 $240
attribute \src "aoc-2019-1.py:82"
cell $eq $241
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'10
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 2'11
connect \Y $240
end
attribute \src "aoc-2019-1.py:82"
cell $mux $242
parameter \WIDTH 6'100000
connect \A $235
connect \B 32'00000000000000000000001111101000
connect \S $240
connect \Y $239
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $243
attribute \src "aoc-2019-1.py:82"
wire width 1 $244
attribute \src "aoc-2019-1.py:82"
cell $eq $245
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'100
connect \Y $244
end
attribute \src "aoc-2019-1.py:82"
cell $mux $246
parameter \WIDTH 6'100000
connect \A $239
connect \B 32'00000000000000000010011100010000
connect \S $244
connect \Y $243
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $247
attribute \src "aoc-2019-1.py:82"
wire width 1 $248
attribute \src "aoc-2019-1.py:82"
cell $eq $249
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'101
connect \Y $248
end
attribute \src "aoc-2019-1.py:82"
cell $mux $250
parameter \WIDTH 6'100000
connect \A $243
connect \B 32'00000000000000011000011010100000
connect \S $248
connect \Y $247
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $251
attribute \src "aoc-2019-1.py:82"
wire width 1 $252
attribute \src "aoc-2019-1.py:82"
cell $eq $253
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'110
connect \Y $252
end
attribute \src "aoc-2019-1.py:82"
cell $mux $254
parameter \WIDTH 6'100000
connect \A $247
connect \B 32'00000000000011110100001001000000
connect \S $252
connect \Y $251
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $255
attribute \src "aoc-2019-1.py:82"
wire width 1 $256
attribute \src "aoc-2019-1.py:82"
cell $eq $257
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'111
connect \Y $256
end
attribute \src "aoc-2019-1.py:82"
cell $mux $258
parameter \WIDTH 6'100000
connect \A $251
connect \B 32'00000000100110001001011010000000
connect \S $256
connect \Y $255
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $259
attribute \src "aoc-2019-1.py:82"
wire width 1 $260
attribute \src "aoc-2019-1.py:82"
cell $eq $261
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 4'1000
connect \Y $260
end
attribute \src "aoc-2019-1.py:82"
cell $mux $262
parameter \WIDTH 6'100000
connect \A $255
connect \B 32'00000101111101011110000100000000
connect \S $260
connect \Y $259
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $263
attribute \src "aoc-2019-1.py:82"
wire width 1 $264
attribute \src "aoc-2019-1.py:82"
cell $eq $265
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 4'1001
connect \Y $264
end
attribute \src "aoc-2019-1.py:82"
cell $mux $266
parameter \WIDTH 6'100000
connect \A $259
connect \B 32'00111011100110101100101000000000
connect \S $264
connect \Y $263
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $267
attribute \src "aoc-2019-1.py:84"
cell $ge $268
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 6'100000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B $263
connect \Y $267
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $269
attribute \src "aoc-2019-1.py:89"
cell $not $270
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $269
end
attribute \src "aoc-2019-1.py:86"
wire width 5 $271
attribute \src "aoc-2019-1.py:86"
wire width 5 $272
attribute \src "aoc-2019-1.py:86"
cell $add $273
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 3'101
connect \A \out_digit
connect \B 1'1
connect \Y $272
end
connect $271 $272
process $group_12
assign \out_digit$next \out_digit
attribute \src "aoc-2019-1.py:41"
switch { \uart_rx_rdy }
attribute \src "aoc-2019-1.py:41"
case 1'1
attribute \src "aoc-2019-1.py:44"
switch { $213 }
attribute \src "aoc-2019-1.py:44"
case 1'1
attribute \src "aoc-2019-1.py:45"
switch { $221 $215 }
attribute \src "aoc-2019-1.py:45"
case 2'-1
attribute \src "aoc-2019-1.py:53"
case 2'1-
attribute \src "aoc-2019-1.py:57"
case
attribute \src "aoc-2019-1.py:58"
switch { \out_en }
attribute \src "aoc-2019-1.py:58"
case 1'1
attribute \src "aoc-2019-1.py:60"
case
attribute \src "aoc-2019-1.py:65"
switch { $225 $223 }
attribute \src "aoc-2019-1.py:65"
case 2'-1
attribute \src "aoc-2019-1.py:67"
case 2'1-
assign \out_digit$next 4'0000
attribute \src "aoc-2019-1.py:73"
case
end
end
end
end
attribute \src "aoc-2019-1.py:75"
case
end
attribute \src "aoc-2019-1.py:79"
switch { \out_en }
attribute \src "aoc-2019-1.py:79"
case 1'1
attribute \src "aoc-2019-1.py:84"
switch { $269 $267 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
assign \out_digit$next $271 [3:0]
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \out_digit$next 4'0000
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \out_digit$next 4'0000
end
sync init
update \out_digit 4'0000
sync posedge \clk
update \out_digit \out_digit$next
end
attribute \src "aoc-2019-1.py:44"
wire width 1 $274
attribute \src "aoc-2019-1.py:44"
cell $not $275
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_rx_ack
connect \Y $274
end
attribute \src "aoc-2019-1.py:45"
wire width 1 $276
attribute \src "aoc-2019-1.py:45"
cell $eq $277
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'101
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 5'10010
connect \Y $276
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $278
attribute \src "aoc-2019-1.py:53"
cell $ge $279
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'110000
connect \Y $278
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $280
attribute \src "aoc-2019-1.py:53"
cell $le $281
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'111001
connect \Y $280
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $282
attribute \src "aoc-2019-1.py:53"
cell $and $283
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A $278
connect \B $280
connect \Y $282
end
attribute \src "aoc-2019-1.py:65"
wire width 1 $284
attribute \src "aoc-2019-1.py:65"
cell $eq $285
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'100000
connect \Y $284
end
attribute \src "aoc-2019-1.py:67"
wire width 1 $286
attribute \src "aoc-2019-1.py:67"
cell $eq $287
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 4'1010
connect \Y $286
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $288
attribute \src "aoc-2019-1.py:82"
wire width 1 $289
attribute \src "aoc-2019-1.py:82"
cell $eq $290
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 1'0
connect \Y $289
end
attribute \src "aoc-2019-1.py:82"
cell $mux $291
parameter \WIDTH 6'100000
connect \A 32'00000000000000000000000000000000
connect \B 32'00000000000000000000000000000001
connect \S $289
connect \Y $288
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $292
attribute \src "aoc-2019-1.py:82"
wire width 1 $293
attribute \src "aoc-2019-1.py:82"
cell $eq $294
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 1'1
connect \Y $293
end
attribute \src "aoc-2019-1.py:82"
cell $mux $295
parameter \WIDTH 6'100000
connect \A $288
connect \B 32'00000000000000000000000000001010
connect \S $293
connect \Y $292
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $296
attribute \src "aoc-2019-1.py:82"
wire width 1 $297
attribute \src "aoc-2019-1.py:82"
cell $eq $298
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'10
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 2'10
connect \Y $297
end
attribute \src "aoc-2019-1.py:82"
cell $mux $299
parameter \WIDTH 6'100000
connect \A $292
connect \B 32'00000000000000000000000001100100
connect \S $297
connect \Y $296
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $300
attribute \src "aoc-2019-1.py:82"
wire width 1 $301
attribute \src "aoc-2019-1.py:82"
cell $eq $302
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'10
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 2'11
connect \Y $301
end
attribute \src "aoc-2019-1.py:82"
cell $mux $303
parameter \WIDTH 6'100000
connect \A $296
connect \B 32'00000000000000000000001111101000
connect \S $301
connect \Y $300
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $304
attribute \src "aoc-2019-1.py:82"
wire width 1 $305
attribute \src "aoc-2019-1.py:82"
cell $eq $306
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'100
connect \Y $305
end
attribute \src "aoc-2019-1.py:82"
cell $mux $307
parameter \WIDTH 6'100000
connect \A $300
connect \B 32'00000000000000000010011100010000
connect \S $305
connect \Y $304
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $308
attribute \src "aoc-2019-1.py:82"
wire width 1 $309
attribute \src "aoc-2019-1.py:82"
cell $eq $310
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'101
connect \Y $309
end
attribute \src "aoc-2019-1.py:82"
cell $mux $311
parameter \WIDTH 6'100000
connect \A $304
connect \B 32'00000000000000011000011010100000
connect \S $309
connect \Y $308
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $312
attribute \src "aoc-2019-1.py:82"
wire width 1 $313
attribute \src "aoc-2019-1.py:82"
cell $eq $314
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'110
connect \Y $313
end
attribute \src "aoc-2019-1.py:82"
cell $mux $315
parameter \WIDTH 6'100000
connect \A $308
connect \B 32'00000000000011110100001001000000
connect \S $313
connect \Y $312
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $316
attribute \src "aoc-2019-1.py:82"
wire width 1 $317
attribute \src "aoc-2019-1.py:82"
cell $eq $318
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'111
connect \Y $317
end
attribute \src "aoc-2019-1.py:82"
cell $mux $319
parameter \WIDTH 6'100000
connect \A $312
connect \B 32'00000000100110001001011010000000
connect \S $317
connect \Y $316
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $320
attribute \src "aoc-2019-1.py:82"
wire width 1 $321
attribute \src "aoc-2019-1.py:82"
cell $eq $322
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 4'1000
connect \Y $321
end
attribute \src "aoc-2019-1.py:82"
cell $mux $323
parameter \WIDTH 6'100000
connect \A $316
connect \B 32'00000101111101011110000100000000
connect \S $321
connect \Y $320
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $324
attribute \src "aoc-2019-1.py:82"
wire width 1 $325
attribute \src "aoc-2019-1.py:82"
cell $eq $326
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 4'1001
connect \Y $325
end
attribute \src "aoc-2019-1.py:82"
cell $mux $327
parameter \WIDTH 6'100000
connect \A $320
connect \B 32'00111011100110101100101000000000
connect \S $325
connect \Y $324
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $328
attribute \src "aoc-2019-1.py:84"
cell $ge $329
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 6'100000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B $324
connect \Y $328
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $330
attribute \src "aoc-2019-1.py:89"
cell $not $331
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $330
end
attribute \src "aoc-2019-1.py:95"
wire width 1 $332
attribute \src "aoc-2019-1.py:95"
cell $ne $333
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 1'0
connect \Y $332
end
attribute \src "aoc-2019-1.py:96"
wire width 4 $334
attribute \src "aoc-2019-1.py:96"
wire width 4 $335
attribute \src "aoc-2019-1.py:96"
cell $sub $336
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 3'100
connect \A \out_idx
connect \B 1'1
connect \Y $335
end
connect $334 $335
process $group_13
assign \out_idx$next \out_idx
attribute \src "aoc-2019-1.py:41"
switch { \uart_rx_rdy }
attribute \src "aoc-2019-1.py:41"
case 1'1
attribute \src "aoc-2019-1.py:44"
switch { $274 }
attribute \src "aoc-2019-1.py:44"
case 1'1
attribute \src "aoc-2019-1.py:45"
switch { $282 $276 }
attribute \src "aoc-2019-1.py:45"
case 2'-1
attribute \src "aoc-2019-1.py:53"
case 2'1-
attribute \src "aoc-2019-1.py:57"
case
attribute \src "aoc-2019-1.py:58"
switch { \out_en }
attribute \src "aoc-2019-1.py:58"
case 1'1
attribute \src "aoc-2019-1.py:60"
case
attribute \src "aoc-2019-1.py:65"
switch { $286 $284 }
attribute \src "aoc-2019-1.py:65"
case 2'-1
attribute \src "aoc-2019-1.py:67"
case 2'1-
assign \out_idx$next 3'111
attribute \src "aoc-2019-1.py:73"
case
end
end
end
end
attribute \src "aoc-2019-1.py:75"
case
end
attribute \src "aoc-2019-1.py:79"
switch { \out_en }
attribute \src "aoc-2019-1.py:79"
case 1'1
attribute \src "aoc-2019-1.py:84"
switch { $330 $328 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
attribute \src "aoc-2019-1.py:95"
switch { $332 }
attribute \src "aoc-2019-1.py:95"
case 1'1
assign \out_idx$next $334 [2:0]
attribute \src "aoc-2019-1.py:97"
case
end
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \out_idx$next 3'000
end
sync init
update \out_idx 3'000
sync posedge \clk
update \out_idx \out_idx$next
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $337
attribute \src "aoc-2019-1.py:82"
wire width 1 $338
attribute \src "aoc-2019-1.py:82"
cell $eq $339
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 1'0
connect \Y $338
end
attribute \src "aoc-2019-1.py:82"
cell $mux $340
parameter \WIDTH 6'100000
connect \A 32'00000000000000000000000000000000
connect \B 32'00000000000000000000000000000001
connect \S $338
connect \Y $337
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $341
attribute \src "aoc-2019-1.py:82"
wire width 1 $342
attribute \src "aoc-2019-1.py:82"
cell $eq $343
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 1'1
connect \Y $342
end
attribute \src "aoc-2019-1.py:82"
cell $mux $344
parameter \WIDTH 6'100000
connect \A $337
connect \B 32'00000000000000000000000000001010
connect \S $342
connect \Y $341
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $345
attribute \src "aoc-2019-1.py:82"
wire width 1 $346
attribute \src "aoc-2019-1.py:82"
cell $eq $347
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'10
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 2'10
connect \Y $346
end
attribute \src "aoc-2019-1.py:82"
cell $mux $348
parameter \WIDTH 6'100000
connect \A $341
connect \B 32'00000000000000000000000001100100
connect \S $346
connect \Y $345
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $349
attribute \src "aoc-2019-1.py:82"
wire width 1 $350
attribute \src "aoc-2019-1.py:82"
cell $eq $351
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'10
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 2'11
connect \Y $350
end
attribute \src "aoc-2019-1.py:82"
cell $mux $352
parameter \WIDTH 6'100000
connect \A $345
connect \B 32'00000000000000000000001111101000
connect \S $350
connect \Y $349
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $353
attribute \src "aoc-2019-1.py:82"
wire width 1 $354
attribute \src "aoc-2019-1.py:82"
cell $eq $355
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'100
connect \Y $354
end
attribute \src "aoc-2019-1.py:82"
cell $mux $356
parameter \WIDTH 6'100000
connect \A $349
connect \B 32'00000000000000000010011100010000
connect \S $354
connect \Y $353
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $357
attribute \src "aoc-2019-1.py:82"
wire width 1 $358
attribute \src "aoc-2019-1.py:82"
cell $eq $359
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'101
connect \Y $358
end
attribute \src "aoc-2019-1.py:82"
cell $mux $360
parameter \WIDTH 6'100000
connect \A $353
connect \B 32'00000000000000011000011010100000
connect \S $358
connect \Y $357
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $361
attribute \src "aoc-2019-1.py:82"
wire width 1 $362
attribute \src "aoc-2019-1.py:82"
cell $eq $363
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'110
connect \Y $362
end
attribute \src "aoc-2019-1.py:82"
cell $mux $364
parameter \WIDTH 6'100000
connect \A $357
connect \B 32'00000000000011110100001001000000
connect \S $362
connect \Y $361
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $365
attribute \src "aoc-2019-1.py:82"
wire width 1 $366
attribute \src "aoc-2019-1.py:82"
cell $eq $367
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'111
connect \Y $366
end
attribute \src "aoc-2019-1.py:82"
cell $mux $368
parameter \WIDTH 6'100000
connect \A $361
connect \B 32'00000000100110001001011010000000
connect \S $366
connect \Y $365
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $369
attribute \src "aoc-2019-1.py:82"
wire width 1 $370
attribute \src "aoc-2019-1.py:82"
cell $eq $371
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 4'1000
connect \Y $370
end
attribute \src "aoc-2019-1.py:82"
cell $mux $372
parameter \WIDTH 6'100000
connect \A $365
connect \B 32'00000101111101011110000100000000
connect \S $370
connect \Y $369
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $373
attribute \src "aoc-2019-1.py:82"
wire width 1 $374
attribute \src "aoc-2019-1.py:82"
cell $eq $375
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 4'1001
connect \Y $374
end
attribute \src "aoc-2019-1.py:82"
cell $mux $376
parameter \WIDTH 6'100000
connect \A $369
connect \B 32'00111011100110101100101000000000
connect \S $374
connect \Y $373
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $377
attribute \src "aoc-2019-1.py:84"
cell $ge $378
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 6'100000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B $373
connect \Y $377
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $379
attribute \src "aoc-2019-1.py:89"
cell $not $380
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $379
end
attribute \src "aoc-2019-1.py:100"
wire width 1 $381
attribute \src "aoc-2019-1.py:100"
cell $and $382
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \B \uart_tx_ack
connect \Y $381
end
process $group_14
assign \uart_tx_rdy$next \uart_tx_rdy
attribute \src "aoc-2019-1.py:79"
switch { \out_en }
attribute \src "aoc-2019-1.py:79"
case 1'1
attribute \src "aoc-2019-1.py:84"
switch { $379 $377 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \uart_tx_rdy$next 1'1
end
end
attribute \src "aoc-2019-1.py:100"
switch { $381 }
attribute \src "aoc-2019-1.py:100"
case 1'1
assign \uart_tx_rdy$next 1'0
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \uart_tx_rdy$next 1'0
end
sync init
update \uart_tx_rdy 1'0
sync posedge \clk
update \uart_tx_rdy \uart_tx_rdy$next
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $383
attribute \src "aoc-2019-1.py:82"
wire width 1 $384
attribute \src "aoc-2019-1.py:82"
cell $eq $385
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 1'0
connect \Y $384
end
attribute \src "aoc-2019-1.py:82"
cell $mux $386
parameter \WIDTH 6'100000
connect \A 32'00000000000000000000000000000000
connect \B 32'00000000000000000000000000000001
connect \S $384
connect \Y $383
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $387
attribute \src "aoc-2019-1.py:82"
wire width 1 $388
attribute \src "aoc-2019-1.py:82"
cell $eq $389
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 1'1
connect \Y $388
end
attribute \src "aoc-2019-1.py:82"
cell $mux $390
parameter \WIDTH 6'100000
connect \A $383
connect \B 32'00000000000000000000000000001010
connect \S $388
connect \Y $387
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $391
attribute \src "aoc-2019-1.py:82"
wire width 1 $392
attribute \src "aoc-2019-1.py:82"
cell $eq $393
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'10
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 2'10
connect \Y $392
end
attribute \src "aoc-2019-1.py:82"
cell $mux $394
parameter \WIDTH 6'100000
connect \A $387
connect \B 32'00000000000000000000000001100100
connect \S $392
connect \Y $391
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $395
attribute \src "aoc-2019-1.py:82"
wire width 1 $396
attribute \src "aoc-2019-1.py:82"
cell $eq $397
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'10
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 2'11
connect \Y $396
end
attribute \src "aoc-2019-1.py:82"
cell $mux $398
parameter \WIDTH 6'100000
connect \A $391
connect \B 32'00000000000000000000001111101000
connect \S $396
connect \Y $395
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $399
attribute \src "aoc-2019-1.py:82"
wire width 1 $400
attribute \src "aoc-2019-1.py:82"
cell $eq $401
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'100
connect \Y $400
end
attribute \src "aoc-2019-1.py:82"
cell $mux $402
parameter \WIDTH 6'100000
connect \A $395
connect \B 32'00000000000000000010011100010000
connect \S $400
connect \Y $399
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $403
attribute \src "aoc-2019-1.py:82"
wire width 1 $404
attribute \src "aoc-2019-1.py:82"
cell $eq $405
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'101
connect \Y $404
end
attribute \src "aoc-2019-1.py:82"
cell $mux $406
parameter \WIDTH 6'100000
connect \A $399
connect \B 32'00000000000000011000011010100000
connect \S $404
connect \Y $403
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $407
attribute \src "aoc-2019-1.py:82"
wire width 1 $408
attribute \src "aoc-2019-1.py:82"
cell $eq $409
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'110
connect \Y $408
end
attribute \src "aoc-2019-1.py:82"
cell $mux $410
parameter \WIDTH 6'100000
connect \A $403
connect \B 32'00000000000011110100001001000000
connect \S $408
connect \Y $407
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $411
attribute \src "aoc-2019-1.py:82"
wire width 1 $412
attribute \src "aoc-2019-1.py:82"
cell $eq $413
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'11
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 3'111
connect \Y $412
end
attribute \src "aoc-2019-1.py:82"
cell $mux $414
parameter \WIDTH 6'100000
connect \A $407
connect \B 32'00000000100110001001011010000000
connect \S $412
connect \Y $411
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $415
attribute \src "aoc-2019-1.py:82"
wire width 1 $416
attribute \src "aoc-2019-1.py:82"
cell $eq $417
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 4'1000
connect \Y $416
end
attribute \src "aoc-2019-1.py:82"
cell $mux $418
parameter \WIDTH 6'100000
connect \A $411
connect \B 32'00000101111101011110000100000000
connect \S $416
connect \Y $415
end
attribute \src "aoc-2019-1.py:82"
wire width 32 $419
attribute \src "aoc-2019-1.py:82"
wire width 1 $420
attribute \src "aoc-2019-1.py:82"
cell $eq $421
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 1'1
connect \A \out_idx
connect \B 4'1001
connect \Y $420
end
attribute \src "aoc-2019-1.py:82"
cell $mux $422
parameter \WIDTH 6'100000
connect \A $415
connect \B 32'00111011100110101100101000000000
connect \S $420
connect \Y $419
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $423
attribute \src "aoc-2019-1.py:84"
cell $ge $424
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 6'100000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B $419
connect \Y $423
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $425
attribute \src "aoc-2019-1.py:89"
cell $not $426
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $425
end
attribute \src "aoc-2019-1.py:92"
wire width 8 $427
attribute \src "aoc-2019-1.py:92"
wire width 7 $428
attribute \src "aoc-2019-1.py:92"
cell $add $429
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'110
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 3'111
connect \A 6'110000
connect \B \out_digit
connect \Y $428
end
attribute \src "aoc-2019-1.py:92"
cell $pos $430
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \Y_WIDTH 4'1000
connect \A $428
connect \Y $427
end
process $group_15
assign \uart_tx_data$next \uart_tx_data
attribute \src "aoc-2019-1.py:79"
switch { \out_en }
attribute \src "aoc-2019-1.py:79"
case 1'1
attribute \src "aoc-2019-1.py:84"
switch { $425 $423 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \uart_tx_data$next $427
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \uart_tx_data$next 8'00000000
end
sync init
update \uart_tx_data 8'00000000
sync posedge \clk
update \uart_tx_data \uart_tx_data$next
end
connect \uart_0__dtr__o 1'0
connect \uart_0__rts__o 1'0
end
# Automatically generated by nMigen 0.1.dev1+g6765021.dirty. Do not edit.
attribute \generator "nMigen"
attribute \nmigen.hierarchy "top.uart"
module \uart
attribute \src "/home/eddy/Projects/halogen/uart.py:21"
wire width 1 input 0 \rx_i
attribute \src "/home/eddy/Projects/halogen/uart.py:20"
wire width 1 output 1 \tx_o
attribute \src "/home/eddy/Projects/halogen/uart.py:30"
wire width 1 output 2 \rx_rdy
attribute \src "/home/eddy/Projects/halogen/uart.py:30"
wire width 1 \rx_rdy$next
attribute \src "/home/eddy/Projects/halogen/uart.py:31"
wire width 1 input 3 \rx_ack
attribute \src "/home/eddy/Projects/halogen/uart.py:27"
wire width 8 output 4 \rx_data
attribute \src "/home/eddy/Projects/halogen/uart.py:24"
wire width 1 input 5 \tx_rdy
attribute \src "/home/eddy/Projects/halogen/uart.py:23"
wire width 8 input 6 \tx_data
attribute \src "/home/eddy/Projects/halogen/uart.py:25"
wire width 1 output 7 \tx_ack
attribute \src "nmigen/vendor/lattice_ice40.py:364"
wire width 1 input 8 \rst
attribute \src "nmigen/vendor/lattice_ice40.py:364"
wire width 1 input 9 \clk
attribute \src "/home/eddy/Projects/halogen/uart.py:37"
wire width 10 \tx_shreg
attribute \src "/home/eddy/Projects/halogen/uart.py:37"
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 "/home/eddy/Projects/halogen/uart.py:38"
wire width 4 \tx_count
attribute \src "/home/eddy/Projects/halogen/uart.py:38"
wire width 4 \tx_count$next
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
wire width 1 $1
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
cell $eq $2
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \tx_count
connect \B 1'0
connect \Y $1
end
process $group_1
assign \tx_ack 1'0
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
switch { $1 }
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
case 1'1
assign \tx_ack 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:49"
case
end
sync init
end
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
wire width 1 $3
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
cell $eq $4
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \tx_count
connect \B 1'0
connect \Y $3
end
attribute \src "/home/eddy/Projects/halogen/uart.py:36"
wire width 7 \tx_phase
attribute \src "/home/eddy/Projects/halogen/uart.py:36"
wire width 7 \tx_phase$next
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
wire width 1 $5
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
cell $ne $6
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \tx_phase
connect \B 1'0
connect \Y $5
end
process $group_2
assign \tx_shreg$next \tx_shreg
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
switch { $3 }
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:43"
switch { \tx_rdy }
attribute \src "/home/eddy/Projects/halogen/uart.py:43"
case 1'1
assign \tx_shreg$next { 1'1 \tx_data 1'0 }
end
attribute \src "/home/eddy/Projects/halogen/uart.py:49"
case
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
switch { $5 }
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:52"
case
assign \tx_shreg$next { 1'1 \tx_shreg [9:1] }
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
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 "/home/eddy/Projects/halogen/uart.py:41"
wire width 1 $7
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
cell $eq $8
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \tx_count
connect \B 1'0
connect \Y $7
end
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
wire width 1 $9
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
cell $ne $10
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \tx_phase
connect \B 1'0
connect \Y $9
end
attribute \src "/home/eddy/Projects/halogen/uart.py:55"
wire width 5 $11
attribute \src "/home/eddy/Projects/halogen/uart.py:55"
wire width 5 $12
attribute \src "/home/eddy/Projects/halogen/uart.py:55"
cell $sub $13
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 3'101
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 "/home/eddy/Projects/halogen/uart.py:41"
switch { $7 }
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:43"
switch { \tx_rdy }
attribute \src "/home/eddy/Projects/halogen/uart.py:43"
case 1'1
assign \tx_count$next 4'1010
end
attribute \src "/home/eddy/Projects/halogen/uart.py:49"
case
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
switch { $9 }
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:52"
case
assign \tx_count$next $11 [3:0]
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
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 "/home/eddy/Projects/halogen/uart.py:41"
wire width 1 $14
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
cell $eq $15
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \tx_count
connect \B 1'0
connect \Y $14
end
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
wire width 1 $16
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
cell $ne $17
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \tx_phase
connect \B 1'0
connect \Y $16
end
attribute \src "/home/eddy/Projects/halogen/uart.py:51"
wire width 8 $18
attribute \src "/home/eddy/Projects/halogen/uart.py:51"
wire width 8 $19
attribute \src "/home/eddy/Projects/halogen/uart.py:51"
cell $sub $20
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 4'1000
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 "/home/eddy/Projects/halogen/uart.py:41"
switch { $14 }
attribute \src "/home/eddy/Projects/halogen/uart.py:41"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:43"
switch { \tx_rdy }
attribute \src "/home/eddy/Projects/halogen/uart.py:43"
case 1'1
assign \tx_phase$next 7'1100111
end
attribute \src "/home/eddy/Projects/halogen/uart.py:49"
case
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
switch { $16 }
attribute \src "/home/eddy/Projects/halogen/uart.py:50"
case 1'1
assign \tx_phase$next $18 [6:0]
attribute \src "/home/eddy/Projects/halogen/uart.py:52"
case
assign \tx_phase$next 7'1100111
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \tx_phase$next 7'0000000
end
sync init
update \tx_phase 7'0000000
sync posedge \clk
update \tx_phase \tx_phase$next
end
attribute \src "/home/eddy/Projects/halogen/uart.py:60"
wire width 10 \rx_shreg
attribute \src "/home/eddy/Projects/halogen/uart.py:60"
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 "/home/eddy/Projects/halogen/uart.py:28"
wire width 1 \rx_err
attribute \src "/home/eddy/Projects/halogen/uart.py:61"
wire width 4 \rx_count
attribute \src "/home/eddy/Projects/halogen/uart.py:61"
wire width 4 \rx_count$next
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
wire width 1 $21
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
cell $eq $22
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_count
connect \B 1'0
connect \Y $21
end
attribute \src "/home/eddy/Projects/halogen/uart.py:65"
wire width 1 $23
attribute \src "/home/eddy/Projects/halogen/uart.py:65"
wire width 1 $24
attribute \src "/home/eddy/Projects/halogen/uart.py:65"
cell $not $25
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_shreg [0]
connect \Y $24
end
attribute \src "/home/eddy/Projects/halogen/uart.py:65"
wire width 1 $26
attribute \src "/home/eddy/Projects/halogen/uart.py:65"
cell $and $27
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A $24
connect \B \rx_shreg [9]
connect \Y $26
end
attribute \src "/home/eddy/Projects/halogen/uart.py:65"
cell $not $28
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A $26
connect \Y $23
end
process $group_6
assign \rx_err 1'0
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
switch { $21 }
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
case 1'1
assign \rx_err $23
attribute \src "/home/eddy/Projects/halogen/uart.py:76"
case
end
sync init
end
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
wire width 1 $29
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
cell $eq $30
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_count
connect \B 1'0
connect \Y $29
end
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
wire width 1 $31
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
cell $not $32
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_i
connect \Y $31
end
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
wire width 1 $33
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
cell $not $34
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_rdy
connect \Y $33
end
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
wire width 1 $35
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
cell $or $36
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_ack
connect \B $33
connect \Y $35
end
attribute \src "/home/eddy/Projects/halogen/uart.py:59"
wire width 7 \rx_phase
attribute \src "/home/eddy/Projects/halogen/uart.py:59"
wire width 7 \rx_phase$next
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
wire width 1 $37
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
cell $ne $38
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_phase
connect \B 1'0
connect \Y $37
end
attribute \src "/home/eddy/Projects/halogen/uart.py:85"
wire width 1 $39
attribute \src "/home/eddy/Projects/halogen/uart.py:85"
cell $eq $40
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_count
connect \B 1'1
connect \Y $39
end
process $group_7
assign \rx_rdy$next \rx_rdy
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
switch { $29 }
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
switch { $31 }
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
switch { $35 }
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
case 1'1
assign \rx_rdy$next 1'0
attribute \src "/home/eddy/Projects/halogen/uart.py:74"
case
end
end
attribute \src "/home/eddy/Projects/halogen/uart.py:76"
case
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
switch { $37 }
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:79"
case
attribute \src "/home/eddy/Projects/halogen/uart.py:85"
switch { $39 }
attribute \src "/home/eddy/Projects/halogen/uart.py:85"
case 1'1
assign \rx_rdy$next 1'1
end
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
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 "/home/eddy/Projects/halogen/uart.py:29"
wire width 1 \rx_ovf
attribute \src "/home/eddy/Projects/halogen/uart.py:29"
wire width 1 \rx_ovf$next
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
wire width 1 $41
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
cell $eq $42
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_count
connect \B 1'0
connect \Y $41
end
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
wire width 1 $43
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
cell $not $44
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_i
connect \Y $43
end
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
wire width 1 $45
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
cell $not $46
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_rdy
connect \Y $45
end
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
wire width 1 $47
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
cell $or $48
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_ack
connect \B $45
connect \Y $47
end
process $group_8
assign \rx_ovf$next \rx_ovf
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
switch { $41 }
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
switch { $43 }
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
switch { $47 }
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
case 1'1
assign \rx_ovf$next 1'0
attribute \src "/home/eddy/Projects/halogen/uart.py:74"
case
assign \rx_ovf$next 1'1
end
end
attribute \src "/home/eddy/Projects/halogen/uart.py:76"
case
end
attribute \src "nmigen/hdl/xfrm.py:528"
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 "/home/eddy/Projects/halogen/uart.py:64"
wire width 1 $49
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
cell $eq $50
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_count
connect \B 1'0
connect \Y $49
end
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
wire width 1 $51
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
cell $not $52
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_i
connect \Y $51
end
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
wire width 1 $53
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
cell $not $54
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_rdy
connect \Y $53
end
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
wire width 1 $55
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
cell $or $56
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_ack
connect \B $53
connect \Y $55
end
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
wire width 1 $57
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
cell $ne $58
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_phase
connect \B 1'0
connect \Y $57
end
attribute \src "/home/eddy/Projects/halogen/uart.py:82"
wire width 5 $59
attribute \src "/home/eddy/Projects/halogen/uart.py:82"
wire width 5 $60
attribute \src "/home/eddy/Projects/halogen/uart.py:82"
cell $sub $61
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 3'101
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 "/home/eddy/Projects/halogen/uart.py:64"
switch { $49 }
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
switch { $51 }
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
switch { $55 }
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
case 1'1
assign \rx_count$next 4'1010
attribute \src "/home/eddy/Projects/halogen/uart.py:74"
case
end
end
attribute \src "/home/eddy/Projects/halogen/uart.py:76"
case
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
switch { $57 }
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:79"
case
assign \rx_count$next $59 [3:0]
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
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 "/home/eddy/Projects/halogen/uart.py:64"
wire width 1 $62
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
cell $eq $63
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_count
connect \B 1'0
connect \Y $62
end
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
wire width 1 $64
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
cell $not $65
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_i
connect \Y $64
end
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
wire width 1 $66
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
cell $not $67
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_rdy
connect \Y $66
end
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
wire width 1 $68
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
cell $or $69
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_ack
connect \B $66
connect \Y $68
end
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
wire width 1 $70
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
cell $ne $71
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_phase
connect \B 1'0
connect \Y $70
end
attribute \src "/home/eddy/Projects/halogen/uart.py:78"
wire width 8 $72
attribute \src "/home/eddy/Projects/halogen/uart.py:78"
wire width 8 $73
attribute \src "/home/eddy/Projects/halogen/uart.py:78"
cell $sub $74
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 4'1000
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 "/home/eddy/Projects/halogen/uart.py:64"
switch { $62 }
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
switch { $64 }
attribute \src "/home/eddy/Projects/halogen/uart.py:66"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
switch { $68 }
attribute \src "/home/eddy/Projects/halogen/uart.py:67"
case 1'1
assign \rx_phase$next 7'0110100
attribute \src "/home/eddy/Projects/halogen/uart.py:74"
case
end
end
attribute \src "/home/eddy/Projects/halogen/uart.py:76"
case
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
switch { $70 }
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
case 1'1
assign \rx_phase$next $72 [6:0]
attribute \src "/home/eddy/Projects/halogen/uart.py:79"
case
assign \rx_phase$next 7'1100111
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \rx_phase$next 7'0000000
end
sync init
update \rx_phase 7'0000000
sync posedge \clk
update \rx_phase \rx_phase$next
end
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
wire width 1 $75
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
cell $eq $76
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_count
connect \B 1'0
connect \Y $75
end
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
wire width 1 $77
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
cell $ne $78
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \rx_phase
connect \B 1'0
connect \Y $77
end
process $group_11
assign \rx_shreg$next \rx_shreg
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
switch { $75 }
attribute \src "/home/eddy/Projects/halogen/uart.py:64"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:76"
case
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
switch { $77 }
attribute \src "/home/eddy/Projects/halogen/uart.py:77"
case 1'1
attribute \src "/home/eddy/Projects/halogen/uart.py:79"
case
assign \rx_shreg$next { \rx_i \rx_shreg [9:1] }
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
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.cd_sync"
module \cd_sync
attribute \src "nmigen/vendor/lattice_ice40.py:364"
wire width 1 output 0 \rst
attribute \src "nmigen/vendor/lattice_ice40.py:364"
wire width 1 output 1 \clk
attribute \src "nmigen/build/res.py:137"
wire width 1 input 2 \clk12_0__i
attribute \src "nmigen/vendor/lattice_ice40.py:354"
wire width 1 \por_clk
process $group_0
assign \por_clk 1'0
assign \por_clk \clk12_0__i
sync init
end
attribute \src "nmigen/vendor/lattice_ice40.py:357"
wire width 1 \ready
attribute \src "nmigen/vendor/lattice_ice40.py:357"
wire width 1 \ready$next
attribute \src "nmigen/vendor/lattice_ice40.py:356"
wire width 8 \timer
attribute \src "nmigen/vendor/lattice_ice40.py:356"
wire width 8 \timer$next
attribute \src "nmigen/vendor/lattice_ice40.py:359"
wire width 1 $1
attribute \src "nmigen/vendor/lattice_ice40.py:359"
cell $eq $2
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 4'1000
parameter \Y_WIDTH 1'1
connect \A \timer
connect \B 8'10110100
connect \Y $1
end
process $group_1
assign \ready$next \ready
attribute \src "nmigen/vendor/lattice_ice40.py:359"
switch { $1 }
attribute \src "nmigen/vendor/lattice_ice40.py:359"
case 1'1
assign \ready$next 1'1
attribute \src "nmigen/vendor/lattice_ice40.py:361"
case
end
sync init
update \ready 1'0
sync posedge \por_clk
update \ready \ready$next
end
attribute \src "nmigen/vendor/lattice_ice40.py:359"
wire width 1 $3
attribute \src "nmigen/vendor/lattice_ice40.py:359"
cell $eq $4
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 4'1000
parameter \Y_WIDTH 1'1
connect \A \timer
connect \B 8'10110100
connect \Y $3
end
attribute \src "nmigen/vendor/lattice_ice40.py:362"
wire width 9 $5
attribute \src "nmigen/vendor/lattice_ice40.py:362"
wire width 9 $6
attribute \src "nmigen/vendor/lattice_ice40.py:362"
cell $add $7
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 4'1001
connect \A \timer
connect \B 1'1
connect \Y $6
end
connect $5 $6
process $group_2
assign \timer$next \timer
attribute \src "nmigen/vendor/lattice_ice40.py:359"
switch { $3 }
attribute \src "nmigen/vendor/lattice_ice40.py:359"
case 1'1
attribute \src "nmigen/vendor/lattice_ice40.py:361"
case
assign \timer$next $5 [7:0]
end
sync init
update \timer 8'00000000
sync posedge \por_clk
update \timer \timer$next
end
process $group_3
assign \clk 1'0
assign \clk \clk12_0__i
sync init
end
attribute \src "nmigen/vendor/lattice_ice40.py:369"
wire width 1 $8
attribute \src "nmigen/vendor/lattice_ice40.py:369"
cell $not $9
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \ready
connect \Y $8
end
process $group_4
assign \rst 1'0
assign \rst $8
sync init
end
end
attribute \generator "nMigen"
attribute \top 1
attribute \nmigen.hierarchy "top"
module \top
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 0 \clk12_0__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 1 \led_0__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 2 \led_1__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 3 \led_2__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 4 \led_3__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 5 \led_4__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 6 \uart_0__cts__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 7 \uart_0__dcd__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 8 \uart_0__dsr__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 9 \uart_0__dtr__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 10 \uart_0__rts__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 11 \uart_0__rx__io
attribute \src "nmigen/build/res.py:129"
wire width 1 inout 12 \uart_0__tx__io
attribute \src "nmigen/vendor/lattice_ice40.py:364"
wire width 1 \clk
attribute \src "nmigen/vendor/lattice_ice40.py:364"
wire width 1 \rst
attribute \src "/home/eddy/Projects/halogen/uart.py:21"
wire width 1 \uart_rx_i
attribute \src "/home/eddy/Projects/halogen/uart.py:20"
wire width 1 \uart_tx_o
attribute \src "/home/eddy/Projects/halogen/uart.py:30"
wire width 1 \uart_rx_rdy
attribute \src "/home/eddy/Projects/halogen/uart.py:31"
wire width 1 \uart_rx_ack
attribute \src "/home/eddy/Projects/halogen/uart.py:31"
wire width 1 \uart_rx_ack$next
attribute \src "/home/eddy/Projects/halogen/uart.py:27"
wire width 8 \uart_rx_data
attribute \src "/home/eddy/Projects/halogen/uart.py:24"
wire width 1 \uart_tx_rdy
attribute \src "/home/eddy/Projects/halogen/uart.py:24"
wire width 1 \uart_tx_rdy$next
attribute \src "/home/eddy/Projects/halogen/uart.py:23"
wire width 8 \uart_tx_data
attribute \src "/home/eddy/Projects/halogen/uart.py:23"
wire width 8 \uart_tx_data$next
attribute \src "/home/eddy/Projects/halogen/uart.py:25"
wire width 1 \uart_tx_ack
cell \uart \uart
connect \rx_i \uart_rx_i
connect \tx_o \uart_tx_o
connect \rx_rdy \uart_rx_rdy
connect \rx_ack \uart_rx_ack
connect \rx_data \uart_rx_data
connect \tx_rdy \uart_tx_rdy
connect \tx_data \uart_tx_data
connect \tx_ack \uart_tx_ack
connect \rst \rst
connect \clk \clk
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \cd_sync_clk12_0__i
cell \cd_sync \cd_sync
connect \rst \rst
connect \clk \clk
connect \clk12_0__i \cd_sync_clk12_0__i
end
cell \SB_GB_IO \clk12_0_0
parameter \IO_STANDARD "SB_LVCMOS"
parameter \PIN_TYPE 6'1
connect \PACKAGE_PIN \clk12_0__io
connect \GLOBAL_BUFFER_OUTPUT \cd_sync_clk12_0__i
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \led_0__o
attribute \src "nmigen/build/res.py:137"
wire width 1 \led_0__o$next
cell \SB_IO \led_0_0
parameter \IO_STANDARD "SB_LVCMOS"
parameter \PIN_TYPE 6'11001
connect \PACKAGE_PIN \led_0__io
connect \D_OUT_0 \led_0__o
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \led_1__o
attribute \src "nmigen/build/res.py:137"
wire width 1 \led_1__o$next
cell \SB_IO \led_1_0
parameter \IO_STANDARD "SB_LVCMOS"
parameter \PIN_TYPE 6'11001
connect \PACKAGE_PIN \led_1__io
connect \D_OUT_0 \led_1__o
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \led_2__o
attribute \src "nmigen/build/res.py:137"
wire width 1 \led_2__o$next
cell \SB_IO \led_2_0
parameter \IO_STANDARD "SB_LVCMOS"
parameter \PIN_TYPE 6'11001
connect \PACKAGE_PIN \led_2__io
connect \D_OUT_0 \led_2__o
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \led_3__o
attribute \src "nmigen/build/res.py:137"
wire width 1 \led_3__o$next
cell \SB_IO \led_3_0
parameter \IO_STANDARD "SB_LVCMOS"
parameter \PIN_TYPE 6'11001
connect \PACKAGE_PIN \led_3__io
connect \D_OUT_0 \led_3__o
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \led_4__o
attribute \src "nmigen/build/res.py:137"
wire width 1 \led_4__o$next
cell \SB_IO \led_4_0
parameter \IO_STANDARD "SB_LVCMOS"
parameter \PIN_TYPE 6'11001
connect \PACKAGE_PIN \led_4__io
connect \D_OUT_0 \led_4__o
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \uart_0__cts__i
cell \SB_IO \uart_0__cts_0
parameter \IO_STANDARD "SB_LVTTL"
parameter \PULLUP 1'1
parameter \PIN_TYPE 6'1
connect \PACKAGE_PIN \uart_0__cts__io
connect \D_IN_0 \uart_0__cts__i
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \uart_0__dcd__i
cell \SB_IO \uart_0__dcd_0
parameter \IO_STANDARD "SB_LVTTL"
parameter \PULLUP 1'1
parameter \PIN_TYPE 6'1
connect \PACKAGE_PIN \uart_0__dcd__io
connect \D_IN_0 \uart_0__dcd__i
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \uart_0__dsr__i
cell \SB_IO \uart_0__dsr_0
parameter \IO_STANDARD "SB_LVTTL"
parameter \PULLUP 1'1
parameter \PIN_TYPE 6'1
connect \PACKAGE_PIN \uart_0__dsr__io
connect \D_IN_0 \uart_0__dsr__i
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \uart_0__dtr__o
cell \SB_IO \uart_0__dtr_0
parameter \IO_STANDARD "SB_LVTTL"
parameter \PULLUP 1'1
parameter \PIN_TYPE 6'11001
connect \PACKAGE_PIN \uart_0__dtr__io
connect \D_OUT_0 \uart_0__dtr__o
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \uart_0__rts__o
cell \SB_IO \uart_0__rts_0
parameter \IO_STANDARD "SB_LVTTL"
parameter \PULLUP 1'1
parameter \PIN_TYPE 6'11001
connect \PACKAGE_PIN \uart_0__rts__io
connect \D_OUT_0 \uart_0__rts__o
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \uart_0__rx__i
cell \SB_IO \uart_0__rx_0
parameter \IO_STANDARD "SB_LVTTL"
parameter \PULLUP 1'1
parameter \PIN_TYPE 6'1
connect \PACKAGE_PIN \uart_0__rx__io
connect \D_IN_0 \uart_0__rx__i
end
attribute \src "nmigen/build/res.py:137"
wire width 1 \uart_0__tx__o
cell \SB_IO \uart_0__tx_0
parameter \IO_STANDARD "SB_LVTTL"
parameter \PULLUP 1'1
parameter \PIN_TYPE 6'11001
connect \PACKAGE_PIN \uart_0__tx__io
connect \D_OUT_0 \uart_0__tx__o
end
attribute \src "aoc-2019-1.py:17"
wire width 2 \err
attribute \src "aoc-2019-1.py:17"
wire width 2 \err$next
attribute \src "aoc-2019-1.py:18"
wire width 1 $1
attribute \src "aoc-2019-1.py:18"
cell $ne $2
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'10
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \err
connect \B 1'0
connect \Y $1
end
attribute \src "aoc-2019-1.py:19"
wire width 6 $3
attribute \src "aoc-2019-1.py:15"
wire width 6 $4
attribute \src "aoc-2019-1.py:15"
cell $pos $5
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'101
parameter \Y_WIDTH 3'110
connect \A { \led_4__o \led_3__o \led_2__o \led_1__o \led_0__o }
connect \Y $4
end
attribute \src "aoc-2019-1.py:19"
wire width 6 $6
attribute \src "aoc-2019-1.py:19"
cell $and $7
parameter \A_SIGNED 1'1
parameter \A_WIDTH 3'110
parameter \B_SIGNED 1'1
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 3'110
connect \A $4
connect \B 6'101111
connect \Y $6
end
attribute \src "aoc-2019-1.py:19"
wire width 6 $8
attribute \src "aoc-2019-1.py:19"
wire width 4 $9
attribute \src "aoc-2019-1.py:19"
cell $sshl $10
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'10
parameter \Y_WIDTH 3'100
connect \A 1'1
connect \B \err
connect \Y $9
end
attribute \src "aoc-2019-1.py:19"
cell $pos $11
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \Y_WIDTH 3'110
connect \A $9
connect \Y $8
end
attribute \src "aoc-2019-1.py:19"
wire width 6 $12
attribute \src "aoc-2019-1.py:19"
cell $or $13
parameter \A_SIGNED 1'1
parameter \A_WIDTH 3'110
parameter \B_SIGNED 1'1
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 3'110
connect \A $6
connect \B $8
connect \Y $12
end
connect $3 $12
process $group_0
assign \led_0__o$next \led_0__o
assign \led_1__o$next \led_1__o
assign \led_2__o$next \led_2__o
assign \led_3__o$next \led_3__o
assign \led_4__o$next \led_4__o
attribute \src "aoc-2019-1.py:18"
switch { $1 }
attribute \src "aoc-2019-1.py:18"
case 1'1
assign { \led_4__o$next \led_3__o$next \led_2__o$next \led_1__o$next \led_0__o$next } $3 [4:0]
attribute \src "aoc-2019-1.py:20"
case
assign { \led_4__o$next \led_3__o$next \led_2__o$next \led_1__o$next \led_0__o$next } 5'10000
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \led_0__o$next 1'0
assign \led_1__o$next 1'0
assign \led_2__o$next 1'0
assign \led_3__o$next 1'0
assign \led_4__o$next 1'0
end
sync init
update \led_0__o 1'0
update \led_1__o 1'0
update \led_2__o 1'0
update \led_3__o 1'0
update \led_4__o 1'0
sync posedge \clk
update \led_0__o \led_0__o$next
update \led_1__o \led_1__o$next
update \led_2__o \led_2__o$next
update \led_3__o \led_3__o$next
update \led_4__o \led_4__o$next
end
process $group_5
assign \uart_rx_i 1'0
assign \uart_rx_i { \uart_0__rx__i }
sync init
end
process $group_6
assign \uart_0__tx__o 1'0
assign { \uart_0__tx__o } \uart_tx_o
sync init
end
process $group_7
assign \uart_rx_ack$next \uart_rx_ack
attribute \src "aoc-2019-1.py:41"
switch { \uart_rx_rdy }
attribute \src "aoc-2019-1.py:41"
case 1'1
assign \uart_rx_ack$next 1'1
attribute \src "aoc-2019-1.py:75"
case
assign \uart_rx_ack$next 1'0
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \uart_rx_ack$next 1'0
end
sync init
update \uart_rx_ack 1'0
sync posedge \clk
update \uart_rx_ack \uart_rx_ack$next
end
attribute \src "aoc-2019-1.py:44"
wire width 1 $14
attribute \src "aoc-2019-1.py:44"
cell $not $15
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_rx_ack
connect \Y $14
end
attribute \src "aoc-2019-1.py:45"
wire width 1 $16
attribute \src "aoc-2019-1.py:45"
cell $eq $17
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'101
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 5'10010
connect \Y $16
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $18
attribute \src "aoc-2019-1.py:53"
cell $ge $19
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'110000
connect \Y $18
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $20
attribute \src "aoc-2019-1.py:53"
cell $le $21
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'111001
connect \Y $20
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $22
attribute \src "aoc-2019-1.py:53"
cell $and $23
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A $18
connect \B $20
connect \Y $22
end
attribute \src "aoc-2019-1.py:35"
wire width 1 \out_en
attribute \src "aoc-2019-1.py:35"
wire width 1 \out_en$next
attribute \src "aoc-2019-1.py:65"
wire width 1 $24
attribute \src "aoc-2019-1.py:65"
cell $eq $25
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'100000
connect \Y $24
end
attribute \src "aoc-2019-1.py:67"
wire width 1 $26
attribute \src "aoc-2019-1.py:67"
cell $eq $27
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 4'1010
connect \Y $26
end
process $group_8
assign \err$next \err
attribute \src "aoc-2019-1.py:41"
switch { \uart_rx_rdy }
attribute \src "aoc-2019-1.py:41"
case 1'1
attribute \src "aoc-2019-1.py:44"
switch { $14 }
attribute \src "aoc-2019-1.py:44"
case 1'1
attribute \src "aoc-2019-1.py:45"
switch { $22 $16 }
attribute \src "aoc-2019-1.py:45"
case 2'-1
assign \err$next 2'00
attribute \src "aoc-2019-1.py:53"
case 2'1-
attribute \src "aoc-2019-1.py:57"
case
attribute \src "aoc-2019-1.py:58"
switch { \out_en }
attribute \src "aoc-2019-1.py:58"
case 1'1
assign \err$next 2'01
attribute \src "aoc-2019-1.py:60"
case
attribute \src "aoc-2019-1.py:65"
switch { $26 $24 }
attribute \src "aoc-2019-1.py:65"
case 2'-1
attribute \src "aoc-2019-1.py:67"
case 2'1-
attribute \src "aoc-2019-1.py:73"
case
assign \err$next 2'10
end
end
end
end
attribute \src "aoc-2019-1.py:75"
case
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \err$next 2'00
end
sync init
update \err 2'00
sync posedge \clk
update \err \err$next
end
attribute \src "aoc-2019-1.py:33"
wire width 27 \in_val
attribute \src "aoc-2019-1.py:33"
wire width 27 \in_val$next
attribute \src "aoc-2019-1.py:44"
wire width 1 $28
attribute \src "aoc-2019-1.py:44"
cell $not $29
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_rx_ack
connect \Y $28
end
attribute \src "aoc-2019-1.py:45"
wire width 1 $30
attribute \src "aoc-2019-1.py:45"
cell $eq $31
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'101
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 5'10010
connect \Y $30
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $32
attribute \src "aoc-2019-1.py:53"
cell $ge $33
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'110000
connect \Y $32
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $34
attribute \src "aoc-2019-1.py:53"
cell $le $35
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'111001
connect \Y $34
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $36
attribute \src "aoc-2019-1.py:53"
cell $and $37
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A $32
connect \B $34
connect \Y $36
end
attribute \src "aoc-2019-1.py:55"
wire width 32 $38
attribute \src "aoc-2019-1.py:55"
wire width 31 $39
attribute \src "aoc-2019-1.py:55"
cell $mul $40
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 5'11111
connect \A \in_val
connect \B 4'1010
connect \Y $39
end
attribute \src "aoc-2019-1.py:55"
wire width 9 $41
attribute \src "aoc-2019-1.py:55"
cell $sub $42
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 4'1001
connect \A \uart_rx_data
connect \B 6'110000
connect \Y $41
end
attribute \src "aoc-2019-1.py:55"
wire width 32 $43
attribute \src "aoc-2019-1.py:55"
cell $add $44
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11111
parameter \B_SIGNED 1'0
parameter \B_WIDTH 4'1001
parameter \Y_WIDTH 6'100000
connect \A $39
connect \B $41
connect \Y $43
end
connect $38 $43
process $group_9
assign \in_val$next \in_val
attribute \src "aoc-2019-1.py:41"
switch { \uart_rx_rdy }
attribute \src "aoc-2019-1.py:41"
case 1'1
attribute \src "aoc-2019-1.py:44"
switch { $28 }
attribute \src "aoc-2019-1.py:44"
case 1'1
attribute \src "aoc-2019-1.py:45"
switch { $36 $30 }
attribute \src "aoc-2019-1.py:45"
case 2'-1
assign \in_val$next 27'000000000000000000000000000
attribute \src "aoc-2019-1.py:53"
case 2'1-
assign \in_val$next $38 [26:0]
attribute \src "aoc-2019-1.py:57"
case
attribute \src "aoc-2019-1.py:58"
switch { \out_en }
attribute \src "aoc-2019-1.py:58"
case 1'1
attribute \src "aoc-2019-1.py:60"
case
assign \in_val$next 27'000000000000000000000000000
end
end
end
attribute \src "aoc-2019-1.py:75"
case
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \in_val$next 27'000000000000000000000000000
end
sync init
update \in_val 27'000000000000000000000000000
sync posedge \clk
update \in_val \in_val$next
end
attribute \src "aoc-2019-1.py:44"
wire width 1 $45
attribute \src "aoc-2019-1.py:44"
cell $not $46
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_rx_ack
connect \Y $45
end
attribute \src "aoc-2019-1.py:45"
wire width 1 $47
attribute \src "aoc-2019-1.py:45"
cell $eq $48
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'101
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 5'10010
connect \Y $47
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $49
attribute \src "aoc-2019-1.py:53"
cell $ge $50
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'110000
connect \Y $49
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $51
attribute \src "aoc-2019-1.py:53"
cell $le $52
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'111001
connect \Y $51
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $53
attribute \src "aoc-2019-1.py:53"
cell $and $54
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A $49
connect \B $51
connect \Y $53
end
attribute \src "aoc-2019-1.py:65"
wire width 1 $55
attribute \src "aoc-2019-1.py:65"
cell $eq $56
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'100000
connect \Y $55
end
attribute \src "aoc-2019-1.py:67"
wire width 1 $57
attribute \src "aoc-2019-1.py:67"
cell $eq $58
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 4'1010
connect \Y $57
end
attribute \src "aoc-2019-1.py:36"
wire width 27 \out_val
attribute \src "aoc-2019-1.py:36"
wire width 27 \out_val$next
attribute \src "aoc-2019-1.py:38"
wire width 3 \out_idx
attribute \src "aoc-2019-1.py:38"
wire width 3 \out_idx$next
attribute \src "aoc-2019-1.py:84"
wire width 1 $59
attribute \src "aoc-2019-1.py:84"
cell $ge $60
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000000000000001
connect \Y $59
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $61
attribute \src "aoc-2019-1.py:89"
cell $not $62
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $61
end
attribute \src "aoc-2019-1.py:95"
wire width 1 $63
attribute \src "aoc-2019-1.py:95"
cell $ne $64
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A 3'000
connect \B 1'0
connect \Y $63
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $65
attribute \src "aoc-2019-1.py:84"
cell $ge $66
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000000000001010
connect \Y $65
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $67
attribute \src "aoc-2019-1.py:89"
cell $not $68
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $67
end
attribute \src "aoc-2019-1.py:95"
wire width 1 $69
attribute \src "aoc-2019-1.py:95"
cell $ne $70
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A 3'001
connect \B 1'0
connect \Y $69
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $71
attribute \src "aoc-2019-1.py:84"
cell $ge $72
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000000001100100
connect \Y $71
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $73
attribute \src "aoc-2019-1.py:89"
cell $not $74
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $73
end
attribute \src "aoc-2019-1.py:95"
wire width 1 $75
attribute \src "aoc-2019-1.py:95"
cell $ne $76
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A 3'010
connect \B 1'0
connect \Y $75
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $77
attribute \src "aoc-2019-1.py:84"
cell $ge $78
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000001111101000
connect \Y $77
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $79
attribute \src "aoc-2019-1.py:89"
cell $not $80
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $79
end
attribute \src "aoc-2019-1.py:95"
wire width 1 $81
attribute \src "aoc-2019-1.py:95"
cell $ne $82
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A 3'011
connect \B 1'0
connect \Y $81
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $83
attribute \src "aoc-2019-1.py:84"
cell $ge $84
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000010011100010000
connect \Y $83
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $85
attribute \src "aoc-2019-1.py:89"
cell $not $86
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $85
end
attribute \src "aoc-2019-1.py:95"
wire width 1 $87
attribute \src "aoc-2019-1.py:95"
cell $ne $88
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A 3'100
connect \B 1'0
connect \Y $87
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $89
attribute \src "aoc-2019-1.py:84"
cell $ge $90
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000011000011010100000
connect \Y $89
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $91
attribute \src "aoc-2019-1.py:89"
cell $not $92
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $91
end
attribute \src "aoc-2019-1.py:95"
wire width 1 $93
attribute \src "aoc-2019-1.py:95"
cell $ne $94
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A 3'101
connect \B 1'0
connect \Y $93
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $95
attribute \src "aoc-2019-1.py:84"
cell $ge $96
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000011110100001001000000
connect \Y $95
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $97
attribute \src "aoc-2019-1.py:89"
cell $not $98
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $97
end
attribute \src "aoc-2019-1.py:95"
wire width 1 $99
attribute \src "aoc-2019-1.py:95"
cell $ne $100
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A 3'110
connect \B 1'0
connect \Y $99
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $101
attribute \src "aoc-2019-1.py:84"
cell $ge $102
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'100110001001011010000000
connect \Y $101
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $103
attribute \src "aoc-2019-1.py:89"
cell $not $104
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $103
end
attribute \src "aoc-2019-1.py:95"
wire width 1 $105
attribute \src "aoc-2019-1.py:95"
cell $ne $106
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A 3'111
connect \B 1'0
connect \Y $105
end
process $group_10
assign \out_en$next \out_en
attribute \src "aoc-2019-1.py:41"
switch { \uart_rx_rdy }
attribute \src "aoc-2019-1.py:41"
case 1'1
attribute \src "aoc-2019-1.py:44"
switch { $45 }
attribute \src "aoc-2019-1.py:44"
case 1'1
attribute \src "aoc-2019-1.py:45"
switch { $53 $47 }
attribute \src "aoc-2019-1.py:45"
case 2'-1
assign \out_en$next 1'0
attribute \src "aoc-2019-1.py:53"
case 2'1-
attribute \src "aoc-2019-1.py:57"
case
attribute \src "aoc-2019-1.py:58"
switch { \out_en }
attribute \src "aoc-2019-1.py:58"
case 1'1
attribute \src "aoc-2019-1.py:60"
case
attribute \src "aoc-2019-1.py:65"
switch { $57 $55 }
attribute \src "aoc-2019-1.py:65"
case 2'-1
attribute \src "aoc-2019-1.py:67"
case 2'1-
assign \out_en$next 1'1
attribute \src "aoc-2019-1.py:73"
case
end
end
end
end
attribute \src "aoc-2019-1.py:75"
case
end
attribute \src "aoc-2019-1.py:79"
switch { \out_en }
attribute \src "aoc-2019-1.py:79"
case 1'1
attribute \src "aoc-2019-1.py:83"
switch \out_idx
case 3'000
attribute \src "aoc-2019-1.py:84"
switch { $61 $59 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
attribute \src "aoc-2019-1.py:95"
switch { $63 }
attribute \src "aoc-2019-1.py:95"
case 1'1
attribute \src "aoc-2019-1.py:97"
case
assign \out_en$next 1'0
end
end
case 3'001
attribute \src "aoc-2019-1.py:84"
switch { $67 $65 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
attribute \src "aoc-2019-1.py:95"
switch { $69 }
attribute \src "aoc-2019-1.py:95"
case 1'1
attribute \src "aoc-2019-1.py:97"
case
assign \out_en$next 1'0
end
end
case 3'010
attribute \src "aoc-2019-1.py:84"
switch { $73 $71 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
attribute \src "aoc-2019-1.py:95"
switch { $75 }
attribute \src "aoc-2019-1.py:95"
case 1'1
attribute \src "aoc-2019-1.py:97"
case
assign \out_en$next 1'0
end
end
case 3'011
attribute \src "aoc-2019-1.py:84"
switch { $79 $77 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
attribute \src "aoc-2019-1.py:95"
switch { $81 }
attribute \src "aoc-2019-1.py:95"
case 1'1
attribute \src "aoc-2019-1.py:97"
case
assign \out_en$next 1'0
end
end
case 3'100
attribute \src "aoc-2019-1.py:84"
switch { $85 $83 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
attribute \src "aoc-2019-1.py:95"
switch { $87 }
attribute \src "aoc-2019-1.py:95"
case 1'1
attribute \src "aoc-2019-1.py:97"
case
assign \out_en$next 1'0
end
end
case 3'101
attribute \src "aoc-2019-1.py:84"
switch { $91 $89 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
attribute \src "aoc-2019-1.py:95"
switch { $93 }
attribute \src "aoc-2019-1.py:95"
case 1'1
attribute \src "aoc-2019-1.py:97"
case
assign \out_en$next 1'0
end
end
case 3'110
attribute \src "aoc-2019-1.py:84"
switch { $97 $95 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
attribute \src "aoc-2019-1.py:95"
switch { $99 }
attribute \src "aoc-2019-1.py:95"
case 1'1
attribute \src "aoc-2019-1.py:97"
case
assign \out_en$next 1'0
end
end
case 3'---
attribute \src "aoc-2019-1.py:84"
switch { $103 $101 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
attribute \src "aoc-2019-1.py:95"
switch { $105 }
attribute \src "aoc-2019-1.py:95"
case 1'1
attribute \src "aoc-2019-1.py:97"
case
assign \out_en$next 1'0
end
end
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \out_en$next 1'0
end
sync init
update \out_en 1'0
sync posedge \clk
update \out_en \out_en$next
end
attribute \src "aoc-2019-1.py:44"
wire width 1 $107
attribute \src "aoc-2019-1.py:44"
cell $not $108
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_rx_ack
connect \Y $107
end
attribute \src "aoc-2019-1.py:45"
wire width 1 $109
attribute \src "aoc-2019-1.py:45"
cell $eq $110
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'101
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 5'10010
connect \Y $109
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $111
attribute \src "aoc-2019-1.py:53"
cell $ge $112
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'110000
connect \Y $111
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $113
attribute \src "aoc-2019-1.py:53"
cell $le $114
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'111001
connect \Y $113
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $115
attribute \src "aoc-2019-1.py:53"
cell $and $116
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A $111
connect \B $113
connect \Y $115
end
attribute \src "aoc-2019-1.py:63"
wire width 29 $117
attribute \src "aoc-2019-1.py:63"
wire width 27 $118
attribute \src "aoc-2019-1.py:63"
cell $div $119
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'10
parameter \Y_WIDTH 5'11011
connect \A \in_val
connect \B 2'11
connect \Y $118
end
attribute \src "aoc-2019-1.py:63"
wire width 27 $120
attribute \src "nmigen/back/rtlil.py:516"
wire width 1 $121
attribute \src "nmigen/back/rtlil.py:516"
cell $eq $122
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \in_val
connect \B 1'0
connect \Y $121
end
attribute \src "aoc-2019-1.py:63"
cell $mux $123
parameter \WIDTH 5'11011
connect \A $118
connect \B 27'000000000000000000000000000
connect \S $121
connect \Y $120
end
attribute \src "aoc-2019-1.py:63"
wire width 28 $124
attribute \src "aoc-2019-1.py:63"
cell $add $125
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11011
parameter \Y_WIDTH 5'11100
connect \A \out_val
connect \B $120
connect \Y $124
end
attribute \src "aoc-2019-1.py:63"
wire width 29 $126
attribute \src "aoc-2019-1.py:63"
cell $sub $127
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'10
parameter \Y_WIDTH 5'11101
connect \A $124
connect \B 2'10
connect \Y $126
end
connect $117 $126
attribute \src "aoc-2019-1.py:84"
wire width 1 $128
attribute \src "aoc-2019-1.py:84"
cell $ge $129
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000000000000001
connect \Y $128
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $130
attribute \src "aoc-2019-1.py:89"
cell $not $131
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $130
end
attribute \src "aoc-2019-1.py:87"
wire width 28 $132
attribute \src "aoc-2019-1.py:87"
wire width 28 $133
attribute \src "aoc-2019-1.py:87"
cell $sub $134
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 5'11100
connect \A \out_val
connect \B 24'000000000000000000000001
connect \Y $133
end
connect $132 $133
attribute \src "aoc-2019-1.py:84"
wire width 1 $135
attribute \src "aoc-2019-1.py:84"
cell $ge $136
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000000000001010
connect \Y $135
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $137
attribute \src "aoc-2019-1.py:89"
cell $not $138
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $137
end
attribute \src "aoc-2019-1.py:87"
wire width 28 $139
attribute \src "aoc-2019-1.py:87"
wire width 28 $140
attribute \src "aoc-2019-1.py:87"
cell $sub $141
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 5'11100
connect \A \out_val
connect \B 24'000000000000000000001010
connect \Y $140
end
connect $139 $140
attribute \src "aoc-2019-1.py:84"
wire width 1 $142
attribute \src "aoc-2019-1.py:84"
cell $ge $143
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000000001100100
connect \Y $142
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $144
attribute \src "aoc-2019-1.py:89"
cell $not $145
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $144
end
attribute \src "aoc-2019-1.py:87"
wire width 28 $146
attribute \src "aoc-2019-1.py:87"
wire width 28 $147
attribute \src "aoc-2019-1.py:87"
cell $sub $148
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 5'11100
connect \A \out_val
connect \B 24'000000000000000001100100
connect \Y $147
end
connect $146 $147
attribute \src "aoc-2019-1.py:84"
wire width 1 $149
attribute \src "aoc-2019-1.py:84"
cell $ge $150
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000001111101000
connect \Y $149
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $151
attribute \src "aoc-2019-1.py:89"
cell $not $152
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $151
end
attribute \src "aoc-2019-1.py:87"
wire width 28 $153
attribute \src "aoc-2019-1.py:87"
wire width 28 $154
attribute \src "aoc-2019-1.py:87"
cell $sub $155
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 5'11100
connect \A \out_val
connect \B 24'000000000000001111101000
connect \Y $154
end
connect $153 $154
attribute \src "aoc-2019-1.py:84"
wire width 1 $156
attribute \src "aoc-2019-1.py:84"
cell $ge $157
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000010011100010000
connect \Y $156
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $158
attribute \src "aoc-2019-1.py:89"
cell $not $159
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $158
end
attribute \src "aoc-2019-1.py:87"
wire width 28 $160
attribute \src "aoc-2019-1.py:87"
wire width 28 $161
attribute \src "aoc-2019-1.py:87"
cell $sub $162
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 5'11100
connect \A \out_val
connect \B 24'000000000010011100010000
connect \Y $161
end
connect $160 $161
attribute \src "aoc-2019-1.py:84"
wire width 1 $163
attribute \src "aoc-2019-1.py:84"
cell $ge $164
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000011000011010100000
connect \Y $163
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $165
attribute \src "aoc-2019-1.py:89"
cell $not $166
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $165
end
attribute \src "aoc-2019-1.py:87"
wire width 28 $167
attribute \src "aoc-2019-1.py:87"
wire width 28 $168
attribute \src "aoc-2019-1.py:87"
cell $sub $169
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 5'11100
connect \A \out_val
connect \B 24'000000011000011010100000
connect \Y $168
end
connect $167 $168
attribute \src "aoc-2019-1.py:84"
wire width 1 $170
attribute \src "aoc-2019-1.py:84"
cell $ge $171
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000011110100001001000000
connect \Y $170
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $172
attribute \src "aoc-2019-1.py:89"
cell $not $173
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $172
end
attribute \src "aoc-2019-1.py:87"
wire width 28 $174
attribute \src "aoc-2019-1.py:87"
wire width 28 $175
attribute \src "aoc-2019-1.py:87"
cell $sub $176
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 5'11100
connect \A \out_val
connect \B 24'000011110100001001000000
connect \Y $175
end
connect $174 $175
attribute \src "aoc-2019-1.py:84"
wire width 1 $177
attribute \src "aoc-2019-1.py:84"
cell $ge $178
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'100110001001011010000000
connect \Y $177
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $179
attribute \src "aoc-2019-1.py:89"
cell $not $180
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $179
end
attribute \src "aoc-2019-1.py:87"
wire width 28 $181
attribute \src "aoc-2019-1.py:87"
wire width 28 $182
attribute \src "aoc-2019-1.py:87"
cell $sub $183
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 5'11100
connect \A \out_val
connect \B 24'100110001001011010000000
connect \Y $182
end
connect $181 $182
process $group_11
assign \out_val$next \out_val
attribute \src "aoc-2019-1.py:41"
switch { \uart_rx_rdy }
attribute \src "aoc-2019-1.py:41"
case 1'1
attribute \src "aoc-2019-1.py:44"
switch { $107 }
attribute \src "aoc-2019-1.py:44"
case 1'1
attribute \src "aoc-2019-1.py:45"
switch { $115 $109 }
attribute \src "aoc-2019-1.py:45"
case 2'-1
assign \out_val$next 27'000000000000000000000000000
attribute \src "aoc-2019-1.py:53"
case 2'1-
attribute \src "aoc-2019-1.py:57"
case
attribute \src "aoc-2019-1.py:58"
switch { \out_en }
attribute \src "aoc-2019-1.py:58"
case 1'1
attribute \src "aoc-2019-1.py:60"
case
assign \out_val$next $117 [26:0]
end
end
end
attribute \src "aoc-2019-1.py:75"
case
end
attribute \src "aoc-2019-1.py:79"
switch { \out_en }
attribute \src "aoc-2019-1.py:79"
case 1'1
attribute \src "aoc-2019-1.py:83"
switch \out_idx
case 3'000
attribute \src "aoc-2019-1.py:84"
switch { $130 $128 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
assign \out_val$next $132 [26:0]
attribute \src "aoc-2019-1.py:89"
case 2'1-
end
case 3'001
attribute \src "aoc-2019-1.py:84"
switch { $137 $135 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
assign \out_val$next $139 [26:0]
attribute \src "aoc-2019-1.py:89"
case 2'1-
end
case 3'010
attribute \src "aoc-2019-1.py:84"
switch { $144 $142 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
assign \out_val$next $146 [26:0]
attribute \src "aoc-2019-1.py:89"
case 2'1-
end
case 3'011
attribute \src "aoc-2019-1.py:84"
switch { $151 $149 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
assign \out_val$next $153 [26:0]
attribute \src "aoc-2019-1.py:89"
case 2'1-
end
case 3'100
attribute \src "aoc-2019-1.py:84"
switch { $158 $156 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
assign \out_val$next $160 [26:0]
attribute \src "aoc-2019-1.py:89"
case 2'1-
end
case 3'101
attribute \src "aoc-2019-1.py:84"
switch { $165 $163 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
assign \out_val$next $167 [26:0]
attribute \src "aoc-2019-1.py:89"
case 2'1-
end
case 3'110
attribute \src "aoc-2019-1.py:84"
switch { $172 $170 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
assign \out_val$next $174 [26:0]
attribute \src "aoc-2019-1.py:89"
case 2'1-
end
case 3'---
attribute \src "aoc-2019-1.py:84"
switch { $179 $177 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
assign \out_val$next $181 [26:0]
attribute \src "aoc-2019-1.py:89"
case 2'1-
end
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \out_val$next 27'000000000000000000000000000
end
sync init
update \out_val 27'000000000000000000000000000
sync posedge \clk
update \out_val \out_val$next
end
attribute \src "aoc-2019-1.py:37"
wire width 4 \out_digit
attribute \src "aoc-2019-1.py:37"
wire width 4 \out_digit$next
attribute \src "aoc-2019-1.py:44"
wire width 1 $184
attribute \src "aoc-2019-1.py:44"
cell $not $185
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_rx_ack
connect \Y $184
end
attribute \src "aoc-2019-1.py:45"
wire width 1 $186
attribute \src "aoc-2019-1.py:45"
cell $eq $187
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'101
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 5'10010
connect \Y $186
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $188
attribute \src "aoc-2019-1.py:53"
cell $ge $189
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'110000
connect \Y $188
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $190
attribute \src "aoc-2019-1.py:53"
cell $le $191
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'111001
connect \Y $190
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $192
attribute \src "aoc-2019-1.py:53"
cell $and $193
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A $188
connect \B $190
connect \Y $192
end
attribute \src "aoc-2019-1.py:65"
wire width 1 $194
attribute \src "aoc-2019-1.py:65"
cell $eq $195
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'100000
connect \Y $194
end
attribute \src "aoc-2019-1.py:67"
wire width 1 $196
attribute \src "aoc-2019-1.py:67"
cell $eq $197
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 4'1010
connect \Y $196
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $198
attribute \src "aoc-2019-1.py:84"
cell $ge $199
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000000000000001
connect \Y $198
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $200
attribute \src "aoc-2019-1.py:89"
cell $not $201
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $200
end
attribute \src "aoc-2019-1.py:86"
wire width 5 $202
attribute \src "aoc-2019-1.py:86"
wire width 5 $203
attribute \src "aoc-2019-1.py:86"
cell $add $204
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 3'101
connect \A \out_digit
connect \B 1'1
connect \Y $203
end
connect $202 $203
attribute \src "aoc-2019-1.py:84"
wire width 1 $205
attribute \src "aoc-2019-1.py:84"
cell $ge $206
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000000000001010
connect \Y $205
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $207
attribute \src "aoc-2019-1.py:89"
cell $not $208
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $207
end
attribute \src "aoc-2019-1.py:86"
wire width 5 $209
attribute \src "aoc-2019-1.py:86"
wire width 5 $210
attribute \src "aoc-2019-1.py:86"
cell $add $211
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 3'101
connect \A \out_digit
connect \B 1'1
connect \Y $210
end
connect $209 $210
attribute \src "aoc-2019-1.py:84"
wire width 1 $212
attribute \src "aoc-2019-1.py:84"
cell $ge $213
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000000001100100
connect \Y $212
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $214
attribute \src "aoc-2019-1.py:89"
cell $not $215
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $214
end
attribute \src "aoc-2019-1.py:86"
wire width 5 $216
attribute \src "aoc-2019-1.py:86"
wire width 5 $217
attribute \src "aoc-2019-1.py:86"
cell $add $218
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 3'101
connect \A \out_digit
connect \B 1'1
connect \Y $217
end
connect $216 $217
attribute \src "aoc-2019-1.py:84"
wire width 1 $219
attribute \src "aoc-2019-1.py:84"
cell $ge $220
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000001111101000
connect \Y $219
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $221
attribute \src "aoc-2019-1.py:89"
cell $not $222
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $221
end
attribute \src "aoc-2019-1.py:86"
wire width 5 $223
attribute \src "aoc-2019-1.py:86"
wire width 5 $224
attribute \src "aoc-2019-1.py:86"
cell $add $225
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 3'101
connect \A \out_digit
connect \B 1'1
connect \Y $224
end
connect $223 $224
attribute \src "aoc-2019-1.py:84"
wire width 1 $226
attribute \src "aoc-2019-1.py:84"
cell $ge $227
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000010011100010000
connect \Y $226
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $228
attribute \src "aoc-2019-1.py:89"
cell $not $229
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $228
end
attribute \src "aoc-2019-1.py:86"
wire width 5 $230
attribute \src "aoc-2019-1.py:86"
wire width 5 $231
attribute \src "aoc-2019-1.py:86"
cell $add $232
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 3'101
connect \A \out_digit
connect \B 1'1
connect \Y $231
end
connect $230 $231
attribute \src "aoc-2019-1.py:84"
wire width 1 $233
attribute \src "aoc-2019-1.py:84"
cell $ge $234
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000011000011010100000
connect \Y $233
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $235
attribute \src "aoc-2019-1.py:89"
cell $not $236
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $235
end
attribute \src "aoc-2019-1.py:86"
wire width 5 $237
attribute \src "aoc-2019-1.py:86"
wire width 5 $238
attribute \src "aoc-2019-1.py:86"
cell $add $239
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 3'101
connect \A \out_digit
connect \B 1'1
connect \Y $238
end
connect $237 $238
attribute \src "aoc-2019-1.py:84"
wire width 1 $240
attribute \src "aoc-2019-1.py:84"
cell $ge $241
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000011110100001001000000
connect \Y $240
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $242
attribute \src "aoc-2019-1.py:89"
cell $not $243
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $242
end
attribute \src "aoc-2019-1.py:86"
wire width 5 $244
attribute \src "aoc-2019-1.py:86"
wire width 5 $245
attribute \src "aoc-2019-1.py:86"
cell $add $246
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 3'101
connect \A \out_digit
connect \B 1'1
connect \Y $245
end
connect $244 $245
attribute \src "aoc-2019-1.py:84"
wire width 1 $247
attribute \src "aoc-2019-1.py:84"
cell $ge $248
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'100110001001011010000000
connect \Y $247
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $249
attribute \src "aoc-2019-1.py:89"
cell $not $250
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $249
end
attribute \src "aoc-2019-1.py:86"
wire width 5 $251
attribute \src "aoc-2019-1.py:86"
wire width 5 $252
attribute \src "aoc-2019-1.py:86"
cell $add $253
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 3'101
connect \A \out_digit
connect \B 1'1
connect \Y $252
end
connect $251 $252
process $group_12
assign \out_digit$next \out_digit
attribute \src "aoc-2019-1.py:41"
switch { \uart_rx_rdy }
attribute \src "aoc-2019-1.py:41"
case 1'1
attribute \src "aoc-2019-1.py:44"
switch { $184 }
attribute \src "aoc-2019-1.py:44"
case 1'1
attribute \src "aoc-2019-1.py:45"
switch { $192 $186 }
attribute \src "aoc-2019-1.py:45"
case 2'-1
attribute \src "aoc-2019-1.py:53"
case 2'1-
attribute \src "aoc-2019-1.py:57"
case
attribute \src "aoc-2019-1.py:58"
switch { \out_en }
attribute \src "aoc-2019-1.py:58"
case 1'1
attribute \src "aoc-2019-1.py:60"
case
attribute \src "aoc-2019-1.py:65"
switch { $196 $194 }
attribute \src "aoc-2019-1.py:65"
case 2'-1
attribute \src "aoc-2019-1.py:67"
case 2'1-
assign \out_digit$next 4'0000
attribute \src "aoc-2019-1.py:73"
case
end
end
end
end
attribute \src "aoc-2019-1.py:75"
case
end
attribute \src "aoc-2019-1.py:79"
switch { \out_en }
attribute \src "aoc-2019-1.py:79"
case 1'1
attribute \src "aoc-2019-1.py:83"
switch \out_idx
case 3'000
attribute \src "aoc-2019-1.py:84"
switch { $200 $198 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
assign \out_digit$next $202 [3:0]
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \out_digit$next 4'0000
end
case 3'001
attribute \src "aoc-2019-1.py:84"
switch { $207 $205 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
assign \out_digit$next $209 [3:0]
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \out_digit$next 4'0000
end
case 3'010
attribute \src "aoc-2019-1.py:84"
switch { $214 $212 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
assign \out_digit$next $216 [3:0]
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \out_digit$next 4'0000
end
case 3'011
attribute \src "aoc-2019-1.py:84"
switch { $221 $219 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
assign \out_digit$next $223 [3:0]
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \out_digit$next 4'0000
end
case 3'100
attribute \src "aoc-2019-1.py:84"
switch { $228 $226 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
assign \out_digit$next $230 [3:0]
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \out_digit$next 4'0000
end
case 3'101
attribute \src "aoc-2019-1.py:84"
switch { $235 $233 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
assign \out_digit$next $237 [3:0]
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \out_digit$next 4'0000
end
case 3'110
attribute \src "aoc-2019-1.py:84"
switch { $242 $240 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
assign \out_digit$next $244 [3:0]
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \out_digit$next 4'0000
end
case 3'---
attribute \src "aoc-2019-1.py:84"
switch { $249 $247 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
assign \out_digit$next $251 [3:0]
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \out_digit$next 4'0000
end
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \out_digit$next 4'0000
end
sync init
update \out_digit 4'0000
sync posedge \clk
update \out_digit \out_digit$next
end
attribute \src "aoc-2019-1.py:44"
wire width 1 $254
attribute \src "aoc-2019-1.py:44"
cell $not $255
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_rx_ack
connect \Y $254
end
attribute \src "aoc-2019-1.py:45"
wire width 1 $256
attribute \src "aoc-2019-1.py:45"
cell $eq $257
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'101
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 5'10010
connect \Y $256
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $258
attribute \src "aoc-2019-1.py:53"
cell $ge $259
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'110000
connect \Y $258
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $260
attribute \src "aoc-2019-1.py:53"
cell $le $261
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'111001
connect \Y $260
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $262
attribute \src "aoc-2019-1.py:53"
cell $and $263
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A $258
connect \B $260
connect \Y $262
end
attribute \src "aoc-2019-1.py:65"
wire width 1 $264
attribute \src "aoc-2019-1.py:65"
cell $eq $265
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'110
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 6'100000
connect \Y $264
end
attribute \src "aoc-2019-1.py:67"
wire width 1 $266
attribute \src "aoc-2019-1.py:67"
cell $eq $267
parameter \A_SIGNED 1'0
parameter \A_WIDTH 4'1000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 1'1
connect \A \uart_rx_data
connect \B 4'1010
connect \Y $266
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $268
attribute \src "aoc-2019-1.py:84"
cell $ge $269
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000000000000001
connect \Y $268
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $270
attribute \src "aoc-2019-1.py:89"
cell $not $271
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $270
end
attribute \src "aoc-2019-1.py:95"
wire width 1 $272
attribute \src "aoc-2019-1.py:95"
cell $ne $273
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A 3'000
connect \B 1'0
connect \Y $272
end
attribute \src "aoc-2019-1.py:96"
wire width 4 $274
attribute \src "aoc-2019-1.py:96"
wire width 4 $275
attribute \src "aoc-2019-1.py:96"
cell $sub $276
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 3'100
connect \A 3'000
connect \B 1'1
connect \Y $275
end
connect $274 $275
attribute \src "aoc-2019-1.py:84"
wire width 1 $277
attribute \src "aoc-2019-1.py:84"
cell $ge $278
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000000000001010
connect \Y $277
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $279
attribute \src "aoc-2019-1.py:89"
cell $not $280
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $279
end
attribute \src "aoc-2019-1.py:95"
wire width 1 $281
attribute \src "aoc-2019-1.py:95"
cell $ne $282
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A 3'001
connect \B 1'0
connect \Y $281
end
attribute \src "aoc-2019-1.py:96"
wire width 4 $283
attribute \src "aoc-2019-1.py:96"
wire width 4 $284
attribute \src "aoc-2019-1.py:96"
cell $sub $285
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 3'100
connect \A 3'001
connect \B 1'1
connect \Y $284
end
connect $283 $284
attribute \src "aoc-2019-1.py:84"
wire width 1 $286
attribute \src "aoc-2019-1.py:84"
cell $ge $287
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000000001100100
connect \Y $286
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $288
attribute \src "aoc-2019-1.py:89"
cell $not $289
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $288
end
attribute \src "aoc-2019-1.py:95"
wire width 1 $290
attribute \src "aoc-2019-1.py:95"
cell $ne $291
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A 3'010
connect \B 1'0
connect \Y $290
end
attribute \src "aoc-2019-1.py:96"
wire width 4 $292
attribute \src "aoc-2019-1.py:96"
wire width 4 $293
attribute \src "aoc-2019-1.py:96"
cell $sub $294
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 3'100
connect \A 3'010
connect \B 1'1
connect \Y $293
end
connect $292 $293
attribute \src "aoc-2019-1.py:84"
wire width 1 $295
attribute \src "aoc-2019-1.py:84"
cell $ge $296
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000001111101000
connect \Y $295
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $297
attribute \src "aoc-2019-1.py:89"
cell $not $298
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $297
end
attribute \src "aoc-2019-1.py:95"
wire width 1 $299
attribute \src "aoc-2019-1.py:95"
cell $ne $300
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A 3'011
connect \B 1'0
connect \Y $299
end
attribute \src "aoc-2019-1.py:96"
wire width 4 $301
attribute \src "aoc-2019-1.py:96"
wire width 4 $302
attribute \src "aoc-2019-1.py:96"
cell $sub $303
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 3'100
connect \A 3'011
connect \B 1'1
connect \Y $302
end
connect $301 $302
attribute \src "aoc-2019-1.py:84"
wire width 1 $304
attribute \src "aoc-2019-1.py:84"
cell $ge $305
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000010011100010000
connect \Y $304
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $306
attribute \src "aoc-2019-1.py:89"
cell $not $307
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $306
end
attribute \src "aoc-2019-1.py:95"
wire width 1 $308
attribute \src "aoc-2019-1.py:95"
cell $ne $309
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A 3'100
connect \B 1'0
connect \Y $308
end
attribute \src "aoc-2019-1.py:96"
wire width 4 $310
attribute \src "aoc-2019-1.py:96"
wire width 4 $311
attribute \src "aoc-2019-1.py:96"
cell $sub $312
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 3'100
connect \A 3'100
connect \B 1'1
connect \Y $311
end
connect $310 $311
attribute \src "aoc-2019-1.py:84"
wire width 1 $313
attribute \src "aoc-2019-1.py:84"
cell $ge $314
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000011000011010100000
connect \Y $313
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $315
attribute \src "aoc-2019-1.py:89"
cell $not $316
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $315
end
attribute \src "aoc-2019-1.py:95"
wire width 1 $317
attribute \src "aoc-2019-1.py:95"
cell $ne $318
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A 3'101
connect \B 1'0
connect \Y $317
end
attribute \src "aoc-2019-1.py:96"
wire width 4 $319
attribute \src "aoc-2019-1.py:96"
wire width 4 $320
attribute \src "aoc-2019-1.py:96"
cell $sub $321
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 3'100
connect \A 3'101
connect \B 1'1
connect \Y $320
end
connect $319 $320
attribute \src "aoc-2019-1.py:84"
wire width 1 $322
attribute \src "aoc-2019-1.py:84"
cell $ge $323
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000011110100001001000000
connect \Y $322
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $324
attribute \src "aoc-2019-1.py:89"
cell $not $325
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $324
end
attribute \src "aoc-2019-1.py:95"
wire width 1 $326
attribute \src "aoc-2019-1.py:95"
cell $ne $327
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A 3'110
connect \B 1'0
connect \Y $326
end
attribute \src "aoc-2019-1.py:96"
wire width 4 $328
attribute \src "aoc-2019-1.py:96"
wire width 4 $329
attribute \src "aoc-2019-1.py:96"
cell $sub $330
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 3'100
connect \A 3'110
connect \B 1'1
connect \Y $329
end
connect $328 $329
attribute \src "aoc-2019-1.py:84"
wire width 1 $331
attribute \src "aoc-2019-1.py:84"
cell $ge $332
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'100110001001011010000000
connect \Y $331
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $333
attribute \src "aoc-2019-1.py:89"
cell $not $334
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $333
end
attribute \src "aoc-2019-1.py:95"
wire width 1 $335
attribute \src "aoc-2019-1.py:95"
cell $ne $336
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A 3'111
connect \B 1'0
connect \Y $335
end
attribute \src "aoc-2019-1.py:96"
wire width 4 $337
attribute \src "aoc-2019-1.py:96"
wire width 4 $338
attribute \src "aoc-2019-1.py:96"
cell $sub $339
parameter \A_SIGNED 1'0
parameter \A_WIDTH 2'11
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 3'100
connect \A 3'111
connect \B 1'1
connect \Y $338
end
connect $337 $338
process $group_13
assign \out_idx$next \out_idx
attribute \src "aoc-2019-1.py:41"
switch { \uart_rx_rdy }
attribute \src "aoc-2019-1.py:41"
case 1'1
attribute \src "aoc-2019-1.py:44"
switch { $254 }
attribute \src "aoc-2019-1.py:44"
case 1'1
attribute \src "aoc-2019-1.py:45"
switch { $262 $256 }
attribute \src "aoc-2019-1.py:45"
case 2'-1
attribute \src "aoc-2019-1.py:53"
case 2'1-
attribute \src "aoc-2019-1.py:57"
case
attribute \src "aoc-2019-1.py:58"
switch { \out_en }
attribute \src "aoc-2019-1.py:58"
case 1'1
attribute \src "aoc-2019-1.py:60"
case
attribute \src "aoc-2019-1.py:65"
switch { $266 $264 }
attribute \src "aoc-2019-1.py:65"
case 2'-1
attribute \src "aoc-2019-1.py:67"
case 2'1-
assign \out_idx$next 3'111
attribute \src "aoc-2019-1.py:73"
case
end
end
end
end
attribute \src "aoc-2019-1.py:75"
case
end
attribute \src "aoc-2019-1.py:79"
switch { \out_en }
attribute \src "aoc-2019-1.py:79"
case 1'1
attribute \src "aoc-2019-1.py:83"
switch \out_idx
case 3'000
attribute \src "aoc-2019-1.py:84"
switch { $270 $268 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
attribute \src "aoc-2019-1.py:95"
switch { $272 }
attribute \src "aoc-2019-1.py:95"
case 1'1
assign \out_idx$next $274 [2:0]
attribute \src "aoc-2019-1.py:97"
case
end
end
case 3'001
attribute \src "aoc-2019-1.py:84"
switch { $279 $277 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
attribute \src "aoc-2019-1.py:95"
switch { $281 }
attribute \src "aoc-2019-1.py:95"
case 1'1
assign \out_idx$next $283 [2:0]
attribute \src "aoc-2019-1.py:97"
case
end
end
case 3'010
attribute \src "aoc-2019-1.py:84"
switch { $288 $286 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
attribute \src "aoc-2019-1.py:95"
switch { $290 }
attribute \src "aoc-2019-1.py:95"
case 1'1
assign \out_idx$next $292 [2:0]
attribute \src "aoc-2019-1.py:97"
case
end
end
case 3'011
attribute \src "aoc-2019-1.py:84"
switch { $297 $295 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
attribute \src "aoc-2019-1.py:95"
switch { $299 }
attribute \src "aoc-2019-1.py:95"
case 1'1
assign \out_idx$next $301 [2:0]
attribute \src "aoc-2019-1.py:97"
case
end
end
case 3'100
attribute \src "aoc-2019-1.py:84"
switch { $306 $304 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
attribute \src "aoc-2019-1.py:95"
switch { $308 }
attribute \src "aoc-2019-1.py:95"
case 1'1
assign \out_idx$next $310 [2:0]
attribute \src "aoc-2019-1.py:97"
case
end
end
case 3'101
attribute \src "aoc-2019-1.py:84"
switch { $315 $313 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
attribute \src "aoc-2019-1.py:95"
switch { $317 }
attribute \src "aoc-2019-1.py:95"
case 1'1
assign \out_idx$next $319 [2:0]
attribute \src "aoc-2019-1.py:97"
case
end
end
case 3'110
attribute \src "aoc-2019-1.py:84"
switch { $324 $322 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
attribute \src "aoc-2019-1.py:95"
switch { $326 }
attribute \src "aoc-2019-1.py:95"
case 1'1
assign \out_idx$next $328 [2:0]
attribute \src "aoc-2019-1.py:97"
case
end
end
case 3'---
attribute \src "aoc-2019-1.py:84"
switch { $333 $331 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
attribute \src "aoc-2019-1.py:95"
switch { $335 }
attribute \src "aoc-2019-1.py:95"
case 1'1
assign \out_idx$next $337 [2:0]
attribute \src "aoc-2019-1.py:97"
case
end
end
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \out_idx$next 3'000
end
sync init
update \out_idx 3'000
sync posedge \clk
update \out_idx \out_idx$next
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $340
attribute \src "aoc-2019-1.py:84"
cell $ge $341
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000000000000001
connect \Y $340
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $342
attribute \src "aoc-2019-1.py:89"
cell $not $343
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $342
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $344
attribute \src "aoc-2019-1.py:84"
cell $ge $345
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000000000001010
connect \Y $344
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $346
attribute \src "aoc-2019-1.py:89"
cell $not $347
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $346
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $348
attribute \src "aoc-2019-1.py:84"
cell $ge $349
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000000001100100
connect \Y $348
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $350
attribute \src "aoc-2019-1.py:89"
cell $not $351
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $350
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $352
attribute \src "aoc-2019-1.py:84"
cell $ge $353
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000001111101000
connect \Y $352
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $354
attribute \src "aoc-2019-1.py:89"
cell $not $355
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $354
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $356
attribute \src "aoc-2019-1.py:84"
cell $ge $357
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000010011100010000
connect \Y $356
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $358
attribute \src "aoc-2019-1.py:89"
cell $not $359
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $358
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $360
attribute \src "aoc-2019-1.py:84"
cell $ge $361
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000011000011010100000
connect \Y $360
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $362
attribute \src "aoc-2019-1.py:89"
cell $not $363
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $362
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $364
attribute \src "aoc-2019-1.py:84"
cell $ge $365
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000011110100001001000000
connect \Y $364
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $366
attribute \src "aoc-2019-1.py:89"
cell $not $367
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $366
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $368
attribute \src "aoc-2019-1.py:84"
cell $ge $369
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'100110001001011010000000
connect \Y $368
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $370
attribute \src "aoc-2019-1.py:89"
cell $not $371
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $370
end
attribute \src "aoc-2019-1.py:100"
wire width 1 $372
attribute \src "aoc-2019-1.py:100"
cell $and $373
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \B_SIGNED 1'0
parameter \B_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \B \uart_tx_ack
connect \Y $372
end
process $group_14
assign \uart_tx_rdy$next \uart_tx_rdy
attribute \src "aoc-2019-1.py:79"
switch { \out_en }
attribute \src "aoc-2019-1.py:79"
case 1'1
attribute \src "aoc-2019-1.py:83"
switch \out_idx
case 3'000
attribute \src "aoc-2019-1.py:84"
switch { $342 $340 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \uart_tx_rdy$next 1'1
end
case 3'001
attribute \src "aoc-2019-1.py:84"
switch { $346 $344 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \uart_tx_rdy$next 1'1
end
case 3'010
attribute \src "aoc-2019-1.py:84"
switch { $350 $348 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \uart_tx_rdy$next 1'1
end
case 3'011
attribute \src "aoc-2019-1.py:84"
switch { $354 $352 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \uart_tx_rdy$next 1'1
end
case 3'100
attribute \src "aoc-2019-1.py:84"
switch { $358 $356 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \uart_tx_rdy$next 1'1
end
case 3'101
attribute \src "aoc-2019-1.py:84"
switch { $362 $360 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \uart_tx_rdy$next 1'1
end
case 3'110
attribute \src "aoc-2019-1.py:84"
switch { $366 $364 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \uart_tx_rdy$next 1'1
end
case 3'---
attribute \src "aoc-2019-1.py:84"
switch { $370 $368 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \uart_tx_rdy$next 1'1
end
end
end
attribute \src "aoc-2019-1.py:100"
switch { $372 }
attribute \src "aoc-2019-1.py:100"
case 1'1
assign \uart_tx_rdy$next 1'0
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \uart_tx_rdy$next 1'0
end
sync init
update \uart_tx_rdy 1'0
sync posedge \clk
update \uart_tx_rdy \uart_tx_rdy$next
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $374
attribute \src "aoc-2019-1.py:84"
cell $ge $375
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000000000000001
connect \Y $374
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $376
attribute \src "aoc-2019-1.py:89"
cell $not $377
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $376
end
attribute \src "aoc-2019-1.py:92"
wire width 8 $378
attribute \src "aoc-2019-1.py:92"
wire width 7 $379
attribute \src "aoc-2019-1.py:92"
cell $add $380
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'110
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 3'111
connect \A 6'110000
connect \B \out_digit
connect \Y $379
end
attribute \src "aoc-2019-1.py:92"
cell $pos $381
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \Y_WIDTH 4'1000
connect \A $379
connect \Y $378
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $382
attribute \src "aoc-2019-1.py:84"
cell $ge $383
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000000000001010
connect \Y $382
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $384
attribute \src "aoc-2019-1.py:89"
cell $not $385
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $384
end
attribute \src "aoc-2019-1.py:92"
wire width 8 $386
attribute \src "aoc-2019-1.py:92"
wire width 7 $387
attribute \src "aoc-2019-1.py:92"
cell $add $388
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'110
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 3'111
connect \A 6'110000
connect \B \out_digit
connect \Y $387
end
attribute \src "aoc-2019-1.py:92"
cell $pos $389
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \Y_WIDTH 4'1000
connect \A $387
connect \Y $386
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $390
attribute \src "aoc-2019-1.py:84"
cell $ge $391
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000000001100100
connect \Y $390
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $392
attribute \src "aoc-2019-1.py:89"
cell $not $393
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $392
end
attribute \src "aoc-2019-1.py:92"
wire width 8 $394
attribute \src "aoc-2019-1.py:92"
wire width 7 $395
attribute \src "aoc-2019-1.py:92"
cell $add $396
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'110
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 3'111
connect \A 6'110000
connect \B \out_digit
connect \Y $395
end
attribute \src "aoc-2019-1.py:92"
cell $pos $397
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \Y_WIDTH 4'1000
connect \A $395
connect \Y $394
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $398
attribute \src "aoc-2019-1.py:84"
cell $ge $399
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000000001111101000
connect \Y $398
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $400
attribute \src "aoc-2019-1.py:89"
cell $not $401
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $400
end
attribute \src "aoc-2019-1.py:92"
wire width 8 $402
attribute \src "aoc-2019-1.py:92"
wire width 7 $403
attribute \src "aoc-2019-1.py:92"
cell $add $404
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'110
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 3'111
connect \A 6'110000
connect \B \out_digit
connect \Y $403
end
attribute \src "aoc-2019-1.py:92"
cell $pos $405
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \Y_WIDTH 4'1000
connect \A $403
connect \Y $402
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $406
attribute \src "aoc-2019-1.py:84"
cell $ge $407
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000000010011100010000
connect \Y $406
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $408
attribute \src "aoc-2019-1.py:89"
cell $not $409
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $408
end
attribute \src "aoc-2019-1.py:92"
wire width 8 $410
attribute \src "aoc-2019-1.py:92"
wire width 7 $411
attribute \src "aoc-2019-1.py:92"
cell $add $412
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'110
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 3'111
connect \A 6'110000
connect \B \out_digit
connect \Y $411
end
attribute \src "aoc-2019-1.py:92"
cell $pos $413
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \Y_WIDTH 4'1000
connect \A $411
connect \Y $410
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $414
attribute \src "aoc-2019-1.py:84"
cell $ge $415
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000000011000011010100000
connect \Y $414
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $416
attribute \src "aoc-2019-1.py:89"
cell $not $417
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $416
end
attribute \src "aoc-2019-1.py:92"
wire width 8 $418
attribute \src "aoc-2019-1.py:92"
wire width 7 $419
attribute \src "aoc-2019-1.py:92"
cell $add $420
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'110
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 3'111
connect \A 6'110000
connect \B \out_digit
connect \Y $419
end
attribute \src "aoc-2019-1.py:92"
cell $pos $421
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \Y_WIDTH 4'1000
connect \A $419
connect \Y $418
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $422
attribute \src "aoc-2019-1.py:84"
cell $ge $423
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'000011110100001001000000
connect \Y $422
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $424
attribute \src "aoc-2019-1.py:89"
cell $not $425
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $424
end
attribute \src "aoc-2019-1.py:92"
wire width 8 $426
attribute \src "aoc-2019-1.py:92"
wire width 7 $427
attribute \src "aoc-2019-1.py:92"
cell $add $428
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'110
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 3'111
connect \A 6'110000
connect \B \out_digit
connect \Y $427
end
attribute \src "aoc-2019-1.py:92"
cell $pos $429
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \Y_WIDTH 4'1000
connect \A $427
connect \Y $426
end
attribute \src "aoc-2019-1.py:84"
wire width 1 $430
attribute \src "aoc-2019-1.py:84"
cell $ge $431
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11011
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 24'100110001001011010000000
connect \Y $430
end
attribute \src "aoc-2019-1.py:89"
wire width 1 $432
attribute \src "aoc-2019-1.py:89"
cell $not $433
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $432
end
attribute \src "aoc-2019-1.py:92"
wire width 8 $434
attribute \src "aoc-2019-1.py:92"
wire width 7 $435
attribute \src "aoc-2019-1.py:92"
cell $add $436
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'110
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 3'111
connect \A 6'110000
connect \B \out_digit
connect \Y $435
end
attribute \src "aoc-2019-1.py:92"
cell $pos $437
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \Y_WIDTH 4'1000
connect \A $435
connect \Y $434
end
process $group_15
assign \uart_tx_data$next \uart_tx_data
attribute \src "aoc-2019-1.py:79"
switch { \out_en }
attribute \src "aoc-2019-1.py:79"
case 1'1
attribute \src "aoc-2019-1.py:83"
switch \out_idx
case 3'000
attribute \src "aoc-2019-1.py:84"
switch { $376 $374 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \uart_tx_data$next $378
end
case 3'001
attribute \src "aoc-2019-1.py:84"
switch { $384 $382 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \uart_tx_data$next $386
end
case 3'010
attribute \src "aoc-2019-1.py:84"
switch { $392 $390 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \uart_tx_data$next $394
end
case 3'011
attribute \src "aoc-2019-1.py:84"
switch { $400 $398 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \uart_tx_data$next $402
end
case 3'100
attribute \src "aoc-2019-1.py:84"
switch { $408 $406 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \uart_tx_data$next $410
end
case 3'101
attribute \src "aoc-2019-1.py:84"
switch { $416 $414 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \uart_tx_data$next $418
end
case 3'110
attribute \src "aoc-2019-1.py:84"
switch { $424 $422 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \uart_tx_data$next $426
end
case 3'---
attribute \src "aoc-2019-1.py:84"
switch { $432 $430 }
attribute \src "aoc-2019-1.py:84"
case 2'-1
attribute \src "aoc-2019-1.py:89"
case 2'1-
assign \uart_tx_data$next $434
end
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \uart_tx_data$next 8'00000000
end
sync init
update \uart_tx_data 8'00000000
sync posedge \clk
update \uart_tx_data \uart_tx_data$next
end
connect \uart_0__dtr__o 1'0
connect \uart_0__rts__o 1'0
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment