48
REGISTER MANAGMENT TOOL Preformed by: Liat Honig Nitzan Carmel Supervisor: Moshe Porian Date: 29/1/2012 winter semester 2011 Duration: One semester Middle presentation

REGISTER MANAGMENT TOOL

  • Upload
    ting

  • View
    33

  • Download
    4

Embed Size (px)

DESCRIPTION

Middle presentation. REGISTER MANAGMENT TOOL. Preformed by: Liat Honig Nitzan Carmel Supervisor: Moshe Porian Date: 29/1/2012 winter semester 2011 Duration: One semester. Dress Specifications: Color: White Fabric: Lace Length: Long. Motivation:. - PowerPoint PPT Presentation

Citation preview

Page 1: REGISTER MANAGMENT TOOL

REGISTER MANAGMENT TOOL

Preformed by: Liat Honig Nitzan Carmel

Supervisor: Moshe Porian

Date: 29/1/2012 winter semester 2011

Duration: One semester

Middle presentation

Page 2: REGISTER MANAGMENT TOOL

Dress Specifications: Color: White Fabric: Lace Length: Long

Different designer - Different dress!

Motivation:

Page 3: REGISTER MANAGMENT TOOL

Background

Different teams use the register HSID

But each team creates their own registers code… WHY?!?

Page 4: REGISTER MANAGMENT TOOL

Automatically generates registers according to the required specification.

The Solution – a Register Management Tool

Creates unity in the registers VHD files

Enables REUSE

Saves money and resources

Page 5: REGISTER MANAGMENT TOOL

Manages the registers through the entire project

Creates documentation for the components created Leads to an organized – HSID

The Solution – a Register Management Tool

Alarms in case of incorrect input

Page 6: REGISTER MANAGMENT TOOL

Project Specifications

1. Writing a GUI interface through which the user will determine a variety of attributes.

GUI demo

Page 7: REGISTER MANAGMENT TOOL

Project Specifications

1. Writing a GUI interface through which the user will determine a variety of attributes.

GUI demo

2. Interactivity - The tool will provide feedback for user errors end will provide a summary output.

Page 8: REGISTER MANAGMENT TOOL

Project Specifications

1. Writing a GUI interface through which the user will determine a variety of attributes.

3. VHDL: VHD files1 Local Bus

Master

2 Simulation Environment

3

2. Interactivity - The tool will provide feedback for user errors end will provide a summary output.

GUI demo

Page 9: REGISTER MANAGMENT TOOL

Project Specifications

1. Writing a GUI interface through which the user will determine a variety of attributes.

4. No special license will be needed to operate the tool, an EXE file will be given to the user.

3. VHDL: VHD files1 Local Bus

Master

2 Simulation Environment

3

2. Interactivity - The tool will provide feedback for user errors end will provide a summary output.

GUI demo

Page 10: REGISTER MANAGMENT TOOL

General Description

Block

Local Bus

Chip data I/O

Register access

Register RegisterRegister

Block Block

Page 11: REGISTER MANAGMENT TOOL

Wishbone - open source protocol

Block C

Block A

Wish

bone

Mas

ter

clk_i

cyc_i

stb_iadr_idat_i

dat_oack_o

Stall_o

we_i Block B

Page 12: REGISTER MANAGMENT TOOL

Top Architecture

Block_A_reg_top Function_2

Function_3

Function_1

Block A

Reg_status_1

Wish

bone

Mas

ter

Reg_enable_2

func_err_3

reset clk

Page 13: REGISTER MANAGMENT TOOL

Reg Block Architecture

WB Slave

Reg1

Reg2

Reg3

Reg4

Priority Encoder

reg_chosen

4

WBMaster

Functional Block

Data from chosen register

Inputs from block

Outputs to block

Block_A_reg_top

Page 14: REGISTER MANAGMENT TOOL

Wishbone Slave Component

WB Slave

clk_i

wbs_cyc_i

