欢迎访问有用文档网!

当前位置: 有用文档网 > 述职报告 >

VHDL实验报告

| 浏览次数:

 专用集成电路实验报告

 1305 0Z 01

 1305 0 242 37 7

 刘德文

 实验一

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

 实验内容 1 1 、

 本实验以三线八线译码器 (L S 741 38) ) 为例, ,在 在 Xilinx I S E 9 、2 2 软件平台上完成设计电路得 L VHDL 文本输入、语法检查、编译、仿真、管脚分配与编程下载等操作。下载芯片选择 Xil in n x 公司得 Coo lR unn e r II I 系列 XC2 C 25 6- - 7P P Q8 208 作为目标仿真芯片、

 2、

 用1中所设计得得三线八线译码器 (LS 74 4 1 38) 生成一个 LS7 48 138 元件, ,在 在 X X i linx IS E 9。2 2 软件原理图设计平台上完成 8 LS74138 元件得调用, , 用原理图得方法设计三线八线译码器 (LS74138), 实现编译, , 仿真, , 管脚分配与编程下载等操作。

 源程序:

 library IEEE; use IEEE。STD_LOGIC_1164.ALL; use IEEE。STD_LOGIC_ARITH。ALL; use IEEE。STD_LOGIC_UNSIGNED、ALL; -—

 Unment the following lines to use the declarations that are --

 provided for instantiating Xilinx primitive ponents、 --library UNISIM; --use UNISIM.Vponents。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

  si pni esacﻩ

 when ”000"=>y<="00000001";

 ;”01000000"=〈y〉=”100" nehwﻩ

  when ”010"=>y<=”00000100”;

  ;"00010000”=<y>=”110” nehwﻩ

 ;”00001000”=〈y>="001" nehwﻩ

 ;”00000100”=〈y>=”101" nehwﻩ

 when "110”=>y<="01000000";

  ;"00000001"=<y>="111" nehwﻩ

 ;""=<y>=srehto nehwﻩ ﻩ

  end case;

  else

 ;""=<yﻩﻩ

 end if; end process; end Behavioral; 波形文件: :

  生成元器件及连接电路

  思考: :

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

 实验二

 组合逻辑电路得 L VHDL 语言实现

 实验内容: 1.用 用 V V HL DL 语言实现优先编码器得设计并实现功能仿真

 2. 用VH H DL L 语言实现四选一选择器得设计并实现功能仿真。

 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<="111";

 ELSIF(input(1)=’0") THEN

 y<="110";

 ELSIF(input(2)=’0") THEN

 y<=”101”;

 ELSIF(input(3)=’0") THEN

 y<="100”;

 ELSIF(input(4)='0") THEN

 y〈="011";

 ELSIF(input(5)=’0’) THEN

 y<=”010";

 ELSIF(input(6)='0’) THEN

 y〈=”001”;

 ELSE

 y〈="000";

  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="00”)THEN

  y<=input(0);

 ELSIF(se1=”01”)THEN

  y〈=input(1);

 ELSIF(se1="10")THEN

  y〈=input(2);

 ELSE

  y〈=input(3);

 END IF;

  END PROCESS; END rt1; 波形图

 原理图

 思考:

 1. 优先编码器: 通过程序定义了一个八位得输入端与一个三位得输入端。首先就是通过八位得

  输入端得最低 位开始判断,是 如果就是 0, 则输出为:111;是 如果就是 1, 则判断第

 二位, 以此类推, 直到最后一位, 如果都不满足, 则输出:00 0。

 2 、四选一选择器: 一共有三个输入, 其中一个就是宽度为四得可供选择得输入端, 将一个四位给 宽度得二进制码赋值给 input 端, 通过 a 与 与 b 得输入选择in put 得输出。如ab 为 为 00 时,则输出为:inpu t(0), 以此类推、 实验三

 时序逻辑电路得 L VHDL 语言实验

 实验内容:( 3选 1) (一)

 、 设计一个 0 60 进制得计数器

 (二)

 设计一带使能得同步复位清零得递增 8 8 位二进制计数器

 (三)

 设计 一带使能得异步清零复位得递增 8 8 位二进制计数器

 六十进制( 异步清零) 源程序:

  library ieee; use ieee。std_logic_1164。all; use ieee、std_logic_unsigned.all; entity ycounter is

 port(clk,clear,enable:in std_logic;

  --ld:in std_logic;

  —-d:in std_logic_vector(7 downto 0);

  qk:out std_logic_vector(7 downto 0)); end ycounter; architecture a_ycounter of ycounter is

 begin

 PROCESS (clk)

 VARIABLE cnt :std_logic_vector(7 downto 0);

 BEGIN

  IF (clk"EVENT AND clk = "1') THEN

  IF(clear = "0") THEN

 cnt := ”00000000";

  --ELSE

  —-IF(ld = ’0’) THEN

  -- cnt := d;

  ELSE

 IF(enable = ’1’) THEN

  cnt := cnt + "00000001";

  if(cnt=”00111100")then

 cnt := "00000000";

 end if;

 END IF;

  -—END IF;

  END IF;

  END IF;

 qk 〈= cnt;

 END PROCESS; end a_ycounter; 波形图:

  六十进制( 同步置数) 源程序: library ieee; use ieee。std_logic_1164.all; use ieee.std_logic_unsigned、all; entity ycounter is

 port(clk,clear,enable:in std_logic;

  ld:in std_logic;

  d:in std_logic_vector(7 downto 0);

  qk:out std_logic_vector(7 downto 0)); end ycounter; architecture a_ycounter of ycounter is begin

 PROCESS (clk)

 VARIABLE cnt :std_logic_vector(7 downto 0);

 BEGIN

  IF (clk’EVENT AND clk = "1’) THEN

  IF(clear = '0’) THEN

 cnt := ”00000000";

  ELSE

  IF(ld = ’0') THEN

  cnt := d;

  ELSE

 IF(enable = "1’) THEN

  cnt := cnt + ”00000001”;

  if(cnt=”00111011”)then

 Ld :=1;

  end if;

 END IF;

  END IF;

  END IF;

  END IF;

 qk <= cnt;

 END PROCESS; end a_ycounter; 波形图:

 思考: 六十进制计数器得实现,1) 异步清零程序得实现: 通过判断最后一个状态, 因为该计数器位六十进制, 所以最后一个状态为 5 9, 用二进制码表示为:"0 0111011” ”, 即当计数器得状态为六十,即"0 011 1100 "状态时, 计数器清零, 输出00000 000 。2) 同步置数程序得实现: 当计数器达到状 态, 当计数器达到状态”00111011" 时,ld 被赋值为0, 执行置数功能, 将d得值赋值给

 y, 计数器从零开始计数、

 实验四

 V V HDL L 层次化设计方法实验

 实验内容:

 设计一个 8 8 位移位寄存器。各个 D D 触发器模块采用 V V HL DL 语言编写, , 分别用原理图、VHD L语言元件例化语句与生成语句得方法实现 8 8 位移位寄存器得设计。

 D 触发器源程序: library IEEE; use IEEE、STD_LOGIC_1164。ALL; use IEEE。STD_LOGIC_ARITH、ALL; use IEEE、STD_LOGIC_UNSIGNED、ALL; —-

 Unment the following lines to use the declarations that are -—

 provided for instantiating Xilinx primitive components、 --library UNISIM; --use UNISIM.VComponents。all; entity Dchu is

  Port ( CLK : in

 STD_LOGIC;

 D : in

 STD_LOGIC;

 Q : out

 STD_LOGIC;

 CLEAR : in

 STD_LOGIC;

 Q_N : out

 STD_LOGIC); end Dchu; ARCHITECTURE BEH OF Dchu IS

 ;CIGOL_DTS:1Q LANGISﻩ

 BEGIN

 )1Q,KLC,RAELC( SSECORPﻩ

 NIGEBﻩ

 IF CLEAR="0’

  THEN Q1〈=’0';

  ELSIF CLK’EVENT AND CLK=’1' ﻩ;D=〈1Q NEHTﻩ

 END IF;

 ;SSECORP DNEﻩ ﻩ Q〈=Q1;

  ;1Q ton=〈N_Qﻩﻩ

 ;HEB DNEﻩ波形图: D 触发器:

 八位移位寄存器:

 八位移位寄存器原理图:

  元件例化: 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.Vponents。all; entity shift_reg_8_com is

  Port ( a,clk,rst : in

 STD_LOGIC;

 b: out

 STD_LOGIC); end shift_reg_8_com; ARCHITECTURE BEH OF shift_reg_8_ IS

 1ffd tnenopﻩPort ( d,clk,rst : in

 STD_LOGIC;

  q: out

 STD_LOGIC); End ponent; Signal q:STD_LOGIC_VECTOR(8DOWNTO0); BEGIN

 q(0)<=a; d0:dff1 PORT MAP(q(0),clk,rst,q(1)); d1:dff1 PORT MAP(q(1),clk,rst,q(2)); d2:dff1 PORT MAP(q(2),clk,rst,q(3)); d3:dff1 PORT MAP(q(3),clk,rst,q(4)); d4:dff1 PORT MAP(q(4),clk,rst,q(5)); d5:dff1 PORT MAP(q(5),clk,rst,q(6)); d6:dff1 PORT MAP(q(6),clk,rst,q(7)); d7:dff1 PORT MAP(q(7),clk,rst,q(8)); b<=q(4); End str; 生成语句: library IEEE; use IEEE。STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED。ALL; -—

 Unment the following lines to use the declarations that are —-

 provided for instantiating Xilinx primitive components、 ——library UNISIM; ——use UNISIM。VComponents、all;

 entity shift_reg_8_com is

  Port ( a,clk,rst : in

 STD_LOGIC;

 b: out

 STD_LOGIC); end shift_reg_8_com; ARCHITECTURE BEH OF shift_reg_8_ IS

 1ffd tnenopmoCﻩPort ( d,clk,rst : in

 STD_LOGIC;

 q: out

 STD_LOGIC); End component; Signal q:STD_LOGIC_VECTOR(8DOWNTO0); BEGIN

 ;a=<)0(qﻩg1: FOR I IN 0 TO 7 GENERATE dx:dff1 PORT MAP(q(i),clk,rst,q(i+1)); End generate g1; b〈=q(4); End str; 实验结果( 仿真结果) 与分析

 元件例化语句由两部分组成, 元件说明语句与元件例化语句。首先要设计被上层电路调用得电路块,即 即 D 触发器模块, 八位移位寄存器就就是通过程序调用八个 个 D 触发器, 每个D触发器都相当于一个模块、生成语句就是将已设计好得D触发器得逻辑语句进行复制, 从而生成一组结构上完全相同得设计单元得电路结构。从上面得两个程序可以瞧出, 当所需要得组件比较少时, 两种语句得大小差不多, 但当所需要得组件比较多时, 生成语句得执行效率明显得要变高, 而且程序所占内存明显减少。

推荐访问:实验 报告 VHDL

热门排行Top Ranking

弦振动实验报告

弦振动得研究 一、实验目得 1、观察固定均匀弦振动共振干涉形成驻波时得波形,加深驻波得认识。 2、了

宣传委员述职报告12020 幼儿园党支部宣传委员述职报告

下面是小编为大家精心整理的宣传委员述职报告12020幼儿园党支部宣传委员述职报告文章,供大家阅读参考。宣传委员述

党建工作现场述职会上讲话 公安局长在党建工作现场会上的讲话

下面是小编为大家精心整理的党建工作现场述职会上讲话公安局长在党建工作现场会上的讲话文章,供大家阅读参考。党建工作现场

支部宣传委员述职述廉报告范例 幼儿园党支部宣传委员述职报告

下面是小编为大家精心整理的支部宣传委员述职述廉报告范例幼儿园党支部宣传委员述职报告文章,供大家阅读参考。支部宣传

政治生态评估报告5篇

可能会捆绑住经办人员的手脚,不利于业务工作的开展。致使个别中层干部主体责任压力传导出现能量损耗;个别

2021年领导述职报告合集2020 县领导述职报告

下面是小编为大家精心整理的2021年领导述职报告合集2020县领导述职报告文章,供大家阅读参考。2

工商局监察室主任述职述廉报告

工商局监察室主任述职述廉报告 第一篇:工商局监察室主任述职述廉报告 我叫haoword,中共党员,现

党支部书记个人述职报告 对村党支部书记述职报告的点评

下面是小编为大家精心整理的党支部书记个人述职报告对村党支部书记述职报告的点评文章,供大家阅读参考。党支部书记个人

财务分析课程报告4篇

财务分析课程报告4篇财务分析课程报告篇1一年来,在领导和同事们的的支持帮助和指导下,加上自身的不断努

结合乡村振兴战略人才工作述职报告 乡村振兴工作员年度述职

下面是小编为大家精心整理的结合乡村振兴战略人才工作述职报告乡村振兴工作员年度述职文章,供大家阅读参考。结合

个人安全生产履职报告[安全生产述职报告] 党委书记安全生产履职报告

下面是小编为大家精心整理的个人安全生产履职报告[安全生产述职报告]党委书记安全生产履职报告文章,供大家阅读参

企业年度工作总结报告范文13篇

企业年度工作总结报告范文13篇企业年度工作总结报告范文篇1时光飞逝,转眼已经毕业一年了,我顺利地完成