VHDL硬件描述语言实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

硬件描述语言实验附录

姓名:xxx

学号:xxx

指导教师:xxx

目录

硬件描述语言实验附录 (1)

实验1.三输入与门电路实验 (2)

实验2. 三—八译码器实验 (3)

实验3. D触发器实验 (4)

实验4. 分频器实验 (5)

实验5. 状态机实验 (8)

实验1.三输入与门电路实验

--三输入与门电路threeinput

--姓名:王定

--学号:1306034248

--中北大学

LIBRARY IEEE; --调用库

USE IEEE.STD_LOGIC_1164.ALL;--库文件

--------------------------------------------------------------

ENTITY threeinput IS --定义实体名,其名称必须与VHDL文本文件名称相同PORT( A: IN STD_LOGIC; --输入端口,时钟输入

B: IN STD_LOGIC; --输入端口,个位写入使能

C: IN STD_LOGIC; --输入端口,十位写入使能

CO: OUT STD_LOGIC); --输出端口,溢出标志

END ENTITY threeinput; --结束端口定义

--------------------------------------------------------------

ARCHITECTURE RTL OF threeinput IS--定义结构体

BEGIN

PROCESS(A,B,C) IS --开始,必须带上

BEGIN

CO<=A AND B AND C ;

END PROCESS;

END ARCHITECTURE RTL; --结束结构体

表1. 三输入与门电路VHDL实验代码

图1. 三输入与门电路仿真波形图,A,B,C输入,CO输出

实验2. 三—八译码器实验

--王定--2015年11月25日--3线-8线译码器

LIBRARYIEEE; --调用库

USEIEEE.STD_LOGIC_1164.ALL; --库文件

-------------------------------------------------------------

ENTITYthreetoeightIS

PORT(

DA TAIN:INSTD_LOGIC_VECTOR(2DOWNTO0);

--数据输入

DA TAOUT:OUTSTD_LOGIC_VECTOR(7DOWNTO0));--

数据输出

ENDENTITYthreetoeight; --结束实体

-------------------------------------------------------------

ARCHITECTUREBEHA VEOFthreetoeightIS--结构体

BEGIN --不能漏掉

PROCESS(DATAIN) --数据输入

BEGIN --开始,不能漏掉

CASEDATAINIS --情况判定

WHEN"000"=>DA TAOUT<="00000001";

WHEN"001"=>DA TAOUT<="00000010";

WHEN"010"=>DA TAOUT<="00000100";

WHEN"011"=>DATAOUT<="00001000";

WHEN"100"=>DA TAOUT<="00010000";

WHEN"101"=>DA TAOUT<="00100000";

WHEN"110"=>DATAOUT<="01000000";

WHEN"111"=>DA TAOUT<="10000000";

WHENOTHERS=>null;

ENDCASE;

ENDPROCESS;

ENDBEHA VE;

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY decoder_3_to_8 IS

PORT (a,b,c,g1,g2a,g2b:IN STD_LOGIC;

y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));

END decoder_3_to_8;

ARCHITECTURE rtl OF decoder_3_to_8 IS

SIGNAL indata:STD_LOGIC_VECTOR (2 DOWNTO 0);

BEGIN

indata <= c & b & a;

PROCESS (indata,g1,g2a,g2b)

BEGIN

IF (g1 = '1' AND g2a = '0' AND g2b = '0' ) THEN

CASE indata IS

WHEN "000" => y <= "11111110";

WHEN "001" => y <= "11111101";

WHEN "010" => y <= "11111011";

WHEN "011" => y <= "11110111";

WHEN "100" => y <= "11101111";

WHEN "101" => y <= "11011111";

WHEN "110" => y <= "10111111";

WHEN "111" => y <= "01111111";

WHEN OTHERS=>y<= "XXXXXXXX";

END CASE;

ELSE

Y <= "11111111";

END IF;

END PROCESS;

END rtl;

表2. 三—八译码器VHDL实验代码

图2. 三—八译码器仿真波形图

相关文档
最新文档