FPGARelated.com
Forums

EDK problem!

Started by John T. September 2, 2003
Please does anyone have experience with EDK 3.2 for embedded design?
I am trying to make my microblaze processor to be interrupted when I push a
certain input button. I can make Timer-interrupt work, but I cant make and
outside stimuli to interrupt the processor. Anyone know how to do this?
I have added a interrupt-controller to the opb bus, and set its irq to the
same net as the Microblaze Interrupt.

John


"John T." <john@dat.com> wrote in message news:<bj1l57$plr$1@news.net.uni-c.dk>...
> Please does anyone have experience with EDK 3.2 for embedded design? > I am trying to make my microblaze processor to be interrupted when I push a > certain input button. I can make Timer-interrupt work, but I cant make and > outside stimuli to interrupt the processor. Anyone know how to do this? > I have added a interrupt-controller to the opb bus, and set its irq to the > same net as the Microblaze Interrupt. > > John
simple external ints should work as well (as timer ints), well connecting a push-button directly to int net probably isnt the best idea, there will always be some bouncing :( just a note: if you have multiple interrupt sources then you have to assign to them all different names and write those names with "&" concatenated in the edit core dialog - this was something that did take long time for me to understand (until I found that is in the IP core manual, not INTC pdf but general IP cores document). just check that the int lines are connected in the system.vhd file and that the interrupt handler procedures are assigned correctly, then when you enable int it should come? antti http://www.graphord.com/forum
"Antti Lukats" <antti@case2000.com> skrev i en meddelelse
news:80a3aea5.0309020440.3a8e4a23@posting.google.com...
> "John T." <john@dat.com> wrote in message
news:<bj1l57$plr$1@news.net.uni-c.dk>...
> > Please does anyone have experience with EDK 3.2 for embedded design? > > I am trying to make my microblaze processor to be interrupted when I
push a
> > certain input button. I can make Timer-interrupt work, but I cant make
and
> > outside stimuli to interrupt the processor. Anyone know how to do this? > > I have added a interrupt-controller to the opb bus, and set its irq to
the
> > same net as the Microblaze Interrupt. > > > > John > > simple external ints should work as well (as timer ints), well > connecting a push-button directly to int net probably isnt the best > idea, there will always be some bouncing :( > > just a note: if you have multiple interrupt sources then you have to > assign to them all different names and write those names with "&" > concatenated in the edit core dialog - this was something that did > take long time for me to understand (until I found that is in the IP > core manual, not INTC pdf but general IP cores document). > > just check that the int lines are connected in the system.vhd file and > that the interrupt handler procedures are assigned correctly, then > when you enable int it should come? > > antti > http://www.graphord.com/forum
Thanx for the reply. My question is more likely: Where, in what menu do you set an external input to be an interrupt source??? Where do you declare the name of the interrupt function??? With a timer you can do that by right-clicking the timer and chose a name for the "timer interrupt handler function". Beset Regards John
John T. wrote:
> Thanx for the reply. My question is more likely: Where, in what menu do you > set an external input to be an interrupt source??? Where do you declare the > name of the interrupt function??? With a timer you can do that by > right-clicking the timer and chose a name for the "timer interrupt handler > function".
In XPS you can open the system port properties dialog (rightclick on the system overview and select Object properties). In this dialog you can specify the class of an input signal I/O (empty), Clock or Interrupt. When you select interrupt, you can add it to the Intr port of the interrupt controller. If you want to debounce the switch first, you probably have to write your own peripheral. In that case you can indicate that the output port of this peripheral is of Interrupt type. Regards, Rienk
> Thanx for the reply. My question is more likely: Where, in what menu do you > set an external input to be an interrupt source??? Where do you declare the > name of the interrupt function??? With a timer you can do that by > right-clicking the timer and chose a name for the "timer interrupt handler > function".
uups, I didnt think "I usually don't (think), and my wife says its total disaster when I do" ;) I am afraid to get the int line out you need to define a real dummy peripheral that simple routes the pin to interrupt controller. then add this peripheral component, place the ports and connect. in the vhdl of the component you only have one wire-connection I should think sometimes sorry, you are right if there is no component driving interrupt you can not assign int handler either antti
antti@case2000.com (Antti Lukats) wrote in message news:<80a3aea5.0309030231.1a98e839@posting.google.com>...
> > Thanx for the reply. My question is more likely: Where, in what menu do you > > set an external input to be an interrupt source??? Where do you declare the > > name of the interrupt function??? With a timer you can do that by > > right-clicking the timer and chose a name for the "timer interrupt handler > > function". > > uups, I didnt think > "I usually don't (think), and my wife says its total disaster when I do" > ;) > > I am afraid to get the int line out you need to define a real dummy > peripheral that simple routes the pin to interrupt controller. > then add this peripheral component, place the ports and connect. > in the vhdl of the component you only have one wire-connection > > I should think sometimes sorry, you are right if there is no component > driving interrupt you can not assign int handler either > > antti
Hi, To set an external interrupt to be an interrupt source, there is no mechanism available in the GUI currently. But, you could add the following line to the MSS file after the version is declared : PARAMETER VERSION = 2.0.0 PARAMETER HW_SPEC_FILE = system.mhs PARAMETER INT_HANDLER = myint_handler, INT_PORT = myint_pin This will configure microblaze to call "myint_handler" whenever the external interrupt "myint_pin" interrupts microblaze. Also, this is assuming that "myint_pin" is directly connected to the interrupt port of microblaze without an interrupt controller. Hope this helps Sathya
"Sathya Thammanur" <sathyatm@yahoo.com> wrote in message
news:5ca58e96.0309040934.4be7d638@posting.google.com...
> antti@case2000.com (Antti Lukats) wrote in message
news:<80a3aea5.0309030231.1a98e839@posting.google.com>...
> > > Thanx for the reply. My question is more likely: Where, in what menu
do you
> > > set an external input to be an interrupt source??? Where do you
declare the
> > > name of the interrupt function??? With a timer you can do that by > > > right-clicking the timer and chose a name for the "timer interrupt
handler
> > > function". > > > > uups, I didnt think > > "I usually don't (think), and my wife says its total disaster when I do" > > ;) > > > > I am afraid to get the int line out you need to define a real dummy > > peripheral that simple routes the pin to interrupt controller. > > then add this peripheral component, place the ports and connect. > > in the vhdl of the component you only have one wire-connection > > > > I should think sometimes sorry, you are right if there is no component > > driving interrupt you can not assign int handler either > > > > antti > > Hi, > To set an external interrupt to be an interrupt source, there is no > mechanism available in the GUI currently. But, you could add the > following line to the MSS file after the version is declared : > > PARAMETER VERSION = 2.0.0 > PARAMETER HW_SPEC_FILE = system.mhs > PARAMETER INT_HANDLER = myint_handler, INT_PORT = myint_pin > > This will configure microblaze to call "myint_handler" whenever the > external interrupt "myint_pin" interrupts microblaze. Also, this is > assuming that "myint_pin" is directly connected to the interrupt port > of microblaze without an interrupt controller. > > Hope this helps > Sathya
Thank you all. That helped me some, but I am still getting CRAZY!!! Whenever I change something and tries to redraw the PBD window it just change my changes back to the original and nothing happens!!! Could I somehow switch this feature off in the EDK? John
[snip]
 > Thank you all. That helped me some, but I am still getting CRAZY!!!
 > Whenever I change something and tries to redraw the PBD window it just
 > change my changes back to the original and nothing happens!!! Could I
 > somehow switch this feature off in the EDK?
 >
 > John


