VHDL实验报告

更新时间:2023-11-11 20:27:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

专用集成电路实验报告

13050Z01 1305024237

刘德文

实验一 开发平台软件安装与认知实验

实验内容

1、 本实验以三线八线译码器(LS74138)为例,在Xilinx ISE 9.2软件平台上完成设计

电路的VHDL文本输入、语法检查、编译、仿真、管脚分配和编程下载等操作。下载芯片选择Xilinx公司的CoolRunner II系列XC2C256-7PQ208作为目标仿真芯片。 2、 用1中所设计的的三线八线译码器(LS74138)生成一个LS74138元件,在Xilinx ISE

9.2软件原理图设计平台上完成LS74138元件的调用,用原理图的方法设计三线八线译码器(LS74138),实现编译,仿真,管脚分配和编程下载等操作。

源程序:

library IEEE;

use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;

-- Uncomment the following lines to use the declarations that are -- provided for instantiating Xilinx primitive components. --library UNISIM;

--use UNISIM.VComponents.all;

entity ls74138 is

Port ( g1 : in std_logic; g2 : in std_logic;

inp : in std_logic_vector(2 downto 0); y : out std_logic_vector(7 downto 0)); end ls74138;

architecture Behavioral of ls74138 is begin

process(g1,g2,inp) begin

if((g1 and g2)='1') then case inp is

when \ when \

when \

when \ when \ when \ when \ when \ when others=>y<=\ end case; else

y<=\ end if; end process; end Behavioral;

波形文件:

生成元器件及连接电路

思考:

有程序可以看出,定义了三个输入端,一个输出端。g1,g2为使能输入端,当全为一时,开始执行宽度为三的输入inp,并听过程序实现三八译码器的功能。通过实验,分别用了原理图和vhdl语言两种方式进行调试。两种方法各有优缺点。对于原理图而言,可以清晰直观的看出电路各部分的构造,但却只能在原有的基础上进行链接而无法随意修改元器件功能;vhdl语言则可以按照实际的需求进行编写程序,从而可以实现开发者想要实现的功能。

实验二 组合逻辑电路的VHDL语言实现

实验内容:

1.用VHDL语言实现优先编码器的设计并实现功能仿真 2.用VHDL语言实现四选一选择器的设计并实现功能仿真。

1.优先编码器源程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY priorityencoder IS

PORT (input:IN STD_LOGIC_VECTOR (7 DOWNTO 0); y:OUT STD_LOGIC_VECTOR (2 DOWNTO 0)); END priorityencoder;

ARCHITECTURE rtl OF priorityencoder IS BEGIN

PROCESS (input) BEGIN

IF(input(0)='0') THEN y<=\

ELSIF(input(1)='0') THEN y<=\

ELSIF(input(2)='0') THEN y<=\

ELSIF(input(3)='0') THEN y<=\

ELSIF(input(4)='0') THEN y<=\

ELSIF(input(5)='0') THEN y<=\

ELSIF(input(6)='0') THEN y<=\ ELSE

y<=\ END IF; END PROCESS; END rtl;

波形图

原理图:

2.四选一选择器源程序:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux4 IS

PORT (input:IN STD_LOGIC_VECTOR (3 DOWNTO 0); a,b:IN STD_LOGIC; y:OUT STD_LOGIC); END mux4;

ARCHITECTURE rt1 OF mux4 IS

SIGNAL se1:STD_LOGIC_VECTOR (1 DOWNTO 0); BEGIN

se1<=b&a;

PROCESS (input,se1) BEGIN

IF(se1=\ y<=input(0); ELSIF(se1=\ y<=input(1); ELSIF(se1=\ y<=input(2); ELSE

y<=input(3); END IF;

本文来源:https://www.bwwdw.com/article/qxkv.html

Top