-----------------------------------------课程项目--------------------------------------
1:SHA-256哈希算法IP设计 具体功能如下:
Ø 支持标准SHA256哈希算法; Ø 最大源数据长度4GB; Ø 内嵌DMA模块,主动进行源数据读,最大burst length 16; Ø 每66个周期完成一个512bit数据块的处理; 注:SHA256协议规定的padding操作(有效数据尾补1’b1,补0x00,填写有效数据bit长度)由SW完成。 为了提高AXI bus的利用率,使用了如下AXI总线的特性: Ø Read command outstanding,最多outstanding 16x32bit的数据;
设计框图如下图所示:
2:AXI CDMA控制器IP设计 具体功能如下:
Ø source/destination起始地址只需要byte对齐(无需32bit对齐);且source/destination起始地址在一个32bit内的byte位置可以任意(比如source从0xc001001开始,destination从0xf080003开始)。 Ø 支持2D(二维矩形框[y,x])数据的copy,要求source/destination的二维矩形框的低维(x-dir)byte长度必须一致; Ø 二维矩形框[y, x]的低维,即x-dir,byte长度取值范围:[4,65536]; Ø 二维矩形框[y, x]的高维,即y-dir,取值范围:[1, 65536]; Ø 二维矩形框[y, x]的低维,即x-dir,每完成一行数据,距离下一行有效数据可以有[0~65535] byte的间隔;source/destination的间隔距离可以任意; Ø 支持command linked list,SW一次配置可以完成多块数据的copy(一次最多255块); 该模块通过APB slave接口来配置内部寄存器;通过AXI master接口来完成数据的read/write操作。 为了提高AXI bus的利用率,使用了如下AXI总线的特性: Ø Read/Write channel并发操作; Ø Read/Write command outstanding; Ø User ARID, can support read data out-of-order;
内部模块结构如下:
3:Ascon加解密IP设计(23年X项目,23年复微杯赛题) 具体功能如下: Ø 支持Ascon-128,Ascon-128a加解密算法; Ø 支持Ascon-Hash,Ascon-Hasha校验/认证算法; Ø 支持0或4GB内Associated data长度; Ø 支持4GB内的plaintext/code长度的加解密; Ø 支持4GB内的message的hash校验/认证生成; Ø 一个周期完成一次Ascon permutation变换; Ø AHB-Lite master接口仅发送32bit single burst;
本设计在决定1个周期完成一次permutation变换后,其它部分均以面积优先考虑。比如:在flow control模块里面,输入输出各只有一组128bit的buffer,假设AHBbus的r/w操作都能及时得到响应。
4:AHB-Lite接口I-Cache设计与UVM验证(24年X项目)
主要功能如下:
Ø 上/下游接口均采用ahb-lite接口; Ø 4-way set associate I-cache; Ø cache line size固定为128bit,cache size可通过parameter灵活配置; Ø cache替换算法使用tree-based pseudo-LRU; Ø 低read latency; Ø 上游ahb-lite接口只支持single burst(没有数据rw时,htrans=idle); Ø 上游ahb-lite的非cacheable instruction read trans,所有dataread/write trans都做bypass处理; Ø 下游ahb-lite接口可能发送:single/wrap4 burst(没有数据rw时,htrans=idle); 注:上游ahb-lite接口只支持single burst是可接受的,因为直接连接的MCU ahb-lite接口通常只发出这种类型的burst(比如:cortex-m0/m3, 蜂鸟E203, 平头哥E902)。 本设计优先考虑ahb read latency,在加入I-Cache后,ahb路径上的组合逻辑delay会增加。根据不同的SOC系统需求,可以更改parameter “index_bits”来灵活控制cache的总size。
设计框图如下图所示:
该模块在SOC系统中的位置如下:
UVM验证框架:
|