Skip to content

Commit 8b5b4ec

Browse files
Update User Guide Links (#61)
* Change all possible temp links to permalinks * Updated version number of User Guide links for links that do not yet have a permalink
1 parent 12d7f02 commit 8b5b4ec

File tree

12 files changed

+55
-54
lines changed

12 files changed

+55
-54
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ The homepage for the Microchip HLS integrated development environment is:
55
- https://www.microchip.com/en-us/products/fpgas-and-plds/fpga-and-soc-design-tools/smarthls-compiler
66

77
You can find the Microchip HLS software user guide here:
8-
- https://microchiptech.github.io/fpga-hls-docs/
8+
- https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=fpgahls&redirect=true&version=latest
99

1010
## Tutorials and Trainings
1111
Example | Description

Training1/readme.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2010,7 +2010,7 @@ to the nearest integer.
20102010
For this computation we are using a 18-bit fixed-point type with 10
20112011
integer bits and 8 fractional bits (Q10.8) as defined below using the
20122012
`ap_fixpt` SmartHLS arbitrary precision fixed-point data type (see
2013-
[SmartHLS documentation](https://onlinedocs.microchip.com/oxy/GUID-AFCB5DCC-964F-4BE7-AA46-C756FA87ED7B-en-US-11/GUID-61CF52C5-A40E-436D-9E38-AD885C0EF16D.html)):
2013+
[SmartHLS documentation](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=hls_fixed_point&redirect=true&version=latest)):
20142014
```c
20152015
typedef ap_fixpt<18, 10> fixpt_t;
20162016
```
@@ -2311,7 +2311,7 @@ rgb.G = ap_ufixpt<8, 8, AP_TRN, AP_SAT>(G);
23112311
rgb.B = ap_ufixpt<8, 8, AP_TRN, AP_SAT>(B);
23122312
```
23132313
From the SmartHLS [user
2314-
guide](https://onlinedocs.microchip.com/oxy/GUID-AFCB5DCC-964F-4BE7-AA46-C756FA87ED7B-en-US-11/GUID-61CF52C5-A40E-436D-9E38-AD885C0EF16D.html),
2314+
guide](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=hls_arbitary_precision&redirect=true&version=latest),
23152315
the `AP_SAT` option means that on positive and negative overflow,
23162316
saturate the result to the maximum or minimum value in the range
23172317
respectively.
@@ -3246,7 +3246,8 @@ dataflow pragma causes the four sub-functions to overlap their execution
32463246
and is ideal for generating a design where multiple functions are
32473247
connected to operate as a single pipeline. To learn more about the
32483248
dataflow pragma, see the [SmartHLS
3249-
Documentation](https://onlinedocs.microchip.com/oxy/GUID-AFCB5DCC-964F-4BE7-AA46-C756FA87ED7B-en-US-11/GUID-24B4CBDB-506F-433E-95F9-28FA2811E9CF.html).
3249+
Documentation](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=hls_data_flow&redirect=true&version=latest
3250+
).
32503251
```c
32513252
void canny(hls::FIFO<unsigned char> &input_fifo,
32523253
hls::FIFO<unsigned char> &output_fifo) {

Training2/readme.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ synthesis.
238238

239239
When designing a hardware block using SmartHLS, parallelism is the main
240240
way of achieving performance gain. As mentioned in the [SmartHLS user
241-
guide](https://microchiptech.github.io/fpga-hls-docs/userguide.html#introduction-to-high-level-synthesis),
241+
guide](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=fpgahls&redirect=true&version=latest),
242242
there are four main kinds of parallelism in SmartHLS: instruction-level,
243243
loop-level, thread-level, and dataflow parallelism. These concepts have
244244
some overlap between them, but they all focus on running as many tasks
@@ -389,7 +389,7 @@ parallel on a data stream. It allows tasks to start executing as soon as
389389
their prerequisites are ready. Dataflow parallelism was shown in
390390
Training 1, and more detailed information can be found in the [SmartHLS
391391
User
392-
Guide](https://onlinedocs.microchip.com/oxy/GUID-AFCB5DCC-964F-4BE7-AA46-C756FA87ED7B-en-US-11/GUID-24B4CBDB-506F-433E-95F9-28FA2811E9CF.html).
392+
Guide](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=hls_data_flow&redirect=true&version=latest).
393393
An example using dataflow parallelism will also be discussed in Appendix
394394
D. For more complex parallelism, e.g., with feedback/cycles between the
395395
parallel tasks, multi-threading APIs may be needed to explicitly
@@ -420,7 +420,7 @@ Goals of this section:
420420
Creating parallel modules using threads is easy in SmartHLS. SmartHLS
421421
comes with a threading library with a simple API for creating threads.
422422
Detailed information on this API can be found in the [SmartHLS User
423-
Guide](https://onlinedocs.microchip.com/oxy/GUID-AFCB5DCC-964F-4BE7-AA46-C756FA87ED7B-en-US-11/GUID-E3BCA8C1-1F5A-41C2-B0A6-F33C48F33FA7.html).
423+
Guide](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=hls_multi_threading&redirect=true&version=latest).
424424
SmartHLS previously supported POSIX threads (pthreads) but the pthreads
425425
API was deprecated in SmartHLS 2022.3 and the SmartHLS thread API is now
426426
the recommended way to create threads. Here we will present the basics
@@ -512,7 +512,7 @@ contention free to be able to show what the generated arbiter looks like
512512
in RTL. Note, the contention free pragma must precede the variable
513513
declaration unlike pragmas such as the function top pragma. For more
514514
information on where pragmas need to be defined, check the
515-
[SmartHLS Pragmas Manual](https://onlinedocs.microchip.com/oxy/GUID-AFCB5DCC-964F-4BE7-AA46-C756FA87ED7B-en-US-11/GUID-B3D89018-0850-487C-A242-A433094D720F.html).
515+
[SmartHLS Pragmas Manual](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=hls_pragmas&redirect=true&version=latest).
516516
517517
![](.//media/image3.png) To check for generated arbiters, compile the
518518
design to hardware (![](.//media/image28.png)) and open the generated
@@ -718,7 +718,7 @@ in software, the same functionality is replicated by SmartHLS in
718718
hardware.
719719
720720
A generic example on how to use the mutex can be found in the [User
721-
Guide](https://onlinedocs.microchip.com/oxy/GUID-AFCB5DCC-964F-4BE7-AA46-C756FA87ED7B-en-US-11/GUID-AEB83DF1-3E37-4FE5-B386-E2BEBCF7E15E.html),
721+
Guide](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=hls_thread_apis&redirect=true&version=latest),
722722
where a global mutex is locked and unlocked to ensure that the function
723723
body runs atomically.
724724
@@ -754,7 +754,7 @@ before the other threads are ready. A barrier can handle any number of
754754
threads but must be given the number during creation.
755755

756756
A generic example on how to use the barrier can be found in the [User
757-
Guide](https://onlinedocs.microchip.com/oxy/GUID-AFCB5DCC-964F-4BE7-AA46-C756FA87ED7B-en-US-11/GUID-AEB83DF1-3E37-4FE5-B386-E2BEBCF7E15E.html),
757+
Guide](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=hls_thread_apis&redirect=true&version=latest),
758758
where a global barrier is initiated in main for the two threads that
759759
will use it. Inside the threaded function, a call to wait is made to
760760
block the thread until the two threads reach the barrier.

Training3/readme.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ Updated document for SmartHLS™ 2024.1 release.
5454
generate an arithmetic hardware block with a wide datapath and
5555
compare to an RTL reference design.
5656
- Referring to previous SmartHLS trainings.
57-
- Referring to the [SmartHLS User Guide](https://onlinedocs.microchip.com/oxy/GUID-AFCB5DCC-964F-4BE7-AA46-C756FA87ED7B-en-US-11/GUID-995D69CF-ACC7-4CB0-9635-4434A765470E.html).
57+
- Referring to the [SmartHLS User Guide](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=fpgahls&redirect=true&version=latest).
5858
- Referring to the [SmartHLS Github examples repository](https://github.com/MicrochipTech/fpga-hls-examples).
5959
- AXI protocol and SmartHLS:
6060
- SmartHLS AXI target (also called AXI subordinate or slave)
@@ -132,11 +132,11 @@ The following hardware is required:
132132
([MPF300-VIDEO-KIT](https://www.microsemi.com/existing-parts/parts/150747)).
133133
- Monitor with an HDMI input.
134134

135-
In the [SmartHLS user guide](https://onlinedocs.microchip.com/oxy/GUID-AFCB5DCC-964F-4BE7-AA46-C756FA87ED7B-en-US-11/GUID-995D69CF-ACC7-4CB0-9635-4434A765470E.html),
136-
you should read [Section 'SmartHLS C/C++ Library'](https://onlinedocs.microchip.com/oxy/GUID-AFCB5DCC-964F-4BE7-AA46-C756FA87ED7B-en-US-11/GUID-11FC7907-490C-47AB-9DAC-2B20334691D4.html)
137-
up to and including [Section 'Supported Operations in ap\_\[u\]int/ap\_\[u\]fixpt, and floating-point'](https://onlinedocs.microchip.com/oxy/GUID-AFCB5DCC-964F-4BE7-AA46-C756FA87ED7B-en-US-11/GUID-530A2A58-DEC9-4AAA-9DDC-E07BA18EF9E0.html),
135+
In the [SmartHLS user guide](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=fpgahls&redirect=true&version=latest),
136+
you should read [Section 'SmartHLS C/C++ Library'](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=hls_c_library&redirect=true&version=latest)
137+
up to and including [Section 'Supported Operations in ap\_\[u\]int/ap\_\[u\]fixpt, and floating-point'](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=hls_supported_operations&redirect=true&version=latest),
138138
and [Section 'AXI4 Target
139-
Interface'](https://onlinedocs.microchip.com/oxy/GUID-AFCB5DCC-964F-4BE7-AA46-C756FA87ED7B-en-US-11/GUID-16F30D96-8744-48F6-BD42-AC01ED5460ED.html).
139+
Interface'](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=hls_axi4_target&redirect=true&version=latest).
140140
This knowledge will be directly applied in this training.
141141

142142
We assume some knowledge of the C/C++ programming language for this
@@ -357,19 +357,19 @@ Figure 3: Adding custom SystemVerilog testbench.</p>
357357
Many methods and libraries used in previous trainings can be applied in
358358
creating this wide multiply block. Some topics include the C++ arbitrary
359359
precision library, how top-level function interfaces map to hardware,
360-
and pipelining. Refer to the [SmartHLS User Guide](https://onlinedocs.microchip.com/oxy/GUID-AFCB5DCC-964F-4BE7-AA46-C756FA87ED7B-en-US-11/GUID-995D69CF-ACC7-4CB0-9635-4434A765470E.html)
360+
and pipelining. Refer to the [SmartHLS User Guide](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=fpgahls&redirect=true&version=latest)
361361
or [previous trainings](https://microchiptechnology.sharepoint.com/sites/InfoDepot/FPGA_SOC%20LegUp%20Site/SitePages/FAE-Training-Slides-and-Video.aspx)
362362
for more details on specific topics.
363363

364364
All of the necessary operators to implement the wide multiply operations
365-
are provided in the arbitrary precision library API. Read [Section 'C++ Arbitrary Precision Data Types Library'](https://onlinedocs.microchip.com/oxy/GUID-AFCB5DCC-964F-4BE7-AA46-C756FA87ED7B-en-US-11/GUID-EA20C103-EBF1-4FEC-9D7C-096162AB657C.html)
365+
are provided in the arbitrary precision library API. Read [Section 'C++ Arbitrary Precision Data Types Library'](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=hls_data_types&redirect=true&version=latest)
366366
in the SmartHLS User Guide if you have not already. This section
367367
provides information about the arbitrary precision library. Keep in mind
368368
that the operation performed in the divide-by-two operation in the
369369
original RTL is implemented as an arithmetic right shift-by-one. The
370370
\>\>” operator in C++ is a logical right shift and not an arithmetic
371371
right shift. You must use an arithmetic right shift operation to handle
372-
signed division properly. See: [Section 'Supported Operations in ap\_\[u\]int/ap\_\[u\]fixpt, and floating-point'](https://onlinedocs.microchip.com/oxy/GUID-AFCB5DCC-964F-4BE7-AA46-C756FA87ED7B-en-US-11/GUID-530A2A58-DEC9-4AAA-9DDC-E07BA18EF9E0.html).
372+
signed division properly. See: [Section 'Supported Operations in ap\_\[u\]int/ap\_\[u\]fixpt, and floating-point'](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=hls_supported_operations&redirect=true&version=latest).
373373

374374
When you use the SmartHLS C++ arbitrary precision library, SmartHLS
375375
automatically handles sign extension, padding, and shifting when
@@ -599,7 +599,7 @@ in most FPGA use cases.
599599
![](.//media/image3.png)In this section, we want you to implement an AXI
600600
target interface in SmartHLS to communicate with the Mi-V processor.
601601

602-
To start, you should see [Section 'AXI4 Target Interface'](https://onlinedocs.microchip.com/oxy/GUID-AFCB5DCC-964F-4BE7-AA46-C756FA87ED7B-en-US-11/GUID-16F30D96-8744-48F6-BD42-AC01ED5460ED.html)
602+
To start, you should see [Section 'AXI4 Target Interface'](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=hls_axi4_target&redirect=true&version=latest)
603603
in the SmartHLS User Guide if you haven’t already. This section includes
604604
information on how to create a AXI target interface in SmartHLS. You can
605605
also start with an example found in the SmartHLS Github [examples repository](https://github.com/MicrochipTech/fpga-hls-examples). Note,
@@ -616,7 +616,7 @@ Note, SmartHLS does not support using C++ arbitrary precision types
616616
inside of an AXI4 target struct. However, C++ arbitrary precision types
617617
should still be used for the wide multiply computations. This can be
618618
achieved by assigning the simple types in the target struct to the
619-
corresponding slices of the arbitrary precision type. See: [Section 'Selecting and Assigning to a Range of Bits'](https://onlinedocs.microchip.com/oxy/GUID-AFCB5DCC-964F-4BE7-AA46-C756FA87ED7B-en-US-11/GUID-21FDCBD6-626A-4D3A-AFE3-4A88952293C7.html).
619+
corresponding slices of the arbitrary precision type. See: [Section 'Selecting and Assigning to a Range of Bits'](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=hls_selecting_assigning&redirect=true&version=latest).
620620

621621
Next you will find the *initiator\_layout.txt* file in the template
622622
project. This gives you the processor side memory map layout for
@@ -1288,7 +1288,7 @@ blocks as delay elements to line up the inputs to the pipeline stages
12881288
where they are used. These were implemented with uSRAM FIFOs. SmartHLS
12891289
2022.3 also uses uSRAM FIFOs for pipeline registers. If you are using an
12901290
older version of SmartHLS, you can set the
1291-
[USE\_FIFO\_FOR\_PIPELINE\_REG](https://onlinedocs.microchip.com/oxy/GUID-AFCB5DCC-964F-4BE7-AA46-C756FA87ED7B-en-US-11/GUID-EE7D70B4-A250-4503-AFAC-056F88433277.html)
1291+
[USE\_FIFO\_FOR\_PIPELINE\_REG](https://onlinedocs.microchip.com/v2/keyword-lookup?keyword=hls_use_fifo_for_pipieline_reg&redirect=true&version=latest)
12921292
parameter to 1 in a custom configuration file to enable this behavior.
12931293
The steps to do this are similar to setting the `STRENGTH_REDUCTION`
12941294
parameter as seen in the RGB2YCbCr section of the [SmartHLS Training 1 document](https://github.com/MicrochipTech/fpga-hls-examples/tree/main/Training1/).

0 commit comments

Comments
 (0)