90 likes | 105 Views
ECE 448: Lab 6 Using PicoBlaze Temperature Measurement Serial Communication. Sources. P. Chu, FPGA Prototyping by VHDL Examples Chapter 14, Picoblaze Overview Chapter 15, Picoblaze Assembly Code Development Chapter 16, Picoblaze I/O Interface
E N D
ECE 448: Lab 6 Using PicoBlaze Temperature Measurement Serial Communication
Sources • P. Chu, FPGA Prototyping by VHDL Examples • Chapter 14, Picoblaze Overview • Chapter 15, Picoblaze Assembly Code • Development • Chapter 16, Picoblaze I/O Interface • Chapter 17, Picoblaze Interrupt Interface ECE 448 – FPGA and ASIC Design with VHDL
INSTRUCTION ROM Buttons RAM_wen DATA RAM T_init interrupt we instruction address T_wen A[7..0] PICOBLAZE interrupt_ack INPUT_INTERFACE addr re port_id RAM_ren INPUT dout din out_port in_port A[7..0] A[7..0] T_init DO[7..0] DI[7..0] read_strobe write_strobe TA[7..0] A[7..0] TD[7..0] OUTPUT_INTERFACE ADDR_DECODER TEMP to DS1620 SSD3 SSD3_en, SSD2_en, SSD1_en, SSD0_en TEMP_CTRL_en, RAM_wen, RAM_ren SSD2 RST SSD1 DQ SSD0 TEMP_STATUS CLK TEMP_CTRL Four 7-segment displays register T_init T_wen
INPUT: 00 01 02 . . . 3F 40 41 42 43 44 45 46 FD FE FF 7 6 5 4 3 2 1 0 A b3 b2 b1 b0 A – button active (bit cleared by reading register INPUT or by interrupt_ack), b3-b0 – status of buttons 3 to 0 respectively; 1 means that the button was pressed. 64 x 8 DATA RAM TEMP_STATUS: 7 6 5 4 3 2 1 0 D MNO D – done: bit cleared by writing to register TEMP_CTRL, set after TEMP generates 64 8-bit numbers. MNO – current measurement number, changing from 0 to 63. INPUT SSD3 SSD2 TEMP_CTRL: SSD1 7 6 5 4 3 2 1 0 SSD0 M TEMP_STATUS TEMP_CTRL M – measure: after 1 is written to this bit, TEMP performs 64 temperature measurements, and stores the results in DATA RAM. . . . MAX MIN AVR
Task 1 – Browsing Mode Two 7-Segment Displays (in hexadecimal notation) (SSD3-SSD2) Address Data 00 01 02 03 04 05…. 3B 3C 3D 3E 3F 00 01 02 03 04 05…. 3B 3C 3D 3E 3F Current Address Value at Current Address Button 1 = Increment Address Button 0 = Decrement Address Two 7-Segment Displays (in hexadecimal notation) (SSD1-SSD0) 64x8 RAM
Task 2 – Editing Mode Two 7-Segment Displays (SSD3-SSD2) (in hexadecimal notation) Address Data 00 01 02 03 04 05…. 3B 3C 3D 3E 3F 00 01 02 03 04 05=>06…. 3B 3C 3D 3E 3F Value at Current Address Two 7-Segment Displays (SSD1-SSD0) (in hexadecimal notation) Current Address Button 1 = Increment Address Button 0 = Decrement Address Button 2= Edit Button 1 = Increment Data Button 0 = Decrement Data Button 2= Approve 64x8 RAM
Task 3 – Temperature Measurement Mode Address Data 00 01 02 03 04 05…. 3B 3C 3D 3E 3F 4D 4D 4E 4F 50 52…. 5F 60 62 63 64 Button 3 = Start 64 Temperature Measurements 64x8 RAM
Task 4 – Calculation Mode Address Data 00 01 02 03 04 05…. 3B 3C 3D 3E 3F FD FE FF 4D 4D 4E 4F 50 52…. 5F 60 62 63 64 64 4D 56 Button 3= calculating maximum, minimum, and average Maximum, minimum, and average are stored in memory locations at positions FD, FE, and FF respectively, and displayed using SSD3-SSD1 in hexadecimal notation. … MAX => MIN => AVR => 64x8 RAM
Introduction to Picoblaze Development Environment(Hands-on Session)