EmbDev.net

Forum: FPGA, VHDL & Verilog Standalone or Xilkernel?


Author: Ndri Romaric (Company: lalala) (jmsilva)
Posted on:

Rate this post
0 useful
not useful
Hi,



I'm working in a system with a very simple operation. It has a 
microblaze processor and two peripherals (A and B), one for transmite 
packets and the other to receive them.



1) Transmmiter takes IP packets from soft_temac peripheral, make some 
transformations and pass it to peripheral A, which has to send it by 
external fpga pins.



2) Receiver takes packets from external pins of peripheral B, make the 
inverse transformations and pass it to the lwip stack, which has to send 
it back to the soft_temac peripheral.



I've thought in two main ways to make de software for this purpouse:



- Use a simple standalone application, which read the state of 
peripherals A and B and then decide if it's better to transmmite or to 
receive, in order to avoid buffer's overflow.



- Use xilkernel with two threads, one for transmmiting and the other for 
receiving.



It's my first project using Microblaze so i don't know what is the best 
choice. I'm not very expert using threads and interrupts, so this is the 
matter of my question,



Thanks in advance!
.

Author: Duke Scarring (Guest)
Posted on:

Rate this post
0 useful
not useful
> It's my first project using Microblaze so i don't know what is the best
> choice. I'm not very expert using threads and interrupts, so this is the
> matter of my question,

I would suggest to use the standalone application. All this EDK stuff is 
not so easy to understand, even if you have some experience...

Duke

Author: Ndri Romaric (Company: lalala) (jmsilva)
Posted on:

Rate this post
0 useful
not useful
I also thought using standalone is the better idea. I thik that 
xilkernel is more usefull when you have many tasks to schedule. In my 
system there are only two task (send and receive packets) which must to 
be scheduled.

My main doubt it's about speed. I want to know if it's faster use 
xilkernel or a simple scheduling scheme such as in each iteration read 
one register of both peripherals and decide what process launch.

A pseudocode like that:

while (1)
   priority_A = read_peripheral_state (A)
   priority_B = read_peripheral_state (B)

   if (priority A > priority B)
       launch task_A
   else
       launch task_B
   end if

end while

Thanks for your answers!! :)

Reply

Entering an e-mail address is optional. If you want to receive reply notifications by e-mail, please log in.

Rules — please read before posting

  • Post long source code as attachment, not in the text
  • Posting advertisements is forbidden.

Formatting options

  • [c]C code[/c]
  • [avrasm]AVR assembler code[/avrasm]
  • [vhdl]VHDL code[/vhdl]
  • [code]code in other languages, ASCII drawings[/code]
  • [math]formula (LaTeX syntax)[/math]




Bild automatisch verkleinern, falls nötig
Note: the original post is older than 6 months. Please don't ask any new questions in this thread, but start a new one.