Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yosys-tests
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
yosys-tests
Commits
e7b0b9bf
Commit
e7b0b9bf
authored
Sep 09, 2019
by
SergeyDegtyar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add tests for anlogic_fixcarry command
parent
b5f82491
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
188 additions
and
0 deletions
+188
-0
architecture/Makefile
+1
-0
architecture/run.sh
+2
-0
architecture/synth_anlogic_fsm/testbench.v
+72
-0
architecture/synth_anlogic_fsm/top.v
+113
-0
No files found.
architecture/Makefile
View file @
e7b0b9bf
...
@@ -24,6 +24,7 @@ $(eval $(call template,synth_achronix_error,synth_achronix_fully_selected))
...
@@ -24,6 +24,7 @@ $(eval $(call template,synth_achronix_error,synth_achronix_fully_selected))
#anlogic
#anlogic
$(eval
$(call
template,synth_anlogic,synth_anlogic
synth_anlogic_top
synth_anlogic_edif
synth_anlogic_json
synth_anlogic_run
synth_anlogic_noflatten
synth_anlogic_retime))
$(eval
$(call
template,synth_anlogic,synth_anlogic
synth_anlogic_top
synth_anlogic_edif
synth_anlogic_json
synth_anlogic_run
synth_anlogic_noflatten
synth_anlogic_retime))
$(eval
$(call
template,synth_anlogic_fulladder,synth_anlogic
synth_anlogic_top
synth_anlogic_edif
synth_anlogic_json
synth_anlogic_run
synth_anlogic_noflatten
synth_anlogic_retime))
$(eval
$(call
template,synth_anlogic_fulladder,synth_anlogic
synth_anlogic_top
synth_anlogic_edif
synth_anlogic_json
synth_anlogic_run
synth_anlogic_noflatten
synth_anlogic_retime))
$(eval
$(call
template,synth_anlogic_fsm,synth_anlogic
synth_anlogic_top
synth_anlogic_edif
synth_anlogic_json
synth_anlogic_run
synth_anlogic_noflatten
synth_anlogic_retime))
$(eval
$(call
template,synth_anlogic_mem,synth_anlogic
synth_anlogic_top
synth_anlogic_edif
synth_anlogic_json
synth_anlogic_run
synth_anlogic_noflatten
synth_anlogic_retime
anlogic_determine_init_eqn))
$(eval
$(call
template,synth_anlogic_mem,synth_anlogic
synth_anlogic_top
synth_anlogic_edif
synth_anlogic_json
synth_anlogic_run
synth_anlogic_noflatten
synth_anlogic_retime
anlogic_determine_init_eqn))
$(eval
$(call
template,synth_anlogic_error,synth_anlogic_fully_selected))
$(eval
$(call
template,synth_anlogic_error,synth_anlogic_fully_selected))
...
...
architecture/run.sh
View file @
e7b0b9bf
...
@@ -79,6 +79,8 @@ else
...
@@ -79,6 +79,8 @@ else
iverilog
-o
testbench ../testbench.v synth.v ../../common.v
$COMMON_PREFIX
/simcells.v
$TECHLIBS_PREFIX
/anlogic/cells_sim.v
iverilog
-o
testbench ../testbench.v synth.v ../../common.v
$COMMON_PREFIX
/simcells.v
$TECHLIBS_PREFIX
/anlogic/cells_sim.v
elif
[
"
$1
"
=
"synth_anlogic_fulladder"
]
;
then
elif
[
"
$1
"
=
"synth_anlogic_fulladder"
]
;
then
iverilog
-o
testbench ../testbench.v synth.v ../../common.v
$COMMON_PREFIX
/simcells.v
$TECHLIBS_PREFIX
/anlogic/cells_sim.v
iverilog
-o
testbench ../testbench.v synth.v ../../common.v
$COMMON_PREFIX
/simcells.v
$TECHLIBS_PREFIX
/anlogic/cells_sim.v
elif
[
"
$1
"
=
"synth_anlogic_fsm"
]
;
then
iverilog
-o
testbench ../testbench.v synth.v ../../common.v
$COMMON_PREFIX
/simcells.v
$TECHLIBS_PREFIX
/anlogic/cells_sim.v
elif
[
"
$1
"
=
"synth_anlogic_mem"
]
;
then
elif
[
"
$1
"
=
"synth_anlogic_mem"
]
;
then
iverilog
-o
testbench ../testbench.v synth.v ../../common.v
$COMMON_PREFIX
/simcells.v
$TECHLIBS_PREFIX
/anlogic/cells_sim.v
$TECHLIBS_PREFIX
/anlogic/eagle_bb.v
iverilog
-o
testbench ../testbench.v synth.v ../../common.v
$COMMON_PREFIX
/simcells.v
$TECHLIBS_PREFIX
/anlogic/cells_sim.v
$TECHLIBS_PREFIX
/anlogic/eagle_bb.v
elif
[
"
$1
"
=
"synth_coolrunner2"
]
;
then
elif
[
"
$1
"
=
"synth_coolrunner2"
]
;
then
...
...
architecture/synth_anlogic_fsm/testbench.v
0 → 100644
View file @
e7b0b9bf
module
testbench
;
reg
clk
;
initial
begin
// $dumpfile("testbench.vcd");
// $dumpvars(0, testbench);
#
5
clk
=
0
;
repeat
(
10000
)
begin
#
5
clk
=
1
;
#
5
clk
=
0
;
end
$
display
(
"OKAY"
)
;
end
reg
a
=
0
;
reg
b
=
0
;
reg
rst
;
reg
en
;
wire
s
;
wire
bs
;
wire
f
;
top
uut
(
.
clk
(
clk
)
,
.
rst
(
rst
)
,
.
en
(
en
)
,
.
a
(
a
)
,
.
b
(
b
)
,
.
s
(
s
)
,
.
bs
(
bs
)
,
.
f
(
f
))
;
always
@
(
posedge
clk
)
begin
#
2
a
<=
~
a
;
end
always
@
(
posedge
clk
)
begin
#
4
b
<=
~
b
;
end
initial
begin
en
<=
1
;
rst
<=
1
;
#
5
rst
<=
0
;
end
assert_expr
s_test
(
.
clk
(
clk
)
,
.
A
(
s
))
;
assert_expr
bs_test
(
.
clk
(
clk
)
,
.
A
(
bs
))
;
assert_expr
f_test
(
.
clk
(
clk
)
,
.
A
(
f
))
;
endmodule
module
assert_expr
(
input
clk
,
input
A
)
;
always
@
(
posedge
clk
)
begin
//#1;
if
(
A
==
1
'
bZ
)
begin
$
display
(
"ERROR: ASSERTION FAILED in %m:"
,
$
time
,
" "
,
A
)
;
$
stop
;
end
end
endmodule
architecture/synth_anlogic_fsm/top.v
0 → 100644
View file @
e7b0b9bf
module
FSM
(
clk
,
rst
,
en
,
ls
,
rs
,
stop
,
busy
,
finish
)
;
input
wire
clk
;
input
wire
rst
;
input
wire
en
;
input
wire
ls
;
input
wire
rs
;
output
wire
stop
;
output
wire
busy
;
output
wire
finish
;
//typedef enum logic [3:0] {S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14} sts;
parameter
S0
=
4'b0000
,
S1
=
4'b0001
,
S2
=
4'b0010
,
S3
=
4'b0011
,
S4
=
4'b0100
,
S5
=
4'b0101
,
S6
=
4'b0110
,
S7
=
4'b0111
,
S8
=
4'b1000
,
S9
=
4'b1001
,
S10
=
4'b1010
,
S11
=
4'b1011
,
S12
=
4'b1100
,
S13
=
4'b1101
,
S14
=
4'b1110
;
reg
[
3
:
0
]
ns
,
st
;
reg
[
2
:
0
]
count
;
always
@
(
posedge
clk
)
begin
:
CurrstProc
if
(
rst
)
st
<=
S0
;
else
st
<=
ns
;
end
always
@*
begin
:
NextstProc
ns
=
st
;
case
(
st
)
S0:
ns
=
S1
;
S1:
ns
=
S2
;
S2:
if
(
rs
==
1'b1
)
ns
=
S3
;
else
ns
=
S4
;
S3:
ns
=
S1
;
S4:
if
(
count
>
7
)
ns
=
S10
;
else
ns
=
S5
;
S5:
if
(
ls
==
1'b0
)
ns
=
S6
;
else
ns
=
S3
;
S6:
if
(
ls
==
1'b1
)
ns
=
S7
;
else
ns
=
S8
;
S7:
if
(
ls
==
1'b1
&&
rs
==
1'b1
)
ns
=
S5
;
else
ns
=
S13
;
S8:
ns
=
S9
;
S9:
ns
=
S8
;
S10:
if
(
ls
==
1'b1
||
rs
==
1'b1
)
ns
=
S11
;
else
ns
=
S4
;
S11:
ns
=
S12
;
S12:
ns
=
S10
;
S13:
;
default:
ns
=
S0
;
endcase
;
end
always
@
(
posedge
clk
)
if
(
~
rst
)
count
<=
0
;
else
begin
if
(
st
==
S4
)
if
(
count
>
7
)
count
<=
0
;
else
count
<=
count
+
1
;
end
//FSM outputs (combinatorial)
assign
stop
=
(
st
==
S3
||
st
==
S12
)
?
1'b1
:
1'b0
;
assign
finish
=
(
st
==
S13
)
?
1'b1
:
1'b0
;
assign
busy
=
(
st
==
S8
||
st
==
S9
)
?
1'b1
:
1'b0
;
endmodule
module
top
(
input
clk
,
input
rst
,
input
en
,
input
a
,
input
b
,
output
s
,
output
bs
,
output
f
)
;
FSM
u_FSM
(
.
clk
(
clk
)
,
.
rst
(
rst
)
,
.
en
(
en
)
,
.
ls
(
a
)
,
.
rs
(
b
)
,
.
stop
(
s
)
,
.
busy
(
bs
)
,
.
finish
(
f
))
;
endmodule
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment