实验2 TileLink总线协议设计-PPT1
在本次实验中,我们主要是通过设计TileLink总线协议来实现CPU对Cordic运算单元寄存器的访问,从而完成三角函数的加速运算。具体的实验内容如下:
1. 寄存器地址和位描述:
- config寄存器(地址0x0):31~17位保留位,16位为计算完成标志,15~9位保留位,8位为选择使能的功能(0表示sin,1表示cos),7~1位保留位,0位为启动cordic模块使能。
- phase寄存器(地址0x1):31~0位为输入的角度。
- result寄存器(地址0x2):31~0位为输出的计算结果。
2. 在本次实验中,我们需要实现以下功能:
- CPU发起对地址0x1的写操作,将输入的角度写入寄存器。
- CPU发起对地址0x0的写操作,配置计算使能功能和使能cordic模块。
- CPU读取地址0x2的数据,获取计算结果。
3. 我们可以通过TileLink总线协议来实现CPU和Cordic运算单元之间的通信。具体的通信过程如下:
- CPU向TileLink总线发起PutFullData请求,将写入的数据0xab(对于地址0x1)发送到总线上。
- CPU发起PutPartialData请求,将写入的数据0x0f03(对于地址0x0)发送到总线上。
- TileLink总线将这些数据发送给Cordic运算单元,Cordic运算单元将接收到的数据写入对应的寄存器。
- CPU通过TileLink总线发起Get请求,读取地址0x2的数据。
- TileLink总线将寄存器中的数据发送给CPU,CPU接收到数据并进行处理。
通过本次实验,我们可以实践并理解TileLink总线协议的设计和控制,掌握总线的通信过程,进一步加深对计算机组成原理中总线的理解。
在进行实验过程中,我们还需要注意一些问题和注意事项:
1. 在编写Verilog代码时,要注意rst_n信号在低电平有效的情况下使用下降沿触发。
2. 避免语法不规范的问题,尽量使用简单、清晰的语法。
3. 在一个时序always块中,要避免阻塞赋值和非阻塞赋值混用的问题,保持代码的一致性和可读性。
4. 对于Cordic运算单元模块中尚未实现的部分,我们可以在后续实验中逐步完善和实现。
通过这次实验,我们能够进一步加深对TileLink总线协议设计和通信过程的理解,同时也能够将所学的计算机组成原理知识应用到实际的项目中,提高我们的实践能力和综合素质。希望通过这次实验,我们能够获得更多的知识和技能,为今后的学习和工作打下良好的基础。