Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
NanoSoC Tech
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Jira
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package Registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
SoCLabs
NanoSoC Tech
Compare revisions
2f206853f31cff6f3f6e8d1c8c58d728ceeaf1f9 to 236b65b93b7326d2c922d4a2e854dad440963f32
Compare revisions
Changes are shown as if the
source
revision was being merged into the
target
revision.
Learn more about comparing revisions.
Source
soclabs/nanosoc_tech
Select target project
No results found
236b65b93b7326d2c922d4a2e854dad440963f32
Select Git revision
Swap
Target
soclabs/nanosoc_tech
Select target project
soclabs/nanosoc_tech
1 result
2f206853f31cff6f3f6e8d1c8c58d728ceeaf1f9
Select Git revision
Show changes
Only incoming changes from source
Include changes to target since source was created
Compare
Commits on Source (1)
fix up QuickStart testbench for extio validation
· 236b65b9
dwf1m12
authored
7 months ago
236b65b9
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
verif/tb/verilog/nanosoc_tb_qs.v
+202
-14
202 additions, 14 deletions
verif/tb/verilog/nanosoc_tb_qs.v
with
202 additions
and
14 deletions
verif/tb/verilog/nanosoc_tb_qs.v
View file @
236b65b9
...
...
@@ -163,7 +163,8 @@ SROM_Ax32
pullup
(
P1
[
4
]);
pullup
(
P1
[
5
]);
pullup
(
P1
[
6
]);
pullup
(
P1
[
7
]);
// pullup(P1[ 7]);
pulldown
(
P1
[
7
]);
pullup
(
P1
[
8
]);
pullup
(
P1
[
9
]);
pullup
(
P1
[
10
]);
...
...
@@ -173,6 +174,179 @@ SROM_Ax32
pullup
(
P1
[
14
]);
pullup
(
P1
[
15
]);
`ifdef
FAST_SIM
parameter
FAST_LOAD
=
1
;
`else
parameter
FAST_LOAD
=
0
;
`endif
// --------------------------------------------------------------------------------
// EXTIO8x4 stream interface - enabled when P1[7] is low
// default in previous testbenches was pullup (for FT1248, UART2)
//
// v1 mapping was: v2 config
// P1[0] - ft_miso_in ioreq1
// P1[1] - ft_clk_out ioreq2
// P1[2] - ft_miosio_io ioack
// P1[3] - ft_ssn_out iodata[0]
// P1[4] - uart2_rxd iodata[1]
// P1[5] - uart2_txd iodata[2]
// P1[6] - reserved (1) iodata[3]
// P1[7] - reserved (1) zero
// --------------------------------------------------------------------------------
// 4-channel AXIS interface - Subordinate side
wire
axis_rx0_tready
;
wire
axis_rx0_tvalid
;
wire
[
7
:
0
]
axis_rx0_tdata8
;
wire
axis_rx1_tready
;
wire
axis_rx1_tvalid
;
wire
[
7
:
0
]
axis_rx1_tdata8
;
wire
axis_tx0_tready
;
wire
axis_tx0_tvalid
;
wire
[
7
:
0
]
axis_tx0_tdata8
;
wire
axis_tx1_tready
;
wire
axis_tx1_tvalid
;
wire
[
7
:
0
]
axis_tx1_tdata8
;
// external io interface
tri
[
3
:
0
]
iodata4
;
wire
[
3
:
0
]
iodata4_i
;
wire
[
3
:
0
]
iodata4_o
;
wire
[
3
:
0
]
iodata4_e
;
wire
[
3
:
0
]
iodata4_t
;
wire
ioreq1
;
wire
ioreq2
;
wire
ioack
;
wire
test_done
;
wire
FT1248MODE
=
P1
[
7
];
wire
end_sim
=
test_done
&
!
FT1248MODE
&
!
ioreq1
&
!
ioreq2
&
!
ioack
;
always
@
(
posedge
PCLK
)
if
(
end_sim
)
begin
$
stop
;
end
extio8x4_axis_target
u_extio8x4_axis_target
(
.
clk
(
CLK
),
.
resetn
(
NRST
),
.
testmode
(
TEST
),
// RX 4-channel AXIS interface
.
axis_rx0_tready
(
axis_rx0_tready
),
.
axis_rx0_tvalid
(
axis_rx0_tvalid
),
.
axis_rx0_tdata8
(
axis_rx0_tdata8
),
.
axis_rx1_tready
(
axis_rx1_tready
),
.
axis_rx1_tvalid
(
axis_rx1_tvalid
),
.
axis_rx1_tdata8
(
axis_rx1_tdata8
),
.
axis_tx0_tready
(
axis_tx0_tready
),
.
axis_tx0_tvalid
(
axis_tx0_tvalid
),
.
axis_tx0_tdata8
(
axis_tx0_tdata8
),
.
axis_tx1_tready
(
axis_tx1_tready
),
.
axis_tx1_tvalid
(
axis_tx1_tvalid
),
.
axis_tx1_tdata8
(
axis_tx1_tdata8
),
// external io interface
.
iodata4_i
(
iodata4_i
),
.
iodata4_o
(
iodata4_o
),
.
iodata4_e
(
iodata4_e
),
.
iodata4_t
(
iodata4_t
),
.
ioreq1_a
(
ioreq1
),
.
ioreq2_a
(
ioreq2
),
.
ioack_o
(
ioack
)
);
// tristate buffer emulation
assign
ioreq1
=
FT1248MODE
?
1'b0
:
P1
[
0
];
assign
ioreq2
=
FT1248MODE
?
1'b0
:
P1
[
1
];
bufif0
#
1
(
P1
[
2
],
ioack
,
FT1248MODE
);
bufif0
#
1
(
P1
[
3
],
iodata4_o
[
0
],
(
iodata4_t
[
0
]
|
FT1248MODE
));
bufif0
#
1
(
P1
[
4
],
iodata4_o
[
1
],
(
iodata4_t
[
1
]
|
FT1248MODE
));
bufif0
#
1
(
P1
[
5
],
iodata4_o
[
2
],
(
iodata4_t
[
2
]
|
FT1248MODE
));
bufif0
#
1
(
P1
[
6
],
iodata4_o
[
3
],
(
iodata4_t
[
3
]
|
FT1248MODE
));
assign
iodata4_i
=
{
4
{
FT1248MODE
}}
|
P1
[
6
:
3
];
`ifndef
COCOTB_SIM
nanosoc_axi_stream_io_8_txd_from_file
#(
.
TXDFILENAME
(
ADP_FILENAME
),
// .CODEFILENAME("null.hex"),
.
FAST_LOAD
(
FAST_LOAD
)
)
u_nanosoc_axi_stream_io_adp_txd_from_file
(
.
aclk
(
CLK
),
.
aresetn
(
NRST
),
.
txd8_ready
(
axis_rx0_tready
),
.
txd8_valid
(
axis_rx0_tvalid
),
.
txd8_data
(
axis_rx0_tdata8
)
);
`ifndef
COCOTB_SIM
nanosoc_axi_stream_io_8_rxd_to_file
#(
.
RXDFILENAME
(
"logs/extadp_in.log"
)
)
u_nanosoc_axi_stream_io_8_adprxd_to_file
(
.
aclk
(
CLK
),
.
aresetn
(
NRST
),
.
eof_received
(
),
.
rxd8_ready
(
),
//axis_rx0_tready),
.
rxd8_valid
(
axis_rx0_tvalid
&
axis_rx0_tready
),
.
rxd8_data
(
axis_rx0_tdata8
)
);
`endif
/*
nanosoc_axi_stream_io_8_txd_from_file #(
.TXDFILENAME(ADP_FILENAME),
// .CODEFILENAME("null.hex"),
.FAST_LOAD(FAST_LOAD)
) u_nanosoc_axi_stream_io_dat_txd_from_file (
.aclk (CLK),
.aresetn (NRST),
.txd8_ready (axis_rx1_tready),
.txd8_valid (axis_rx1_tvalid),
.txd8_data (axis_rx1_tdata8)
);
*/
nanosoc_axi_stream_io_8_rxd_to_file
#(
.
RXDFILENAME
(
"logs/extadp_out.log"
),
.
VERBOSE
(
0
)
)
u_nanosoc_axi_stream_io_stream_adp_rxd_to_file
(
.
aclk
(
CLK
),
.
aresetn
(
NRST
),
.
eof_received
(
test_done
),
.
rxd8_ready
(
axis_tx0_tready
),
.
rxd8_valid
(
axis_tx0_tvalid
),
.
rxd8_data
(
axis_tx0_tdata8
)
);
soclabs_axis8_capture
#(.
LOGFILENAME
(
"logs/extio_adp_out.log"
))
u_soclabs_axis8_capture1
(
.
RESETn
(
NRST
),
.
CLK
(
CLK
),
.
RXD8_READY
(
),
.
RXD8_VALID
(
axis_tx0_tvalid
&
axis_tx0_tready
),
.
RXD8_DATA
(
axis_tx0_tdata8
),
.
DEBUG_TESTER_ENABLE
(
),
.
SIMULATIONEND
(),
// This signal set to 1 at the end of simulation.
.
AUXCTRL
()
);
nanosoc_axi_stream_io_8_rxd_to_file
#(
.
RXDFILENAME
(
"logs/extdat_out.log"
)
)
u_nanosoc_axi_stream_io_extdata_8_rxd_to_file
(
.
aclk
(
CLK
),
.
aresetn
(
NRST
),
.
eof_received
(
),
.
rxd8_ready
(
),
//axis_tx1_tready),
.
rxd8_valid
(
axis_tx1_tvalid
&
axis_tx1_tready
),
.
rxd8_data
(
axis_tx1_tdata8
)
);
assign
axis_tx1_tready
=
axis_rx1_tready
;
assign
axis_rx1_tvalid
=
axis_tx1_tvalid
;
assign
axis_rx1_tdata8
=
axis_tx1_tdata8
;
`endif
// --------------------------------------------------------------------------------
// UART output capture
// --------------------------------------------------------------------------------
...
...
@@ -271,12 +445,35 @@ reg baud_clk_del;
// assign P1[0] = P1[3]; // UART 0 RXD = UART 1 TXD
// assign P1[2] = P1[1]; // UART 1 RXD = UART 0 TXD
assign
P1
[
4
]
=
P1
[
5
];
// loopback UART2
// --------------------------------------------------------------------------------
// FTDI IO capture
// --------------------------------------------------------------------------------
// UART connection
/// assign P1[4] = P1[5]; // loopback UART2
wire
ft_clk_out
=
P1
[
1
];
bufif1
#
1
(
P1
[
4
],
P1
[
5
],
FT1248MODE
);
/// wire ft_clk_out = P1[1];
/// wire ft_miso_in;
/// assign P1[0] = ft_miso_in;
/// wire ft_ssn_out = P1[3];
wire
ft_clk_out
;
wire
ft_miso_in
;
assign
P1
[
0
]
=
ft_miso_in
;
wire
ft_ssn_out
=
P1
[
3
];
wire
ft_ssn_out
;
assign
ft_clk_out
=
(
FT1248MODE
)
?
P1
[
1
]
:
1'b0
;
bufif1
#
1
(
P1
[
0
],
ft_miso_in
,
FT1248MODE
);
assign
ft_ssn_out
=
(
FT1248MODE
)
?
P1
[
3
]
:
1'b1
;
wire
ft_miosio_o
;
wire
ft_miosio_z
;
wire
ft_miosio_i
;
/// assign ft_miosio_i = P1[2]; // & ft_miosio_z;
/// assign P1[2] = (ft_miosio_z) ? 1'bz : ft_miosio_o;
assign
ft_miosio_i
=
(
FT1248MODE
)
?
P1
[
2
]
:
1'b0
;
// & ft_miosio_z;
bufif1
#
1
(
P1
[
2
],
ft_miosio_o
,
(
FT1248MODE
&
!
ft_miosio_z
));
//
// AXI stream io testing
...
...
@@ -290,11 +487,6 @@ reg baud_clk_del;
wire
rxd8_tvalid
;
wire
[
7
:
0
]
rxd8_tdata
;
`ifdef
FAST_SIM
parameter
FAST_LOAD
=
1
;
`else
parameter
FAST_LOAD
=
0
;
`endif
`ifndef
COCOTB_SIM
nanosoc_axi_stream_io_8_txd_from_file
#(
...
...
@@ -309,10 +501,6 @@ reg baud_clk_del;
);
`endif
wire
ft_miosio_o
;
wire
ft_miosio_z
;
wire
ft_miosio_i
=
P1
[
2
];
// & ft_miosio_z;
assign
P1
[
2
]
=
(
ft_miosio_z
)
?
1'bz
:
ft_miosio_o
;
nanosoc_ft1248x1_to_axi_streamio_v1_0
u_nanosoc_ft1248x1_to_axi_streamio_v1_0
(
...
...
This diff is collapsed.
Click to expand it.