VHDL程序设计题.pptx
VHDL范例PPT课件
B4:IN STD_LOGIC_VECTOR(3 DOWNTO 0); S4:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CO4:OUT STD_LOGIC); END COMPONENT ADDER4B; SIGNAL SC:STD_LOGIC; --4位加法器的进位标志 BEGIN U1:ADDER4B --例化(安装)一个4位二进制加法器U1 PORT MAP(C4=>C8,A4=>A8(3 DOWNTO 0),
7.3 1秒计时电路的设计 外部输入的频率为1KHz,要求产生一个1S的时钟信号
1Kz ( 1/1000 秒) 10分频 (1/100秒) 10分频 (1/10秒) 10分频 1秒
CLK(1KHz)
10 clk001 10 clk01 10
分
分
分
频
频
频
clk1s
第7章 VHDL设计应用实例
(1)10分频的VHDL语言描述
第7章 VHDL设计应用实例
BEGIN A5<='0'& A4;
--将4位加数矢量扩为5位,为进位提供空间 B5<='0'& B4;
--将4位被加数矢量扩为5位,为进位提供空间 S5<=A5+B5+C4 ; S4<=S5(3 DOWNTO 0);
CO4<=S5(4); END ARCHITECTURE ART;
END ENTITY ADDER8B; ARCHITECTURE ART OF ADDER8B IS COMPONENT ADDER4B IS
--对要调用的元件ADDER4B的界面端口进行定义 PORT(C4:IN STD_LOGIC;
VHDL程序题
1.以下是一位全加器的VHDL设计,试补充完整。
library ieee; --半加器设计use ieee.std_logic_1164.all;entity h_adder isport (a, b : in std_logic;co, so : out std_logic);end h_adder;architecture fh1 of h_adder isbeginso <= not(a xor (not b)) ;co <= a and b ;end architecture fh1;library ieee; --或门设计use ieee.std_logic_1164.all;entity or2a isport (a,b: in std_logic;c: out std_logic);end or2a;architecture rtl of or2a isbeginc<= a or b after 10 ns;end rt;library ieee; --全加器设计use ieee.std_logic_1164.all;entity f_adder ISport (ain,bin,cin : in std_logic;cout,sum : out std_logic );end entity f_adder;architecture fd1 OF f_adder IScomponent h_adderport (a, b : in std_logic;co, so : out std_logic);end component;component or2aport (a,b: in std_logic;c: out std_logic);end component;signal d, e, f : std_logic;beginu1 : h_adder port map(a=>ain, b=>bin, co=>d, so=>e);u2 : h_adder port map (a=>e, b=>cin, co=>f, so=>sum);u3 : or2a port map (a=>d, b=>f, c=>cout);end architecture fd1;2.以下是含有使能端且具有同步清零的加减计数器的VHDL设计,试补充完整。
VHDL程序设计题讲课稿
VHDL 程序设计题VHDL程序设计题四、编程题(共50分)1、请补全以下二选一VHDL程序(本题10分)En tity mux isport(dO,d1,sel:in bit;q:out BIT ); (2)end mux;architecture conn ect of MUX is (4)sig nal tmpl, TMP2 ,tmp3:bit; (6)begincale:blockbegintmp1<=d0 and sel;tmp2<=d1 and (not sel)tmp3<= tmpl and tmp2;q <= tmp3; (8)end block cale;end CONNECT : (10)2、编写一个2输入与门的VHDL程序,请写出库、程序包、实体、构造体相关语句,将端口定义为标准逻辑型数据结构(本题10分)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ( 2)ENTITY nand2 ISPORT (a,b:IN STD_LOGIC; (4)y:OUT STD_LOGIC); (6)END nan d2;ARCHITECTURE nan d2_1 OF nand2 IS (8)BEGINy <= a NAND b;--与y <=NOT( a AND b);等价 (10) END nan d2_1;3、根据下表填写完成一个3-8线译码器的VHDL程序(16分)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY decoder_3_to_8 ISPORT (a,b,c,g1,g2a,g2b:IN STD_LOGIC;(2)y:OUT STD_L0GIC_VECT0R(7 DOWNTO 0)):END decoder_3_to_8;ARCHITECTURE rtl OF decoder_3_to_8 ISSIGNAL in data:STD_LOGIC_VECTOR (2 DOWNTO 0);(4)BEGINin data <= c & b & a;(6)PROCESS (in data,g1,g2a,g2b)BEGINIF (g1 = '1' AND g2a = 'O' AND g2b = 'O' ) THEN(8)CASE in data ISWHEN "000"=> y <= "11111110";WHEN "001" => y <= "11111101";WHEN "010" => y <= "11111011";(10)WHEN "011" => y <= "11110111";WHEN "100" => y <= "11101111";WHEN "101" => y <= "11011111";WHEN "110" => y <= "10111111";(12)WHEN "111" => y <= "01111111";WHEN OTHERS=> y <= "XXXXXXXX"; END CASE;ELSEy <= "11111111";END IF;END PROCESS;(16)END rtl;4、三态门电原理图如右图所示,真值表如左图所示,请完成其VHDL程序构造体部分。
[计算机软件及应用]第4章VHDL设计实例PPT课件
END fh1;
-
13
全加器f_adder电路图 及其实体模块
-
14
LIBRARY IEEE; --1位二进制全加器顶层设计描述
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY f_adder IS
PORT (ain,bin,cin : IN STD_LOGIC;
cout,sum : OUT STD_LOGIC );
ENTITY h_adder IS
PORT (a, b : IN STD_LOGIC;
co, so : OUT STD_LOGIC);
END h_adder;
ARCHITECTURE fh1 OF h_adder is
BEGIN
so <= NOT(a XOR (NOT b)) ;
co <= a AND b ;
上升沿:
If(clk’event and clk=‘1’)Then
If(rising_edge(clk))Then
Wait Until clk=‘1’
If(clk’last_value=‘0’and clk’event and
clk=‘1’)Then
下降沿:
If(clk’event and clk=‘0’)Then
第四章
基本逻辑电路设计 实例
➢组合逻辑电路设计 ➢时序逻辑电路设计 ➢存储器设计 ➢状态机设计
组合逻辑电路的设计
一、4选1多路选择器
a
b
四
c d
选 一
y
s0
s1
-
3
LIBRARY IEEE; USE IEEE.std_logic_1164.all; ENTITY mux4 IS
VHDL程序练习题(含答案)
VHDL程序填空题(一) 在下面横线上填上合适的VHDL关键词,完成2选1多路选择器的设计。
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;1 MUX21 ISPORT(SEL:IN STD_LOGIC;A,B:IN STD_LOGIC;Q: OUT STD_LOGIC );END MUX21;2 BHV OF MUX21 ISBEGINQ<=A WHEN SEL=’1’ EL SE B;END BHV;(二) 在下面横线上填上合适的语句,完成BCD-7段LED显示译码器的设计。
LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;ENTITY BCD_7SEG ISPORT( BCD_LED : IN STD_LOGIC_VECTOR(3 DOWNTO 0);LEDSEG : OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END BCD_7SEG;ARCHITECTURE BEHAVIOR OF BCD_7SEG ISBEGINPROCESS(BCD_LED)3IF BCD_LED="0000" THEN LEDSEG<="0111111";ELSIF BCD_LED="0001" THEN LEDSEG<="0000110";ELSIF BCD_LED="0010" THEN LEDSEG<= 4 ;ELSIF BCD_LED="0011" THEN LEDSEG<="1001111";ELSIF BCD_LED="0100" THEN LEDSEG<="1100110";ELSIF BCD_LED="0101" THEN LEDSEG<="1101101";ELSIF BCD_LED="0110" THEN LEDSEG<="1111101";ELSIF BCD_LED="0111" THEN LEDSEG<="0000111";ELSIF BCD_LED="1000" THEN LEDSEG<="1111111";ELSIF BCD_LED="1001" THENLEDSEG<="1101111";ELSE LEDSEG<= 5 ;END IF;END PROCESS;END BEHAVIOR;(三) 在下面横线上填上合适的语句,完成数据选择器的设计。
最新VHDL程序练习题(含答案)资料
VHDL程序填空题(一) 在下面横线上填上合适的VHDL关键词,完成2选1多路选择器的设计。
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;1 MUX21 ISPORT(SEL:IN STD_LOGIC;A,B:IN STD_LOGIC;Q: OUT STD_LOGIC );END MUX21;2 BHV OF MUX21 ISBEGINQ<=A WHEN SEL=’1’ ELSE B;END BHV;(二) 在下面横线上填上合适的语句,完成BCD-7段LED显示译码器的设计。
LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;ENTITY BCD_7SEG ISPORT( BCD_LED : IN STD_LOGIC_VECTOR(3 DOWNTO 0);LEDSEG : OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END BCD_7SEG;ARCHITECTURE BEHA VIOR OF BCD_7SEG ISBEGINPROCESS(BCD_LED)3IF BCD_LED="0000" THEN LEDSEG<="0111111";ELSIF BCD_LED="0001" THEN LEDSEG<="0000110";ELSIF BCD_LED="0010" THEN LEDSEG<= 4 ;ELSIF BCD_LED="0011" THEN LEDSEG<="1001111";ELSIF BCD_LED="0100" THEN LEDSEG<="1100110";ELSIF BCD_LED="0101" THEN LEDSEG<="1101101";ELSIF BCD_LED="0110" THEN LEDSEG<="1111101";ELSIF BCD_LED="0111" THEN LEDSEG<="0000111";ELSIF BCD_LED="1000" THEN LEDSEG<="1111111";ELSIF BCD_LED="1001" THEN LEDSEG<="1101111";ELSE LEDSEG<= 5 ;END IF;END PROCESS;END BEHA VIOR;(三) 在下面横线上填上合适的语句,完成数据选择器的设计。
复习资料:VHDL(大题)PPT课件
11
IEEE库STD_LOGIC_1164程序包中定义的STD_LOGIC类型和 STD_LOGIC_VECTOR类型。(VHDL’93标准)
STD_LOGIC类型的数据可以具有九种取值,其含义如下:
’U’:初始值 ’X’:不定态 ’0’: 强制0 ’1’: 强制1 ’Z’: 高阻态 ’W’:弱信号不定态 ’L’:弱信号0 ’H’:弱信号1 ’_’:不可能情况(可忽略值) 其中,“X”方便了系统仿真,“Z”方便了双向总线的描述。
6
扩展标识符规则:
扩展标识符是VHDL’93版增加的标识符书写规则: (1) 扩展标识符用反斜杠来定界。例如:\multi_screens\,
\eda_centrol\等都是合法的扩展标识符。 (2) 允许包含图形符号、空格符。例如:\mode A, \$100\,
\p%name\等。 (3) 反斜杠之间的字符可以用保留字。例如: \buffer\, \entity\,
sel : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
y : OUT STD_LOGIC);
END mux4_1;
ARCHITECTURE rtl OF mux4_1 IS
BEGIN
PROCESS (d, sel)
BEGIN
IF (sel="00") THEN
y<=d(0);
ELSIF (sel="01") THEN
Computer不同。
7
信号和变量的主要区别:
1. 变量 是一个局部量,只能用于进程或子程序中; 信号 是一个全局量,它可以用来进行进程之间的通信。
2. 变量赋值 立即生效,不存在延时行为; 信号赋值 具有非立即性,信号之间的传递具有延时性。
《VHDL语言与数字逻辑电路设计》——第5讲VHDL顺序语句精品PPT课件
2010.9
许钢 10/6/2020
《VHDL语言与数字逻辑电路设计》
1
第5讲 VHDL顺序语句
顺序描述语句只能出现在进程(Process)或子程序中,它定义进 程或子程序所执行的算法。顺序描述语句按这些语句在进程或子程序 中出现的顺序执行,这一点与高级语言类似。
VHDL中常用的顺序描述语句包括:信号和变量赋值、Wait、If、 Case、Loop、Next、Exit、断言语句、过程调用语句、空语句等。
许钢 10/6/2020
《VHDL语言与数字逻辑电路设计》
7
第5讲 VHDL顺序语句
5.2 进程 (Process)中的顺序语句
1. 信号和变量的赋值: • 变量的赋值语句格式:
目标变量名:=表达式; 例3:
v:=‘1’; s:=“010010”; 变量赋值的符号与信号赋值的符号不同,表达式与信号赋值的表达 式写法是完全一样的。
Entity mux2 Is
Port (a,b: In std_logic; s:In std_logic; f:Out std_logic);
End mux2;
Architecture behavior Of mux2 Is
Begin
mux2:Process(a,b,s)
Begin
If (s=‘0’) Then f<=a;
2. 转向控制语句: • 条件控制语句——If语句: 例4:
Entity dff Is
Port(d:In std_logd_logic);
End dff;
Architecture behavior Of dff Is
Begin
Process(clk)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四、 编程题(共 50 分)
VHDL 程序设计题
1、请补全以下二选一 VHDL 程序(本题 10 分) Entity mux is
port(d0,d1,sel:in bit;
q:out BIT );
(2)
end mux;
architecture connect of MUX
is
signal tmp1, TMP2
(8)
BEGIN
y <= a NAND b; --与 y <=NOT( a AND b);等价
END nand2_1;
(10)
3、根据下表填写完成一个 3-8 线译码器的 VHDL 程序(16 分)。 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));
y<=d(3);
else
3
null; end if; end process; end behave;
学海无 涯
2、编写一个数值比较器 VHDL 程序的进程(不必写整个结构框架),要求使能信号 g 低电 平时比较器开始工作,输入信号 p = q,输出 equ 为‘0’,否则为‘1’。(本题 10 分)
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
1
(2) (4) (6) (8) (10) (12)
学海无 涯
y <= "11111111"; END IF; END PROCESS; END rtl;
(14) (16)
4、三态门电原理图如右图所示,真值表如左图所示,请完成其 VHDL 程序构造体部分。 (本题 14 分)
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY tri_gate IS PORT(din,en:IN STD_LOGIC;
a b
&
y
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY nand2 IS PORT (a,b:IN
STD_LOGIC;
(2) (4)
0
学海无 涯
y:OUT STD_LOGIC); (6)
END nand2;
ARCHITECTURE nand2_1 OF nand2 IS
(8)
);
end MUX4; architecture behave of MUX4 is
begin
process()
begin
if (s="00") then
y<=d(0); elsif (s="01") then
y<=d(1);
elsif (s="10") then
y<=d(2);
elsif (s="11") then
四、 编程题(共 50 分)
1、根据一下四选一程序的结构体部分,完成实体程序部分(本题 8 分)
entity MUX4 is
port(
(2)
s: in std_logic_vector(1 downto 0); d:
(4)
in std_logic_vector(3 downto 0); y:
(6)
out std_logic
process(p,q)
(2)
begin
if g='0' then
(4)
if p = q then
equ <= '0';
(6)
else
equ <= '1';
(8)
end if;
else
equ <= '1';
(10)
end if;
end process;
3、填写完成一个 8-3 线编码器的 VHDL 程序(16 分)。 Library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all;
entity eight_tri is port( b: in std_logic_vector(7 downto 0); en: in std_logic; y: out std_logic_vector(2 downto 0) );
,tmp3:bit;
begin cale:
block
begin tmp1<=d0 and sel;
tmp2<=d1 and (not sel)
tmp3<= tmp1 and tmp2;
q <= tmp3;
(8)
end block cale;
end CONNECT
;
(4) (6)
(10)
2、编写一个 2 输入与门的 VHDL 程序,请写出库、程序包、实体、构造体相关语句,将 端口定义为标准逻辑型数据结构(本题 10 分)
2
学海无 涯
dout : OUT STD_LOGIC); END tri_gate ; ARCHITECTURE zas OF tri_gate IS BEGIN
PROCESS (din,en) BEGIN
IF (en=‘1') THEN dout <= din; ELSE dout <= ‘Z’; END IF; END PROCESS ; END zas ;