Asserting IRQs

Joined
Oct 5, 2007
Messages
1
Reaction score
0
I have a CPLD design using IRQ signals connected to the PC/104 (ISA) bus of a single-board computer (SBC). The SBC has pullups on these IRQs and an interrupt is detected as a low-to-high transition.

When interrupts are disabled, I want to tristate all of these signals.

When interrupts are enabled, I want to be able to prep one of the IRQs by driving it low and then on activation, either drive it high or tristate it (both ways are allowed). The ISR on the host will clear the interrupt.

Currently, I have five IRQ lines (3-7) grouped as a std_logic_vector. At the top, they're set to Z. Then in the appropriate process, the configured IRQ is set to '0' and then activated by setting to 'Z' or '1'.

IRQ : out std_logic_vector (7 downto 3); -- Interrupt ReQuests
...
IRQ <= (others => 'Z'); -- there are pullups on system bus
...
IRQ(5) <= '0'; -- get ready to assert
...
IRQ(5) <= 'Z'; -- assert interrupt

Should this be possible? The compiler barfs all over this with "Found combinational loop of 1 nodes".

I'm fairly new at this, but I'd appreciate any feedback.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,431
Messages
2,571,677
Members
48,796
Latest member
Greg L.

Latest Threads

Top