数字电路课程设计报告
PORT(SEL:IN STD_LOGIC;
A,B:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END ;
ARCHITECTURE ONE OF MUX21 IS BEGIN
PROCESS(A,B,SEL) BEGIN
CASE SEL IS WHEN '0'=>Q<=A; WHEN '1'=>Q<=B;
WHEN OTHERS=>Q<=\END CASE; END PROCESS; END ONE;
生成的电路模块如下:
图2-14
仿真波形如下:
图2-15
分析结果:由波形可知,当SEL=1时,输出信号Q=B; 当SEL=0时,输出信号Q=A。显然此模块符合设计要求。
数字电路课程设计报告
2.1.5位码选择器模块设计
源程序如下: LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY DECODER1_2 is PORT ( A:IN STD_LOGIC;
CHOOSE_WEI_MA:OUT STD_LOGIC_VECTOR(1 downto 0)); END DECODER1_2;
ARCHITECTURE ONE OF DECODER1_2 IS BEGIN
PROCESS(A) BEGIN
CASE A IS
WHEN '0'=>CHOOSE_WEI_MA<=\ WHEN '1'=>CHOOSE_WEI_MA<=\ WHEN OTHERS=>CHOOSE_WEI_MA<=\ END CASE; END PROCESS; END ONE;
生成的电路模块如下:
图2-16
仿真波形如下:
图2-17
分析结果:由波形可知,当A=1时,输出信号CHOOSE_WEI_MA=10; 当A=0时,输出信号CHOOSE_WEI_MA=01;由此可知,每次只能选通一个数码管,通过改
数字电路课程设计报告
变选择信号A的频率,利用人眼的视觉暂留,即可达到显示要求。显然此模块符合设计要求。
2.1.5驱动共阴极数码管七段译码器模块设计
源程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY SEGMENT7 is
PORT ( DATAIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0); DATAOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END SEGMENT7 ;
ARCHITECTURE ONE OF SEGMENT7 IS BEGIN
WITH DATAIN SELECT
DATAOUT<=\ \ \ \ \ \ \ \ \ \ \END ONE;
生成的电路模块如下:
图2-18
仿真波形如下:
数字电路课程设计报告
图2-19
分析结果:DATAOUT(6)=a, DATAOUT(5)=b, DATAOUT(6)=c, DATAOUT(6)=d, DATAOUT(6)=e, DATAOUT(6)=f, DATAOUT(6)=g。当DATAIN=\时,DATAOUT=\,共阴数码管当位码选通时,段码为高电平即可点亮数码管。当DATAIN=\时,DATAOUT=\,此时只有g段不亮,显示0;当DATAIN=\时,DATAOUT =\,即a,b,c三段亮,显示字符7。其余分析类似。显然此模块设计符合要求。
2.1.6二-十进制译码器模块设计
源程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY BCD2_10 IS
PORT(BCD1,BCD2:IN STD_LOGIC_VECTOR(3 DOWNTO 0); B_OUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END BCD2_10;
ARCHITECTURE ONE OF BCD2_10 IS BEGIN
B_OUT<=BCD2*\END ONE;
生成的电路模块如下:
图2-20
数字电路课程设计报告
仿真波形如下:
图2-21
分析结果:将高四位BCD2 ? 10 +低四位BCD2即可得到结果B_OUT,由波形图即可验证,显然此模块符合设计要求。
2.1.7层次化设计
源程序如下: LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DISPLAY IS
PORT(CP1,UP1,DOWN1:IN STD_LOGIC;
DATA_TO_DA:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); DUAN_MA_CHOOSE:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); WEI_MA_CHOOSE:OUT STD_LOGIC_VECTOR(1 DOWNTO 0)); END DISPLAY;
ARCHITECTURE ONE OF DISPLAY IS COMPONENT DVF
PORT(CLK:IN STD_LOGIC; FOUT:OUT STD_LOGIC); END COMPONENT; COMPONENT BCD2_10
PORT(BCD1,BCD2:IN STD_LOGIC_VECTOR(3 DOWNTO 0); B_OUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END COMPONENT;
COMPONENT SEGMENT7
PORT ( DATAIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
DATAOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END COMPONENT ; COMPONENT KEY
PORT( UP:IN STD_LOGIC;