USB Device Programming class project. This project allows a Python/Tk program running on a PC host to monitor/control a test-CPU programmed into an altera development board.

Dependencies:   C12832_lcd USBDevice mbed-rtos mbed mmSPI

Committer:
gatedClock
Date:
Sun Sep 01 22:02:19 2013 +0000
Revision:
12:d10f526ca443
Parent:
7:d1aca9ccbab8
cpu add comments.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gatedClock 3:659ffc90b59e 1 /*----------------------------------copyright---------------------------------*/
gatedClock 7:d1aca9ccbab8 2 // licensed for personal and academic use.
gatedClock 7:d1aca9ccbab8 3 // commercial use must be approved by the account-holder of
gatedClock 7:d1aca9ccbab8 4 // gated.clock@gmail.com
gatedClock 3:659ffc90b59e 5 /*-----------------------------------module-----------------------------------*/
gatedClock 7:d1aca9ccbab8 6 module scan_08 // shadow register.
gatedClock 3:659ffc90b59e 7 (
gatedClock 7:d1aca9ccbab8 8 oParallel, // parallel-output data.
gatedClock 7:d1aca9ccbab8 9 iParallel, // parallel-input data.
gatedClock 7:d1aca9ccbab8 10 oSerial, // serial-output data.
gatedClock 7:d1aca9ccbab8 11 iSerial, // serial-input data.
gatedClock 7:d1aca9ccbab8 12 iLoadEnable, // parallel-load-enable.
gatedClock 7:d1aca9ccbab8 13 iShiftEnable, // serial-shift-enable.
gatedClock 7:d1aca9ccbab8 14 iResetN, // synchronous reset*.
gatedClock 7:d1aca9ccbab8 15 iClk // module clock.
gatedClock 3:659ffc90b59e 16 );
gatedClock 3:659ffc90b59e 17 /*--------------------------------description-----------------------------------
gatedClock 7:d1aca9ccbab8 18 an 8-bit parallel shift-register.
gatedClock 3:659ffc90b59e 19 -------------------------------------notes--------------------------------------
gatedClock 7:d1aca9ccbab8 20 shifting is LSB->MSB.
gatedClock 3:659ffc90b59e 21 ------------------------------------defines-----------------------------------*/
gatedClock 3:659ffc90b59e 22 /*-----------------------------------ports------------------------------------*/
gatedClock 7:d1aca9ccbab8 23 output [ 7:0] oParallel; // parallel-output data.
gatedClock 7:d1aca9ccbab8 24 input [ 7:0] iParallel; // parallel-input data.
gatedClock 7:d1aca9ccbab8 25 output oSerial; // serial-output data.
gatedClock 7:d1aca9ccbab8 26 input iSerial; // serial-input data.
gatedClock 7:d1aca9ccbab8 27 input iLoadEnable; // parallel-load-enable.
gatedClock 7:d1aca9ccbab8 28 input iShiftEnable; // serial-shift-enable.
gatedClock 7:d1aca9ccbab8 29 input iResetN; // synchronous reset*.
gatedClock 7:d1aca9ccbab8 30 input iClk; // module clock.
gatedClock 3:659ffc90b59e 31 /*-----------------------------------wires------------------------------------*/
gatedClock 7:d1aca9ccbab8 32 wire [ 7:0] oParallel; // parallel-output data.
gatedClock 7:d1aca9ccbab8 33 wire [ 7:0] iParallel; // parallel-input data.
gatedClock 7:d1aca9ccbab8 34 wire [ 7:0] wParallelIn; // select the parallel input.
gatedClock 7:d1aca9ccbab8 35 wire oSerial; // serial-output data.
gatedClock 7:d1aca9ccbab8 36 wire iSerial; // serial-input data.
gatedClock 7:d1aca9ccbab8 37 wire iLoadEnable; // parallel-load-enable.
gatedClock 7:d1aca9ccbab8 38 wire iShiftEnable; // serial-shift-enable.
gatedClock 7:d1aca9ccbab8 39 wire iResetN; // synchronous reset*.
gatedClock 7:d1aca9ccbab8 40 wire iClk; // module clock.
gatedClock 3:659ffc90b59e 41 /*---------------------------------registers----------------------------------*/
gatedClock 7:d1aca9ccbab8 42 reg [ 7:0] rRegister; // the register.
gatedClock 3:659ffc90b59e 43 /*---------------------------------variables----------------------------------*/
gatedClock 3:659ffc90b59e 44 /*---------------------------------parameters---------------------------------*/
gatedClock 3:659ffc90b59e 45 /*-----------------------------------clocks-----------------------------------*/
gatedClock 3:659ffc90b59e 46 /*---------------------------------instances----------------------------------*/
gatedClock 3:659ffc90b59e 47 /*-----------------------------------logic------------------------------------*/
gatedClock 7:d1aca9ccbab8 48 always @ (posedge iClk or negedge iResetN)
gatedClock 7:d1aca9ccbab8 49 begin
gatedClock 7:d1aca9ccbab8 50 if (!iResetN) rRegister <= 8'h00;
gatedClock 7:d1aca9ccbab8 51 else if (iLoadEnable) rRegister <= iParallel;
gatedClock 7:d1aca9ccbab8 52 else if (iShiftEnable) rRegister <= {rRegister[6:0], iSerial};
gatedClock 7:d1aca9ccbab8 53 else rRegister <= rRegister;
gatedClock 7:d1aca9ccbab8 54 end
gatedClock 7:d1aca9ccbab8 55
gatedClock 7:d1aca9ccbab8 56 assign oParallel = rRegister; // propagate parallel-out.
gatedClock 7:d1aca9ccbab8 57 assign oSerial = rRegister[7]; // propagate serial-out.
gatedClock 7:d1aca9ccbab8 58 /*-------------------------------*/endmodule/*--------------------------------*/
gatedClock 7:d1aca9ccbab8 59
gatedClock 7:d1aca9ccbab8 60
gatedClock 3:659ffc90b59e 61
gatedClock 7:d1aca9ccbab8 62
gatedClock 7:d1aca9ccbab8 63
gatedClock 7:d1aca9ccbab8 64
gatedClock 7:d1aca9ccbab8 65
gatedClock 7:d1aca9ccbab8 66
gatedClock 7:d1aca9ccbab8 67
gatedClock 7:d1aca9ccbab8 68
gatedClock 7:d1aca9ccbab8 69
gatedClock 7:d1aca9ccbab8 70
gatedClock 7:d1aca9ccbab8 71
gatedClock 7:d1aca9ccbab8 72
gatedClock 7:d1aca9ccbab8 73
gatedClock 7:d1aca9ccbab8 74
gatedClock 7:d1aca9ccbab8 75