Embedded RTOS 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-2 watchdog

Fork of USB_device_project by Mike Moore

Committer:
gatedClock
Date:
Tue Sep 17 19:07:00 2013 +0000
Revision:
13:7e1688393abc
Parent:
7:d1aca9ccbab8
updates for RTOS class project.

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 reg_08
gatedClock 3:659ffc90b59e 7 (
gatedClock 7:d1aca9ccbab8 8 oParallel, // parallel-output data.
gatedClock 7:d1aca9ccbab8 9 iParallel7, // parallel-input data.
gatedClock 7:d1aca9ccbab8 10 iParallel6, // parallel-input data.
gatedClock 7:d1aca9ccbab8 11 iParallel5, // parallel-input data.
gatedClock 7:d1aca9ccbab8 12 iParallel4, // parallel-input data.
gatedClock 7:d1aca9ccbab8 13 iParallel3, // parallel-input data.
gatedClock 7:d1aca9ccbab8 14 iParallel2, // parallel-input data.
gatedClock 7:d1aca9ccbab8 15 iParallel1, // parallel-input data.
gatedClock 7:d1aca9ccbab8 16 iParallel0, // parallel-input data.
gatedClock 7:d1aca9ccbab8 17 iSel, // select the parallel input.
gatedClock 7:d1aca9ccbab8 18 oSerial, // serial-output data.
gatedClock 7:d1aca9ccbab8 19 iSerial, // serial-input data.
gatedClock 7:d1aca9ccbab8 20 iLoadEnable, // parallel-load-enable.
gatedClock 7:d1aca9ccbab8 21 iShiftEnable, // serial-shift-enable.
gatedClock 7:d1aca9ccbab8 22 iResetN, // synchronous reset*.
gatedClock 7:d1aca9ccbab8 23 iClk // module clock.
gatedClock 3:659ffc90b59e 24 );
gatedClock 3:659ffc90b59e 25 /*--------------------------------description-----------------------------------
gatedClock 7:d1aca9ccbab8 26 an 8-bit parallel shift-register with 8 selectable input buses.
gatedClock 3:659ffc90b59e 27 -------------------------------------notes--------------------------------------
gatedClock 7:d1aca9ccbab8 28 shifting is LSB->MSB.
gatedClock 3:659ffc90b59e 29 ------------------------------------defines-----------------------------------*/
gatedClock 3:659ffc90b59e 30 /*-----------------------------------ports------------------------------------*/
gatedClock 7:d1aca9ccbab8 31 output [ 7:0] oParallel; // parallel-output data.
gatedClock 7:d1aca9ccbab8 32 input [ 7:0] iParallel7; // parallel-input data.
gatedClock 7:d1aca9ccbab8 33 input [ 7:0] iParallel6; // parallel-input data.
gatedClock 7:d1aca9ccbab8 34 input [ 7:0] iParallel5; // parallel-input data.
gatedClock 7:d1aca9ccbab8 35 input [ 7:0] iParallel4; // parallel-input data.
gatedClock 7:d1aca9ccbab8 36 input [ 7:0] iParallel3; // parallel-input data.
gatedClock 7:d1aca9ccbab8 37 input [ 7:0] iParallel2; // parallel-input data.
gatedClock 7:d1aca9ccbab8 38 input [ 7:0] iParallel1; // parallel-input data.
gatedClock 7:d1aca9ccbab8 39 input [ 7:0] iParallel0; // parallel-input data.
gatedClock 7:d1aca9ccbab8 40 input [ 2:0] iSel; // select the parallel input.
gatedClock 7:d1aca9ccbab8 41 output oSerial; // serial-output data.
gatedClock 7:d1aca9ccbab8 42 input iSerial; // serial-input data.
gatedClock 7:d1aca9ccbab8 43 input iLoadEnable; // parallel-load-enable.
gatedClock 7:d1aca9ccbab8 44 input iShiftEnable; // serial-shift-enable.
gatedClock 7:d1aca9ccbab8 45 input iResetN; // synchronous reset*.
gatedClock 7:d1aca9ccbab8 46 input iClk; // module clock.
gatedClock 3:659ffc90b59e 47 /*-----------------------------------wires------------------------------------*/
gatedClock 7:d1aca9ccbab8 48 wire [ 7:0] oParallel; // parallel-output data.
gatedClock 7:d1aca9ccbab8 49 wire [ 7:0] iParallel7; // parallel-input data.
gatedClock 7:d1aca9ccbab8 50 wire [ 7:0] iParallel6; // parallel-input data.
gatedClock 7:d1aca9ccbab8 51 wire [ 7:0] iParallel5; // parallel-input data.
gatedClock 7:d1aca9ccbab8 52 wire [ 7:0] iParallel4; // parallel-input data.
gatedClock 7:d1aca9ccbab8 53 wire [ 7:0] iParallel3; // parallel-input data.
gatedClock 7:d1aca9ccbab8 54 wire [ 7:0] iParallel2; // parallel-input data.
gatedClock 7:d1aca9ccbab8 55 wire [ 7:0] iParallel1; // parallel-input data.
gatedClock 7:d1aca9ccbab8 56 wire [ 7:0] iParallel0; // parallel-input data.
gatedClock 7:d1aca9ccbab8 57 wire [ 2:0] iSel; // select the parallel input.
gatedClock 7:d1aca9ccbab8 58 wire [ 7:0] wParallelIn; // select the parallel input.
gatedClock 7:d1aca9ccbab8 59 wire oSerial; // serial-output data.
gatedClock 7:d1aca9ccbab8 60 wire iSerial; // serial-input data.
gatedClock 7:d1aca9ccbab8 61 wire iLoadEnable; // parallel-load-enable.
gatedClock 7:d1aca9ccbab8 62 wire iShiftEnable; // serial-shift-enable.
gatedClock 7:d1aca9ccbab8 63 wire iResetN; // synchronous reset*.
gatedClock 7:d1aca9ccbab8 64 wire iClk; // module clock.
gatedClock 3:659ffc90b59e 65 /*---------------------------------registers----------------------------------*/
gatedClock 7:d1aca9ccbab8 66 reg [ 7:0] rRegister; // the register.
gatedClock 3:659ffc90b59e 67 /*---------------------------------variables----------------------------------*/
gatedClock 3:659ffc90b59e 68 /*---------------------------------parameters---------------------------------*/
gatedClock 3:659ffc90b59e 69 /*-----------------------------------clocks-----------------------------------*/
gatedClock 3:659ffc90b59e 70 /*---------------------------------instances----------------------------------*/
gatedClock 7:d1aca9ccbab8 71 mux8x8 U01_mux8x8 // data-input selection.
gatedClock 3:659ffc90b59e 72 (
gatedClock 7:d1aca9ccbab8 73 .iDin7(iParallel7),
gatedClock 7:d1aca9ccbab8 74 .iDin6(iParallel6),
gatedClock 7:d1aca9ccbab8 75 .iDin5(iParallel5),
gatedClock 7:d1aca9ccbab8 76 .iDin4(iParallel4),
gatedClock 7:d1aca9ccbab8 77 .iDin3(iParallel3),
gatedClock 7:d1aca9ccbab8 78 .iDin2(iParallel2),
gatedClock 7:d1aca9ccbab8 79 .iDin1(iParallel1),
gatedClock 7:d1aca9ccbab8 80 .iDin0(iParallel0),
gatedClock 7:d1aca9ccbab8 81 .iSel (iSel),
gatedClock 7:d1aca9ccbab8 82 .oDout(wParallelIn)
gatedClock 3:659ffc90b59e 83 );
gatedClock 3:659ffc90b59e 84 /*-----------------------------------logic------------------------------------*/
gatedClock 7:d1aca9ccbab8 85 always @ (posedge iClk or negedge iResetN)
gatedClock 7:d1aca9ccbab8 86 begin
gatedClock 7:d1aca9ccbab8 87 if (!iResetN) rRegister <= 8'h00;
gatedClock 7:d1aca9ccbab8 88 else if (iLoadEnable) rRegister <= wParallelIn;
gatedClock 7:d1aca9ccbab8 89 else if (iShiftEnable) rRegister <= {rRegister[6:0], iSerial};
gatedClock 7:d1aca9ccbab8 90 else rRegister <= rRegister;
gatedClock 7:d1aca9ccbab8 91 end
gatedClock 3:659ffc90b59e 92
gatedClock 7:d1aca9ccbab8 93 assign oParallel = rRegister; // propagate parallel-out.
gatedClock 7:d1aca9ccbab8 94 assign oSerial = rRegister[7]; // propagate serial-out.
gatedClock 3:659ffc90b59e 95 /*-------------------------------*/endmodule/*--------------------------------*/
gatedClock 3:659ffc90b59e 96
gatedClock 3:659ffc90b59e 97
gatedClock 3:659ffc90b59e 98
gatedClock 3:659ffc90b59e 99
gatedClock 3:659ffc90b59e 100
gatedClock 3:659ffc90b59e 101
gatedClock 3:659ffc90b59e 102
gatedClock 3:659ffc90b59e 103
gatedClock 3:659ffc90b59e 104
gatedClock 3:659ffc90b59e 105
gatedClock 3:659ffc90b59e 106
gatedClock 3:659ffc90b59e 107
gatedClock 3:659ffc90b59e 108
gatedClock 3:659ffc90b59e 109
gatedClock 3:659ffc90b59e 110
gatedClock 3:659ffc90b59e 111
gatedClock 7:d1aca9ccbab8 112
gatedClock 7:d1aca9ccbab8 113
gatedClock 7:d1aca9ccbab8 114
gatedClock 7:d1aca9ccbab8 115
gatedClock 7:d1aca9ccbab8 116
gatedClock 7:d1aca9ccbab8 117
gatedClock 7:d1aca9ccbab8 118
gatedClock 7:d1aca9ccbab8 119
gatedClock 7:d1aca9ccbab8 120
gatedClock 7:d1aca9ccbab8 121
gatedClock 7:d1aca9ccbab8 122
gatedClock 7:d1aca9ccbab8 123
gatedClock 7:d1aca9ccbab8 124
gatedClock 7:d1aca9ccbab8 125
gatedClock 7:d1aca9ccbab8 126
gatedClock 7:d1aca9ccbab8 127
gatedClock 7:d1aca9ccbab8 128