Project Ideas …anything digital? … something that’s “interesting enough?” What have people done? w Lots of variations on processors n Usually 16-bit n Usually custom RF, perhaps custom ALU n Usually distinctive I/O l R/W pins, memory mapped I/O, UART, VGA, LCD, PS/2, etc. w Some quite customized n CORDIC processor n Controller for a light-based toy n Stack-based processor n Communicating multiprocessor node 1
Processor Info w Lots of good information on the CS/ECE 3710 class web site n http://www.eng.utah.edu/~cs3710/ n OR http://www.ece.utah.edu/~kalla/index_3710.html Baseline 3710 ISA w ADD, ADDI, SUB, SUBI w CMP, CMPI w AND, ANDI, OR, ORI, XOR, XORI w MOV, MOVI w LSH, LSHI (restricted to shift of one) w LUI, LOAD, STOR w Bcond, Jcond, JAL • CS/EE 3710 • University of Utah 2
Class Encoding w In the handout on the web w Much more regular than real CR16 • CS/EE 3710 • University of Utah Memory Map w 16 bit PC and LOAD/STOR addresses n 64k addresses n Each address is a 16-bit word n So, 128k bytes of data, but organized as words l Clearly this needs to go off chip! n You probably need to reserve some I/O addresses l Up to you, but I recommend using the some top address bits l Upper 16k words (32kbytes) as I/O space? n You probably need to reserve some part of the address space for boot ROM l Up to you, but I recommend low addresses • CS/EE 3710 • University of Utah 3
Example Memory Map • I/O • FFFF • Word • Switches/LEDs • Top two address addresses • UART • 8000 • bits define regions? • 7FFF • Flash ROM? Glyphs? • C000 Ext. RAM • BFFF • Code/Data • Frame buffer? • 4k additional words • 4000 Split code/data • 3FFF • 16k words into ROM and SRAM • Code/Data (32k bytes) portions? • 0000 What have people done? w Application-specific circuits w Many look a little processor-like… n Bike speedometer/odometer n Basketball scoreboard display (to VGA output) n Fingernail pressure sensor n Musicman tone generator n Waveform generator n Encryption/decryption n Digital metronome 4
What have people done? w Circuits for parts of a more complex system n 2-way set-associative Cache controller with LRU replacement n Memory management unit for virtual memory system n Gshare branch predictor n Asynchronous FIFO n Asynchronous network interface n Network-on-chip router What have people done? w Hard-coded games – usually with VGA output n Snake n Bomb/Minesweeper n Pong n Tetris n Tic Tac Toe 5
What have people done? w Arithmetic circuits n Floating point multiplier n Floating point divider n Triangle intersection computation n Cross-product generator n Bilinear interpolation function unit Other ideas… w There are lots of interesting chips to interface to! n MAX7219 LED driver – drives up to 64 LEDs, can be chained together n LCD controller – many are based on a HD44780U controller so they’ll be a standard interface n Hobby servos are controlled by PWM n Stepper motor controllers – build a CNC controller? n Go to Sparkfun.com, Adafruit.com, or RobotShop.com and look around! w Lots of interesting protocols to explore n SPI, I2C, Serial (UART), VGA, PS/2, etc. 6
16-bit processor • Approx 18,500 transistors • 3mm on a side Another processor • 16-bit Processor, approx 27,000 transistors 7
Same Chip (no M2, M3) • 1.5mm x 3.0mm, 72 I/O pads Processor? 8
Processor ? Processor 9
Asynchronous FIFO Array multiplier with testing circuitry 10
Processor Waveform Generator 11
Pong Processor 12
I Don’t Remember … Minesweeper 13
Bike Computer Stack Processor 14
Snake Game SRAM 15
X10 home automation controller DES encrypt/decrypt 16
16-bit CORDIC processor More Pictures of Chips 17
More Pictures of Chips 18
Recommend
More recommend