VHDL实验新及答案PPT课件

上传人:m**** 文档编号:577079571 上传时间:2024-08-21 格式:PPT 页数:32 大小:588KB
返回 下载 相关 举报
VHDL实验新及答案PPT课件_第1页
第1页 / 共32页
VHDL实验新及答案PPT课件_第2页
第2页 / 共32页
VHDL实验新及答案PPT课件_第3页
第3页 / 共32页
VHDL实验新及答案PPT课件_第4页
第4页 / 共32页
VHDL实验新及答案PPT课件_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《VHDL实验新及答案PPT课件》由会员分享,可在线阅读,更多相关《VHDL实验新及答案PPT课件(32页珍藏版)》请在金锄头文库上搜索。

1、实验实验1 1熟悉实验环境,完成下述实验内容:熟悉实验环境,完成下述实验内容:1.1.2 2输入与门、输入与门、 2 2输入或门、输入或门、 2 2输入异或门及输入异或门及非门的设计。非门的设计。2.2.D D触发器的设计。触发器的设计。3.3.带有异步清零、异步置位功能的边沿带有异步清零、异步置位功能的边沿JKJK触发触发器的设计。器的设计。1-1代码非门LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY NOT IS PORT(A:IN STD_LOGIC; Y:OUT STD_LOGIC);END ENTITY NOT;ARCHITECTURE

2、 ART OF NOT IS BEGIN Y= NOT A; END ARCHITECTURE ART;1-1代码异或门LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY XOR2 IS PORT(A,B:IN STD_LOGIC; Y:OUT STD_LOGIC);END ENTITY XOR2;ARCHITECTURE ART OF XOR2 IS BEGIN Y=A XOR B; END ARCHITECTURE ART;1-2代码D触发器的设计library ieee;use ieee.std_logic_1164.all;entity d_

3、chufa is port ( clk,d:in std_logic; q:out std_logic);end d_chufa;architecture behav of d_chufa isbeginprocess(clk)isbeginif(clk event and clk=1)thenq=d;end if;end process;end behav;1-3代码异步清零、异步置位功能的边沿异步清零、异步置位功能的边沿JKJK触发器触发器library ieee;use ieee.std_logic_1164.all;entity jk isport( pset,clr,clk,j,k:

4、in std_logic ; q,qb:out std_logic);end entity;architecture behav of jk issignal q_s,qb_s:std_logic;beginprocess(pset,clr,clk,j,k )beginif(pset=0)and(clr=1)thenq_s=1;qb_s=0;elsif(pset=1)and(clr=0)thenq_s=0;qb_s=1;elsif(clk event and clk=1)thenif(j=0)and(k=1)thenq_s=0;qb_s=1;elsif(j=1)and(k=0)thenq_s=

5、1;qb_s=0;elsif(j=1)and(k=1)thenq_s=not q_s;qb_s=not qb_s;end if;end if;q=q_s;qb=qb_s;end process;end behav;实验实验2 21 1实验内容:完成下述模块的设计,实现真值表中实验内容:完成下述模块的设计,实现真值表中的半加与半减的功能。的半加与半减的功能。提示信息:将加法与减法区分成两个功能模块,提示信息:将加法与减法区分成两个功能模块,使用使用BLOCK语句将构造体分为两大部分。语句将构造体分为两大部分。输 入 值半 加 法 器(A+B)半 减 法 器(A-B)ABSumCarDiffere

6、nceBorrow0001101100101001011001002-1代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity half is port ( a,b:in std_logic; sum,car,dif,bor:out std_logic);end half;architecture behav of half isbeging1:blockbeginsum=a xor b;car=a xor b;end block g1;g2:blockbegindif=a xor b;

7、bor=(not a) and b;end block g2;end behav;实验实验2 22 2实验内容:设计一个实验内容:设计一个4位加减法器位加减法器.要求:要求:a,b:数据输入;:数据输入; sub: 控制端,高电平实现加法功能,控制端,高电平实现加法功能, 低电平实现减法功能;低电平实现减法功能; s:和与差的输出;:和与差的输出; co:进位与借位的输出。:进位与借位的输出。2-2代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity subadd isport(sub

8、:in std_logic; a,b:in std_logic_vector(3 downto 0); s:out std_logic_vector(3 downto 0); co:out std_logic);end entity subadd;architecture behav of subadd issignal temp:std_logic_vector(4 downto 0);beginprocess(sub,a,b) begin if sub=1 then temp=a+b; else temp=a-b; end if;end process;s=temp(3 downto 0)

