片上网络NOC:可生成RTL源代码与UVM验证环境的实用学习资料
片上网络NOC可生成RTL源代码生成uvm验证环境内含有丰富的文档带有readme文档有例子工程操作简单是学习工作的好资料最近折腾NoC项目的时候挖到一个宝藏工具包名字先不透露反正GitHub搜NoC generator能跳出来好几个。这玩意儿最戳中我痛点的是自带全家桶——从RTL生成到验证环境搭建连文档都写好了喂到你嘴边对于我这种看见空白testbench就头秃的中年码农简直救命。先看生成RTL这块。配置个yaml文件定义拓扑结构跑个make就出代码。比如定义个4x4的Meshtopology: mesh dimensions: [4,4] routing_algorithm: xy data_width: 32生成的核心仲裁模块长这样module router_arbiter ( input [3:0] req, output [1:0] grant ); // 优先级编码器状态机 always_comb begin casez(req) 4b???1: grant 2d0; 4b??10: grant 2d1; 4b?100: grant 2d2; 4b1000: grant 2d3; default: grant 2d0; endcase end endmodule注意这里的优先级仲裁逻辑工具自动把XY路由算法翻译成了硬件实现。我实测发现当东西向和南北向请求同时到达时确实会优先处理低编号端口这跟传统手工写的NoC仲裁策略完全一致。片上网络NOC可生成RTL源代码生成uvm验证环境内含有丰富的文档带有readme文档有例子工程操作简单是学习工作的好资料验证环境才是重头戏。工具生成的UVM框架里连覆盖率点都埋好了class noc_coverage extends uvm_subscriber #(noc_packet); covergroup route_cg; source_cp: coverpoint trx.src_node; dest_cp: coverpoint trx.dest_node; cross source_cp, dest_cp; endgroup function void write(T t); route_cg.sample(); endfunction endclass这个交叉覆盖率统计所有源-目的节点组合比我自己吭哧吭哧写coverpoint省事多了。实测跑完回归测试覆盖率直接拉到98.7%比手工环境提升至少20%。操作手册更是离谱——连VSCode远程开发配置都有step by step截图。有个小白同事照着README从零搭环境二十分钟就跑通了第一个demo。示例工程里甚至包含AXI桥接模块直接改参数就能接各种总线协议。不过槽点也有生成的代码注释全是英文虽然能看懂但看着累还有makefile里有些路径处理在Windows下会抽风。不过看在能一键生成可综合代码的份上这些都能忍。最近在搞毕设的学弟用了这工具三天搞定了之前卡他两周的NoC验证现在天天在实验室凡尔赛...
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2470633.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!