上一篇文章我介绍了一下一片简易CPU的规划,今日的课程我讲仿真,也即前仿真。这次课程,小墨同学将和咱们从树立工程开端,一步步整理testbench的书写进程,协助咱们对仿真有一个深入的概念。今后在做项目时,不要动不动就把程序下到板子里调试,看问题不对再去改程序,再下到板子里调试,如此往复,会糟蹋很多的时刻,简略的项目还好,可是到了大型项目的话,是不行能有这么多时刻让咱们这样调的。因而,小墨同学在这儿说,testbench很重要,做好了仿真,能够为咱们节省很多的开发时刻。
下面咱们开端吧~
一、什么是testbench?
从字面意思上来了解,testbench便是一个测验渠道,咱们之前现已规划好了咱们需求的cpu模块,咱们怎样知道咱们规划的关于不对呢?咱们能够给其施加一个测验鼓励,例如,给他送时钟和复位信号,因为时钟和复位信号是咱们自界说的,因而咱们能够发生恣意频率的时钟信号和在恣意时刻给体系复位。
当然咱们还能够调查咱们cpu的输出,将咱们想要调查的输出信号引出来乃至是反应到cpu内部,都能够,testbench没有像RTL代码规划那样谨慎,咱们能够在契合语法规矩的前提下,随意编写咱们的测验文件,有些在RTL代码中不行归纳的句子,咱们能够在testbench中完结。
二、testbench的结构
小墨同学以为testbench的结构能够分为这几个方面:
1.要先对接口进行例化,即模块之间的链接联系
2.对咱们的规划增加鼓励
3.调查规划输出是否契合要求
三、测验模块规划
要测验咱们的cpu需求ROM和RAM模块,这就需求咱们先做好这两个模块
这儿界说了一个 1024 x 8 的RAM
再界说一个8192 x 8 的ROM
ROM和RAM都还没有装入数据,等会咱们会调用函数给他们装数据
接下来是地址译码器,来操控ROM和RAM的翻开与封闭
各模块树立好之后咱们就开端仿真了
四、仿真
这次教育咱们用的是modelsim SE 10.0 版别进行教育,以下是小墨同学习气的仿真进程,因个人习气不同,各位朋友能够依照你们 的方法来做
我习气直接先在quartus II中建一个.v文件将其保存在本来的工程文件目录中,并命名为cpu_top.v,直接在这儿写测验代码
下面咱们能够跟着小墨的进程一同做,来完结cpu 的仿真进程了