常用EDA工具软件操作指南(5)

2019-08-20 18:57

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY COUNT_T IS

PORT (CLK : IN STD_LOGIC; CLK_S: OUT STD_LOGIC;

SCAN_CLK : OUT STD_LOGIC_VECTOR(1 DOWNTO 0)); END COUNT_T;

ARCHITECTURE BEHAVIORAL OF COUNT_T IS

SIGNALCNT1 : STD_LOGIC_VECTOR(21 DOWNTO 0):=\SIGNAL CLK1 : STD_LOGIC:='0'; BEGIN

--10HZ时钟形成进程 PROCESS(CLK) BEGIN

IF CLK='1' AND CLK'EVENT THEN

IF CNT1=\ CNT1<=(OTHERS =>'0'); CLK1<=NOT CLK1; ELSE

CNT1<=CNT1+1; END IF; END IF;

END PROCESS; CLK_S<=CLK1;

SCAN_CLK<=CNT1(15 DOWNTO 14); END BEHAVIORAL;

-- LED_2.VHD LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY LED_2 IS

PORT ( SCAN_CLK : IN STD_LOGIC_VECTOR(1 DOWNTO 0); L1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); L2 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); L3 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); SEG : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); A : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END LED_2;

ARCHITECTURE BEHAVIORAL OF LED_2 IS

SIGNAL LED1,LED2,LED3 :STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN

WITH L1 SELECT --十位 LED1<= \, --1 \, --2 \, --3 \, --4 \, --5 \, --6

\, --7 \, --8 \, --9 \ --0

WITH L2 SELECT --个位 LED2<= \, --1 \, --2 \, --3 \, --4 \, --5 \, --6 \, --7 \, --8 \, --9 \ --0

WITH L3 SELECT --小数 LED3<= \, --1 \, --2 \, --3 \, --4 \, --5 \, --6 \, --7 \, --8 \, --9 \ --0

PROCESS(SCAN_CLK,LED1,LED2,LED3) BEGIN

CASE SCAN_CLK IS

WHEN \ A<=\ WHEN \ A<=\ WHEN \ A<=\ WHEN \ A<=\

WHEN OTHERS => SEG<=\ A<=\ END CASE; END PROCESS;

END BEHAVIORAL;

--SEC_1.VHD LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SEC_1 IS

PORT (CLK_S : IN STD_LOGIC; K1 : IN STD_LOGIC;

K2 : IN STD_LOGIC; K3 : IN STD_LOGIC; L1 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); L2 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); L3 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END SEC_1;

ARCHITECTURE BEHAVIORAL OF SEC_1 IS TYPE STATES IS (S0,S1,S2); SIGNAL ST : STATES:=S0;

SIGNAL CNT3 : STD_LOGIC_VECTOR(3 DOWNTO 0):=\SIGNAL CNT4 : STD_LOGIC_VECTOR(3 DOWNTO 0):=\SIGNAL CNT5 : STD_LOGIC_VECTOR(3 DOWNTO 0):=\BEGIN

--24秒倒计时

-- K1: 设置24秒,并暂停,进入状态S2; -- K2: 停表,强制进入状态S0 (什么也不做);

-- K3: 开始倒计时 S1,至0秒时自动停止,进入状态S0; PROCESS(CLK_S) BEGIN

IF CLK_S='1' AND CLK_S'EVENT THEN

IF K1='1'AND K2='0'AND K3='1' THEN ST<=S0; END IF;

IF K1='0'AND K2='1'AND K3='1' THEN ST<=S2; END IF;

IF K1='1'AND K2='1'AND K3='0' THEN ST<=S1; END IF;

CASE ST IS

WHEN S0=> NULL; WHEN S1=> IF CNT5=\ IF CNT4=\ IF CNT3=\ ST<=S0; ELSE CNT4<=\ CNT5<=\ CNT3<=CNT3-1; END IF; ELSE CNT5<=\ CNT4<=CNT4-1; END IF; ELSE CNT5<=CNT5-1; END IF; WHEN S2 => CNT5<=\ CNT3<=\--十位 CNT4<=\ WHEN OTHERS => NULL; END CASE; END IF;

END PROCESS; L3<=CNT5;

L2<=CNT4; L1<=CNT3;

END BEHAVIORAL;

3)逻辑综合(Synthesize)

选中Synthesize选项,点进行参数设置,可以对任何操作进行参数设置。设置完成后,双击Synthesize选项,或右键选择Run选项。对其他两个VHDL程序进行同样的操作。

图4.35 综合参数设置示意图

图4.36 综合完成后界面

4)设计中的有关仿真

(1) 创建Testbench波形源文件

在工程项窗口Project Window的源文件中选中count_t.vhd ,用鼠标右点,在弹出的窗口中选择New Source(如图4.37所示),出现New对话框,再选择Test Bench Waveform文件类型,并输入文件名wave_1,点击下一步,再点击下一步,完成创建并进行初始化时间设置(如图4.38所示)。

图4.37 选中源文件并创建Testbench波形文件

图4.38 创建Testbench波形文件的初始化时间设置

(2) 设置输入信号初始值

根据被仿真模块的设计要求,对各个输入信号进行初始化设置(如图4.39所示)。初始化设置完毕后将testbench文件存盘,这时HDL Bencher会提示我们设置希望仿真的时钟周期数(默认值为1),设置完毕后点击OK退出HDL Bencher。


常用EDA工具软件操作指南(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:福建省发展老龄产业若干问题的思考

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: