This firmware translates a PS/2 mouse to a USB mouse. The translator
firmware is entirely interrupt driven (with the exception of sending the
data via USB to the host.) An interrupt is generated when the PS/2 start
bit is received, at which time the firmware will begin its receive routine.
In addition to this interrupt, every 168ms a timer Overflow interrupts the
main program and implements one state of the mouse state machine. This
state machine handles sending bytes to and translating bytes received from
the PS/2 mouse automatically. All of this is done in the background while
the main program runs in the foreground. The only operation that the main
program implements is sending mouse data to the PC via USB.
VHDL 關(guān)于2DFFT設(shè)計(jì)程序
u scinode1 ∼ scinode9.vhd: Every SCI node RTL vhdl code. The details can be
seen in the following section.
u 2dfft.vhd: The top module includes these scinodes and form a 3x3 SCI Torus
network, and it support these sub-modules scinode1∼ scinode9 reset and clk
and global_cnt signals to synchronous the sub-modules to simplify the overall
design.
u proj2.wfc: VSS simulation result that is the same as the ModelSim simulation
result.
u Pro2_2.wfc: VSS simulation result of another test pattern can’t cause Overflow
situation.
* CONSTRAINTS
* This module does not handle data which is considered out of range by the
* application(i.e. fixed constants which represent error condition)
*
* Maximum weight value must be limited to 128 to prevent an Overflow
* condition during the calculation.
*
* The internal data type must be large enough to handle the calculations.
* The maximum possible internal value
* = Max Input Value * (weight - 1) + Max Input Value
* If a maximum weight of 128 is used, the internal data type should be 2
* times the size of the input data type.