9、;co=temp(4);end behav;实验实验3 31 1实验内容:如下表所示为实验内容:如下表所示为4位双向通用移位寄存位双向通用移位寄存器器74LS194的真值表,编写程序描述该逻辑,的真值表,编写程序描述该逻辑,仿真其功能。仿真其功能。3-1代码library ieee;use ieee.std_logic_1164.all;entity ls194 is port ( clr,s0,s1,clk,l,r:in std_logic; p:in std_logic_vector(3 downto 0); q:out std_logic_vector(3 downto 0);end l

10、s194;architecture behav of ls194 issignal qs:std_logic_vector(3 downto 0);beginprocess(clr,s0,s1,clk,l,r)isbeginif(clr=0)then qs=0000;elsif(clk event and clk=1)then if(s1=1)and(s0=1)then qs=p;elsif(s1=0)and(s0=1)thenif(r=1)then qs(3)=1; qs(2 downto 0)=qs(3 downto 1);elsif(r=0)then qs(3)=0;qs(2 downt

11、o 0)=qs(3 downto 1);end if;elsif(s1=1)and(s0=0)thenif(l=1)then qs(0)=1;qs(3 downto 1)=qs(2 downto 0);elsif(l=0)then qs(0)=0;qs(3 downto 1)=qs(2 downto 0);end if; end if;end if;q=qs;end process;end behav;实验实验3 32 2实验内容:实验内容:38译码器的设计译码器的设计(要求用要求用WITHSELECT语句完成)(图形见下页)。语句完成)(图形见下页)。提示信息:提示信息:常见的常见的38译码

12、器的真值译码器的真值表如右:表如右:A0 A1 A20 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y71 0 0 0 0 0 0 00 1 0 0 0 0 0 00 0 1 0 0 0 0 00 0 0 1 0 0 0 00 0 0 0 1 0 0 00 0 0 0 0 1 0 0 0 0 0 0 0 0 1 00 0 0 0 0 0 0 1当当EN1时,译码器正常工作;当时,译码器正常工作;当EN=0时,时,译码器不动作。译码器不动作。A0A1A2ENY0Y73-2代码library ieee;use ieee.st

