系统结构 第三、四次实验.docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验三 环境熟悉与基本CPU设计 一、 实验目的 (1) 熟悉实验台运行环境与调试方法,掌握基本CPU的设计,为自行设计多级流水CPU打好基础。 (2) 熟练掌握HDL硬件描述语言,对CPU的各个功能模块进行代码编写,并学会将各个功能部分组织连接成一个完整CPU体系结构,学会利用硬件设计工具软件QuartusⅡ对程序进行仿真和调试。并熟练掌握FPGA-CPU在“TEC-CA开放式CPU实验教学系统”上的调试方法。 (3) 学习设计一个包括指令系统、运算器、控制器和寄存器组等的完整的CPU。设计的CPU具有复位功能,以便使用TEC-CA实验台上的“CPU复位”按钮对CPU复位,使CPU处于调试前的初始状态。CPU复位脉冲按负脉冲设计。 (4) 掌握调试软件Debugcontroller的使用方法,学习编写指令系统的规则文件。 二、 实验内容 学习附录A TEC-CA开放式CPU实验教学系统介绍,了解实验台的组成与结构,熟悉运行环境。学习基本CPU的设计,为了配合CPU的调试,需要学习软件Debugcontroller的使用,编写指令系统的规则文件以及调试方法,调试软件Debugcontroller详细介绍见附录B。 基本CPU的设计完成从指令系统到CPU的设计。这里提供3个测试程序,通过运行测试程序进行正确性评定。 三、 实验步骤与现象 1.Testl(EXl.TXT):8位×8位乘法运算 第1个测试程序,初始值R0=25,R1=6。相乘结果(150)存放在R2中。源代码见EXl.txt。 (1)在QuartusⅡ下将cpuO.sof下载到FPGA中。 (2)打开Debugcontroller,执行File→Rule Open命令,打开规则文件cpu.txt。 (3)在Debugcontroller中,执行File→Code Open命令,打开汇编文件EXl.txt。 (4)在Debugcontr01ler中,执行Build→Compile Code命令,将EXl.txt编译得到目标二进制文件,显示在机器代码窗口中。 (5)在Debugcontroller中,执行Build→Upload BIN命令,将目标二进制代码写入实验台上存储器中。为了检查是否正确写入,执行Build→Download RAM命令,将存储器中代码读回(从0开始,本例中写入18个words,所以从0~17),以做比较。 (6)在Debugcontroller中,利用Debug菜单中的命令调试程序。 注意,CPU下载一次后不必再下载,除非重启实验台!但是每次执行新程序前要按实验台上的CPU复位按钮,使FPGA-CPU复位,然后执行Debug→Reset命令,使Debugcontroller处于开始调试状态。 实验截图:执行前: 执行后: 2.Test2(EX2.TXT):内存读写测试 第2个测试程序:将32~0存到0x11F~0x100,将16~1取出,存到0x020F~0x0200,源代码见EX2.txt。 按照第1个测试程序的实验步骤,对程序进行调试,不过要注意:①不需要对cpuO.sol重新下载。②不需要重新打开规则文件cpu.txt。③在将测试文件EX2.txt编译并下载到实验台上的存储器中后,要首先按实验台上的CPU复位按钮,使FPGA-CPU复位,然后执行 Debugcontroller中的Debug→Reset命令,使Debugcontroller处于开始调试状态。 实验截图: 执行前: 执行后:3.Test3(EX3.TXT):冒泡排序 执行前: 第3个测试程序:0x00FF~0x0104存储5 3 2 1 6 4,升序排序后存储在Ox01FF~0x0204。 参照第2个测试程序的实验步骤,对程序进行调试。观察内存地址的内容。OxOOFF~0x0104是5 3 2 1 6 4,0x01FF~0x0204存储是1 2 3 4 5 6。 执行后: 四.测试程序 在CPU上运行的测试程序有3个,设计的CPU能够运行这些程序(或者性能相当的程序)是基本要求,指令格式自定。 T1.txt测试基本的ALU指令,跳转指令; T2.txt测试内存读写,做数据缓存的CPU可能需要在程序后面添加若干指令,以保证缓存内的内容被写回到内存中; T3.txt两者兼有。 T1.txt ;8bit X 8bit ; ;测试指令:置立即数,AND,条件跳转,左移,右移 ; MAIN: SET r0,25 ;被乘数 SET rl,6 ;乘数 SET r2,0 ;结果 SET r3,8 ;循环次数 L00P: SET r4,1 AND r4.r1

文档评论(0)

yan666888 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档