VHDL仿真.ppt_第1页
VHDL仿真.ppt_第2页
VHDL仿真.ppt_第3页
VHDL仿真.ppt_第4页
VHDL仿真.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、VHDL仿真,本章内容,13.1 使用ModelSim进行VHDL仿真 13.2 Textio程序包 13.3 使用ModelSim对QuartusII设计项目进行仿真,13.1使用ModelSim进行VHDL仿真,在QuartusII中进行的仿真事实上是在综合后的网表上进行的,也就是说,无论是进行功能仿真还是时序仿真,在QuartusII软件上仿真HDL程序必须是可以综合的。,使用QuartusII软件进行仿真的局限性:,ModelSim是一个支持VHDL/Verilog的混合仿真器,是Mentor Graphics开发的产品。,以模16计数器为例讲解怎样利用ModelSim进行VHDL仿真

2、。,library IEEE; use IEEE.STD_LOGIC_1164.all; use ieee.std_logic_unsigned.all; entity cnt16 is port(rst : in STD_LOGIC; clk : in STD_LOGIC; q : out STD_LOGIC_VECTOR(3 downto 0) ); end cnt16; architecture cnt16 of cnt16 is signal q_tmp: STD_LOGIC_VECTOR(3 downto 0); begin process(clk,rst) begin if rst

3、=1 then q_tmp0); elsif clkevent and clk=1 then q_tmp=q_tmp+1; end if ; end process; q=q_tmp; end cnt16;,1.启动ModelSim,ModelSim的启动界面,2. 建立仿真工程项目,建立工程建立项目,3. 编译仿真文件,开始编译仿真文件,4. 装载仿真模块和仿真库,装载设计模块,5. 执行仿真,ModelSim的仿真观察窗,采用手动方式编辑输入波形,ModelSim的波形观察窗,采用测试向量(testbench)进行仿真,library ieee; use ieee.std_logic_11

4、64.all; ENTITY cnt16_source IS PORT (clk,rst : OUT STD_LOGIC); end cnt16_source; ARCHITECTURE cnt16_source OF cnt16_source is constant cycle:Time := 10 ns; BEGIN process begin clk = 0; wait for cycle/2; clk = 1; wait for cycle/2; end process; process begin rst = 1; wait for cycle*5; rst = 0; wait; e

5、nd process; END cnt16_source;,编辑输入信号,时钟与复位信号生成,仿真文件,library IEEE; use IEEE.STD_LOGIC_1164.all; entity sim_cnt16 is port(q : out STD_LOGIC_VECTOR(3 downto 0); end sim_cnt16; architecture sim_cnt16 of sim_cnt16 is component cnt16 is port(rst : in STD_LOGIC; clk : in STD_LOGIC; q : out STD_LOGIC_VECTOR

6、(3 downto 0) ); end component ; component cnt16_source is PORT (clk,rst : OUT STD_LOGIC); end component ; signal clk,rst :std_logic; begin cnt16_inst: cnt16 port map(rst=rst,clk=clk,q=q); cnt16_source_inst:cnt16_source port map(clk=clk,rst=rst); end sim_cnt16;,使用ModelSim进行VHDL仿真,仿真结果图,软件演示,13.2 Text

7、io程序包,在vhdl语言中提供了一种预先定义的文本输入输出包集合(textio),在该集合中包含有对文本进行读写的过程和函数。,Textio处理文本说明:数据类型line(行)是读写文本时要用的,line的结构是textio对文本进行操作的基本单位。例如:对文件进行读操作时,首先读一行字符,并将它放到line数据类型的结构中,而后再按字段进行处理。与此相反,当要写一个文件时,首先在行数据暂存区按字段建立line结构,然后再将line的数据写到文件中去。,书写格式,Textio常用于测试向量的输入和输出。在使用textio的包集合时,首先要进行必要的说明,例如: library std; us

8、e std.textio.all;,在vhdl语言的标准格式中,textio只能使用“bit”和“bit_vector”两种数据类型,如果要使用“std_logic”和“std_logic_vector”,就要调用“std_logic_textio”,即 use ieee.std_logic_textio.all;,读文件,在读文件先要对文件进行说明,格式如下: file 文件变量:text is 方向“文件名”; 从文件变量中读一行数据 从行变量中读取一个数据,从文件变量中读一行数据,Readline(文件变量,行变量); Readline用于从指定的文件中读一行的语句 Signal clk

9、,std_logic; Signal lin :std_logic_vector(7 downto 0); process Variable li:line; File invector:text is in “test.dat”; Readline(invector,li);,从行变量中读取一个数据,Read(行变量,数据变量);,Read(li,clk); Read(li,din);,实例,library IEEE; use IEEE.STD_LOGIC_1164.all; use ieee.std_logic_textio.all; usestd.textio.all; entity t

10、est_textio is port( clk : out STD_LOGIC; rst : out STD_LOGIC ); end test_textio;,采用Matlab生成clk_source.dat文件 for i=1:1000 a(2*i-1)=0; a(2*i)=1; end ; dynacoefhexf = fopen(clk_source.dat,w); dynacoefhexcount = fprintf(dynacoefhexf,%1xn,a);% fclose(dynacoefhexf);,architecture test_textio of test_textio

11、 is constant clk_cycle: time:=10ns; file f1: text is in clk_source.dat; begin process variable li : line; Variable j,k : integer; variable clk_tmp:std_logic; begin k:=0; loop_clk:while k100 loop readline(f1,li); read(li,clk_tmp); clk=clk_tmp; wait for clk_cycle; k:=k+1; end loop; end process; proces

12、s begin rst=1; wait for 2*clk_cycle; rst=0; wait; end process; end test_textio;,写一行到输出文件,Writeline(行变量,数据变量);,写一个数据至行,Write(行变量,数据变量); 在某些cad公司的vhdl语言版本中,对改写语句有些扩充。例如按十六进制写时,写语句以h为前缀:hwrite;如按八进制写时,则应冠以o前缀:owrite。,signal dout:std_logic_vector(7 downto 0); variable lo:line; file outvector :text is out “test.dat”; write(lo,now) write(lo,e); writeline(outvecor,lo);,13.3使用Model

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论