LED Light Show Critical Design ReviewSystem OverviewSystem LimitsManual ModeSerial-ModeSystem Block DiagramSchematic of LED boardsFPGA Internal SchematicModularityState MachineLCD controllerDual-Port RAMLED controllerData ReaderExample VHDLSchematics from VHDLManual-mode WriterSerial-Mode WriterRAM Input SwitcherRAM output switcherStored DataPattern ChangerRS-232 controllerParts ListScheduleGoalsDivision of Labor?LED Light ShowLED Light ShowCritical Design ReviewCritical Design ReviewTeam LitMichael HattScott ButlerKristin HaeuslerBrock SmithSystem OverviewSystem OverviewWe are using a Spartan 3 controller board to output a light pattern to 4 LED boards.Each board contains 16 sets of red, green, and blue LEDsEach LED will have 8 bit varying levels of brightness (256 shades). Theoretically each set of 3 LEDs will be able to display 256^3-almost 17 million colors! (if the color blends, BIG if)•2 modes:1. Manual-outputs one of several stored patterns chosen by the user.2. Serial-mode-FPGA takes input from the computer and outputs a corresponding pattern to the LED boards.System LimitsSystem LimitsThe Limit of the system is the shift registers on the LED boardsThese boards run reliably at a speed of 5 MHzThe latch rate will then depend on the amount of boards daisy chained together.For 4 boards the latch rate is 26 kHzWe will go on to the section of the pattern for each LED at 101 Hz, this the is the “refresh rate”All of these frequencies are much faster than the eye can register changeManual ModeManual ModeUser will choose between three pre-determined patterns.Only the initial states of the LEDs will be stored on the FPGA. The rest of the pattern will be determined by feeding the output through various logic gates and looping the new pattern back into the RAM. This way the pattern will change every cycle.Serial-ModeSerial-ModeFPGA will take RS-232 input, convert into usable data, and output corresponding pattern to LEDs.The user programs a pattern from a PC, we will use the hyper terminal but it could be expanded, which is then sent through a RS-232 port to the FPGA.System Block DiagramSystem Block DiagramSchematic of LED boardsSchematic of LED boardsSER14SRCLK11SRCLR10RCLK12G13QA15QB1QC2QD3QE4QF5QG6QH7QH9SE R14SRCLK11SRCLR10RCLK12G13QA15QB1QC2QD3QE4QF5QG6QH7QH9SER14SRCLK11SRCLR10RCLK12G13QA15QB1QC2QD3QE4QF5QG6QH7QH9SER14SRCLK11SRCLR10RCLK12G13QA15QB1QC2QD3QE4QF5QG6QH7QH9SER14SRCLK11SRCLR10RCLK12G13QA15QB1QC2QD3QE4QF5QG6QH7QH9SE R14SRCLK11SRCLR10RCLK12G13QA15QB1QC2QD3QE4QF5QG6QH7QH9SER14SRCLK11SRCLR10RCLK12G13QA15QB1QC2QD3QE4QF5QG6QH7QH974HC59574HC59574HC595 74HC59574HC59574HC59574HC595N/CN/CN/CDataN/CN/CN/CN/CLatch LatchDataClockN/CClockN/CN/CN/CN/CN/CN/CFPGA Internal SchematicFPGA Internal SchematicModularityModularityParts repeated for each set of boards:–Reader,Manual Writer, Switchers, RAM, LED controller, Pattern changerSingle-use parts: –State Machine, Stored patterns, RS-232 Controller, Computer Writer, LCD ControllerState MachineState MachineTakes an input from user keypad–User will press button to change state (mode)Outputs the current state to nearly every block of the controller6 states: 3 pre-programmed patterns, serial mode, initialization, and resetLCD controllerLCD controllerInputs: Current StateOutputs: Sends data to LCDOutputs data in ASCII format to display the current mode on the LCD, according to the State Machine.Dual-Port RAMDual-Port RAMInputs: RAM control signalsOutputs: Data being read to LED board controllerWe are using two 1x1536 bit chunks of RAM (4 boards*48 LEDs/board *8 bits/LED =1536) to store patterns which are output to LEDs. Each byte of data determines the intensity/shade of each LEDOne half of the RAM will read in data while the other simultaneously reads out data, as determined by the switchers.Using dual-port RAM allows us to create manual-mode patterns, via the feedback loop, without having to use massive amounts of RAM to store a sustained pattern.LED controllerLED controllerInputs: Pattern data from RAMOutputs: Clock, Serial data and latch signalTakes the data from RAM.Determines if LED should get a high or low and then shifts out the correct bit.After shifting 192 bits it triggers a latch to display the patternAfter 256 cycles it moves to the set of dataThe LED value determines the fraction of the 256 cycles that the LED will be turned on, so as to give the appropriate shadeData ReaderData ReaderInputs: Clock, ResetOutputs: Address and count informationTells RAM the address of the data that is to be sent to the LED board controllerWhen the data is ready, a “ready” signal will also be sent to the controllerCycles through 192 addresses, then returns to first addressExample VHDLExample VHDLSchematics from VHDLSchematics from VHDLManual-mode WriterManual-mode WriterInputs: Pre-programmed initial-state pattern, current state, logical pattern changer.Outputs: Address info, write enable, data from inputWhen activated by state machine, the writer takes pre-programmed pattern, then after one cycle, takes the altered pattern from the logic changer, and writes it into the RAM.Main purpose is to write new data to RAM, while other half of RAM is being displayedSerial-Mode WriterSerial-Mode WriterInputs: RS-232 data, state machineOutputs: Address, data, write enableTakes converted RS-232 input and writes it into the RAM when activated by the state machineRAM Input SwitcherRAM Input SwitcherInputs: Data reader outputs, manual and serial-mode writer outputsOutputs to RAMRoutes all data and signals to the appropriate half of the RAMContinuously switches between the two halves of the RAM at the correct timeRAM output switcherRAM output switcherInputs: Outputs of RAMOutputs: Data and control signals being read to LED controllerTakes output data from RAM and outputs data from one of the two halves of RAM, in an alternating manner.Synchronous with the input switcher to assure that one chunk of RAM is reading in data while the other chunk is outputting data.Stored DataStored DataNo inputsOutputs: Data to be written to RAMStores initial data patterns for first cycle of manual modeOnly stores 4*48 bytes of dataThe entire duration of the pattern is determined by this initial dataPattern ChangerPattern ChangerInputs: Current State, Data being read to LED
View Full Document