로켓 - regmapper - RegisterCrossing

https://mp.weixin.qq.com/s/82iLT-fmDg9Comp2p9bxKg

 

RegisterCrossing의 간단한 실현.

 

1. BusyRegisterCrossing

 

간단한 제어 상태 머신은, 처리중인 요청이 있는지 여부, 즉, 제어 여부에 대한 요청을 개시 할 수있다 :

 

1) I

 

제어 인터페이스는 다음과 같이 :

 

에이. master_request_valid / master_request_ready

 

그것은 상류 개시 요청 (유효한)가, 하류 수신기 (준비) 준비가되었는지 여부를 나타냅니다.

 

비. master_response_valid / master_response_ready

 

여부 응답 정보 (유효)를 나타내는 업스트림 (준비) 응답 메시지를 수신 할 준비가 된 것입니다.

 

씨. crossing_request_valid / crossing_request_ready

 

이는 수신 준비 (대기) 인 구조 (유효)에 시계를 통해 전송 요구를 나타내고, 하류 교차 구조 클럭 신호를 통과.

 

2) 비지

 

이 요청은 새로운 요청을 수신 할 수있다이 때, 처리 중인지 여부를 나타낸다 :

 

3) 수동

 

바이 패스에 해당하는 경우, 그 요청은 시계 구조를 통해 전송하는 것이 아니라 직접 업스트림에 대한 응답 메시지를 반환에 루프백은 동일합니다 :

 

2. RegisterCrossingAssertion

 

다음과 같은 조건에 의해이 주장 :

. io.master_bypass : 즉 상류 응답하여 클록 구조 회신 메시지를 통해 우회있어서의이 상태 하류 염려 할 필요가 없다;

.! B까지 : 다운 스트림하지 최대, 그것은 크로스 시계 구조를 사용하지 않습니다;

.! C의 io.slave_reset : 하류 재설정되지 않고, 일반적으로 구조를 걸쳐 그 클럭이 사용될 수있다;

 

3. RegisterWriteIO

 

인터페이스를 등록 쓰기 :

. 요청이 : 유효 / 준비 제어 인터페이스를 쓰기 요청;

. 겐 B : 데이터가 기록된다;

. C 응답 : 쓰기 요청 응답 메시지 유효 / 준비 제어 인터페이스;

. BOOL D () : 응답 메시지;

 

4. RegisterWriteCrossingIO

 

增加了时钟和复位信号的跨时钟写寄存器接口:

a. master是指跨时钟结构上游,slave是指跨时钟结构下游;

b. master_clock/master_reset:主时钟和复位信号;

c. master_bypass:是否绕过跨时钟结构;

d. master_port:写接口,包括valid/ready控制及数据;

e. slave_clock/slave_reset:从时钟和复位信号;

f. slave_register:跨越时钟过来的写的数据;

g. slave_valid:slave_register中的内容是否合法;

 

5. RegisterWriteCrossing

 

跨时钟域写寄存器模块:

分为三个主要部分:

a. io:输入输出接口;

b. control:控制模块;

c. crossing:跨时钟模块;

 

1) 连接时钟和复位信号

 

 

2) 连接control模块

 

 

3) crossing上游连接

 

 

4) crossing下游连接

 

 

5) assert

 

 

6. RegisterReadIO

 

读寄存器接口:

a. request:请求控制接口;

b. response:响应消息控制及数据接口;

 

7. RegisterReadCrossingIO

 

加入时钟和复位信号的跨时钟读寄存器接口:

 

8. RegisterReadCrossing

 

跨时钟域读寄存器模块:

 

9. AsyncRWSlaveRegField

 

用于生成异步读写的逻辑和寄存器域:

 

1) 参数

 

 

2) 异步复位寄存器

 

 

3) 跨时钟写模块

 

 

4) 跨时钟数据写入寄存器

 

 

5) 跨时钟读模块

 

 

6) 从寄存器跨时钟读取

 

 

7) 返回参数

 

a. async_slave_reg.io.q:寄存器中存储的数据;

b. RegField(width, rd_crossing.io.master_port, wr_crossing.io.master_port, desc):使用跨时钟读写模块的寄存器域;

 

 

추천

출처www.cnblogs.com/wjcdx/p/11605211.html