本地评测机 coKiller

hanz

3.2更新

1. 当比对结果完全一致时输出Accept!!否则输出wrong answer

2. 支持一次测试多个测试点

3. 加强了交互界面,能更清晰的知道自己为何无法运行评测机

4. 解决了运行完全部指令后pc一直+4导致的cpu输出结果过多

5. 加强了P5的数据生成程序,预加载了P6相关的交互

集成了测试点生成,自动运行仿真,自动和魔改mars的比对,周期数比对,测试点覆盖率等功能

coKiller 使用教程

压缩包中的README文件中也有使用教程

1. 将coKiller.zip解压到任意文件夹

2. 将所有.v文件放到一个文件夹中(此步可以省略)

3. 打开coKiller文件夹中的_internal文件夹,找到 "filePath.txt",双击打开,设置三行路径,如下

  1. v文件的目录(若第二步省略,这里同样也为含有.v文件的目录)

  2. ise的下载目录(一般以 D:/ISE/14.7/ISE_DS/ISE 开头,和计组P5教程中的“自动化测试"一节要求相同”)

  3. 你希望的测评结果的输出目录(假设目录为D:, 则最终结果会一起放在 D:\result 文件夹中)

示例如下

1
2
3
C:/Users/tree/Desktop/P5/CPU/
D:/ISE/14.7/ISE_DS/ISE
D:\python_code\myCoKiller\coKiller

注意!!不要有中文路径!!!

4. 最后,双击运行coKiller.exe文件即可!请跟随提示指令行动!

下载zip文件后阅读根据README文档配置好三条路径后即可使用 效果如下 image.png image.png image.png image.png

若程序有任何问题欢迎在讨论区提出!

开发者:姜涵章,钟芳梽

coKiller4.1下载地址


朱雄伟 回复 hanz

同学你好,我觉得可以考虑一下评测结束之后先反馈一个是否通过的结果,不用一行一行的找是否有错误,这样会不会更直观一点。或者是能不能考虑一下一次多生成几个数据点测试。

btw,非常好测评机


hanz 回复 朱雄伟

嗯嗯,感谢你的建议,之后会更新版本的,加一个通过的提示,或是直接打印一个总的测评报告


yyb 回复 hanz

操作非常简洁,好用,想多问一下:周期数设置的阈值是满足课程组要求的吗(不确定自己代码有做到尽力转发)


hanz 回复 yyb

同学你好,标准周期数是使用p5教程中给的测试工具测的,应该是满足要求的


张子豪 回复 hanz

微信图片_20231126182256.jpg这种情况怎么解决呢


hanz 回复 张子豪

同学你好,请问你用的是哪个版本的呀,是3.2还是4.1,如果是前者的话可以下载这个最新的,看看还有没有问题

coKiller4.1下载地址

还有就是,第一行的.v文件地址需要是你源代码的地址,也就是你可以自己运行仿真的地址,而不是只有.v文件的文件夹


张子豪 回复 hanz

好的,谢谢


刘一川 回复 hanz

套六年.jpg 请问出现mips.exe不是内部或外部命令可能是什么错误呢


pigKiller

同学你好,在我使用中发现,如果模块实例化有端口闲置的现象,即没有实例化,则会报警告。

这种warning在本地和课程组的评测机都是不影响实际测试的,但在你们的评测机中会出现警告后卡着不运行的现象(如下图)。

(但这个可能算我代码的bug而不是你们评测机的?


hanz 回复 pigKiller

同学你好,这个运行不成功的原因可能是你的重置信号名字为clear,而我生成的tb连接时使用的是reset,你可以改一个名字试一试?

image.png

目前是以P5的要求写的tb,还没有适配P6,所以tb中没有m_data_rdata和i_inst_rdata两个输入端口 无法运行应该是由于输入端口不匹配导致的,输出端口没有影响


pigKiller 回复 hanz

谢谢同学,改成P5文件以后顺利评测了,非常好评测机

(我的clear其实是延迟槽的清空信号,不过无所谓orzorz)


hanz 回复 pigKiller

好的 感谢认可!


陈睿正

同学你好,请问评测时发生如下问题可能是什么原因?

image.png

我注意到你似乎更新了评测机版本,但问题依然存在。在新版中会显示如下提示:

image.png

而且,你的评测机似乎有一定概率生成超过正常Mars可以容纳的指令条数的数据,我觉得这个问题可以通过在魔改Mars命令行中使用mc CompactLargeText来解决:

mc CompactLargeText: 在原版 mc CompactDataAtZero 的基础上支持多达4096条32位机器码

(摘自石睿知学长魔改Mars说明)

image.png

此外,你的评测机仍然存在一些细节上的问题,从报错中可以推断出,你似乎漏写了exit后面的括号,虽然这个漏写可以使程序因报错而退出,同样达到了退出程序的效果

image.png


hanz 回复 陈睿正

同学你好,非常感谢你的提问!

第一个问题(关于无法处理仿真结果)

image.png

可能是因为你的grf和dm在输出的时候没有加$time,导致我在识别输出的时候出现了问题,可以再看一下计组P5教程里面的作业要求

第二个问题(关于指令超行)

经过检查,我之前确实使用的是CompactDataAtZero,已采纳你的建议! image.png

第三个问题(关于exit)

我的设计其实只要你输入的是空白符后回车,程序都会继续运行,否则exit(0) image.png


陈睿正 回复 hanz

感谢回复,确实是这个问题!但对于第三个问题,在结束程序时,确实会出现exit未定义这个奇怪的报错(如果不在cmd中执行,则报错之后程序立即退出,看不到报错信息),不知是何原因,但也无伤大雅。望评测机可以继续推出更好的版本!


hanz 回复 陈睿正

感谢! exit的问题我经过查询发现改成os._exit()或sys.exit()应该就能就好了

0%