wbs_stb_iwbs_we_iwbs_adr_i

wbs_dat_iwbs_dat_o

wbs_stall_o

wbs_ack_o

dout

din_ack

dout_valid

rd_en

din

addr

wr_en

Page 15: REGISTER MANAGMENT TOOL

Wishbone Slave Component

Idlewr_en=‘0’rd_en=‘0’

Read Cyclerd_en=‘1’

(wbs_cyc_i) ●(_ _wbs stb i)

(wbs_cyc_i) ●(_ _wbs stb i )

Active Cycle

wbs_stall_o=‘1’

Write Cyclewr_en=‘1’

wbs_we_iwbs_we_i

Cycle Finishedwbs_ack_o=‘1’

dout_validdin_ack

wbs_cyc_i

Page 16: REGISTER MANAGMENT TOOL

gen_reg Component

addr

din

wr_enrd_en

doutdin_ack

reg_chosendout_valid

gen_reg

clk reset

reg_in_b

Page 17: REGISTER MANAGMENT TOOL

Idlereg_chosen=‘0’

din_ack=‘0’dout_valid=‘0’

Read action

addr==reg addr

The Register is chosenreg_chosen=‘1’

Write action

addr==reg addr

rd_en wr_en

addr==reg addr addr==reg addr

gen_reg Component

Invalid Read Action

dout_valid=‘0’

Valid ReadAction

dout_valid=‘1’

Valid Write Action

din_ack=‘1’

Invalid write Actiondin_ack=‘0’

Register type is WRegister type is R/RW/COR/CONST

Register type is W/RW Register type is R/COR/CONST

Page 18: REGISTER MANAGMENT TOOL

Register Types • Read• Write• W/R• Clear on Read (COR)• Constant register

Wishbone Master

Functional BlockReg Block

Page 19: REGISTER MANAGMENT TOOL

Register Types• Read• Write• W/R• Clear on Read (COR)• Constant register

Wishbone Master

Functional BlockReg Block

Page 20: REGISTER MANAGMENT TOOL

Register Types• Read• Write• W/R• Clear on Read (COR)• Constant register

Wishbone Master

Functional BlockReg Block

Page 21: REGISTER MANAGMENT TOOL

Register Types• Read• Write• W/R• Clear on Read (COR)• Constant register

Wishbone Master

Functional BlockReg Block

“0000”

“0000”

Page 22: REGISTER MANAGMENT TOOL

Register Types• Read• Write• W/R• Clear on Read (COR)• Constant register

Wishbone Master

Functional BlockReg Block

“0100”

“0100”

Page 23: REGISTER MANAGMENT TOOL

Register Types• Read• Write• W/R• Clear on Read (COR)• Constant register

Wishbone Master

Functional BlockReg Block

“0001”“0101”

Page 24: REGISTER MANAGMENT TOOL

Register Types• Read• Write• W/R• Clear on Read (COR)• Constant register

Wishbone Master

Functional BlockReg Block

rd_en = ‘1’“0000”

“0101”

Page 25: REGISTER MANAGMENT TOOL

Register Types• Read• Write• W/R• Clear on Read (COR)• Constant register

Wishbone Master

Functional BlockReg Block

“0000”

“1010”

“0000”

Page 26: REGISTER MANAGMENT TOOL

Register Types• Read• Write• W/R• Clear on Read (COR)• Constant register

Wishbone Master

Functional BlockReg Block

Page 27: REGISTER MANAGMENT TOOL

Generic Implementation

Page 28: REGISTER MANAGMENT TOOL

Generic Implementation

Page 29: REGISTER MANAGMENT TOOL

Generic Implementation

Page 30: REGISTER MANAGMENT TOOL

Simulation

Page 31: REGISTER MANAGMENT TOOL

COR register simulation

WB slave

addr = 0010COR

addr = 1110W/R

Encoder

Reg_chosen

4

WBMaster

Functional Block

.

.

.

.

“00000000”

“00000000”

Page 32: REGISTER MANAGMENT TOOL

COR register simulation

WB slave

addr = 0010COR

addr = 1110W/R

Encoder

Reg_chosen

4

WBMaster

Functional Block

.

.

.

.

“00010000”

“00010000”

Page 33: REGISTER MANAGMENT TOOL

COR register simulation

WB slave

addr = 0010COR

addr = 1110W/R

Encoder

Reg_chosen

4

WBMaster

Functional Block

.

.

.

.

“00000000”

“00010000”

Page 34: REGISTER MANAGMENT TOOL

COR register simulation

WB slave

addr = 0010COR

addr = 1110W/R

Encoder

Reg_chosen

4

WBMaster

Functional Block

.

.

.

.

adr_i = 0010we_i =‘0’

“00000000”

“00000000”

dout =“00010000 ”dout_valid = ‘1’

din_ack = ‘0’

Page 35: REGISTER MANAGMENT TOOL

COR register waveform

0

Scenario: the block updates the data while the master reads

rd_en =‘1’

Data from block = 1

Page 36: REGISTER MANAGMENT TOOL

COR register waveform

Results:

0

dout = “1”

Dout_valid = ‘1’

• updated data is transferred to the WB master• reg_data is cleared

Page 37: REGISTER MANAGMENT TOOL

COR register waveform

0

Reg_data = “00000000 ”

Results:• updated data is transferred to the WB master• reg_data is cleared

Page 38: REGISTER MANAGMENT TOOL

W/R register simulation

WB slave

addr = 0010COR

addr = 1110W/R

Encoder

Reg_chosen

4

WBMaster

Functional Block

.

.

.

.“00000000”“00001101”

Page 39: REGISTER MANAGMENT TOOL

W/R register simulation

WB slave

addr = 0010COR

addr = 1110W/R

Encoder

Reg_chosen

4

WBMaster

Functional Block

.

.

.

.“00001101”

Page 40: REGISTER MANAGMENT TOOL

W/R register simulation

WB slave

addr = 0010COR

addr = 1110W/R

Encoder

Reg_chosen

4

WBMaster

Functional Block

.

.

.

.dout =“00001101 ”dout_valid = ‘1’

din_ack = ‘0’adr_i = 1110

we_i =‘0’

Page 41: REGISTER MANAGMENT TOOL

W/R register waveform

Scenario: WB master writes to register

din = 7 and then 8

wr_en = ‘1’ for 2 cycles

Page 42: REGISTER MANAGMENT TOOL

W/R register waveform

dout = 7 and then 8

din_ack = ‘1’ for 2 cycles

Results:• updated data from WB master is transferred to register• din_ack rises, indicating dout is updated• Register not influenced by data from block (reg_in_b)

Page 43: REGISTER MANAGMENT TOOL

W/R register waveform

Scenario: WB master tries to read from this register’s address (register address is 10)

Result: dout_valid rises to ‘1’

Dout_valid = ‘1’rd_en = ‘1 ’

addr = 10

Page 44: REGISTER MANAGMENT TOOL

W/R register waveform

Scenario: WB master tries to read from another register’s address (register address is 10)

Result: dout_valid is ‘0’

Dout_valid = ‘0’

rd_en = ‘1 ’

addr = 15

Page 45: REGISTER MANAGMENT TOOL

Project Steps1. Determine the implementation platform of the user interface and data

processing: Excel/MATLAB/C++/C#/JAVA .

2. Full characterization of the tool capabilities.

3. Learning the working environment (Wishbone protocol, advanced VHDL coding , MODELSIM simulation environment).

4. VHDL generic design and simulation.

5. Implementing the GUI and automatic VHDL generation.

6. Final MODELSIM and MATLAB Simulations.

In process

Page 46: REGISTER MANAGMENT TOOL

Schedule

Page 47: REGISTER MANAGMENT TOOL

The End

Page 48: REGISTER MANAGMENT TOOL

GUI Demonstration

Back