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:25:25 2013 +0000
Revision:
15:b8df590ce219
Parent:
7:d1aca9ccbab8
update for embedded RTOS 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 counter_08
gatedClock 3:659ffc90b59e 7 (
gatedClock 7:d1aca9ccbab8 8 oCount, // counter state.
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 iCountEnable, // count-increment enable.
gatedClock 7:d1aca9ccbab8 23 iResetN, // synchronous reset*.
gatedClock 7:d1aca9ccbab8 24 iClk // module clock.
gatedClock 3:659ffc90b59e 25 );
gatedClock 3:659ffc90b59e 26 /*--------------------------------description-----------------------------------
gatedClock 7:d1aca9ccbab8 27 an 8-bit preloadable counter.
gatedClock 3:659ffc90b59e 28 -------------------------------------notes--------------------------------------
gatedClock 7:d1aca9ccbab8 29 shifting is LSB->MSB.
gatedClock 3:659ffc90b59e 30 ------------------------------------defines-----------------------------------*/
gatedClock 3:659ffc90b59e 31 /*-----------------------------------ports------------------------------------*/
gatedClock 7:d1aca9ccbab8 32 output [ 7:0] oCount; // counter state.
gatedClock 7:d1aca9ccbab8 33 input [ 7:0] iParallel7; // parallel-input data.
gatedClock 7:d1aca9ccbab8 34 input [ 7:0] iParallel6; // parallel-input data.
gatedClock 7:d1aca9ccbab8 35 input [ 7:0] iParallel5; // parallel-input data.
gatedClock 7:d1aca9ccbab8 36 input [ 7:0] iParallel4; // parallel-input data.
gatedClock 7:d1aca9ccbab8 37 input [ 7:0] iParallel3; // parallel-input data.
gatedClock 7:d1aca9ccbab8 38 input [ 7:0] iParallel2; // parallel-input data.
gatedClock 7:d1aca9ccbab8 39 input [ 7:0] iParallel1; // parallel-input data.
gatedClock 7:d1aca9ccbab8 40 input [ 7:0] iParallel0; // parallel-input data.
gatedClock 7:d1aca9ccbab8 41 input [ 2:0] iSel; // select the parallel input.
gatedClock 7:d1aca9ccbab8 42 output oSerial; // serial-output data.
gatedClock 7:d1aca9ccbab8 43 input iSerial; // serial-input data.
gatedClock 7:d1aca9ccbab8 44 input iLoadEnable; // parallel-load-enable.
gatedClock 7:d1aca9ccbab8 45 input iShiftEnable; // serial-shift-enable.
gatedClock 7:d1aca9ccbab8 46 input iCountEnable; // count-increment enable.
gatedClock 7:d1aca9ccbab8 47 input iResetN; // synchronous reset*.
gatedClock 7:d1aca9ccbab8 48 input iClk; // module clock.
gatedClock 3:659ffc90b59e 49 /*-----------------------------------wires------------------------------------*/
gatedClock 7:d1aca9ccbab8 50 wire [ 7:0] oCount; // counter state.
gatedClock 7:d1aca9ccbab8 51 wire [ 7:0] iParallel7; // parallel-input data.
gatedClock 7:d1aca9ccbab8 52 wire [ 7:0] iParallel6; // parallel-input data.
gatedClock 7:d1aca9ccbab8 53 wire [ 7:0] iParallel5; // parallel-input data.
gatedClock 7:d1aca9ccbab8 54 wire [ 7:0] iParallel4; // parallel-input data.
gatedClock 7:d1aca9ccbab8 55 wire [ 7:0] iParallel3; // parallel-input data.
gatedClock 7:d1aca9ccbab8 56 wire [ 7:0] iParallel2; // parallel-input data.
gatedClock 7:d1aca9ccbab8 57 wire [ 7:0] iParallel1; // parallel-input data.
gatedClock 7:d1aca9ccbab8 58 wire [ 7:0] iParallel0; // parallel-input data.
gatedClock 7:d1aca9ccbab8 59 wire [ 2:0] iSel; // select the parallel input.
gatedClock 7:d1aca9ccbab8 60 wire [ 7:0] wParallelIn; // select the parallel input.
gatedClock 7:d1aca9ccbab8 61 wire oSerial; // serial-output data.
gatedClock 7:d1aca9ccbab8 62 wire iSerial; // serial-input data.
gatedClock 7:d1aca9ccbab8 63 wire iLoadEnable; // parallel-load-enable.
gatedClock 7:d1aca9ccbab8 64 wire iShiftEnable; // serial-shift-enable.
gatedClock 7:d1aca9ccbab8 65 wire iCountEnable; // count-increment enable.
gatedClock 7:d1aca9ccbab8 66 wire iResetN; // synchronous reset*.
gatedClock 7:d1aca9ccbab8 67 wire iClk; // module clock.
gatedClock 3:659ffc90b59e 68 /*---------------------------------registers----------------------------------*/
gatedClock 7:d1aca9ccbab8 69 reg [ 7:0] rRegister; // the counter state.
gatedClock 3:659ffc90b59e 70 /*---------------------------------variables----------------------------------*/
gatedClock 3:659ffc90b59e 71 /*---------------------------------parameters---------------------------------*/
gatedClock 3:659ffc90b59e 72 /*-----------------------------------clocks-----------------------------------*/
gatedClock 3:659ffc90b59e 73 /*---------------------------------instances----------------------------------*/
gatedClock 7:d1aca9ccbab8 74 mux8x8 U01_mux8x8 // data-input selection.
gatedClock 3:659ffc90b59e 75 (
gatedClock 7:d1aca9ccbab8 76 .iDin7(iParallel7),
gatedClock 7:d1aca9ccbab8 77 .iDin6(iParallel6),
gatedClock 7:d1aca9ccbab8 78 .iDin5(iParallel5),
gatedClock 7:d1aca9ccbab8 79 .iDin4(iParallel4),
gatedClock 7:d1aca9ccbab8 80 .iDin3(iParallel3),
gatedClock 7:d1aca9ccbab8 81 .iDin2(iParallel2),
gatedClock 7:d1aca9ccbab8 82 .iDin1(iParallel1),
gatedClock 7:d1aca9ccbab8 83 .iDin0(iParallel0),
gatedClock 7:d1aca9ccbab8 84 .iSel (iSel),
gatedClock 7:d1aca9ccbab8 85 .oDout(wParallelIn)
gatedClock 3:659ffc90b59e 86 );
gatedClock 3:659ffc90b59e 87 /*-----------------------------------logic------------------------------------*/
gatedClock 7:d1aca9ccbab8 88 always @ (posedge iClk or negedge iResetN)
gatedClock 7:d1aca9ccbab8 89 begin
gatedClock 7:d1aca9ccbab8 90 if (!iResetN) rRegister <= 8'h00;
gatedClock 7:d1aca9ccbab8 91 else if (iLoadEnable) rRegister <= wParallelIn;
gatedClock 7:d1aca9ccbab8 92 else if (iShiftEnable) rRegister <= {rRegister[6:0], iSerial};
gatedClock 7:d1aca9ccbab8 93 else if (iCountEnable) rRegister <= rRegister + 1'b1;
gatedClock 7:d1aca9ccbab8 94 else rRegister <= rRegister;
gatedClock 7:d1aca9ccbab8 95 end
gatedClock 3:659ffc90b59e 96
gatedClock 7:d1aca9ccbab8 97 assign oCount = rRegister; // propagate counter state.
gatedClock 7:d1aca9ccbab8 98 assign oSerial = rRegister[7]; // propagate serial-out.
gatedClock 3:659ffc90b59e 99 /*-------------------------------*/endmodule/*--------------------------------*/
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 3:659ffc90b59e 112
gatedClock 3:659ffc90b59e 113
gatedClock 3:659ffc90b59e 114
gatedClock 3:659ffc90b59e 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
gatedClock 7:d1aca9ccbab8 129
gatedClock 7:d1aca9ccbab8 130
gatedClock 7:d1aca9ccbab8 131
gatedClock 7:d1aca9ccbab8 132