Skip to content

Commit fd7473d

Browse files
authored
Synchronous load clear rescan (#29)
* Changing hdk_version to 1.2.1 * Fixing the programmer view * spelling and grammer fixes * enhanced sdk install script for increased portability Various Linux distributions have different preferred paths for installations of unmanaged user binaries and libraries. This change attempts to follow those preferences while maintaining maximum portability. This script has been tested recent versions (at time of writing) of: - Amazon Linux 2017.03 - Centos (FPGA Dev AMI 1.2) - Ubuntu 16.04.2 LTS - SUSE 12 It has not been tested on RHEL, but is presumed to work since it is similar to Amazon Linux and Centos. It installs binaries to /usr/local/bin if it's on the sudo PATH or /usr/bin otherwise. It installs the shared library the first directory it finds searching from the follwing list: /usr/local/lib64 /usr/local/lib /usr/lib64 /usr/lib This usually results in installations to /usr/local/lib on Ubuntu and to /usr/local/lib64 on others. * removed "known bug" for Ubuntu * fixed an error return code When the mailbox command timesout, return the -ETIMEDOUT. Negative values are decoded from errno.h and positive number are defined by the library. * set the mbox timeout and delay when using --request-timeout * updated fpga_pci_bar_attach to close fd after mmap * Rj doc updates (#23) * Placed the rescan option in bold text * Placed the rescan option in bold text and italics * Renaming Chipscope to Virtual JTAG; Additional clock recipes. Change-Id: Ie4c8fb77893e011adcf85756c0e5d55e93f1fa9a * Renaming disable chipscope define in sim .f files. Change-Id: Ie99a86f1fd8639b614a618c6eb9a38a9e7358e4b * Synchrnous load and clear operations with auto-rescan and end-state display (#27) Synchronous load and clear operations with auto-rescan and end-state display * Updated README.md (#28)
1 parent cabdca3 commit fd7473d

File tree

26 files changed

+868
-316
lines changed

26 files changed

+868
-316
lines changed

FAQs.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ We encourage you to use the [AWS FPGA Developer Forum](https://forums.aws.amazon
204204

205205
The required AWS software is the [FPGA Management Tool set](./sdk/userspace/fpga_mgmt_tools). This software manages loading and clearing AFIs for the instance FPGAs. It also allows developers to retrieve FPGAs status from within the instance. Users will need to load the F1 AMI with the drivers and runtime libraries needed for their FPGA application.
206206

207-
Typically, you will not need the HDK nor any Xilinx Vivado tools on an F1 instance that is using prebuilt AFIs; unless, you want to do in-field debug using Vivado's ChipScope.
207+
Typically, you will not need the HDK nor any Xilinx Vivado tools on an F1 instance that is using prebuilt AFIs; unless, you want to do in-field debug using Vivado's ChipScope (Virtual JTAG).
208208

209209

210210
## Marketplace
@@ -235,7 +235,7 @@ There are two types of interfaces from the instance host CPU to the FPGAs:
235235

236236
The first is the FPGA Image Management Tools. These APIs are detailed in the [SDK portion](./sdk/userspace/fpga_mgmt_tools) of the GitHub repository. FPGA Image Management Tools include APIs to load, clear, and get status of the FPGA.
237237

238-
The second type of interface is direct address access to the Application PCIe Physical Functions (PF) of the FPGA. There is no API for this access. Rather, there is direct access to resources in the Custom Logic (CL) region or Shell that can be accessed by software written on the instance. For example, the ChipScope software uses address space in a PF to provide FPGA debug support. Developers can create any API to the resources in their CL. See the [Shell Interface Specification](./hdk/docs/AWS_Shell_Interface_Specification.md) for more details on the address space mapping as seen from the instance.
238+
The second type of interface is direct address access to the Application PCIe Physical Functions (PF) of the FPGA. There is no API for this access. Rather, there is direct access to resources in the Custom Logic (CL) region or Shell that can be accessed by software written on the instance. For example, the ChipScope software (Virtual JTAG) uses address space in a PF to provide FPGA debug support. Developers can create any API to the resources in their CL. See the [Shell Interface Specification](./hdk/docs/AWS_Shell_Interface_Specification.md) for more details on the address space mapping as seen from the instance.
239239

240240

241241

@@ -379,7 +379,7 @@ Yes. The HDK includes a simulation model for the AWS shell. See the [HDK common
379379

380380
**Q: What resources within the FPGA does the AWS Shell consume?**
381381

382-
The Shell consumes about 20% of the FPGA resources, and that includes the PCIe Gen3 X16, DMA engine, DRAM controller interface, ChipScope and other health monitoring and image loading logic. No modifications to the Shell or the partition pins between the Shell and the Custom Logic are possible by the FPGA developer.
382+
The Shell consumes about 20% of the FPGA resources, and that includes the PCIe Gen3 X16, DMA engine, DRAM controller interface, ChipScope (Virtual JTAG) and other health monitoring and image loading logic. No modifications to the Shell or the partition pins between the Shell and the Custom Logic are possible by the FPGA developer.
383383

384384

385385

RELEASE_NOTES.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
* EDMA Performance improvments
3232
* Expanded EC2 Instance type support
3333
* CL Examples @250Mhz (Clock recipe A1)
34-
* Option to exclude chipscope from building CL examples (DISABLE_CHIPSCOPE_DEBUG)
34+
* Option to exclude Chipscope (Virtual JTAG) from building CL examples (DISABLE_VJTAG_DEBUG)
3535

3636
# Release 1.2.0
3737

hdk/cl/examples/cl_dram_dma/design/cl_dram_dma.sv

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -720,7 +720,7 @@ cl_sda_slv CL_SDA_SLV (
720720
//-----------------------------------------
721721

722722

723-
`ifndef DISABLE_CHIPSCOPE_DEBUG
723+
`ifndef DISABLE_VJTAG_DEBUG
724724

725725
cl_ila CL_ILA (
726726

@@ -751,7 +751,7 @@ cl_vio CL_VIO (
751751
);
752752

753753

754-
`endif // `ifndef DISABLE_CHIPSCOPE_DEBUG
754+
`endif // `ifndef DISABLE_VJTAG_DEBUG
755755

756756
//-----------------------------------------
757757
// Virtual JATG ILA Debug core example

hdk/cl/examples/cl_dram_dma/design/cl_dram_dma_defines.vh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
//uncomment below to make SH and CL async
2828
`define SH_CL_ASYNC
2929

30-
// Uncomment to disable Chipscope
31-
//`define DISABLE_CHIPSCOPE_DEBUG
30+
// Uncomment to disable Virtual JTAG
31+
//`define DISABLE_VJTAG_DEBUG
3232

3333
`endif
3434

hdk/cl/examples/cl_dram_dma/verif/scripts/top.questa.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
${SH_LIB_DIR}/bram_2rw.sv
5050
${SH_LIB_DIR}/flop_fifo.sv
5151

52-
+define+DISABLE_CHIPSCOPE_DEBUG
52+
+define+DISABLE_VJTAG_DEBUG
5353
${CL_ROOT}/design/axil_slave.sv
5454
${CL_ROOT}/design/cl_dram_dma_defines.vh
5555
${CL_ROOT}/design/cl_tst_scrb.sv

hdk/cl/examples/cl_dram_dma/verif/scripts/top.vcs.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
${SH_LIB_DIR}/../ip/axi_register_slice/sim/axi_register_slice.v
4646
${SH_LIB_DIR}/../ip/axi_register_slice_light/sim/axi_register_slice_light.v
4747

48-
+define+DISABLE_CHIPSCOPE_DEBUG
48+
+define+DISABLE_VJTAG_DEBUG
4949
${CL_ROOT}/design/axil_slave.sv
5050
${CL_ROOT}/design/cl_dram_dma_defines.vh
5151
${CL_ROOT}/design/cl_tst_scrb.sv

hdk/cl/examples/cl_dram_dma/verif/scripts/top.vivado.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
${SH_LIB_DIR}/../ip/axi_register_slice/sim/axi_register_slice.v
4848
${SH_LIB_DIR}/../ip/axi_register_slice_light/sim/axi_register_slice_light.v
4949

50-
--define DISABLE_CHIPSCOPE_DEBUG
50+
--define DISABLE_VJTAG_DEBUG
5151
${CL_ROOT}/design/axil_slave.sv
5252
${CL_ROOT}/design/cl_dram_dma_defines.vh
5353
${CL_ROOT}/design/cl_tst_scrb.sv

hdk/cl/examples/cl_hello_world/design/cl_hello_world.sv

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -328,9 +328,9 @@ assign pre_cl_sh_status_vled[15:0] = vled_q[15:0] & sh_cl_status_vdip_q2[15:0];
328328
assign cl_sh_status1[31:0] = `CL_VERSION;
329329

330330
//-----------------------------------------------
331-
// Debug bridge, used if need chipscope
331+
// Debug bridge, used if need Virtual JTAG
332332
//-----------------------------------------------
333-
`ifndef DISABLE_CHIPSCOPE_DEBUG
333+
`ifndef DISABLE_VJTAG_DEBUG
334334

335335
// Flop for timing global clock counter
336336
logic[63:0] sh_cl_glcount0_q;
@@ -381,7 +381,7 @@ always_ff @(posedge clk_main_a0)
381381
);
382382

383383
//-----------------------------------------------
384-
// VIO Example - Needs Chipscope
384+
// VIO Example - Needs Virtual JTAG
385385
//-----------------------------------------------
386386
// Counter running at 125MHz
387387

@@ -465,7 +465,7 @@ always_ff @(posedge clk_main_a0)
465465
.probe10 (vo_cnt_watermark_q)
466466
);
467467

468-
`endif // `ifndef DISABLE_CHIPSCOPE_DEBUG
468+
`endif // `ifndef DISABLE_VJTAG_DEBUG
469469

470470
endmodule
471471

hdk/cl/examples/cl_hello_world/design/cl_hello_world_defines.vh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
// FPGA flop init capability). This will help with routing resources.
2424
`define FPGA_LESS_RST
2525

26-
// Uncomment to disable Chipscope
27-
//`define DISABLE_CHIPSCOPE_DEBUG
26+
// Uncomment to disable Virtual JTAG
27+
//`define DISABLE_VJTAG_DEBUG
2828

2929
`endif

hdk/common/shell_v04151701/build/scripts/aws_build_dcp_from_cl.sh

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
# Usage help
1919
function usage
2020
{
21-
echo "usage: aws_build_dcp_from_cl.sh [ [-script <vivado_script>] | [-strategy BASIC | DEFAULT | EXPLORE | TIMING | CONGESTION] [-clock_recipe_a A0 | A1 | A2] [-clock_recipe_b B0 | B1] [-clock_recipe_c C0 | C1] [-foreground] [-notify] | [-h] | [-H] | [-help] | ]"
21+
echo "usage: aws_build_dcp_from_cl.sh [ [-script <vivado_script>] | [-strategy BASIC | DEFAULT | EXPLORE | TIMING | CONGESTION] [-clock_recipe_a A0 | A1 | A2] [-clock_recipe_b B0 | B1 | B2 | B3 | B4 | B5] [-clock_recipe_c C0 | C1 | C2 | C3] [-foreground] [-notify] | [-h] | [-H] | [-help] | ]"
2222
echo " "
2323
echo "By default the build is run in the background using nohup so that the"
2424
echo "process will not be terminated if the terminal window is closed."
@@ -123,15 +123,15 @@ fi
123123

124124
# Check that clock_recipe_b is valid
125125
shopt -s extglob
126-
if [[ $clock_recipe_b != @(B0|B1) ]]; then
127-
err_msg "$clock_recipe_b isn't a valid Clock Group B recipe. Valid Clock Group B recipes are B0 and B1."
126+
if [[ $clock_recipe_b != @(B0|B1|B2|B3|B4|B5) ]]; then
127+
err_msg "$clock_recipe_b isn't a valid Clock Group B recipe. Valid Clock Group B recipes are B0, B1, B2, B3, B4, and B5."
128128
exit 1
129129
fi
130130

131131
# Check that clock_recipe_c is valid
132132
shopt -s extglob
133-
if [[ $clock_recipe_c != @(C0|C1) ]]; then
134-
err_msg "$clock_recipe_c isn't a valid Clock Group C recipe. Valid Clock Group C recipes are C0 and C1."
133+
if [[ $clock_recipe_c != @(C0|C1|C2|C3) ]]; then
134+
err_msg "$clock_recipe_c isn't a valid Clock Group C recipe. Valid Clock Group C recipes are C0, C1, C2, and C3."
135135
exit 1
136136
fi
137137

0 commit comments

Comments
 (0)