新闻中心

EEPW首页 > 嵌入式系统 > 牛人业话 > 零基础学FPGA(十五)Testbenth 很重要,前仿真全过程笔记(上篇)

零基础学FPGA(十五)Testbenth 很重要,前仿真全过程笔记(上篇)

—— 零基础学FPGA(十七)Testbenth 很重要,前仿真全过程笔记(上篇)
作者:时间:2015-02-27来源:网络收藏

  上一篇文章我介绍了一下一片简易CPU的设计,今天的课程我讲仿真,也即前仿真。这次课程,小墨同学将和大家从建立工程开始,一步步梳理testbench的书写过程,帮助大家对仿真有一个深刻的概念。以后在做项目时,不要动不动就把程序下到板子里调试,看问题不对再去改程序,再下到板子里调试,如此往返,会浪费大量的时间,简单的项目还好,但是到了大型项目的话,是不可能有这么多时间让我们这样调的。因此,小墨同学在这里说,testbench很重要,做好了仿真,可以为我们节约大量的开发时间。

本文引用地址:http://www.eepw.com.cn/article/270154.htm

  下面我们开始吧~

  一、什么是testbench?

  从字面意思上来理解,testbench就是一个测试平台,我们之前已经设计好了我们需要的cpu模块,我们怎么知道我们设计的对于不对呢?我们可以给其施加一个测试激励,例如,给他送时钟和复位信号,由于时钟和复位信号是我们自定义的,因此我们可以产生任意频率的时钟信号和在任意时间给系统复位。

  当然我们还可以观察我们cpu的输出,将我们想要观察的输出信号引出来甚至是反馈到cpu内部,都可以,testbench没有像RTL代码设计那样严谨,我们可以在符合语法规则的前提下,随意编写我们的测试文件,有些在RTL代码中不可综合的语句,我们可以在testbench中实现。

  

360桌面截图20141122115631.jpg

 

  二、testbench的结构

  小墨同学认为testbench的结构可以分为这几个方面:

  1.要先对接口进行例化,即模块之间的链接关系

  2.对我们的设计添加激励

  3.观察设计输出是否符合要求

  三、测试模块设计

  要测试我们的cpu需要ROM和RAM模块,这就需要我们先做好这两个模块

  

360桌面截图20141122121423.jpg

 

  这里定义了一个 1024 x 8 的RAM

  

360桌面截图20141122122057.jpg

 

  再定义一个8192 x 8 的ROM

  ROM和RAM都还没有装入数据,等会我们会调用函数给他们装数据

  接下来是地址译码器,来控制ROM和RAM的打开与关闭

  

360桌面截图20141122122622.jpg

 

  各模块建立好之后我们就开始仿真了

  四、仿真

  这次教学我们用的是modelsim SE 10.0 版本进行教学,以下是小墨同学习惯的仿真过程,因个人习惯不同,各位朋友可以按照你们 的方法来做

  我习惯直接先在quartus II中建一个.v文件将其保存在原来的工程文件目录中,并命名为cpu_top.v,直接在这里写测试代码

  

360桌面截图20141126133646.jpg

 

  下面大家可以跟着小墨的步骤一起做,来完成cpu 的仿真过程了

fpga相关文章:fpga是什么



上一页 1 2 3 下一页

关键词: FPGA Testbenth

评论


相关推荐

技术专区

关闭