集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1081|回复: 0

FPGA针对Modelsim的功能设计流程

[复制链接]
dzyjc7 发表于 2012-5-4 16:27:19 | 显示全部楼层 |阅读模式
FPGA 设计流程包括设计输入,仿真,综合,生成,板级验证等很多阶段。在整个设计流程中,完计输入并成功进行编译仅能说明设计符合一定的语法规范,并不能说明设计功能的正确性,这时就需要通过仿真对设计进行验证。在FPGA 设计中,仿真一般分为功能仿真(前仿真)和时序仿真(后仿真)。功能仿真又叫逻辑仿真,是指在不考虑器件延时和布线延时的理想情况下对源代码进行逻辑功能的验证;而时序仿真是在布局布线后进行,它与特定的器件有关,又包含了器件和布线的延时信息,主要验证程序在目标器件中的时序关系。在有些开发环境中,如 Xilinx ISE 中,除了上述的两种基本仿真外,还包括综合后仿真,转换(post-translate)仿真,映射后(post-map)仿真等,这样做完每一步都可进行仿真验证,从而保证设计的正确性。
    ModelSim 是Mentor Graphics 子公司MentorTechnology 的产品,是当今最通用的FPGA 仿真器之一。ModelSim 功能强大,它支持FPGA 设计的各个阶段的仿真,不仅支持VHDL 仿真,Verilog仿真,而且支持VHDL 和Verilog 混合仿真。它不仅能做仿真,还能够对程序进行调试,测试代码覆盖率,对波形进行比较等。ModelSim 有很多版本,像ModelSim/SE 是首要版本, 除此之外还有ModelSim/XE 和ModelSim/AE,分别是为Xilinx公司和Altera 公司提供的OEM 版,其中已包含各公司的库文件,故用特定公司OEM 版进行仿真时就不需编译该公司的库了。
用ModelSim 进行功能仿真
    进行功能仿真首先要检查设计的语法是否正确;其次检查代码是否达到设计的功能要求。下文主要介绍仿真步骤和测试激励的加载。
仿真步骤
(1)建立库并映射库到物理目录
     因为用ModelSim 进行仿真是建立在仿真库的基础上的(此处进行的是功能仿真,因而不用编译特定厂商的库),所以首先要建立库并把库映射到实际的物理路径。通常用户编译的文件都放在work库中,所以必须先建立work 库。有两种方法建立并映射库,第一种方法是通过图形界面,在菜单Design→Create a New Library 弹出对话框,如图1 所示。在Library Name 中输入work,如果建立其它库,可以输入其它名字。Library Map to 是映射的物理路径。第二种方法是用命令行的形式,建立库用ModelSim>vlib<库名>,映射库用ModelSim> vmap , 如建立并映射库work,就可以在ModelSim 主窗口命令提示符下输入
vlib work
vmap work work

(2)编译源代码
     该步骤主要检查源文件的语法错误。实现方法有两种,一是通过菜单Design→Compile,出现选择源文件对话框,选择要编译的源文件,编译即可;二是通过命令行方式,这一步对于VHDL 和Verilog 所使用的命令是不一样的,对于VHDL 代码用vcom-work.vhd.vhd , 对于Verilog 代码用vlog-work.v.v,文件按出现的先后顺序编译,且支持增量编译。编译后的文件会放在缺省当前work 库中。
(3)启动仿真器
    该步骤主要是把所有仿真的文件加载到当前的仿真环境中。实现的方法两种,一是通过菜单Design→Load Design,出现加载对话框,选择要仿真的程序即可;二是通过命令行的形式vsim-lib , 这条命令对于VHDL 和Verilog 都一样。
(4)执行仿真
    该步骤是正式执行仿真了,在仿真前最重要的一个步骤就是加载激励,如要对下面的加法器进行仿真,加法器实体说明如下:
entityAdd is
        port(D1: in std_logic_vector(7 downto 0);--输入
        D2: in std_logic_vector(7 downto 0);--输入
        D0: out std_logic_vector(7 downto 0);--输出
        CE: in std_logic;-使能,低有效
        Clk: in std_logic);--时钟
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-6-25 14:09 , Processed in 0.062163 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表