This project simulates 8259A PIC behavior using verilog, PIC is short for Programmable Interrupt Controller. The design was inspired from the Intel datasheet with some modifications.
Our lovely PIC 8259A is designed to be:
Control logic block diagram, the mastermind of the PIC, takes flags from R/W logic, parses the data to give it to other blocks
Read write logic block diagram, this block deals with 8086 directly, recieving command words, writing them and sending flags to the control logic to make all blocks initialize their states and work correctly
To serve an interrupt, you have to notice it first. Handling multiple interrupts at the same time determining which has the highest priority, that is part of the Interrupt Logic Module's job
Instead of just 8 devices connected to the PIC, we can extend that up to 64 devices using the Cascade Logic Module
All command words written | ICW3 and ICW4 aren't written |
ICW3 isn't written | ICW4 isn't written |
Name | ID | GitHub username | Contribution |
---|---|---|---|
Abdullah Mohammed | 2001803 | AntiHexCode | Control Logic, Read Logic, PIC8259A, Cascade Logic, Interrupt Logic |
Ahmad Mahfouz | 2002238 | rye141200 | Write Logic,Control logic, PIC8259A, Report |
Mohammed Mostafa | 2001299 | mohamed-most | Interrupt Logic, Report |