Forum Discussion
Altera_Forum
Honored Contributor
14 years agoThanks BadOmen again for the input. While searching a bit on FIFO and shift registers, I came across the altshift_taps component and after reading its documentation, I thought it might be useful for me in this case. But before I go down that road, I want someone to give me an advice if this component is worth using for my purpose and if yes, is my following argument correct?
a) Assume my image to be processed consists of 4 rows x 12 columns 8-bit values stored in SSRAM or SDRAM of my development board. I use the altshift_taps with parameters Width = 32 bits, Number of taps = 4 and tap distance = 3. b) Then I start 'feeding' the values from SDRAM into the altshift component in chunks of 32-bits. c) Now when all the 48 8-bit (or 12 32-bit) values are inside the shift register, at each of the next 3 clock cycles, the output taps will each give 32 bits (i.e repsenting 4 8-bit values of each row), or 128 bits in total. d) These 128 bits are in fact a '2-D' array of 4x4 8-bit values to which I can apply 4 Sobel filter instantiations to give 4 ouput 8-bit values. This value is then sent back as a 32-bit chunk to memory. Is my reasoning above any good? Will I still be able to use the DMA transfer method in this way? Will I be able to extend this 4 rows to full frame later? Also concerning the hardware logic design itself, how do I know when all the values are inside the altshift components and hence taps ready to be used? Sorry for basic questions again...but I don't have any expertise around me to ask to and I need your help :) PS: I don't have the 'Create groups for each tap output' option in my altshift_taps MegaWizard. Why is this?