文档介绍:1第九章数字系统设计与实现 时钟电路的设计与实现 UART 数据接收发送电路设计与实现 人机接口电路的设计与实现 8255 并行接口电路的设计与实现 2 ? 时钟电路的设计与实现? 模 24 计数器的 VHDL 设计? 模 60 计数器的原理图设计? 顶层文件设计 3 时钟电路的设计与实现数字系统设计一般采用自顶向下的层次化设计方法,在 MAX+plus Ⅱ环境下可利用层次化设计方法实现自顶向下的设计。电路设计时,分析设计要求,划分模块,进行低层设计,然后进行顶层设计的连接。下面以图形和文本混合输入为例,设计一个时钟电路, 时钟电路由模 60计数器构成秒、分电路,模 24计数器构成小时电路,生产各模块的符号文件,最后用时、分、秒模块构成顶层时钟电路。 4 模24计数器的 VHDL 设计 1. 实体端口定义模24的计数器的实体端口定义如下: tm24v 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); 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) 向量标准逻辑类型。 5 2. 模24计数器 VHDL 设计 LIBRARY ieee ; -- 调用程序包 USE ; USE ; -------------------- tm24v 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); ql: buffer std_logic_vector(3 downto 0)); END ; ----------------------------- ARCHITECTURE beh tm24v IS --结构体设计 BEGIN cont<='1'when ( qh="0010"and ql="0011"and en='1')else '0'; PROCESS(CLK,clr ) BEGIN 6 ?IF(clr ='0')THEN ?qh<="0000"; ?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; ? end if; ? end if; ? end if; ? end process; ? end beh ; 7 ?完成模 24计数器的设计,且仿真通过之后,执行菜单 File 下的 Create Default Symbol 命令,tm24v , 该符号将成为当前项目库中的一个元件。 模60计数器的原理图设计这里采用原理图输入方式设计模 60计数器,输入信号有计数使能 en、清零 clear 、时钟 clk ;输出信号有 ql0 、 ql1 、ql2 、ql3 、qh0 、qh1 、qh2 以及进位输出。调用库中已有的元件符号 74161 、三输入与非门 nand3 、非门 not 等, 构成符合要求的计数器,图 是模 60计数器的原理图。 8 模60计数器原理图 9 顶层文件设计?执行菜单 File 下的建立新文件,文件名为 。在 空白处双击鼠标左键,打开 Enter sym