六十进制计数器

六十进制计数器

一.实验目的

1.掌握文本与原理图相结合的层次设计方法。 2.掌握六十进制计数器设计。

二.实验仪器及设备

计算机、Quartus II。

三.实验原理

利用层次设计方法:

底层采用文本输入方法,设计十进制和六进制计数器; 顶层用原理图设计六十进制计数器。 以下是个模块的对应元件:

.

四.实验内容及注意事项

1.根据给定的元件符号,使用VHDL编写源代码。 2.层次设计,底层以文本形式设计六进制和十进制。

3.原理图的设计方法设计六十进制计数器。

4.仿真完成后,将顶成原理图文件转换为VHDL文本文件。 5.给出波形仿真。

6.对比若将cqi设置为信号后的仿真波形,进行分析。

注意:

1.VHDL描述十进制和六进制计数器时注意进位的输出。 2.顶层设计六十进制计数器的时候,注意线的选择。

(6进制vhdl文本)

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY count6 IS

PORT (clk,rst,en:IN STD_LOGIC;

cq:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); cout:OUT STD_LOGIC); END count6;

ARCHITECTURE behave OF count6 IS BEGIN

PROCESS(clk,rst,en)

VARIABLE cqi:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

IF rst='1' THEN cqi:=(OTHERS=>'0');cout<='0'; ELSIF (clk'EVENT and clk='1')then IF en='1' THEN

IF cqi<5 THEN cqi:=cqi+1;cout<='0'; ELSE cqi:=(others=>'0');cout<='1'; END IF; END IF; END IF; cq<=cqi;

END PROCESS; END behave;

六进制计数器的源程序count6(十进制计数器count10与此类似)

(10进制vhdl文本)

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY count10 IS

PORT(clk,rst,en:IN STD_LOGIC;

cq:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT:OUT STD_LOGIC); END count10;

ARCHITECTURE behave OF count10 IS BEGIN

PROCESS(clk,rst,en)

VARIABLE cqi:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

IF rst='1' THEN cqi:=(OTHERS=>'0');COUT<='0'; ELSIF(clk' EVENT and clk ='1') then IF en='1' THEN

IF cqi<9 THEN cqi:=cqi+1;cout<='0'; ELSE cqi:=(others=>'0');cout<='1'; END IF; END IF; END IF; cq<=cqi;

END PROCESS; END behave;

五.实验报告

1.将顶层原理图转换为VHDL文本。

(60进制vhdl文本)

LIBRARY ieee;

USE ieee.std_logic_1164.all;

LIBRARY work;

ENTITY count60 IS PORT (

clk : IN STD_LOGIC; rst : IN STD_LOGIC; en : IN STD_LOGIC;

overflow : OUT STD_LOGIC;

high_cnt_val : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); low_cnt_val : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );

END count60;

ARCHITECTURE bdf_type OF count60 IS

COMPONENT count10

PORT(clk : IN STD_LOGIC; rst : IN STD_LOGIC; en : IN STD_LOGIC; COUT : OUT STD_LOGIC;

cq : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );

END COMPONENT;

COMPONENT count6

PORT(clk : IN STD_LOGIC; rst : IN STD_LOGIC; en : IN STD_LOGIC; cout : OUT STD_LOGIC;

cq : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4