FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6354 Discussions

dsp builder-Prewitt edge detector

Altera_Forum
Honored Contributor II
1,883 Views

Hello, 

 

I have to present what exactly do all of implementation of Prewitt edge detection design in Dsp-Builder. I find informations in "Edge Detection Using SOPC Builder and DSP Builder Tool Flow" but it is not enough. Know someone where I can find more informations ? 

 

Thanks. 

 

 

*sorry for my English 

 

 

0 Kudos
12 Replies
Altera_Forum
Honored Contributor II
264 Views

Google contains lots of info.

0 Kudos
Altera_Forum
Honored Contributor II
264 Views

well I did search for some information regarding the same. The literature shows a model of the edge detection with sopc builder and just goes straight to a different side. I have not understood how the black box was added to the model of edge detection which is a reference design.

0 Kudos
Altera_Forum
Honored Contributor II
264 Views

I converted the codes from Simulink to HDL. The codes which are generated seems to be quite different. I have a file .mdl and .mdlxml generated along with the other built in function using by DSP builder. I did also see an interface, entity and architecture description file.  

My query is, is it possible to add additional components directly to the code here and compile it. Well I did add some output ports onto the same code and tried building it, but I dont see them under the pins. I am not sure why.
0 Kudos
Altera_Forum
Honored Contributor II
264 Views

Hi pals, 

 

I'm working in a project based in prewitt edge detector. I'll comment some aspect from this example. 

 

1.- Edge detector has been implemented using a kernel structure by using line buffers. This structure is a datapath, and the whole incoming image is passed throught this kernel. 

 

2.- DSP builder generates .vhd files to be called from SOPC Builder in order to integrate to your system 

 

3.- Your system communicates with this block by using avalon FIFO ports (DMA), first you'll need to writing image bytes to the input port and reading image bytes from the ouput ports to getting the image processed. 

 

4.- DMA is configured by using HAL API functions from NIOS II processor 

 

I hope this helps you!!!
0 Kudos
Altera_Forum
Honored Contributor II
264 Views

thats great....  

well I did get some of these things from the paper too... 

but then when I try implementing it on kit.. I always get stuck... 

I find it really difficult getting to work with the DMA...  

can u suggest me on how to proceed.....
0 Kudos
Altera_Forum
Honored Contributor II
264 Views

I'll recommend to you to see the section called "Developing Programs Using the Hardware abstraction Layer" in the "NIOS II software developer's handbook. 

 

for work with DMA you'll need to use the functions within sys/alt_dma.h. 

 

It shouldn't be very complex to do this 

 

Which hardware are you using???
0 Kudos
Altera_Forum
Honored Contributor II
264 Views

I am using a Altera DE2 development kit... 

I will try going through the book.... 

actually I have been working on this for a while and still havnt got anywhere close to implementing it...
0 Kudos
Altera_Forum
Honored Contributor II
264 Views

 

--- Quote Start ---  

I'll recommend to you to see the section called "Developing Programs Using the Hardware abstraction Layer" in the "NIOS II software developer's handbook. 

 

for work with DMA you'll need to use the functions within sys/alt_dma.h. 

 

It shouldn't be very complex to do this 

 

Which hardware are you using??? 

--- Quote End ---  

 

 

well I am a little curious about what you did and how the edge detection codes were written. Guess as I previously said, I tried using the DSP builder in Simulink to build the prewitt co processor, did u also do the same. if you could just brief on what were the next stages that I might have to go through.
0 Kudos
Altera_Forum
Honored Contributor II
264 Views

h abinabin2, 

 

I've developped my own algorithm based on the DSP builder edge detector. This algorithm includes imaging morphological operators based on the kernels structures by using line buffers as in the edge prewitt detector example. 

 

I don't exactly know what is your problem
0 Kudos
Altera_Forum
Honored Contributor II
264 Views

well I had got some replies from mysupport (Altera) where initially they asked me to go through one application note based on real time edge detection and so I tried working it out the same way as mentioned. But when I get to the part where I have to add the NIOS component, I am not able to even get it working using the SOPC builder. I am totally new into this field of softcore processors and so struggling at this stage.  

 

I did get the component in HDL format from Simulink but have no clues how it is gonna work. What do u advise.. is it better to write the algorithm directly in HDL or get it from Simulink.  

 

Ur experience on this project should help me some insight on some of the problems that you also might have faced when u were working with this project. Do pass on ur comments, it will be of great value for me. 

 

Regards, 

Abin
0 Kudos
Altera_Forum
Honored Contributor II
264 Views

I'll strong recommend to you seeing the User guide DSP Builder in which tool flow example describes step by step how integrate edge detector hardware by using SOPC Builder and NIOS

0 Kudos
Altera_Forum
Honored Contributor II
264 Views

I'm trying to use that dsp builder example tutorial too to learn how to use Simulink and NIOS for image processing purposes (Stratix II DSP Kit v1.0.0. Reference Designs AN364.pdf). 

 

But when I open the simulink file test_sopc_edge_detector.mdl, I have a lot of 'Bad Links' being displayed. I guess this is because I am using a newer version of DSP Builder, and I am now in the process of looking for DSP Builder 10.1 equivalent components and replacing each term one by one. But the problem is that I don't have the exact parameters of the components used and I am not sure if I am doing the correct substitutions. For example: 

 

- Do I substitute bus_alteradspbuilder/Input with Input or Non-synthesizable Input?  

- There is an 6-input pipelined adder in edge_detect_h, edge_detect_v and combine_prewitt_v_h files. How do I find this component? 

- What are the parameters to set in the counter used in gen_data_valid?  

 

Or is there another more up-to-date tutorial for this edge detection example? 

 

Thanks
0 Kudos
Reply