13、d_logic_1164.all;entity decode3to8 isport(a:in std_logic_vector(2 downto 0); en:in std_logic; y:out std_logic_vector(7 downto 0);end decode3to8;architecture behav of decode3to8 is signal sel:std_logic_vector(3 downto 0);begin sel=a&en; with sel select Ydoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdoutdou

14、tdoutdoutdoutdoutdout=0000000;end case;end process;end behav;实验实验4 42 2实验内容:设计完成一个实验内容:设计完成一个7位的偶同位产生器。位的偶同位产生器。提示信息:同位共分为两种形式:提示信息:同位共分为两种形式:奇同位:数据位与奇同位的奇同位:数据位与奇同位的1的个数为奇数。的个数为奇数。偶同位:数据位与偶同位的偶同位:数据位与偶同位的1的个数为偶数。的个数为偶数。n位的偶同位产生器的输入信号为位的偶同位产生器的输入信号为n位,输出信号为位,输出信号为n+1位,其中前位,其中前n位为输入信号,最后一位为偶同位位,位为输入信

15、号,最后一位为偶同位位,且保证输出的且保证输出的n+1位信息中位信息中1的个数为偶数个。(奇同的个数为偶数个。(奇同位产生器工作原理类似)位产生器工作原理类似)4-2代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity tongwei is port ( a:in std_logic_vector(6 downto 0); c:out std_logic_vector(7 downto 0);end entity;archite

16、cture behav of tongwei issignal temp:std_logic;begintemp=a(0)xor a(1)xor a(2)xor a(3)xor a(4)xor a(5)xor a(6);c=a & temp;end behav;实验实验5 51 1实验内容:完成实验内容:完成1位全加器的设计。位全加器的设计。提示信息:输入为提示信息:输入为A,B,C,其中,其中A、B为输入数为输入数据,据,C为输入的进位标志位;输出为为输入的进位标志位;输出为Sum和和Car,其中,其中Sum为本次运算结果位,为本次运算结果位,Car为本为本次进位标志位。次进位标志位。5-1

17、代码_library ieee;use ieee.std_logic_1164.all;entity fulladd is port ( a,b,c:in std_logic; car,s:out std_logic);end entity fulladd;architecture behav of fulladd isbegins=a xor b xor c ;car=(a and b)or(b and c)or(c and a);end behav;实验实验5 52 2实验内容:完成实验内容:完成4位全加法器的设计。位全加法器的设计。提示信息:一个提示信息:一个4位的全加法器可以由位的全加

18、法器可以由4个个1位的位的全加法器级联而成。全加法器级联而成。A(0) B(0)S(0)C(1)C(2)C(3)CoA(1) B(1)S(1)S(2)S(3)A(2)B(2)A(3)B(3)5-2代码_library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity fulladd4 isport( a,b:in std_logic_vector(3 downto 0); c0:out std_logic; s:out std_logic_ve

19、ctor(3 downto 0);end fulladd4;architecture str of fulladd4 issignal c1,c2,c3:std_logic;signal t:std_logic;component fulladdport(a,b,c:in std_logic; car,sum:out std_logic);end component;begint=0;u1:fulladd port map(a(0),b(0),t,c1,s(0);u2:fulladd port map(a(1),b(1),c1,c2,s(1);u3:fulladd port map(a(2),

20、b(2),c2,c3,s(2);u4:fulladd port map(a(3),b(3),c3,c0,s(3);end architecture str;实验实验6 61 1实验内容:设计一个实验内容:设计一个3bits的可逆计数器。的可逆计数器。提示信息:由名称可以知道,它的计数方式可提示信息:由名称可以知道,它的计数方式可以加(检测到以加(检测到CLK时钟的上升沿,计数器加时钟的上升沿,计数器加1),),也可以减(检测到也可以减(检测到CLK时钟的上升沿,计数器时钟的上升沿,计数器减减1)。使用一个控制信号)。使用一个控制信号DIR决定计数器是作决定计数器是作加法或减法的动作。加法或减法

21、的动作。6-1代码_updncount_3 is port(clk,clr,updn:in std_logic; qa,qb,qc:out std_logic); end library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity updncount_3; architecture rtl of updncount_3 is signal count_3:std_logic_vector(2 downto 0); begin qa=count_3(0); qb=count_3(1); qc

22、=count_3(2); process (clr,clk)begin if (clr=1)then count_30); elsif (clkevent and clk=1)then if (updn=1)then count_3=count_3+1; else count_3=count_3-1; end if; end if; end process; end rtl实验实验6 62 2实验内容:分频器设计。实验内容:分频器设计。要求要求:(1)设计一个占空比为设计一个占空比为50%的的6分频器;分频器;(2)设计一个占空比为)设计一个占空比为1:2的的6分频器。分频器。提示信息:占空比

23、为时钟周期中高电平与低电提示信息:占空比为时钟周期中高电平与低电平之比。平之比。6-2代码(_)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity fdiv isgeneric(N:integer:=6);port(clkin:in std_logic;clkout:out std_logic);end fdiv;architecture a of fdiv issignal cnt:integer range 0 to n/2-

24、1;n=6signal temp:std_logic;begin process(clkin)beginif(clkinevent and clkin=1)thenif(cnt=n/2-1)thencnt=0;temp=not temp;elsecnt=cnt+1;end if;end if;end process; clkout=temp;end a;6-2代码,占空比1:2 (_)LIBRARY IEEE;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;enti

25、ty shiyan62 is port ( clkin:in std_logic; rest:in std_logic; clk6fen:out std_logic);end; architecture rtl of shiyan62 is signal counter:std_logic_vector(0 to 2); begin process(clkin,counter,rest ) begin if rest=0 then counter=000; elsif clkinevent and clkin=1then if counter5 then counter=counter+1;

26、if counter3 then clk6fen=1; else clk6fen=0; end if; else counter=000; end if; end if ; end process; end architecture rtl;实验实验7 71 1实验内容:设计完成一实验内容:设计完成一10进制加法计数器。该计数器进制加法计数器。该计数器具有同步置数、同步清零的功能。具有同步置数、同步清零的功能。输入信号为:输入信号为:clk,clr,en,datain输出信号为:输出信号为:dataout,co当输入信号当输入信号clr1时,计数器清零;时,计数器清零;当置数信号当置数信号en

27、=1时,计数器装入输入时,计数器装入输入datain为计为计数初值重新计数;数初值重新计数;其它情况下,计数器进行其它情况下,计数器进行10进制加法计数,每计数到进制加法计数,每计数到9时,输出时,输出co1,表示进位。,表示进位。7-1代码(_)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count10 isport ( clr,clk,en:in std_logic; datain:in std_logic_vector(3 downto 0); co:out std_log

28、ic;dataout:out std_logic_vector(3 downto 0);end count10;architecture behav of count10 issignal tmp:std_logic_vector(3 downto 0);beginprocess(clk)beginif(clk event and clk=1)thenif(clr=1)then tmp=0000;elsif(en=1)thentmp=datain;elsif(tmp=1001)then tmp=0000;co=1;else tmp=tmp+1;co=0;end if;end if;end pr

29、ocess;dataout=tmp; end behav;实验实验7 72 2实验内容:设计完成实验内容:设计完成100进制加法计数器。进制加法计数器。要求:采用构造体结构化描述方式由要求:采用构造体结构化描述方式由2个个10进制计数器级联而成进制计数器级联而成7-2代码_顶层文件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count100 isport(clk:in std_logic; co:out std_logic; dout1,dout2:out std_logic_

30、vector(3 downto 0);end count100;architecture behave of count100 iscomponent count10 isport(clk:in std_logic; co:out std_logic; dataout:out std_logic_vector(3 downto 0);end component;signal temp:std_logic;beginu1:count10 port map(clk,temp,dout1);u2:count10 port map(temp,co,dout2);end behave;底层文件:libr

31、ary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count10 isport(clk:in std_logic; co:out std_logic; dataout:out std_logic_vector(3 downto 0);end count10;architecture behave of count10 issignal temp:std_logic_vector(3 downto 0);begindataout=temp;process(clk)beginif(clkevent and clk=1)then if(temp=1001)then temp=0000; co=1; else temp=temp+1; co=0; end if;end if;end process;end behave;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 物业管理

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号