数字系统设计与实现.ppt

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ql: buffer std_logic_vector(3 downto 0)); END ;
输入端口为计数使能en、清零clear和时钟clk,其数据类 型为 std_logic标准逻辑类型;输出端口cont的数据类型为 std_logic标准逻辑类型;小时信号qh、ql的数据类型为 std_logic_vector(3 downto 0) 向量标准逻辑类型。
2. 模24计数器VHDL设计
LIBRARY ieee;
--调用程序包
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.ALL;
--------------------
ENTITY cntm24v IS
--定义实体端口
PORT(en: IN std_logic;
ARCHITECTURE beh OF cntm24v IS
--结构体设计
BEGIN
cont<='1'when (qh="0010"and ql="0011"and en='1')else '0';
PROCESS(CLK,clr)
BEGIN
• IF(clr='0')THEN

qh<="0000";
这里采用原理图输入方式设计模60计数器,输入信号 有计数使能en、清零clear、时钟clk;输出信号有ql0、 ql1、ql2、ql3、qh0、qh1、qh2以及进位输出。调用库中 已有的元件符号74161、三输入与非门nand3、非门not等, 构成符合要求的计数器,图9.1是模60计数器的原理图。
图9.2 顶层clock.gdf文件

对顶层设计文件clock.gdf进行编译和仿真,调整仿真
时间和栅格尺寸,观察仿真波形。在Option菜单下选择Grid
Size调整显示栅格的大小。在File菜单下选择End Time设置
仿真时间。利用左侧工具栏上的波形绘制图标,可以方便地
对波形文件进行编辑,如输入时钟信号clk,en和clr设置为
9.1 时钟电路的设计与实现
数字系统设计一般采用自顶向下的层次化设计方
法,在MAX+plusⅡ环境下可利用层次化设计方法实现 自顶向下的设计。电路设计时,分析设计要求,划分 模块,进行低层设计,然后进行顶层设计的连接。下 面以图形和文本混合输入为例,设计一个时钟电路, 时钟电路由模60计数器构成秒、分电路,模24计数器 构成小时电路,生产各模块的符号文件,最后用时、 分、秒模块构成顶层时钟电路。
clr:in std_logic;
clk:in std_logic;
cont:out std_logic;
qh:buffer std_logic_vector(3 downto 0);
ql: buffer std_logic_vector(3 downto 0));
END ;
-----------------------------
9.1.1 模24计数器的VHDL设计
1. 实体端口定义 模24的计数器的实体端口定义如下:
ENTITY cntm24v IS PORT(en: IN std_logic;
clr:in std_logic; clk:in std_logic; cont:out std_logic; qh:buffer std_logic_vector(3 downto 0);
图9.1 模60计数器原理图
9.1.3 顶层文件设计
• 执行菜单File下的建立新文件,文件名为clock.gdf。在 clock.gdf空白处双击鼠标左键,打开Enter symbol对话框 选择调用的元件,在元件列表区可看到已经生成的两个元件 cntm24和cntm60,调用cntm24和cntm60,连接构成时钟电路 的顶层设计文件,clock.gdf文件如图9.2所示。
end if;

end if;

end if;

end process;
• end beh;
• 完成模24计数器的设计,且仿真通过之后,执行菜单 File下的Create Default Symbol命令,生成符号cntm24v, 该符号将成为当前项目库中的一个元件。
9.1.2 模60计数器的原理图设计

ql<="0000";

elsif (clk'event and clk='1')then

IF(en='1')THEN

if(ql=3)then

ql<="0000";

if(qh=2)then

qh<="0000";

else

qh<=qh+1;

end if;

else

ql<=ql+1;

图9.4 clock.gdf的层次结构
由图9.4可见,顶层clock.gdf调用cntm24v符号和 cuntm60符号,cntm24v符号是文本编辑生成的符号文件; cuntm60符号是图形编辑生成的符号文件。 符号cntm24v和 cuntm60又各自调用了LPM库中的宏单元LMP-ADD-SUB:120和 74160符号。
第九章 数字系统设计与实现
9.1 时钟电路的设计与实现 9.2 UART数据接收发送电路设计与实现 9.3 人机接口电路的设计与实现 9.4 8255并行接口电路的设计与实现
• 9.1 时钟电路的设计与实现 • 9.1.1 模24计数器的VHDL设计 • 9.1.2 模60计数器的原理图设计 • 9.1.3 顶层文件设计
高电平等。波形文件保存为clock .scf,接下来对该文件进
行仿真。

打开仿真器窗口,单击Start按钮,开始仿真,得到如
图9.3所示的仿真波形,观察时、分、秒之间的进位关系。
选择芯片,分配引脚,再次进行编译,正确后将设计配置到
芯片。
• 图9.3 clock.gdf仿真波形
• 完成全部设计后,在菜单MAX+plusⅡ下选择Hierarchy Display命令,显示clock文件层次结构如图9.4所示。
• 9.2 UART数据接收发送电路设计与实现

9.2.1 UART程序设计
•Fra Baidu bibliotek
9.2.2 UART程序仿真
• 9.2 UART数据接收发送电路设计与实现
通用异步数据接收发送方式UART(Universal Asynchronous Receiver Transmitter)不仅能实现接收 发送方相互之间通讯,同时还能满足PC机、微处理器等 设备之间的数据通信。
相关文档
最新文档