John,

If you've got EDK 3.2 sp2 then you can turn this feature off by going to 
"Options -> Preferences" then selecting the top button "Redraw schematic 
layout to synchronize changes."  The .pbd will still come up when you 
open the project but I typically just close it and don't save changes.

Best regards,
Ryan Laity
Xilinx Applications

> Thank you all. That helped me some, but I am still getting CRAZY!!! > Whenever I change something and tries to redraw the PBD window it just > change my changes back to the original and nothing happens!!! Could I > somehow switch this feature off in the EDK?
I found the PBD 200% useless, so doing all modifications in add/edit cores dialog. After closing it I always say 'regenerate' it will redraw PBD then I close PBD and say overwrite MHS it works that way but agree is ANNOYING, no idea how to disable that PBD update ... antti http:/www.graphprd.com/forum
EDK 3.2 did have synchronization problems.  They have been solved in the 
EDK 6.1i release
which should be out in about a month.

Steve

Antti Lukats wrote:

>>Thank you all. That helped me some, but I am still getting CRAZY!!! >>Whenever I change something and tries to redraw the PBD window it just >>change my changes back to the original and nothing happens!!! Could I >>somehow switch this feature off in the EDK? >> >> > >I found the PBD 200% useless, so doing all modifications in add/edit cores >dialog. After closing it I always say 'regenerate' it will redraw PBD >then I close PBD and say overwrite MHS > >it works that way but agree is ANNOYING, no idea how to disable that >PBD update ... > >antti >http:/www.graphprd.com/forum > >