Skip to content

Instantly share code, notes, and snippets.

@eddyb

eddyb/top.il Secret

Created December 8, 2019 00:32
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/d957f88bee75a8fffde3fb9b4e1781a7 to your computer and use it in GitHub Desktop.
Save eddyb/d957f88bee75a8fffde3fb9b4e1781a7 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 24 \in_val
attribute \src "aoc-2019-1.py:33"
wire width 24 \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 29 $38
attribute \src "aoc-2019-1.py:55"
wire width 28 $39
attribute \src "aoc-2019-1.py:55"
cell $mul $40
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 3'100
parameter \Y_WIDTH 5'11100
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 29 $43
attribute \src "aoc-2019-1.py:55"
cell $add $44
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11100
parameter \B_SIGNED 1'0
parameter \B_WIDTH 4'1001
parameter \Y_WIDTH 5'11101
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 24'000000000000000000000000
attribute \src "aoc-2019-1.py:53"
case 2'1-
assign \in_val$next $38 [23: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 24'000000000000000000000000
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 24'000000000000000000000000
end
sync init
update \in_val 24'000000000000000000000000
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 24 \out_val
attribute \src "aoc-2019-1.py:36"
wire width 24 \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:81"
wire width 1 $59
attribute \src "aoc-2019-1.py:81"
cell $ge $60
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000000000000001
connect \Y $59
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $61
attribute \src "aoc-2019-1.py:86"
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:92"
wire width 1 $63
attribute \src "aoc-2019-1.py:92"
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:81"
wire width 1 $65
attribute \src "aoc-2019-1.py:81"
cell $ge $66
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000000000001010
connect \Y $65
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $67
attribute \src "aoc-2019-1.py:86"
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:92"
wire width 1 $69
attribute \src "aoc-2019-1.py:92"
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:81"
wire width 1 $71
attribute \src "aoc-2019-1.py:81"
cell $ge $72
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000000001100100
connect \Y $71
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $73
attribute \src "aoc-2019-1.py:86"
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:92"
wire width 1 $75
attribute \src "aoc-2019-1.py:92"
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:81"
wire width 1 $77
attribute \src "aoc-2019-1.py:81"
cell $ge $78
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000001111101000
connect \Y $77
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $79
attribute \src "aoc-2019-1.py:86"
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:92"
wire width 1 $81
attribute \src "aoc-2019-1.py:92"
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:81"
wire width 1 $83
attribute \src "aoc-2019-1.py:81"
cell $ge $84
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000010011100010000
connect \Y $83
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $85
attribute \src "aoc-2019-1.py:86"
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:92"
wire width 1 $87
attribute \src "aoc-2019-1.py:92"
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:81"
wire width 1 $89
attribute \src "aoc-2019-1.py:81"
cell $ge $90
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00011000011010100000
connect \Y $89
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $91
attribute \src "aoc-2019-1.py:86"
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:92"
wire width 1 $93
attribute \src "aoc-2019-1.py:92"
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:81"
wire width 1 $95
attribute \src "aoc-2019-1.py:81"
cell $ge $96
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'11110100001001000000
connect \Y $95
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $97
attribute \src "aoc-2019-1.py:86"
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:92"
wire width 1 $99
attribute \src "aoc-2019-1.py:92"
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
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:81"
switch \out_idx
case 3'000
attribute \src "aoc-2019-1.py:81"
switch { $61 $59 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
attribute \src "aoc-2019-1.py:92"
switch { $63 }
attribute \src "aoc-2019-1.py:92"
case 1'1
attribute \src "aoc-2019-1.py:94"
case
assign \out_en$next 1'0
end
end
case 3'001
attribute \src "aoc-2019-1.py:81"
switch { $67 $65 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
attribute \src "aoc-2019-1.py:92"
switch { $69 }
attribute \src "aoc-2019-1.py:92"
case 1'1
attribute \src "aoc-2019-1.py:94"
case
assign \out_en$next 1'0
end
end
case 3'010
attribute \src "aoc-2019-1.py:81"
switch { $73 $71 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
attribute \src "aoc-2019-1.py:92"
switch { $75 }
attribute \src "aoc-2019-1.py:92"
case 1'1
attribute \src "aoc-2019-1.py:94"
case
assign \out_en$next 1'0
end
end
case 3'011
attribute \src "aoc-2019-1.py:81"
switch { $79 $77 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
attribute \src "aoc-2019-1.py:92"
switch { $81 }
attribute \src "aoc-2019-1.py:92"
case 1'1
attribute \src "aoc-2019-1.py:94"
case
assign \out_en$next 1'0
end
end
case 3'100
attribute \src "aoc-2019-1.py:81"
switch { $85 $83 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
attribute \src "aoc-2019-1.py:92"
switch { $87 }
attribute \src "aoc-2019-1.py:92"
case 1'1
attribute \src "aoc-2019-1.py:94"
case
assign \out_en$next 1'0
end
end
case 3'101
attribute \src "aoc-2019-1.py:81"
switch { $91 $89 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
attribute \src "aoc-2019-1.py:92"
switch { $93 }
attribute \src "aoc-2019-1.py:92"
case 1'1
attribute \src "aoc-2019-1.py:94"
case
assign \out_en$next 1'0
end
end
case 3'---
attribute \src "aoc-2019-1.py:81"
switch { $97 $95 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
attribute \src "aoc-2019-1.py:92"
switch { $99 }
attribute \src "aoc-2019-1.py:92"
case 1'1
attribute \src "aoc-2019-1.py:94"
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 $101
attribute \src "aoc-2019-1.py:44"
cell $not $102
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_rx_ack
connect \Y $101
end
attribute \src "aoc-2019-1.py:45"
wire width 1 $103
attribute \src "aoc-2019-1.py:45"
cell $eq $104
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 $103
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $105
attribute \src "aoc-2019-1.py:53"
cell $ge $106
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 $105
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $107
attribute \src "aoc-2019-1.py:53"
cell $le $108
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 $107
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $109
attribute \src "aoc-2019-1.py:53"
cell $and $110
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 $105
connect \B $107
connect \Y $109
end
attribute \src "aoc-2019-1.py:63"
wire width 26 $111
attribute \src "aoc-2019-1.py:63"
wire width 24 $112
attribute \src "aoc-2019-1.py:63"
cell $div $113
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'10
parameter \Y_WIDTH 5'11000
connect \A \in_val
connect \B 2'11
connect \Y $112
end
attribute \src "aoc-2019-1.py:63"
wire width 24 $114
attribute \src "nmigen/back/rtlil.py:516"
wire width 1 $115
attribute \src "nmigen/back/rtlil.py:516"
cell $eq $116
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
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 $115
end
attribute \src "aoc-2019-1.py:63"
cell $mux $117
parameter \WIDTH 5'11000
connect \A $112
connect \B 24'000000000000000000000000
connect \S $115
connect \Y $114
end
attribute \src "aoc-2019-1.py:63"
wire width 25 $118
attribute \src "aoc-2019-1.py:63"
cell $add $119
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'11000
parameter \Y_WIDTH 5'11001
connect \A \out_val
connect \B $114
connect \Y $118
end
attribute \src "aoc-2019-1.py:63"
wire width 26 $120
attribute \src "aoc-2019-1.py:63"
cell $sub $121
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11001
parameter \B_SIGNED 1'0
parameter \B_WIDTH 2'10
parameter \Y_WIDTH 5'11010
connect \A $118
connect \B 2'10
connect \Y $120
end
connect $111 $120
attribute \src "aoc-2019-1.py:81"
wire width 1 $122
attribute \src "aoc-2019-1.py:81"
cell $ge $123
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000000000000001
connect \Y $122
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $124
attribute \src "aoc-2019-1.py:86"
cell $not $125
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $124
end
attribute \src "aoc-2019-1.py:84"
wire width 25 $126
attribute \src "aoc-2019-1.py:84"
wire width 25 $127
attribute \src "aoc-2019-1.py:84"
cell $sub $128
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 5'11001
connect \A \out_val
connect \B 20'00000000000000000001
connect \Y $127
end
connect $126 $127
attribute \src "aoc-2019-1.py:81"
wire width 1 $129
attribute \src "aoc-2019-1.py:81"
cell $ge $130
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000000000001010
connect \Y $129
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $131
attribute \src "aoc-2019-1.py:86"
cell $not $132
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $131
end
attribute \src "aoc-2019-1.py:84"
wire width 25 $133
attribute \src "aoc-2019-1.py:84"
wire width 25 $134
attribute \src "aoc-2019-1.py:84"
cell $sub $135
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 5'11001
connect \A \out_val
connect \B 20'00000000000000001010
connect \Y $134
end
connect $133 $134
attribute \src "aoc-2019-1.py:81"
wire width 1 $136
attribute \src "aoc-2019-1.py:81"
cell $ge $137
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000000001100100
connect \Y $136
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $138
attribute \src "aoc-2019-1.py:86"
cell $not $139
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $138
end
attribute \src "aoc-2019-1.py:84"
wire width 25 $140
attribute \src "aoc-2019-1.py:84"
wire width 25 $141
attribute \src "aoc-2019-1.py:84"
cell $sub $142
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 5'11001
connect \A \out_val
connect \B 20'00000000000001100100
connect \Y $141
end
connect $140 $141
attribute \src "aoc-2019-1.py:81"
wire width 1 $143
attribute \src "aoc-2019-1.py:81"
cell $ge $144
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000001111101000
connect \Y $143
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $145
attribute \src "aoc-2019-1.py:86"
cell $not $146
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $145
end
attribute \src "aoc-2019-1.py:84"
wire width 25 $147
attribute \src "aoc-2019-1.py:84"
wire width 25 $148
attribute \src "aoc-2019-1.py:84"
cell $sub $149
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 5'11001
connect \A \out_val
connect \B 20'00000000001111101000
connect \Y $148
end
connect $147 $148
attribute \src "aoc-2019-1.py:81"
wire width 1 $150
attribute \src "aoc-2019-1.py:81"
cell $ge $151
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000010011100010000
connect \Y $150
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $152
attribute \src "aoc-2019-1.py:86"
cell $not $153
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $152
end
attribute \src "aoc-2019-1.py:84"
wire width 25 $154
attribute \src "aoc-2019-1.py:84"
wire width 25 $155
attribute \src "aoc-2019-1.py:84"
cell $sub $156
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 5'11001
connect \A \out_val
connect \B 20'00000010011100010000
connect \Y $155
end
connect $154 $155
attribute \src "aoc-2019-1.py:81"
wire width 1 $157
attribute \src "aoc-2019-1.py:81"
cell $ge $158
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00011000011010100000
connect \Y $157
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $159
attribute \src "aoc-2019-1.py:86"
cell $not $160
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $159
end
attribute \src "aoc-2019-1.py:84"
wire width 25 $161
attribute \src "aoc-2019-1.py:84"
wire width 25 $162
attribute \src "aoc-2019-1.py:84"
cell $sub $163
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 5'11001
connect \A \out_val
connect \B 20'00011000011010100000
connect \Y $162
end
connect $161 $162
attribute \src "aoc-2019-1.py:81"
wire width 1 $164
attribute \src "aoc-2019-1.py:81"
cell $ge $165
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'11110100001001000000
connect \Y $164
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $166
attribute \src "aoc-2019-1.py:86"
cell $not $167
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $166
end
attribute \src "aoc-2019-1.py:84"
wire width 25 $168
attribute \src "aoc-2019-1.py:84"
wire width 25 $169
attribute \src "aoc-2019-1.py:84"
cell $sub $170
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 5'11001
connect \A \out_val
connect \B 20'11110100001001000000
connect \Y $169
end
connect $168 $169
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 { $101 }
attribute \src "aoc-2019-1.py:44"
case 1'1
attribute \src "aoc-2019-1.py:45"
switch { $109 $103 }
attribute \src "aoc-2019-1.py:45"
case 2'-1
assign \out_val$next 24'000000000000000000000000
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 $111 [23: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:81"
switch \out_idx
case 3'000
attribute \src "aoc-2019-1.py:81"
switch { $124 $122 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
assign \out_val$next $126 [23:0]
attribute \src "aoc-2019-1.py:86"
case 2'1-
end
case 3'001
attribute \src "aoc-2019-1.py:81"
switch { $131 $129 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
assign \out_val$next $133 [23:0]
attribute \src "aoc-2019-1.py:86"
case 2'1-
end
case 3'010
attribute \src "aoc-2019-1.py:81"
switch { $138 $136 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
assign \out_val$next $140 [23:0]
attribute \src "aoc-2019-1.py:86"
case 2'1-
end
case 3'011
attribute \src "aoc-2019-1.py:81"
switch { $145 $143 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
assign \out_val$next $147 [23:0]
attribute \src "aoc-2019-1.py:86"
case 2'1-
end
case 3'100
attribute \src "aoc-2019-1.py:81"
switch { $152 $150 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
assign \out_val$next $154 [23:0]
attribute \src "aoc-2019-1.py:86"
case 2'1-
end
case 3'101
attribute \src "aoc-2019-1.py:81"
switch { $159 $157 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
assign \out_val$next $161 [23:0]
attribute \src "aoc-2019-1.py:86"
case 2'1-
end
case 3'---
attribute \src "aoc-2019-1.py:81"
switch { $166 $164 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
assign \out_val$next $168 [23:0]
attribute \src "aoc-2019-1.py:86"
case 2'1-
end
end
end
attribute \src "nmigen/hdl/xfrm.py:528"
switch \rst
case 1'1
assign \out_val$next 24'000000000000000000000000
end
sync init
update \out_val 24'000000000000000000000000
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 $171
attribute \src "aoc-2019-1.py:44"
cell $not $172
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_rx_ack
connect \Y $171
end
attribute \src "aoc-2019-1.py:45"
wire width 1 $173
attribute \src "aoc-2019-1.py:45"
cell $eq $174
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 $173
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $175
attribute \src "aoc-2019-1.py:53"
cell $ge $176
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 $175
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $177
attribute \src "aoc-2019-1.py:53"
cell $le $178
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 $177
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $179
attribute \src "aoc-2019-1.py:53"
cell $and $180
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 $175
connect \B $177
connect \Y $179
end
attribute \src "aoc-2019-1.py:65"
wire width 1 $181
attribute \src "aoc-2019-1.py:65"
cell $eq $182
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 $181
end
attribute \src "aoc-2019-1.py:67"
wire width 1 $183
attribute \src "aoc-2019-1.py:67"
cell $eq $184
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 $183
end
attribute \src "aoc-2019-1.py:81"
wire width 1 $185
attribute \src "aoc-2019-1.py:81"
cell $ge $186
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000000000000001
connect \Y $185
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $187
attribute \src "aoc-2019-1.py:86"
cell $not $188
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $187
end
attribute \src "aoc-2019-1.py:83"
wire width 5 $189
attribute \src "aoc-2019-1.py:83"
wire width 5 $190
attribute \src "aoc-2019-1.py:83"
cell $add $191
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 $190
end
connect $189 $190
attribute \src "aoc-2019-1.py:81"
wire width 1 $192
attribute \src "aoc-2019-1.py:81"
cell $ge $193
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000000000001010
connect \Y $192
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $194
attribute \src "aoc-2019-1.py:86"
cell $not $195
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $194
end
attribute \src "aoc-2019-1.py:83"
wire width 5 $196
attribute \src "aoc-2019-1.py:83"
wire width 5 $197
attribute \src "aoc-2019-1.py:83"
cell $add $198
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 $197
end
connect $196 $197
attribute \src "aoc-2019-1.py:81"
wire width 1 $199
attribute \src "aoc-2019-1.py:81"
cell $ge $200
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000000001100100
connect \Y $199
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $201
attribute \src "aoc-2019-1.py:86"
cell $not $202
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $201
end
attribute \src "aoc-2019-1.py:83"
wire width 5 $203
attribute \src "aoc-2019-1.py:83"
wire width 5 $204
attribute \src "aoc-2019-1.py:83"
cell $add $205
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 $204
end
connect $203 $204
attribute \src "aoc-2019-1.py:81"
wire width 1 $206
attribute \src "aoc-2019-1.py:81"
cell $ge $207
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000001111101000
connect \Y $206
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $208
attribute \src "aoc-2019-1.py:86"
cell $not $209
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $208
end
attribute \src "aoc-2019-1.py:83"
wire width 5 $210
attribute \src "aoc-2019-1.py:83"
wire width 5 $211
attribute \src "aoc-2019-1.py:83"
cell $add $212
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 $211
end
connect $210 $211
attribute \src "aoc-2019-1.py:81"
wire width 1 $213
attribute \src "aoc-2019-1.py:81"
cell $ge $214
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000010011100010000
connect \Y $213
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $215
attribute \src "aoc-2019-1.py:86"
cell $not $216
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $215
end
attribute \src "aoc-2019-1.py:83"
wire width 5 $217
attribute \src "aoc-2019-1.py:83"
wire width 5 $218
attribute \src "aoc-2019-1.py:83"
cell $add $219
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 $218
end
connect $217 $218
attribute \src "aoc-2019-1.py:81"
wire width 1 $220
attribute \src "aoc-2019-1.py:81"
cell $ge $221
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00011000011010100000
connect \Y $220
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $222
attribute \src "aoc-2019-1.py:86"
cell $not $223
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $222
end
attribute \src "aoc-2019-1.py:83"
wire width 5 $224
attribute \src "aoc-2019-1.py:83"
wire width 5 $225
attribute \src "aoc-2019-1.py:83"
cell $add $226
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 $225
end
connect $224 $225
attribute \src "aoc-2019-1.py:81"
wire width 1 $227
attribute \src "aoc-2019-1.py:81"
cell $ge $228
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'11110100001001000000
connect \Y $227
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $229
attribute \src "aoc-2019-1.py:86"
cell $not $230
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $229
end
attribute \src "aoc-2019-1.py:83"
wire width 5 $231
attribute \src "aoc-2019-1.py:83"
wire width 5 $232
attribute \src "aoc-2019-1.py:83"
cell $add $233
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 $232
end
connect $231 $232
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 { $171 }
attribute \src "aoc-2019-1.py:44"
case 1'1
attribute \src "aoc-2019-1.py:45"
switch { $179 $173 }
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 { $183 $181 }
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:81"
switch \out_idx
case 3'000
attribute \src "aoc-2019-1.py:81"
switch { $187 $185 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
assign \out_digit$next $189 [3:0]
attribute \src "aoc-2019-1.py:86"
case 2'1-
assign \out_digit$next 4'0000
end
case 3'001
attribute \src "aoc-2019-1.py:81"
switch { $194 $192 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
assign \out_digit$next $196 [3:0]
attribute \src "aoc-2019-1.py:86"
case 2'1-
assign \out_digit$next 4'0000
end
case 3'010
attribute \src "aoc-2019-1.py:81"
switch { $201 $199 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
assign \out_digit$next $203 [3:0]
attribute \src "aoc-2019-1.py:86"
case 2'1-
assign \out_digit$next 4'0000
end
case 3'011
attribute \src "aoc-2019-1.py:81"
switch { $208 $206 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
assign \out_digit$next $210 [3:0]
attribute \src "aoc-2019-1.py:86"
case 2'1-
assign \out_digit$next 4'0000
end
case 3'100
attribute \src "aoc-2019-1.py:81"
switch { $215 $213 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
assign \out_digit$next $217 [3:0]
attribute \src "aoc-2019-1.py:86"
case 2'1-
assign \out_digit$next 4'0000
end
case 3'101
attribute \src "aoc-2019-1.py:81"
switch { $222 $220 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
assign \out_digit$next $224 [3:0]
attribute \src "aoc-2019-1.py:86"
case 2'1-
assign \out_digit$next 4'0000
end
case 3'---
attribute \src "aoc-2019-1.py:81"
switch { $229 $227 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
assign \out_digit$next $231 [3:0]
attribute \src "aoc-2019-1.py:86"
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 $234
attribute \src "aoc-2019-1.py:44"
cell $not $235
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_rx_ack
connect \Y $234
end
attribute \src "aoc-2019-1.py:45"
wire width 1 $236
attribute \src "aoc-2019-1.py:45"
cell $eq $237
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 $236
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $238
attribute \src "aoc-2019-1.py:53"
cell $ge $239
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 $238
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $240
attribute \src "aoc-2019-1.py:53"
cell $le $241
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 $240
end
attribute \src "aoc-2019-1.py:53"
wire width 1 $242
attribute \src "aoc-2019-1.py:53"
cell $and $243
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 $238
connect \B $240
connect \Y $242
end
attribute \src "aoc-2019-1.py:65"
wire width 1 $244
attribute \src "aoc-2019-1.py:65"
cell $eq $245
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 $244
end
attribute \src "aoc-2019-1.py:67"
wire width 1 $246
attribute \src "aoc-2019-1.py:67"
cell $eq $247
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 $246
end
attribute \src "aoc-2019-1.py:81"
wire width 1 $248
attribute \src "aoc-2019-1.py:81"
cell $ge $249
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000000000000001
connect \Y $248
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $250
attribute \src "aoc-2019-1.py:86"
cell $not $251
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $250
end
attribute \src "aoc-2019-1.py:92"
wire width 1 $252
attribute \src "aoc-2019-1.py:92"
cell $ne $253
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 $252
end
attribute \src "aoc-2019-1.py:93"
wire width 4 $254
attribute \src "aoc-2019-1.py:93"
wire width 4 $255
attribute \src "aoc-2019-1.py:93"
cell $sub $256
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 $255
end
connect $254 $255
attribute \src "aoc-2019-1.py:81"
wire width 1 $257
attribute \src "aoc-2019-1.py:81"
cell $ge $258
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000000000001010
connect \Y $257
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $259
attribute \src "aoc-2019-1.py:86"
cell $not $260
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $259
end
attribute \src "aoc-2019-1.py:92"
wire width 1 $261
attribute \src "aoc-2019-1.py:92"
cell $ne $262
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 $261
end
attribute \src "aoc-2019-1.py:93"
wire width 4 $263
attribute \src "aoc-2019-1.py:93"
wire width 4 $264
attribute \src "aoc-2019-1.py:93"
cell $sub $265
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 $264
end
connect $263 $264
attribute \src "aoc-2019-1.py:81"
wire width 1 $266
attribute \src "aoc-2019-1.py:81"
cell $ge $267
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000000001100100
connect \Y $266
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $268
attribute \src "aoc-2019-1.py:86"
cell $not $269
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $268
end
attribute \src "aoc-2019-1.py:92"
wire width 1 $270
attribute \src "aoc-2019-1.py:92"
cell $ne $271
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 $270
end
attribute \src "aoc-2019-1.py:93"
wire width 4 $272
attribute \src "aoc-2019-1.py:93"
wire width 4 $273
attribute \src "aoc-2019-1.py:93"
cell $sub $274
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 $273
end
connect $272 $273
attribute \src "aoc-2019-1.py:81"
wire width 1 $275
attribute \src "aoc-2019-1.py:81"
cell $ge $276
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000001111101000
connect \Y $275
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $277
attribute \src "aoc-2019-1.py:86"
cell $not $278
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $277
end
attribute \src "aoc-2019-1.py:92"
wire width 1 $279
attribute \src "aoc-2019-1.py:92"
cell $ne $280
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 $279
end
attribute \src "aoc-2019-1.py:93"
wire width 4 $281
attribute \src "aoc-2019-1.py:93"
wire width 4 $282
attribute \src "aoc-2019-1.py:93"
cell $sub $283
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 $282
end
connect $281 $282
attribute \src "aoc-2019-1.py:81"
wire width 1 $284
attribute \src "aoc-2019-1.py:81"
cell $ge $285
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000010011100010000
connect \Y $284
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $286
attribute \src "aoc-2019-1.py:86"
cell $not $287
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $286
end
attribute \src "aoc-2019-1.py:92"
wire width 1 $288
attribute \src "aoc-2019-1.py:92"
cell $ne $289
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 $288
end
attribute \src "aoc-2019-1.py:93"
wire width 4 $290
attribute \src "aoc-2019-1.py:93"
wire width 4 $291
attribute \src "aoc-2019-1.py:93"
cell $sub $292
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 $291
end
connect $290 $291
attribute \src "aoc-2019-1.py:81"
wire width 1 $293
attribute \src "aoc-2019-1.py:81"
cell $ge $294
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00011000011010100000
connect \Y $293
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $295
attribute \src "aoc-2019-1.py:86"
cell $not $296
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $295
end
attribute \src "aoc-2019-1.py:92"
wire width 1 $297
attribute \src "aoc-2019-1.py:92"
cell $ne $298
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 $297
end
attribute \src "aoc-2019-1.py:93"
wire width 4 $299
attribute \src "aoc-2019-1.py:93"
wire width 4 $300
attribute \src "aoc-2019-1.py:93"
cell $sub $301
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 $300
end
connect $299 $300
attribute \src "aoc-2019-1.py:81"
wire width 1 $302
attribute \src "aoc-2019-1.py:81"
cell $ge $303
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'11110100001001000000
connect \Y $302
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $304
attribute \src "aoc-2019-1.py:86"
cell $not $305
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $304
end
attribute \src "aoc-2019-1.py:92"
wire width 1 $306
attribute \src "aoc-2019-1.py:92"
cell $ne $307
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 $306
end
attribute \src "aoc-2019-1.py:93"
wire width 4 $308
attribute \src "aoc-2019-1.py:93"
wire width 4 $309
attribute \src "aoc-2019-1.py:93"
cell $sub $310
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 $309
end
connect $308 $309
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 { $234 }
attribute \src "aoc-2019-1.py:44"
case 1'1
attribute \src "aoc-2019-1.py:45"
switch { $242 $236 }
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 { $246 $244 }
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'110
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:81"
switch \out_idx
case 3'000
attribute \src "aoc-2019-1.py:81"
switch { $250 $248 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
attribute \src "aoc-2019-1.py:92"
switch { $252 }
attribute \src "aoc-2019-1.py:92"
case 1'1
assign \out_idx$next $254 [2:0]
attribute \src "aoc-2019-1.py:94"
case
end
end
case 3'001
attribute \src "aoc-2019-1.py:81"
switch { $259 $257 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
attribute \src "aoc-2019-1.py:92"
switch { $261 }
attribute \src "aoc-2019-1.py:92"
case 1'1
assign \out_idx$next $263 [2:0]
attribute \src "aoc-2019-1.py:94"
case
end
end
case 3'010
attribute \src "aoc-2019-1.py:81"
switch { $268 $266 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
attribute \src "aoc-2019-1.py:92"
switch { $270 }
attribute \src "aoc-2019-1.py:92"
case 1'1
assign \out_idx$next $272 [2:0]
attribute \src "aoc-2019-1.py:94"
case
end
end
case 3'011
attribute \src "aoc-2019-1.py:81"
switch { $277 $275 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
attribute \src "aoc-2019-1.py:92"
switch { $279 }
attribute \src "aoc-2019-1.py:92"
case 1'1
assign \out_idx$next $281 [2:0]
attribute \src "aoc-2019-1.py:94"
case
end
end
case 3'100
attribute \src "aoc-2019-1.py:81"
switch { $286 $284 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
attribute \src "aoc-2019-1.py:92"
switch { $288 }
attribute \src "aoc-2019-1.py:92"
case 1'1
assign \out_idx$next $290 [2:0]
attribute \src "aoc-2019-1.py:94"
case
end
end
case 3'101
attribute \src "aoc-2019-1.py:81"
switch { $295 $293 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
attribute \src "aoc-2019-1.py:92"
switch { $297 }
attribute \src "aoc-2019-1.py:92"
case 1'1
assign \out_idx$next $299 [2:0]
attribute \src "aoc-2019-1.py:94"
case
end
end
case 3'---
attribute \src "aoc-2019-1.py:81"
switch { $304 $302 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
attribute \src "aoc-2019-1.py:92"
switch { $306 }
attribute \src "aoc-2019-1.py:92"
case 1'1
assign \out_idx$next $308 [2:0]
attribute \src "aoc-2019-1.py:94"
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:81"
wire width 1 $311
attribute \src "aoc-2019-1.py:81"
cell $ge $312
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000000000000001
connect \Y $311
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $313
attribute \src "aoc-2019-1.py:86"
cell $not $314
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $313
end
attribute \src "aoc-2019-1.py:81"
wire width 1 $315
attribute \src "aoc-2019-1.py:81"
cell $ge $316
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000000000001010
connect \Y $315
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $317
attribute \src "aoc-2019-1.py:86"
cell $not $318
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $317
end
attribute \src "aoc-2019-1.py:81"
wire width 1 $319
attribute \src "aoc-2019-1.py:81"
cell $ge $320
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000000001100100
connect \Y $319
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $321
attribute \src "aoc-2019-1.py:86"
cell $not $322
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $321
end
attribute \src "aoc-2019-1.py:81"
wire width 1 $323
attribute \src "aoc-2019-1.py:81"
cell $ge $324
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000001111101000
connect \Y $323
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $325
attribute \src "aoc-2019-1.py:86"
cell $not $326
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $325
end
attribute \src "aoc-2019-1.py:81"
wire width 1 $327
attribute \src "aoc-2019-1.py:81"
cell $ge $328
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000010011100010000
connect \Y $327
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $329
attribute \src "aoc-2019-1.py:86"
cell $not $330
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $329
end
attribute \src "aoc-2019-1.py:81"
wire width 1 $331
attribute \src "aoc-2019-1.py:81"
cell $ge $332
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00011000011010100000
connect \Y $331
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $333
attribute \src "aoc-2019-1.py:86"
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:81"
wire width 1 $335
attribute \src "aoc-2019-1.py:81"
cell $ge $336
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'11110100001001000000
connect \Y $335
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $337
attribute \src "aoc-2019-1.py:86"
cell $not $338
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $337
end
attribute \src "aoc-2019-1.py:97"
wire width 1 $339
attribute \src "aoc-2019-1.py:97"
cell $and $340
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 $339
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:81"
switch \out_idx
case 3'000
attribute \src "aoc-2019-1.py:81"
switch { $313 $311 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
assign \uart_tx_rdy$next 1'1
end
case 3'001
attribute \src "aoc-2019-1.py:81"
switch { $317 $315 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
assign \uart_tx_rdy$next 1'1
end
case 3'010
attribute \src "aoc-2019-1.py:81"
switch { $321 $319 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
assign \uart_tx_rdy$next 1'1
end
case 3'011
attribute \src "aoc-2019-1.py:81"
switch { $325 $323 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
assign \uart_tx_rdy$next 1'1
end
case 3'100
attribute \src "aoc-2019-1.py:81"
switch { $329 $327 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
assign \uart_tx_rdy$next 1'1
end
case 3'101
attribute \src "aoc-2019-1.py:81"
switch { $333 $331 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
assign \uart_tx_rdy$next 1'1
end
case 3'---
attribute \src "aoc-2019-1.py:81"
switch { $337 $335 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
assign \uart_tx_rdy$next 1'1
end
end
end
attribute \src "aoc-2019-1.py:97"
switch { $339 }
attribute \src "aoc-2019-1.py:97"
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:81"
wire width 1 $341
attribute \src "aoc-2019-1.py:81"
cell $ge $342
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000000000000001
connect \Y $341
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $343
attribute \src "aoc-2019-1.py:86"
cell $not $344
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $343
end
attribute \src "aoc-2019-1.py:89"
wire width 8 $345
attribute \src "aoc-2019-1.py:89"
wire width 7 $346
attribute \src "aoc-2019-1.py:89"
cell $add $347
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 $346
end
attribute \src "aoc-2019-1.py:89"
cell $pos $348
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \Y_WIDTH 4'1000
connect \A $346
connect \Y $345
end
attribute \src "aoc-2019-1.py:81"
wire width 1 $349
attribute \src "aoc-2019-1.py:81"
cell $ge $350
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000000000001010
connect \Y $349
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $351
attribute \src "aoc-2019-1.py:86"
cell $not $352
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $351
end
attribute \src "aoc-2019-1.py:89"
wire width 8 $353
attribute \src "aoc-2019-1.py:89"
wire width 7 $354
attribute \src "aoc-2019-1.py:89"
cell $add $355
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 $354
end
attribute \src "aoc-2019-1.py:89"
cell $pos $356
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \Y_WIDTH 4'1000
connect \A $354
connect \Y $353
end
attribute \src "aoc-2019-1.py:81"
wire width 1 $357
attribute \src "aoc-2019-1.py:81"
cell $ge $358
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000000001100100
connect \Y $357
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $359
attribute \src "aoc-2019-1.py:86"
cell $not $360
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $359
end
attribute \src "aoc-2019-1.py:89"
wire width 8 $361
attribute \src "aoc-2019-1.py:89"
wire width 7 $362
attribute \src "aoc-2019-1.py:89"
cell $add $363
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 $362
end
attribute \src "aoc-2019-1.py:89"
cell $pos $364
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \Y_WIDTH 4'1000
connect \A $362
connect \Y $361
end
attribute \src "aoc-2019-1.py:81"
wire width 1 $365
attribute \src "aoc-2019-1.py:81"
cell $ge $366
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000000001111101000
connect \Y $365
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $367
attribute \src "aoc-2019-1.py:86"
cell $not $368
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $367
end
attribute \src "aoc-2019-1.py:89"
wire width 8 $369
attribute \src "aoc-2019-1.py:89"
wire width 7 $370
attribute \src "aoc-2019-1.py:89"
cell $add $371
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 $370
end
attribute \src "aoc-2019-1.py:89"
cell $pos $372
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \Y_WIDTH 4'1000
connect \A $370
connect \Y $369
end
attribute \src "aoc-2019-1.py:81"
wire width 1 $373
attribute \src "aoc-2019-1.py:81"
cell $ge $374
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00000010011100010000
connect \Y $373
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $375
attribute \src "aoc-2019-1.py:86"
cell $not $376
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $375
end
attribute \src "aoc-2019-1.py:89"
wire width 8 $377
attribute \src "aoc-2019-1.py:89"
wire width 7 $378
attribute \src "aoc-2019-1.py:89"
cell $add $379
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 $378
end
attribute \src "aoc-2019-1.py:89"
cell $pos $380
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \Y_WIDTH 4'1000
connect \A $378
connect \Y $377
end
attribute \src "aoc-2019-1.py:81"
wire width 1 $381
attribute \src "aoc-2019-1.py:81"
cell $ge $382
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'00011000011010100000
connect \Y $381
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $383
attribute \src "aoc-2019-1.py:86"
cell $not $384
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $383
end
attribute \src "aoc-2019-1.py:89"
wire width 8 $385
attribute \src "aoc-2019-1.py:89"
wire width 7 $386
attribute \src "aoc-2019-1.py:89"
cell $add $387
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 $386
end
attribute \src "aoc-2019-1.py:89"
cell $pos $388
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \Y_WIDTH 4'1000
connect \A $386
connect \Y $385
end
attribute \src "aoc-2019-1.py:81"
wire width 1 $389
attribute \src "aoc-2019-1.py:81"
cell $ge $390
parameter \A_SIGNED 1'0
parameter \A_WIDTH 5'11000
parameter \B_SIGNED 1'0
parameter \B_WIDTH 5'10100
parameter \Y_WIDTH 1'1
connect \A \out_val
connect \B 20'11110100001001000000
connect \Y $389
end
attribute \src "aoc-2019-1.py:86"
wire width 1 $391
attribute \src "aoc-2019-1.py:86"
cell $not $392
parameter \A_SIGNED 1'0
parameter \A_WIDTH 1'1
parameter \Y_WIDTH 1'1
connect \A \uart_tx_rdy
connect \Y $391
end
attribute \src "aoc-2019-1.py:89"
wire width 8 $393
attribute \src "aoc-2019-1.py:89"
wire width 7 $394
attribute \src "aoc-2019-1.py:89"
cell $add $395
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 $394
end
attribute \src "aoc-2019-1.py:89"
cell $pos $396
parameter \A_SIGNED 1'0
parameter \A_WIDTH 3'111
parameter \Y_WIDTH 4'1000
connect \A $394
connect \Y $393
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:81"
switch \out_idx
case 3'000
attribute \src "aoc-2019-1.py:81"
switch { $343 $341 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
assign \uart_tx_data$next $345
end
case 3'001
attribute \src "aoc-2019-1.py:81"
switch { $351 $349 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
assign \uart_tx_data$next $353
end
case 3'010
attribute \src "aoc-2019-1.py:81"
switch { $359 $357 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
assign \uart_tx_data$next $361
end
case 3'011
attribute \src "aoc-2019-1.py:81"
switch { $367 $365 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
assign \uart_tx_data$next $369
end
case 3'100
attribute \src "aoc-2019-1.py:81"
switch { $375 $373 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
assign \uart_tx_data$next $377
end
case 3'101
attribute \src "aoc-2019-1.py:81"
switch { $383 $381 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
assign \uart_tx_data$next $385
end
case 3'---
attribute \src "aoc-2019-1.py:81"
switch { $391 $389 }
attribute \src "aoc-2019-1.py:81"
case 2'-1
attribute \src "aoc-2019-1.py:86"
case 2'1-
assign \uart_tx_data$next $393
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
2.43.1.4. Executing ABC9.
Running ABC command: <yosys-exe-dir>/yosys-abc -s -f <abc-temp-dir>/abc.script 2>&1
ABC: ABC command line: "source <abc-temp-dir>/abc.script".
ABC:
ABC: + read_lut <yosys-exe-dir>/../share/yosys/ice40/abc9_hx.lut
ABC: + read_box -v <yosys-exe-dir>/../share/yosys/ice40/abc9_hx.box
ABC: + &read <abc-temp-dir>/input.xaig
ABC: + &ps
ABC: <abc-temp-dir>/input : i/o = 142/ 156 and = 3868 lev = 220 (15.55) mem = 0.15 MB box = 941 bb = 0
ABC: Warning: AIG with boxes has internal fanout in 0 complex flops and 870 carries.
ABC: + &st
ABC: + &scorr
ABC: Warning: The network is combinational.
ABC: + &sweep
ABC: + &dc2
ABC: yosys-abc: src/opt/dar/darRefact.c:589: Dar_ManRefactor: Assertion `(int)Aig_Regular(pObjNew)->Level <= Required' failed.
ERROR: ABC: execution of command "/nix/store/zyfvhjwfgpflh5mnzmlmjq9ixc7aj8sb-yosys-2019.10.18/bin/yosys-abc -s -f /tmp/yosys-abc-FMSk9y/abc.script 2>&1" failed: return code 134.
# Automatically generated by nMigen 0.1.dev1+g6765021.dirty. Do not edit.
read_ilang top.il
# (script_after_read placeholder)
synth_ice40 -abc9 -top top
# (script_after_synth placeholder)
write_json top.json
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment