300 likes | 445 Views
OCP-IP. Sérgio Jeferson Rafael Ordine RA: 921298 E-mail: sjordine@yahoo.com.br. OCP-IP. Introdução Descrição Motivação Visão Geral Teoria de Operação Sinais Configuração Protocolo. Introdução. O pen C ore P rotocol Versão 2.1 Interfaceamento de unidades funcionais
E N D
OCP-IP Sérgio Jeferson Rafael Ordine RA: 921298 E-mail: sjordine@yahoo.com.br
OCP-IP • Introdução • Descrição • Motivação • Visão Geral • Teoria de Operação • Sinais • Configuração • Protocolo
Introdução • Open Core Protocol • Versão 2.1 • Interfaceamento de unidades funcionais • Intellectual Property (IP) cores • System-on-chip - SOC
IP – Intellectual Properties • Componentes • Reutilização em novas implementações • Integração • Comunicação?
ComponenteA ComponenteB barramento Motivação
ComponenteA ComponenteB barramento Motivação
ComponenteB ComponenteA barramento barramento Motivação
OCP – Alguns membros • Alcatel • Mentor Graphics • NEC • nVIDIA • Nokia • Phillips Semicondutors • Siemens • Texas Instruments • Toshiba • Yamaha
Visão Geral • Derivado do VCI (Virtual Component Interface) • Dados, controle, teste • IP cores Bus wrappers • Master / Slave
Master Master Master Slave Slave Slave Bus Target Bus Initiator/ Target Bus Initiator Visão Geral System Initiator/ Target Target System Initiator IPs Master Slave OCP Bus Wrapper Barramento On-chip
Bus Master IP Master IP Slave Bus Slave Visão Geral Comando, controle, dados Transmissão no Barramento Comando, controle, dados Resposta Transmissão no Barramento Resposta
Teoria de Operação • Síncrona – Ponto a Ponto • Independência do Barramento • Comandos • Endereçamento/ Dados • Pipelining • Requisição/Resposta • Burst • In-band Information
Teoria de Operação • Tags • Threads • Interrupções, Erros e Sinais de Controle
Mandatórios Sinais • Fluxo de Dados • Básicos • Extensões Simples • Extensões de Burst • Extensões de Tags • Extensões de Thread • Controle • Testes
Sinais - Básicos • Clk – Sinal de clock (1 bit) • MAddr – Endereço alvo da transferência(config.) • MCmd – Comando de transferência (3 bits) • MData – Dado escrito (config.) • MDataValid – Dado de Mdata válido (1 bit) • MRespAccept – Resposta aceita pelo mestre (1 bit) • SCmdAccept – Comando aceito pelo escravo (1 bit) • SData – Dado lido (config.) • SDataAccept – Dado no barramento aceito (1 bit) • SResp – Status da resposta (2 bits)
Configuração • Garantir generalidade • 3 arquivos: • RTL Core Configuration • Interfaces • Core Synthesis
Configuração • Interfaces • Grupos de sinais (bundles) • Pré-definido para OCP • <budle-name>_intfc.conf • RTL Core • Descrição do “core” e suas interfaces • <corename>_rtl.conf
Configuração – RTL Core • Core Synthesis • Restrições de temporização do core • Port • Max delay • False path
Exemplo - RTL Core version2.5 moduleflashctrl { core_id0xBBBB0x0010x1“Flash/Rom Controller” icon“vista.ppm” addr_region“FLASHCTRL0” { addr_base0x0 addr_size0x100000 } interfacetpbundleocp2revision1 { interface_typeslave param mreset 1 param byteen 1 ... paramsflag 1 {width1} param mdata 1{width64} ...
Exemplo - RTL Core prefixtp ... portReset_ninetMReset_n portClk_inetClk portTMCmd_inetMCmd ... portTCError_onetSflag subnet SFlag 0access_error location n 50 } interfaceemembundleflash { interface_typecontroller portAddr_onetaddr portData_bnetdata ...
Exemplo - Interfaces bundle"sram16" { interface_typescontroller memory net"Address" { direction output input width14 } .... net"RData" { directioninput output width16 } ... net"Reset" { directionoutput input typereset } }
Exemplo – Síntese RTL version1.3 ... port“MData_i” { drivingcellpin{$mediumgatedrivepin} setuptime {[expr $clockperiod * .5]} } port“SResp_o” { loadcellpin {$defaultloadcellpin} loads {$defaultloads} wireloaddelay {$mediumnetdelay} c2qtime {[expr $clockperiod * .8]} } maxdelay { delay2fromport“MData_i”toport“SResp_o” } falsepath { fromport“MData_i”toport“SData_o” }
WR1 IDLE RD2 IDLE IDLE A1 A2 D1 NULL DVA2 NULL D2 Leitura/Escrita Simples Clk MCmd MAddr MData SCmdAccept SResp SData
IDLE WR3 WR1 WR2 IDLE A1 A2 A3 D2 D1 D3 NULL Handshake de Requisição Clk MCmd MAddr MData SCmdAccept SResp SData
IDLE RD1 RD2 IDLE IDLE RD3 A2 A1 A3 NULL DVA3 DVA2 DVA1 NULL NULL NULL D1 D2 D3 Requisição/Resposta com Pipeline Clk MCmd MAddr MData SCmdAccept SResp SData
WR2 IDLE WR1 WR3 WR4 IDLE 0xC4 0x01 0x42 0x83 D1 D3 D4 D2 4 4 4 4 INCR INCR INCR INCR Escrita em Burst Clk MCmd MAddr MData MBurstLength MBurstSeq MBurstPrecise MRequestLast SCmdAccept
Referências • “Open Core Protocol Specification” OCP International Partnership,Release 2.1,2005 • “OCP-IP, Introductory Presentation” Mackintosh,I.R,2004 • Site oficial OCP-IP http://www.ocpip.org/home