kastnerrg / pp4fpgas Goto Github PK
View Code? Open in Web Editor NEWParallel Programming for FPGAs -- An open-source high-level synthesis book
Home Page: http://hls.ucsd.edu/
License: Creative Commons Attribution 4.0 International
Parallel Programming for FPGAs -- An open-source high-level synthesis book
Home Page: http://hls.ucsd.edu/
License: Creative Commons Attribution 4.0 International
In Figure 3.2, we are rotating vector from 1) to 5) with each step rotation from the previous output.
So
However,
5) didn't start with the previous output from 4) 64.654. But the result 61.078 is calculated from 64.654
So it should change 64.64 to 64.654
The paragraph in https://github.com/KastnerRG/pp4fpgas/blob/master/sorting.tex#L71 refers to the code snippet in Figure 10.2.
Specifically, the text uses the index
term. However, by looking at the code, it seems the actual name of the referred variable is item
instead.
Hi there,
I just noticed that the book points out that the restructured code for merge sort can achieve II=1 while the current settings in merge_sort.h
which define DTYPE
as float
limit the achievable II to 2.
It might be better to set the default DTYPE
to int
, so the code would achieve II=1 without any modifications.
In this line https://github.com/KastnerRG/pp4fpgas/blob/master/sorting.tex#L26, it is written:
[...] In each case, the fundamental operations of required for sorting and searching are pretty much the same [...]
I guess "of" can be removed.
Could you please give us a guide to use .tex files to create latest pdf file ?I have no idea about how to use them. Thank you
I believe there is misleading or even factually incorrect info in "3.5.3 Overflow, Underflow, and Rounding". I think most of that is because in the examples only one bit is dropped and then half of the cases are ties.
In particular: the behaviour of round()
and lrint()
(for lrint
we have to assume FE_TONEAREST
mode is set, more info here) are actually rounding to the nearest integer and they only differ in the case of ties.
All the variants are well explained in: https://en.wikipedia.org/wiki/Rounding#Rounding_to_integer
The merge sort program here:
pp4fpgas/examples/merge_sort.cpp
has the following test statement that can fail:
if((f1 < i2 && in[f1] <= in[f2]) || f2 == i3)
When f2 == i3, the in[f2] test fails for array index out of range. The code appears to work if the in[f2] test is separated and not performed when the values are equal.
In this line https://github.com/KastnerRG/pp4fpgas/blob/master/sorting.tex#L144, it is written:
[...] where each sorting cell only communicates with it's neighboring sorting cells [...].
I think "its" should be used instead.
In this line https://github.com/KastnerRG/pp4fpgas/blob/master/fir.tex#L264, I found the following:
The first iteration is equivalent the the non-pipelined version ...
Is RAW correct
in #pragma HLS DEPENDENCE variable=hist inter RAW distance=2 ?
I think the following is WAR(write after read)
hist[val] = hist[val] + 1;
Could you explain why it is not WAR but RAW?
Is it because of his[val] read at i+1(right-hand side of the equal) after hist[val] write at i(left-hand side of the equal) ?
In this line https://github.com/KastnerRG/pp4fpgas/blob/master/sorting.tex#L216, it is written:
The DEBUG constant is used to provided output detailing the execution of the testbench.
Hi,
Is there any reason why j > 0
is evaluated twice in the following ?
https://github.com/KastnerRG/pp4fpgas/blob/master/examples/insertion_sort.cpp#L9
In this line: https://github.com/KastnerRG/pp4fpgas/blob/master/sorting.tex#L287:
When the merge() function is called, whare are the possible relationships between i1, i2, and i3?
The link http://hls.ucsd.edu is broken.
ERR_CONNECTION_TIMED_OUT
Hi Kastner,
Recently, I'm working with the FFT Project using the baseline code in the book ,but I couldn't find the exact "fft_stage_one", "fft_stage_two" and "fft_stage_three" function files mentioned in the "fft_stages.cpp" file in the examples folder.
My partner is working with the CORDIC Project. There is a top file included in the "cordic.c" file called "cordic.h" which is not included in the examples folder also.
Would you please help us with this issue?
Thank you so much.
There is no XXX.gold.8.dat files which will be used in C Simulation !!!
This repository contains Vivado_HLS_Tutorial_2019.zip
and Vivado_HLS_Tutorial.zip
and they seem copies of the UG871 official tutorial. They probably are better to be removed from the repository. Other ZIP files in labs/
may also be removed since some of them are already extracted in the same directory.
You can use BFG Repo-Cleaner to remove files from the entire history of a repository.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.