Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Asynchronous, Asymmetrical FIFO using logiCORE FIFO Generator in Vivado

Status
Not open for further replies.

hassannriaz

Newbie
Newbie level 2
Joined
May 30, 2023
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
24
As a part of project I am required to generate a 192-bit to 128-bit Asynchronous FIFO in Vivado. Now I am presented with two options:
i) Write such a FIFO from scratch
ii) Use a possible combination of Vivado logiCORE FIFO generator
If there are any possibilities in FIFO generator that would be the easier way out, if not, are there any good resources to start writing an Asynchronous and Asymmetrical FIFO?
 

If it is to show work to your professor then follow his expectations before he gets angry. Otherwise use fifo generator so you don't re-invent the wheel.
 

If it is to show work to your professor then follow his expectations before he gets angry. Otherwise use fifo generator so you don't re-invent the wheel.
No it is not to be shown to the professor, it is just an intermediate part of a long term project. The problem remains, I am unable to find a possible combination in FIFO generator to generate a 192 to 128 bit FIFO.
 

You can use a logiCORE 192 to 192 asynchronous FIFO and add a wrapper that converts the 192-bit output to a 128-bit output.
The wrapper presents a 128-bits of the 192-bits when you "read" the wrapper FIFO. The next read will output the last 64-bits (out of the first 192-bit read) and will read out another 192-bits, returning only 64-bits (64-bit+64-bit 128-bits). The third FIFO read will return the remainder 128-bits (with no logiCORE read).

You will have to continuously keep track of writing two and reading 3 to generate the correct empty flag.
 

You can use a logiCORE 192 to 192 asynchronous FIFO and add a wrapper that converts the 192-bit output to a 128-bit output.
The wrapper presents a 128-bits of the 192-bits when you "read" the wrapper FIFO. The next read will output the last 64-bits (out of the first 192-bit read) and will read out another 192-bits, returning only 64-bits (64-bit+64-bit 128-bits). The third FIFO read will return the remainder 128-bits (with no logiCORE read).

You will have to continuously keep track of writing two and reading 3 to generate the correct empty flag.
That is good idea.
The alternative is 128/128 fifo with three states logic at input side:
s0: write 128 bits out of 192 bits, save other 64 bits
s1: wait for next 192 word, take 64 bits and concatenate with above 64bits
s2: write total of concatenated 128 bits to fifo
s0: write next 128 bits and so on.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top