Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
227710d
First commit for merge sort design
tyoungsc May 4, 2021
c1d63f3
Cleaned up MergeSort.hpp a bit using defines
tyoungsc May 5, 2021
079f209
Formatting/comments
tyoungsc May 5, 2021
72f9447
Reduced area by connecting Partition unit (previously called Shuffle) to
tyoungsc May 6, 2021
6889141
Fixed bug with no-USM BSPs in Produce kernel
tyoungsc May 10, 2021
a2e1551
README update after Mike's review
tyoungsc May 17, 2021
93f8c12
Changed Windows specific flag to use '/' instead of '-'
tyoungsc May 17, 2021
3f4403b
CMake update
tyoungsc May 17, 2021
8a9e741
Removed all pointer arithmetic for offseting to the inside of kernels
tyoungsc May 25, 2021
6a1ad28
Big change to example design: encorperate a new multi-element per cycle
tyoungsc May 29, 2021
ab1d701
Code cleanup: changed some variable names and comments
tyoungsc May 31, 2021
2e8440d
README update
tyoungsc May 31, 2021
7d6819a
Picture update
tyoungsc May 31, 2021
cfcf4b4
Comments
tyoungsc Jun 1, 2021
aeeab65
Code cleanup and comments
tyoungsc Jun 1, 2021
4fdba73
Small change to README
tyoungsc Jun 4, 2021
7a14496
Merged shannonization VCXPROJ files into a single one (as per all the
tyoungsc Jun 4, 2021
9e2a459
Adding file I missed in previous commit
tyoungsc Jun 4, 2021
9d37b97
Updated comment
tyoungsc Jun 4, 2021
cebd031
Grammar update
tyoungsc Jun 4, 2021
72580ac
Again
tyoungsc Jun 4, 2021
d43699a
Updating design output and README
tyoungsc Jun 8, 2021
e294bda
Simplified Produce kernel
tyoungsc Jun 9, 2021
9db3fad
Allowed SORT_WIDTH to be 1 (1 element per cycle)
tyoungsc Jun 10, 2021
04d557d
Code cleanup
tyoungsc Jun 10, 2021
f263617
Comments, formatting, README grammar changes, and general cleanup :)
tyoungsc Jun 17, 2021
f891a2f
Renamed all files to match google style
tyoungsc Jun 24, 2021
0ce9bc3
README updates
tyoungsc Jun 24, 2021
2d88329
Changed filenames to use underscores between words
tyoungsc Jun 24, 2021
7c31015
Added 'pipe' namespace to impu namespace for pipe utilities
tyoungsc Jun 24, 2021
202ff82
Merge pull request #1 from tyoungsc/new_fpga_ref_design_merge_sort
tyoungsc Jun 24, 2021
b9bd2dc
Revert "Merge pull request #1 from tyoungsc/new_fpga_ref_design_merge…
tyoungsc Jun 24, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.28307.705
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shannonization_a10", "shannonization_a10.vcxproj", "{D6A634E7-9F2B-46C2-A21C-2402F631A55A}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shannonization_s10", "shannonization_s10.vcxproj", "{30A42429-E56D-4448-903E-6F4C4756E491}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shannonization", "shannonization.vcxproj", "{D6A634E7-9F2B-46C2-A21C-2402F631A55A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,6 @@
<AdditionalOptions>-DFPGA_EMULATOR %(AdditionalOptions)</AdditionalOptions>
<ObjectFileName>$(IntDir)shannonization.obj</ObjectFileName>
<AdditionalIncludeDirectories>$(ONEAPI_ROOT)dev-utilities\latest\include</AdditionalIncludeDirectories>
<PreprocessorDefinitions>A10;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
Expand Down Expand Up @@ -147,7 +146,6 @@
<AdditionalOptions>-DFPGA_EMULATOR %(AdditionalOptions)</AdditionalOptions>
<ObjectFileName>$(IntDir)shannonization.obj</ObjectFileName>
<AdditionalIncludeDirectories>$(ONEAPI_ROOT)dev-utilities\latest\include</AdditionalIncludeDirectories>
<PreprocessorDefinitions>A10;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
Expand All @@ -160,4 +158,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
</Project>

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -268,28 +268,28 @@ int main(int argc, char** argv) {

bool success = true;

// Instantiate multiple versions of the kernel
// The II achieved by the compiler can differ between FPGA architectures
//
// On Arria 10, we are able to achieve an II of 1 for versions 1 and 2 of
// the kernel (not version 0).
// Version 2 of the kernel can achieve the highest Fmax with
// an II of 1 (and therefore has the highest throughput).
// Since this tutorial compiles to a single FPGA image, this is not
// reflected in the final design (that is, version 1 bottlenecks the Fmax
// of the entire design, which contains versions 0, 1 and 2).
// However, the difference between versions 1 and 2
// can be seen in the "Block Scheduled Fmax" columns in the
// "Loop Analysis" tab of the HTML reports.
//
// On Stratix 10 and Agilex, the same discussion applies, but version 0
// can only achieve an II of 3 while versions 1 and 2 can only achieve
// an II of 2. On Stratix 10 and Agilex, we can achieve an II of 1 if we use
// non-blocking pipe reads in the IntersectionKernel, which is shown in
// version 3 of the kernel.
//
// Instantiate multiple versions of the kernel
// The II achieved by the compiler can differ between FPGA architectures
//
// On Arria 10, we are able to achieve an II of 1 for all versions of the
// kernel.
// Version 2 of the kernel can achieve the highest Fmax with
// an II of 1 (and therefore has the highest throughput).
// Since this tutorial compiles to a single FPGA image, this is not
// reflected in the final design (that is, version 1 bottlenecks the Fmax
// of the entire design, which contains versions 0, 1 and 2).
// However, the difference between versions 1 and 2
// can be seen in the "Block Scheduled Fmax" columns in the
// "Loop Analysis" tab of the HTML reports.
//
// On Stratix 10 and Agilex, the same discussion applies, but version 0
// can only achieve an II of 3 while versions 1 and 2 can only achieve
// an II of 2. On Stratix 10 and Agilex, we can achieve an II of 1 if we use
// non-blocking pipe reads in the IntersectionKernel, which is shown in
// version 3 of the kernel.
//
#if defined(A10)
success &= Intersection<0,2>(q, a, b, golden_n);
success &= Intersection<0,1>(q, a, b, golden_n);
success &= Intersection<1,1>(q, a, b, golden_n);
success &= Intersection<2,1>(q, a, b, golden_n);
success &= Intersection<3,1>(q, a, b, golden_n);
Expand Down