武汉理工大学《能力拓展训练》课程设计说明书
Elsif Cn'Event and Cn='1' then If En='1' then If Cqi < \\Cqi :=Cqi+1;
Cy<='0'; elsif cqi=\\
then Cy<='1'; Cqi :=(others =>'0'); end If; end If; end If; Dout<=Cqi; END Process;
End sun1;
--*******************************************
IEEE标准库是存放用VHDL语言编写的多个标准程序包的目录,IEEE库中的程序包有:
STD_LOGIC_1164, STD_LOGIC_ARITH,
STD_LOGIC_UNSIGNED, 其中 STD_LOGIC_1164是IEEE标准的程序包,定义了STD_LOGIC和STD_LOGIC_VECTOR等多种数据类型,以及多种逻辑运算符子程序和数据类型转换子程序等。
STD_LOGIC_ARITH和STD_LOGIC_UNSIGNED等程序包是SYNOPSYS公司提供的,包中定义了SIGNED和UNSIGNED数据类型以及基于这些数据类型的运算符子程序。用户在用到标准程序包中内容时 , 除了 STANDARD 程序包以外 , 都要在设计程序中加以说明 , 首先用 LIBRARY 语句说明程序包所在的库名 , 再用 USE 语句说明具体使用哪 一个程序包和具体的子程序名。
实体是VHDL程序设计中最基本的组成部分,在实体中定义了该设计芯片中所需要的输入/输出信号引脚。端口信号名称表示芯片的输入/输出信号的引脚名,这
7
武汉理工大学《能力拓展训练》课程设计说明书
种端口信号通常被称为外部信号,信号的输入/输出状态被称为端口模式,在实体中还定义信号的数据类型。端口信号名称可以表示一个信号,也可以表示一组信号(BUS),由数据类型定义。EN,REST,CN,Cy 分别表示计数允许信号、异步清零信号、时钟输入信号和进位输出信号。Dout是一组输出信号,用来表示四位同步二进制计数器的四位计数输出信号。端口信号输入/输出状态IN/OUT分别表示信号进入电路单元和信号从电路单元输出。
结构体是VHDL程序设计中的最主要组成部分,是描述设计单元的具体结构和功能,程序中,结构体放在实体的后面。每一个结构体都有名称,结构体的名称是由设计者任取的,结构体是以标识符ARCHITECTURE开头,以END结尾。不同的结构体采用不同的描述语句。
ARCHITECTURE结构体名OF实体名称IS 说明语句 BEGIN
电路描述语句 END 结构体名 ;
结构体说明语句是对结构体中用到的数据对象的数据类型、元件和子程序等加以说明。电路描述语句用并行语句来描述电路的各种功能,这些并行语句包括并行信号赋值语句、条件赋值(WHEN-ELSE)语句、进程(PROCESS)语句和子程序调用语句等。结构体的名称是sun1,该结构体属于行为描述方式,采用多种描述语句,如进程(PROCRESS)语句、条件赋值语句(WHEN-ELSE)、顺序语句(IF-ELSE)等。
8
武汉理工大学《能力拓展训练》课程设计说明书
4 程序仿真
4.1 仿真软件介绍
Altera QuartusII 作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。
QuartusII design 是最高级和复杂的,用于system on a programmable chip (SOPC)的设计环境。QuartusII design提供完善的timing closure和LogicLock?基于块的设计流程。QuartusII design是唯一一个包括以timing closure和基于块的设计流为基本特征的programmable logic device (PLD)的软件。QuartusII设计软件改进了性能、提升了功能性、解决了潜在的设计延迟等,在工业领域率先提供FPGA与mask-programmed devices开发的统一工作流程。
Altera QuartusII(3.0和更高版本)设计软件是业界唯一提供FPGA和固定功能HardCopy器件统一设计流程的设计工具。工程师使用同样的低价位工具对Stratix FPGA进行功能验证和原型设计,又可以设计HardCopy Stratix器件用于批量成品。系统设计者现在能够用QuartusII软件评估HardCopy Stratix器件的性能和功耗,相应地进行最大吞吐量设计。
Altera的QuartusII可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。
4.2 仿真结果
打开Quartus II9.0,建立新工程,再新建一个VHDL文件,在该窗口输入源程序,然后对源程序进行编译运行。新建一个波形文件,在波形文件中加入
9
武汉理工大学《能力拓展训练》课程设计说明书
所需观察波形的管脚,给输入管脚指定仿真波形,编辑待仿真波形文件,如图4-1所示,点击按钮,进行波形仿真。
图4-1 带仿真波形图
仿真后的10进制计数器波形如图4-2所示:
图4-2 十进制计数器仿真波形
4.3 仿真结果分析
由仿真结果可知,手动允许计数信号为1,清零信号为0,计数开始。十进制BCD码从0000开始计数,Rest清零信号有效后,计数为7,BCD码为0111,之后计数清零。Rest清零信号为0后,计数再次开始,BCD码由0000到1001,计数由
10
武汉理工大学《能力拓展训练》课程设计说明书
0到9,完成一次计数,之后进位并清零,再次开始。手动计数信号无效后,停止计数,保持最后一位计数值。
由上述分析可知,仿真结果完全符合真值表内容,结果正确。
11