5-1、8分频器的VHDL语言描述:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY FOUR IS
PORT(CLKIN:IN STD_LOGIC;
CLKOUT8:OUT STD_LOGIC);
END FOUR;
ARCHITECTURE RTL OF FOUR IS
SIGNAL TEMP1:STD_LOGIC;
SIGNAL COUNTER:INTEGER RANGE 0 TO 15;
BEGIN
PROCESS(CLKIN)
BEGIN
IF RISING_EDGE(CLKIN) THEN
IF COUNTER=3 THEN --改变COUNTER 的值为2,实现4分频
COUNTER<=0;
TEMP1<=NOT TEMP1;
ELSE
COUNTER<=COUNTER+1;
END IF;
END IF;
END PROCESS;
CLKOUT8<=TEMP1;
END RTL;
10分频器的VHDL语言描述:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY TEN IS
PORT(CLKIN:IN STD_LOGIC;
CLKOUT10:OUT STD_LOGIC);
END TEN;
ARCHITECTURE RTL OF TEN IS
SIGNAL TEMP1:STD_LOGIC;
SIGNAL COUNTER:INTEGER RANGE 0 TO 15;
BEGIN
PROCESS(CLKIN)
BEGIN
IF RISING_EDGE(CLKIN) THEN
IF COUNTER=5 THEN --改变COUNTER 的值为5,实现10分频
COUNTER<=0;
TEMP1<=NOT TEMP1;
ELSE
COUNTER<=COUNTER+1;
END IF;
END IF;
END PROCESS;
CLKOUT10<=TEMP1;
END RTL;
16分频器的VHDL语言描述:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY SIXTEEN IS
PORT(CLKIN:IN STD_LOGIC;
CLKOUT16:OUT STD_LOGIC);
END SIXTEEN;
ARCHITECTURE RTL OF SIXTEEN IS
SIGNAL TEMP1:STD_LOGIC;
SIGNAL COUNTER:INTEGER RANGE 0 TO 15;
BEGIN
PROCESS(CLKIN)
BEGIN
IF RISING_EDGE(CLKIN) THEN
IF COUNTER=8 THEN --改变COUNTER 的值为8,实现16分频
COUNTER<=0;
TEMP1<=NOT TEMP1;
ELSE
COUNTER<=COUNTER+1;
END IF;
END IF;
END PROCESS;
CLKOUT16<=TEMP1;
END RTL;
15分频器的VHDL语言描述程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY FIFTEEN IS
PORT(CLOCK:IN STD_LOGIC;
CLKOUT15:OUT STD_LOGIC);
END FIFTEEN;
ARCHITECTURE RTL OF FIFTEEN IS
SIGNAL TEMP1,TEMP2:STD_LOGIC;
SIGNAL COUNTER:INTEGER RANGE 0 TO 15;
BEGIN
PROCESS(CLOCK)
BEGIN
IF RISING_EDGE(CLOCK) THEN
IF COUNTER=14 THEN
COUNTER<=0;
TEMP1<=NOT TEMP1;
ELSE
COUNTER<=COUNTER+1;
END IF;
END IF;
IF FALLING_EDGE(CLOCK) THEN
IF COUNTER=7 THEN
TEMP2<=NOT TEMP2;
END IF;
END IF;
END PROCESS;
CLKOUT15<=TEMP1 XOR TEMP2;
END RTL;
四选一电路的VHDL语言描述:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY SELECTIO IS
PORT(CLKOUT8,CLKOUT10,CLKOUT16,CLKOUT16,:IN STD_LOGIC;
SEL :IN STD_LOGIC_VECTOR(0 TO 1) ;
CLKOUT:OUT STD_LOGIC);
END SELECTIO;
ARCHITECTURE RTL OF SELECTIO IS
BEGIN
WITH SEL SELECT
CLKOUT<=CLKOUT8 WHEN "00",
CLKOUT10 WHEN "01",
CLKOUT15 WHEN "10",
CLKOUT15 WHEN "11",
'0' WHEN OTHERS;
END RTL;
显示功能的VHDL语言描述:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.all;
ENTITY XIANSHI IS
PORT(CLK:in std_logic;
SEL : IN STD_LOGIC_VECTOR(0 TO 1);
ledout : OUT STD_LOGIC_VECTOR(6 downto 0);
SCANOUT:OUT STD_LOGIC_VECTOR(0 TO 1)); end XIANSHI;
ARCHITECTURE rtl OF XIANSHI IS
SIGNAL hex :STD_LOGIC_VECTOR(3 downto 0);
SIGNAL SCAN :STD_LOGIC_VECTOR(0 TO 1);
BEGIN
PROCESS(CLK)
BEGIN
IF CLK?EVENT AND CLK=?1? THEN
IF SCAN=”00” or SCAN>=”10” THEN
SCAN<=”01”;
ELSE
SCAN<=SCAN+?1?;
END IF;
END PROCESS;
SCANOUT<=SCAN;
hex<= “1000” WHEN SEL=”00” and SCAN=”10”ELSE “0000” WHEN SEL=”00”and SCAN=”01”ELSE
“0000” WHEN SEL=”01”and SCAN=”10”ELSE
“0001” WHEN SEL=”01”and SCAN=”01”ELSE
“0101” WHEN SEL=”10”and SCAN=”10”ELSE
“0001” WHEN SEL=”10” and SCAN=”01”ELSE
“0110” WHEN SEL=”11” and SCAN=”10”ELSE
“0001” WHEN SEL=”11” and SCAN=”01”;
WITH hex SELECT
ledout<= "0000110" WHEN "0001", --1
"1011011" WHEN "0010", --2
"1001111" WHEN "0011", --3
"1100110" WHEN "0100", --4
"1101101" WHEN "0101", --5
"1111101" WHEN "0110", --6
"0000111" WHEN "0111", --7
"1111111" WHEN "1000", --8
"1101111" WHEN "1001", --9
"1110111" WHEN "1010", --A
"1111100" WHEN "1011", --b
"0111001" WHEN "1100", --C
"1011110" WHEN "1101", --d
"1111001" WHEN "1110", --E
"1110001" WHEN "1111", --F
"0111111" WHEN others; --0
END rtl;
多用分频器顶层模块的VHDL 语言描述:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY FENPINQI IS
PORT(CLOCKIN,CLK: IN STD_LOGIC;
SEL: IN STD_LOGIC_VECTOR(1 DOWNTO 0); LEDOUT:OUT STD_LOGIC_VECTOR(0 TO 6);
SCANOUT: IN STD_LOGIC_VECTOR(1 DOWNTO 0);
CLOCKOUT: OUT STD_LOGIC);
END FENPINQI;
ARCHITECTURE STRU OF FENPINQI IS COMPONENT FIFTEEN IS
PORT(CLKIN:IN STD_LOGIC;
CLKOUT:OUT STD_LOGIC);
END COMPONENT;
COMPONENT EIGHT IS
PORT(CLKIN:IN STD_LOGIC; CLKOUT:OUT STD_LOGIC);
END COMPONENT; COMPONENT TEN IS PORT(CLKIN:IN STD_LOGIC;
CLKOUT:OUT STD_LOGIC);
END COMPONENT;
COMPONENT SIXTEEN IS
PORT(CLKIN:IN STD_LOGIC;
CLKOUT:OUT STD_LOGIC);
END COMPONENT; COMPONENT SELECTIO IS
PORT(A,B,C,D,E,F:IN STD_LOGIC;
Y:OUT STD_LOGIC);
END COMPONENT SELECTIO; COMPONENT XIANSHI IS
PORT(CLK : IN STD_LOGIC;
SEL : IN STD_LOGIC_VECTOR(0 TO 1);
LEDOUT : OUT STD_LOGIC_VECTOR(6 downto 0); SCANOUT:OUT STD_LOGIC_VECTOR(0 TO 1));
END COMPONENT;
SIGNAL CLK:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN
U0:FOUR PORT MAP(CLOCKIN,CLK(0)); U1: EIGHT PORT MAP(CLOCKIN,CLK(1)); U2:TEN PORT MAP(CLOCKIN,CLK(2));
U3:SIXTEEN PORT MAP(CLOCKIN,CLK(3));
U4:XIANSHI PORT MAP(CLK,SEL,LEDOUT,SCANOUT); U5:SELECTIO PORT MAP
(CLK(0),CLK(1),CLK(2),CLK(3),SEL(0),SEL(1),CLOCKOUT);
END STRU;
5-2
通用计数器:
LIBRARY ieee;
USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; ENTITY counter IS
GENERIC( count_value: INTEGER:=9);
元件定义
PORT
(clk,clr,en: IN STD_LOGIC;
co : OUT STD_LOGIC;
count : OUT INTEGER RANGE 0 TO count_value); END counter;
ARCHITECTURE a OF counter IS
SIGNAL cnt: INTEGER RANGE 0 TO count_value; BEGIN
PROCESS (clk,clr)
BEGIN
IF clr = '1' THEN cnt <= 0;
ELSIF (clk'EVENT AND clk = '1') THEN
IF en = '1' THEN
IF cnt = count_value THEN cnt <= 0;
ELSE cnt <= cnt + 1;
END IF;
END IF;
END IF;
END PROCESS;
co<= '1' when cnt = count_value else '0';
count <= cnt;
END a;
时钟生成模块:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity clock_gen is
PORT(clk:IN STD_LOGIC;
Reset:IN STD_LOGIc;
Clk001S:OUT STD_LOGIC ) ;
end clock_gen;
architecture Behavioral of clock_gen is
SIGNALcnt1:STD_LOGIC_VECTOR(6 DOWNTO 0); begin
PROCESS (clk)—产生0.01s时钟
BEGIN
IF (clk'EVENT AND clk = '1') THEN
If reset=?1? then
Cnt<=”0000000”;
ElsIF CNT=”1111011” THEN CNT<=”0000000”;CLK001s<=?1?;
cnt1 <= cnt1 + …1?;CLK001S<=”0”;
END IF;
End if;
END PROCESS;
END BEHAVIORAL;
计时模块:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity jishu is
PORT(clk001s:IN std_logic;
reset:IN std_logic;
enable:IN std_logic;
sl,sh,ml:OUT INTEGER RANGE 0 TO 9;
mh:OUT INTEGER RANGE 0 TO 5;
);
end jishu;
architecture Behavioral of jishu is
signal sh_en, ml_en, mh_en : std_logic;
signal ml_en1,mh_en1 : std_logic;
component counter IS
GENERIC( count_value: INTEGER);
PORT(
clk,clr,en: IN STD_LOGIC;
co:OUT STD_LOGIC;
count:OUT INTEGER RANGE 0 TO count_value);
END component;
begin
ml_en <=ml_en1 and sh_en;--分个位计时使能
mh_en <= (mh_en1 and ml_en); --分十位计时使能
CNT1S: counter
generic map( count_value => 9)
port map(clk=>clk001s,clr=>reset,en=>enable,co=>sh_en,count=>sl); CNT10S: counter
generic map( count_value => 9)
port map(clk=>clk001s,clr=>reset,en=>sh_en,co=>ml_en1,count=>sh); CNT1M: counter
generic map( count_value => 9)
port map(clk=>clk001s,clr=>reset,en=>ml_en,co=>mh_en1,count=>ml); CNT10M: counter
generic map( count_value => 5)
port map(clk=>clk001s,clr=>reset,en=>mh_en,co=>h_en1,count=>mh); end Behavioral;
显示子模块:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity xianshi is
PORT(clk:IN std_logic;
Clk001s:in std_logic;
sl: IN INTEGER RANGE 0 TO 9;
sh:IN INTEGER RANGE 0 TO9;
ml:IN INTEGER RANGE 0 TO 9;
mh,:IN INTEGER RANGE 0 TO 5;
scanout:OUT STD_LOGIC_VECTOR(0 TO 3);
ledout:OUT STD_LOGIC_VECTOR(0 TO 6);
pointout:OUT STD_LOGIC);
end xianshi;
architecture Behavioral of xianshi is
SIGNAL scan:INTEGER RANGE 0 TO 3;--显示控制信号
SIGNAL hex:INTEGER RANGE 0 TO 9;
Begin
PROCESS (clk) --产生数码管选通和数据选择器的控制信号
BEGIN
IF clk'event AND clk='1' THEN
IF scan = 3 then
scan<=0;
ELSE
scan <= scan + 1;
END IF;
END IF;
END PROCESS;
WITH scan SELECT --位选信号产生
Scanout<="1110" WHEN 0,
"1101" WHEN 1,
"1011" WHEN 2,
"0111" WHEN 3;
WITH scan SELECT--选择参与七段译码的计时内容
hex<=mh WHEN 3,
ml WHEN 2,
sh WHEN 1,
sl WHEN others;
WITH hex SELECT--七段译码
ledout<="0000110" WHEN 1, --1
"1011011" WHEN 2, --2
"1001111" WHEN 3, --3
"1100110" WHEN 4, --4
"1101101" WHEN 5, --5
"1111101" WHEN 6, --6
"0000111" WHEN 7, --7
"1111111" WHEN 8, --8
"1101111" WHEN 9, --9
"0111111" WHEN 0, --0
"0000000" when others;
WITH scan SELECT--点亮小数点控制
pointout <= '0' WHEN 3,
clk001s WHEN 2,
'0' WHEN 1,
'0' WHEN others;
end Behavioral;
顶层模块:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity MIAOBIAO is
PORT(clk:IN STD_LOGIC;
Reset:IN STD_LOGIC;
enable:IN STD_LOGIC;
ledout:OUT STD_LOGIC_VECTOR(0 TO 6);
scanout:OUT STD_LOGIC_VECTOR(0 TO 3);
pointout:OUT STD_LOGIC;
);
end MIAOBIAO;
architecture Behavioral of MIAOBIAO is
SIGNAL clk001s,:STD_LOGIC;
SIGNAL sl, sh,ml:INTEGER RANGE 0 TO 9;
SIGNAL mh:INTEGER RANGE 0 TO 5;
COMPONENT clock_gen IS
PORT(clk:IN STD_LOGIC;
reset :IN STD_LOGIC;
clk001s :OUT STD_LOGIC ;
END COMPONENT;
COMPONENT jishu IS
PORT(clk001s:IN STD_LOGIC;
reset :IN STD_LOGIC ;
enable:IN STD_LOGIC;
sl, ml:OUT INTEGER RANGE 0 TO 9;
sh, mh:OUT INTEGER RANGE 0 TO 5);
END COMPONENT;
COMPONENT xianshi IS
PORT(clk:IN std_logic;
Clk001s:in std_logic;
sl: IN INTEGER RANGE 0 TO 9;
sh:IN INTEGER RANGE 0 TO 9;
ml:IN INTEGER RANGE 0 TO 9;
mh:IN INTEGER RANGE 0 TO 5;
scanout:OUT STD_LOGIC_VECTOR(0 TO 3);
ledout:OUT STD_LOGIC_VECTOR(0 TO 6);
pointout:OUT STD_LOGIC);
END COMPONENT;
begin
U1:clock_gen
PORT MAP(clk,reset,clk001s);
U2:jishu
port map(clk001s,reset,enable, sl, ml,sh, mh);
U4:xianshi
PORT MAP(clk,clk001s,sl,sh, ml,mh,scanout,ledout, pointout);
end Behavioral;
5-4
设计要求:
1、东西、南北各有红、黄、绿指示灯
2、绿灯、黄灯和红灯的持续时间分别为20s、5s和25s
系统组成:
计时器(减计数):20秒计数、5秒计数。
状态机控制器:4种状态
状态机所包含的状态(S0,S1,S2,S3)如下:
S0:东西绿灯亮,红灯和黄灯灭;南北绿灯和黄灯灭,红灯亮。(20秒)S1:东西绿灯和红灯灭,黄灯亮;南北绿灯和黄灯灭,红灯亮。(5秒)S2:东西绿灯和黄灯灭,红灯亮;南北绿灯亮,红灯和黄灯灭。(20秒)S3:东西绿灯和黄灯灭,红灯亮;南北绿灯和红灯灭,黄灯亮。(5秒)需要定义两个标志位和两个计数使能控制信号:
C1:40s计时到标志(计数到为…1?,否则为…0?);
C2:5s计时到标志(计数到为…1?,否则为…0?);
en1:40s计时使能(当前状态为绿灯要亮时为…1?,否则为…0?);
en2:5s计时使能(当前状态为黄灯要亮时为…1?,否则为…0?)。
C1、C2控制状态的转移;
En1、en2计数使能控制。
计时显示控制信号两个:
DXH:东西红灯亮为‘1’;
NBH:南北红灯亮为‘1’
分频模块:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity clock_gen is
PORT(clk:IN STD_LOGIC;
Reset:IN STD_LOGIc;
clk1s:OUT STD_LOGIC ) ;
end clock_gen;
architecture Behavioral of clock_gen is
SIGNALcnt1:STD_LOGIC_VECTOR(9 DOWNTO 0); begin
PROCESS (clk)—产生1s时钟
BEGIN
IF (clk'EVENT AND clk = '1') THEN
If reset=?1? then
Cnt<=”0000000000”;
else
cnt1 <= cnt1 + …1?;
END IF;
End if;
clk1s <= cnt1(9);
END PROCESS;
END BEHAVIORAL;
计时模块:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity jishu is
port(clk1s,reset:in std_logic;
en1,en2:in std_logic;
c1,c2:out std_logic;
countg: out integer range 0 to 25;
county:out integer range 0 to 25);
end jishu;
architecture a of jishu is
constant greentime: integer:=25;
constant yellowtime:intger:=4;
signal cnt1:intger range 0 to 25;
signal cnt2: intger range 0 to 25;
begin
process(en1,en2,clk1s)
begin
if(clk1s'event and clk1s='1')then
if (en1='1')then c2<='0';
if cnt1=0then c1<='1';
else cnt1<=cnt1-'1';c1<='0';
end if;
cnt2<=yellowtime;
elsif (en2='1') then c1<='0';
if cnt2=0 then c2<='1';
else cnt2<=cnt2-'1';c2<='0';
end if;
cnt1<=greentime;
end if;
end if;
end process;
countg<=cnt1;
county<=cnt2;
end a;
状态机模块:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity smachine is
port(clk,reset:in std_logic;
c1,c2:in std_logic;
en1,en2:out std_logic
DXH,NBH:out std_logic
r1,r2,y1,y2,g1,g2:out std_logic);
end smachine;
architecture a of traffic is
type state is(s0,s1,s2,s3);
signal nowstate,nextstate:state; process(nowstate,c1,c2)
begin
case nowstate is
when s0=>g1<='1';y1<='0';r1<='0';g2<='0';y2<='0';r2<='1';en1<='1';en2<='0';
DXH<=?0?,NBH<=?1?;
if c1='1' then nextstate<=s1;
else nextstate<=s0;
end if;
when s1=>g1<='0';y1<='1';r1<='0';g2<='0';y2<='0';r2<='1';en1<='0';en2<='1';
DXH<=?0?,NBH<=?1?;
if c2='1' then nextstate<=s2;
else nextstate<=s1;
end if;
when s2=>g1<='0';y1<='0';r1<='1';g2<='1';y2<='0';r2<='0';en1<='1';en2<='0';
DXH<=?1?,NBH<=?0?;
if c1='1' then nextstate<=s3;
else nextstate<=s2;
end if;
when s3=>g1<='0';y1<='0';r1<='1';g2<='0';y2<='1';r2<='0';en1<='0';en2<='1';
DXH<=?1?,NBH<=?0?;
if c2='1' then nextstate<=s0;
else nextstate<=s3;
end if;
end case;
end process;
process(reset,clk)
begin
if (clk'event and clk='1') then
if reset='1' then nowstate<=s0;
else nowstate<=nextstate;
end if;
end if;
end process;
End a;
显示子模块:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity xianshi is
PORT(clk:IN std_logic;
countg: IN intger range 0 to 25;
county:IN intger range 0 to 25;
en1:IN std_logic;
en2:IN std_logic;
DXH,NBH :IN STD_LOGIC ;
scanoutD:OUT STD_LOGIC_VECTOR(0 TO 1);
ledoutD:OUT STD_LOGIC_VECTOR(0 TO 6));
scanoutN:OUT STD_LOGIC_VECTOR(0 TO 1);
ledoutN:OUT STD_LOGIC_VECTOR(0 TO 6));
end xianshi;
architecture Behavioral of xianshi is
SIGNAL scan:INTEGER RANGE 0 TO 1;--显示控制信号
SIGNAL dhex,nhex: intger range 0 to 9;
Signal dh,nh: intger range 0 to 9;
Signal dl,nl: intger range 0 to 9;
Begin
PROCESS (clk) --产生数码管选通和数据选择器的控制信号
BEGIN
IF clk'event AND clk='1' THEN
IF scan = 1 then
scan<=0;
ELSE
scan <= scan + 1;
END IF;
END IF;
END PROCESS;
--东西方向显示:
WITH scan SELECT --位选信号产生
ScanoutD<="10" WHEN 0,
"01" WHEN 1,
--选择参与七段译码的计时内容
CountD<=countg WHEN en=?1? AND DXH=?0? else county WHEN en2=?1? AND DXH=?0? else
countg+county;
hD<=0 when countD<=9 else
1 when countD<=19 and count>=10 else
2;
lD<=countD when countD<=9 else
countD-10 when countD<=19 and count>=10 else countD-20;
WITH scan SELECT--选择参与七段译码的计时内容hexD<=hD WHEN 1,
lD WHEN 0;
WITH hexD SELECT--七段译码
ledoutD<="0000110" WHEN 1, --1
"1011011" WHEN 2, --2
"1001111" WHEN 3, --3
"1100110" WHEN 4, --4
"1101101" WHEN 5, --5
"1111101" WHEN 6, --6
"0000111" WHEN 7, --7
"1111111" WHEN 8, --8
"1101111" WHEN 9, --9
"0111111" WHEN 0, --0
"0000000" when others;
--南北显示:
WITH scan SELECT --位选信号产生
ScanoutN<="10" WHEN 0,
"01" WHEN 1,
--选择参与七段译码的计时内容
CountN<=countg WHEN en=?1? AND NBH=?0? else
county WHEN en2=?1? AND NBH=?0?else
countg+county;
hN<=0 when countN<=9 else
1 when countN<=19 and count>=10 else
2;
lN<=countN when countN<=9 else
countN-10 when countN<=19 and count>=10 else countN-20;
WITH scan SELECT--选择参与七段译码的计时内容hexN<=hN WHEN 1,
lN WHEN 0;
WITH hexN SELECT--七段译码
ledoutN<="0000110" WHEN 1, --1
"1011011" WHEN 2, --2
"1001111" WHEN 3, --3
"1100110" WHEN 4, --4
"1101101" WHEN 5, --5
"1111101" WHEN 6, --6
"0000111" WHEN 7, --7
"1111111" WHEN 8, --8
"1101111" WHEN 9, --9
"0111111" WHEN 0, --0
"0000000" when others;
end Behavioral;
顶层模块:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity trafic is
PORT(clk:IN STD_LOGIC;
Reset:IN STD_LOGIC;
R1,y1,g1,r2,y2,g2:out std_logic;
ledoutD:OUT STD_LOGIC_VECTOR(0 TO 6);
scanoutD:OUT STD_LOGIC_VECTOR(0 TO 1);
ledoutN:OUT STD_LOGIC_VECTOR(0 TO 6);
scanoutN:OUT STD_LOGIC_VECTOR(0 TO 1)
);
end trafic;
architecture Behavioral of trafic is
SIGNAL clk1s:STD_LOGIC;
SIGNAL countg,coungy:INTEGER RANGE 0 TO 25;
SIGNAL c1,c2,en1,en2,dxh,nbh:std_logic;
COMPONENT clock_gen IS
PORT(clk:IN STD_LOGIC;
reset :IN STD_LOGIC;
clk1s :OUT STD_LOGIC ;
END COMPONENT;
COMPONENT jishu IS
port(clk1s,reset:in std_logic;
en1,en2:in std_logic;
c1,c2:out std_logic;
countg: out integer range 0 to 25;
county:out integer range 0 to 25);
END COMPONENT;
COMPONENT xianshi IS
PORT(clk:IN std_logic;
countg: IN intger range 0 to 25;
county:IN intger range 0 to 25;
en1:IN std_logic;
en2:IN std_logic;
DXH,NBH :IN STD_LOGIC ;
scanoutD:OUT STD_LOGIC_VECTOR(0 TO 1);
ledoutD:OUT STD_LOGIC_VECTOR(0 TO 6));
scanoutN:OUT STD_LOGIC_VECTOR(0 TO 1);
ledoutN:OUT STD_LOGIC_VECTOR(0 TO 6));
END COMPONENT;
component smachine is
port(clk,reset:in std_logic;
c1,c2:in std_logic;
en1,en2:out std_logic
DXH,NBH:out std_logic
r1,r2,y1,y2,g1,g2:out std_logic);
end component;
begin
U1:clock_gen
PORT MAP(clk,reset,clk1s);
U2:jishu
port map(clk1s,reset,en1,en2, sl, ml,sh, mh);
U3:smachine
PORT MAP(clk,reset,c1,c2,en1,en2,DXH,NBH,r1,r2,y1,y2,g1,g2);
U4:xianshi
PORT MAP(clk,countg,county,en1,en2, DXH,NBH,scanoutD,ledoutD, scanoutN,ledoutN); end Behavioral;
第一章 1-1 EDA技术与ASIC设计和FPGA开发有什么关系?FPGA/CPLD在ASIC设计中有什么用途? 答:利用EDA技术进行电子系统设计的最后目标是完成专用集成电路ASIC的设计和实现;FPGA和CPLD是实现这一途径的主流器件。FPGA和CPLD通常也被称为可编程专用IC,或可编程ASIC。FPGA和CPLD的应用是EDA技术有机融合软硬件电子设计技术、SoC(片上系统)和ASIC设计,以及对自动设计与自动实现最典型的诠释。FPGA/CPLD在ASIC设计中,属于可编程ASIC的逻辑器件;使设计效率大为提高,上市的时间大为缩短。 1-2与软件描述语言相比,VHDL有什么特点? P6 答:编译器将软件程序翻译成基于某种特定CPU的机器代码,这种代码仅限于这种CPU而不能移植,并且机器代码不代表硬件结构,更不能改变CPU的硬件结构,只能被动地为其特定的硬件电路结构所利用。综合器将VHDL程序转化的目标是底层的电路结构网表文件,这种满足VHDL设计程序功能描述的电路结构,不依赖于任何特定硬件环境;具有相对独立性。综合器在将VHDL(硬件描述语言)表达的电路功能转化成具体的电路结构网表过程中,具有明显的能动性和创造性,它不是机械的一一对应式的“翻译”,而是根据设计库、工艺库以及预先设置的各类约束条件,选择最优的方式完成电路结构的设计。 l-3什么是综合?有哪些类型?综合在电子设计自动化中的地位是什么? P5 什么是综合? 答:在电子设计领域中综合的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。 有哪些类型?答:(1)从自然语言转换到VHDL语言算法表示,即自然语言综合。(2)从算法表示转换到寄存器传输级(RegisterTransport Level,RTL),即从行为域到结构域的综合,即行为综合。(3)从RTL级表示转换到逻辑门(包括触发器)的表示,即逻辑综合。(4)从逻辑门表示转换到版图表示(ASIC设计),或转换到FPGA的配置网表文件,可称为版图综合或结构综合。 综合在电子设计自动化中的地位是什么?答:是核心地位(见图1-3)。综合器具有更复杂的工作环境,综合器在接受VHDL程序并准备对其综合前,必须获得与最终实现设计电路硬件特征相关的工艺库信息,以及获得优化综合的诸多约束条件信息;根据工艺库和约束条件信息,将VHDL程序转化成电路实现的相关信息。 1-4在EDA技术中,自顶向下的设计方法的重要意义是什么? P7~10 答:在EDA技术应用中,自顶向下的设计方法,就是在整个设计流程中各设计环节逐步求精的过程。 1-5 IP在EDA技术的应用和发展中的意义是什么? P11~12 答:IP核具有规范的接口协议,良好的可移植与可测试性,为系统开发提供了可靠的保证。 1-6 叙述EDA的FPGA/CPLD设计流程。P13~16 答:1.设计输入(原理图/HDL文本编辑);2.综合;3.适配;4.时序仿真与功能仿真;5.编程下载;6.硬件测试。
1.一个项目的输入输出端口是定义在( A )1-5 ACDCD 6-10 CCACA A. 实体中;. B. 结构体中; C. 任何位置; D. 进程中。 2. MAXPLUS2中编译VHDL源程序时要求( C ) A. 文件名和实体可以不同名; B. 文件名和实体名无关; C. 文件名和实体名要相同; D. 不确定。 3. VHDL语言中变量定义的位置是(D ) A. 实体中中任何位置; B. 实体中特定位置; C. 结构体中任何位置; D. 结构体中特定位置。 4.可以不必声明而直接引用的数据类型是(C ) A. STD_LOGIC ; B. STD_LOGIC_VECTOR; C. BIT; D. ARRAY。 5. MAXPLUS2不支持的输入方式是(D ) A 文本输入;.B. 原理图输入;C. 波形输入;D. 矢量输入。 6.大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是( C ) A. FPGA全称为复杂可编程逻辑器件; B. FPGA是基于乘积项结构的可编程逻辑器件; C. 基于SRAM的FPGA器件,在每次上电后必须进行一次配置; D. 在Altera公司生产的器件中,MAX7000系列属FPGA结构。 7.下面不属于顺序语句的是( C ) A. IF语句; B. LOOP语句; C. PROCESS语句; D. CASE语句。 8. VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,实体体描述的是( A ) A. 器件外部特性; B. 器件的内部功能; C. 器件的综合约束; D. 器件外部特性与内部功能。 9. 进程中的信号赋值语句,其信号更新是( C ) A. 按顺序完成; B. 比变量更快完成; C. 在进程的最后完成; D. 都不对。 10. 嵌套使用IF语句,其综合结果可实现:(A ) A. 带优先级且条件相与的逻辑电路; B. 条件相或的逻辑电路; C. 三态控制电路; D. 双向控制电路。 一、单项选择题:(20分) 1. IP核在EDA技术和开发中具有十分重要的地位;提供用VHDL等硬件描述
(A卷) 赣南师范学院 2010—2011学年第一学期期末考试试卷(A卷)(闭卷)年级 2008 专业电子科学与技术(本)课程名称 EDA技术基础 2、学生答题前将密封线外的内容填写清楚,答题不得超出密封线; 3、答题请用蓝、黑钢笔或圆珠笔。 一、单项选择题(30分,每题2分) 1.以下关于适配描述错误的是 B A.适配器的功能是将综合器产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件 B.适配所选定的目标器件可以不属于原综合器指定的目标器件系列 C.适配完成后可以利用适配所产生的仿真文件作精确的时序仿真 D.通常,EDAL软件中的综合器可由专业的第三方EDA公司提供,而适配器则需由FPGA/CPLD供应商提供 2.VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述 D 。 A.器件外部特性B.器件的综合约束 C.器件外部特性与内部功能D.器件的内部功能 3.下列标识符中, B 是不合法的标识符。 A.State0 B.9moon C.Not_Ack_0 D.signall 4.以下工具中属于FPGA/CPLD集成化开发工具的是 D A.ModelSim B.Synplify Pro C.MATLAB D.QuartusII 5.进程中的变量赋值语句,其变量更新是 A 。 A.立即完成B.按顺序完成 C.在进程的最后完成D.都不对 6.以下关于CASE语句描述中错误的是 A A.CASE语句执行中可以不必选中所列条件名的一条 B.除非所有条件句的选择值能完整覆盖CASE语句中表达式的取值,否则最末一个条件句的选择必须加上最后一句“WHEN OTHERS=><顺序语句>” C.CASE语句中的选择值只能出现一次 D.WHEN条件句中的选择值或标识符所代表的值必须在表达式的取值范围 7.以下哪个程序包是数字系统设计中最重要最常用的程序包 B A.STD_LOGIC_ARITH B.STD_LOGIC_1164 C.STD_LOGIC_UNSIGNED D.STD_LOGIC_SIGNED 8.基于EDA软件的FPGA / CPLD设计流程为:原理图/HDL文本输入→A →综合→适配→时序仿真→编程下载→硬件测试。 A.功能仿真B.逻辑综合C.配置D.引脚锁定 9.不完整的IF语句,其综合结果可实现 D A.三态控制电路B.条件相或的逻辑电路 C.双向控制电路D.时序逻辑电路 10.下列语句中,属于并行语句的是A A.进程语句B.IF语句C.CASE语句D.FOR语句11.综合是EDA设计流程的关键步骤,综合就是把抽象设计层次中的一种表示转化成另一种表示的过程;在下面对综合的描述中, C 是错误的。 A.综合就是将电路的高级语言转化成低级的,可与FPGA / CPLD的基本结构相映射的网表文件 B.综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系不是唯一的 C.综合是纯软件的转换过程,与器件硬件结构无关 D.为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束 12.CPLD的可编程是主要基于什么结构 D 。 A.查找表(LUT)B.ROM可编程 C.PAL可编程D.与或阵列可编程 13.以下器件中属于Altera 公司生产的是 B A.ispLSI系列器件B.MAX系列器件 C.XC9500系列器件D.Virtex系列器件 14.在VHDL语言中,下列对时钟边沿检测描述中,错误的是 D A.if clk'event and clk = '1' then B.if clk'stable and not clk = '1' then C.if rising_edge(clk) then D.if not clk'stable and clk = '1' then 15.以下关于状态机的描述中正确的是 B A.Moore型状态机其输出是当前状态和所有输入的函数 B.与Moore型状态机相比,Mealy型的输出变化要领先一个时钟周期C.Mealy型状态机其输出是当前状态的函数
《测试技术》(第二版)课后 习题答案-_ -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII
解: (1) 瞬变信号-指数衰减振荡信号,其频谱具有连续性和衰减性。 (2) 准周期信号,因为各简谐成分的频率比为无理数,其频谱仍具有离 散性。 (3) 周期信号,因为各简谐成分的频率比为有理数,其频谱具有离散 性、谐波性和收敛性。 解:x(t)=sin2t f 0π的有效值(均方根值): 2 /1)4sin 41(21)4sin 41(21)4cos 1(212sin 1)(1000 00 00 00 000 020 2 000=-= - = -== =? ? ? T f f T T t f f T T dt t f T dt t f T dt t x T x T T T T rms ππππππ 解:周期三角波的时域数学描述如下:
(1)傅里叶级数的三角函数展开: ,式中由于x(t)是偶函数,t n 0sin ω是奇函数,则t n t x 0sin )(ω也是奇函数,而奇函数在上下限对称区间上的积分等于0。故 =n b 0。 因此,其三角函数展开式如下: 其频谱如下图所示: ? ????????+≤ ≤-≤≤- +=) (2 02022)(0000 0nT t x T t t T A A t T t T A A t x 2 1)21(2)(12/0002/2/00000= -==??-T T T dt t T T dt t x T a ??-==-2/000 02 /2/00 000cos )21(4cos )(2T T T n dt t n t T T dt t n t x T a ωω?????==== ,6,4,20 ,5,3,14 2sin 422222n n n n n π ππ?-=2 /2 /00 00sin )(2T T n dt t n t x T b ω∑∞ =+=102 2 cos 1 4 21)(n t n n t x ωπ ∑∞ =++=102 2)2sin(1 421n t n n πωπ (n =1, 3, 5, …)
精品文档 一、单项选择题(30分)9.嵌套使用IF语句,其综合结果可实现 A 。A.带优先级且条件相与的逻辑电路1.以下描述错误的是 C B.条 件相或的逻辑电路 C.三态控制电路是A.QuartusIIAltera提供的FPGA/CPLD集成开发环境D.双向控制电路 10.在VHDLAlteraB.是世界上最大的可编程逻辑器件供应商之一语言中,下列对时钟边沿检测描述中,错误的是 D 。 A.if clk'event and clk = ‘1' then B.if falling_edge(clk) then 前一代C.MAX+plusII是AlteraFPGA/CPLD集成开发环境QuartusII的更 C.if clk'event and clk = ‘0' then 新换代新产品D.if clk'stable and not clk = ‘1' then 11.下列那个流程是正确的基于.DQuartusII完全支持VHDL、Verilog的设计流程EDA软件的FPGA / CPLD设计流程 B A.原理图/HDL文本输入→适配→综合→功能仿真→编程下载→硬件测试开发工具中的专用综合器的是2.以下工具中属于FPGA/CPLD B B.原理图/HDL文本输入→功能仿真→综合→适配→编程下载→硬件测试 C .Active HDL D.QuartusII Leonardo Spectrum .AModelSim B.C.原理图/HDL文本输入→功能仿真→综合→编程下载→→适配硬件测试;.3以下器件中属于Xilinx 公司生产的是 C /HDL文本输入→功能仿真→适配→编程下载→综合→硬件测试 D.BMAX系列器件.原理图A.ispLSI系列器件 )语句的语句结构及语法规则语言中,下列对进程(PROCESS系列器件 C.XC9500系列器件D.FLEX 12.在VHDL 。A 的描述中,正确的是以下关于信号和变量的描述中错误的是4. B 为一无限循环语句;敏感信号发生更新时启动进程,执行完..信号是描述硬件系统的基本数据对象,它的性质类似于连接线PROCESSAA .信号的定义范围是结构体、进程B 成后,等待下一次进程启动C.除了没有方向说明以外,信号与实体的端口概念是一致的B.敏感信号参数表中,应列出进程中使用的所有输入信号CD.在进程中不能将变量列入敏感信号列表中.进程由说明部分、结构体部分、和敏感信号参数表三部分组成D.当前进程中声明的变量也可用于其他进程以下关于状态机的描述中正确的是5. B B MooreA.型状态机其输出是当前状态和所有输入的函数13.下列语句中,不属于并行语句的是 语句B.CASE 型的输出变化要领先一个时钟周期型状态机相比,.与BMooreMealy A.进程语句 …语句…ELSE D.WHEN .元件例化语句MealyC.型状态机其输出是当前状态的函数 C 设计现行工作VHDL语言共支持四种常用库,其中哪种库是用户的14.以上都不对D .VHDL B 下列标识符中,.库是不合法的标识符。6 END BPP0 A...D .CNot_Ack sig D
2013年电子系统设计考试试题--考试时间21号56节--公共409 一、填空题 1. Verilog的基本设计单元是模块。它是由两部分组成,一部分描述接口;另一部分描述逻辑功能,即定义输入是如何影响输出的。 2. 用assign描述的语句我们一般称之为组合逻辑,并且它们是属于并行语句,即于语句的书写次序无关。而用always描述的语句我们一般称之为组合逻辑或时序逻辑,并且它们是属于串行语句,即于语句的书写有关。 3.在case语句中至少要有一条default语句. 4. 已知x=4’b1001,y=4’0110,则x的4位补码为4’b1111,而y的4位的补码为4’b0110 . 5. 两个进程之间是并行语句。而在Always中的语句则是顺序语句。 二、简答题 1. 怎样理解在进程语句中,阻塞语句没有延迟这句话? 答:这是因为在进程语句中,有阻塞语句和非阻塞语句这两种,非阻塞语句是有延迟的,而阻塞语句也是有延迟的,这是因为因果系统都有延迟,只是阻塞语句的延迟比非阻塞语句的延迟小于若干个数量级,因此可视为没有延迟。 2.在进程中什么情况下综合为时序电路?什么情况下综合为组合电路? 答:在进程中,只有当敏感信号是边沿触发(即上升沿或下降沿)时,此时综合为时序电路;而在进程中只有当敏感信号是电平沿触发时,此时综合为组合电路。 3.为什么在Verilog语言中,其综合只支持次数确定的循环,而不支持次数不确定的循环? 答:这是因为,在Verilog语言中,它是为电路设计而设计的一门语言,它与高级语言不同,若循环的次数不确定,则会带来不确定的延迟,而这在电路中是不允许存在的,故综合只能支持次数确定的循环,即对于一个具体的芯片,其延迟只是一个定值。 4.Verilog HDL语言进行电路设计方法有哪几种? 答:①自上而下的设计方法(Top-down);②自下而上的设计方法(Bottom-Up) ③综合设计的方法。 5.specparam语句和parameter语句在参数说明方面不同之处是什么? 答:1.specparam语句只能在延时的格式说明块(specify)中出现,而parameter语句则不能再延时说明块内出现。 2.由specparam语句进行定义的参数只能是延时参数,而由parameter语句定义的参数可以是任何数据类型的参数。 3.由specparam语句定义的延时参数只能在延时说明块内使用,而由parameter语句定义的参数则可以在模块内(该parameter语句之后)的任何位置说明。 三、选择题: 1、下列标示符哪些是合法的(B) A、$time B、_date C、8sum D、mux# 2、如果线网类型变量说明后未赋值,起缺省值是(D) A、x B、1 C、0 D、z 3、现网中的值被解释为无符号数。在连续赋值语句中,assign addr[3:0]=-3;addr被赋予的值是(A) A、4’b1101 B、4’b0011 C、4’bxx11 D、4’bzz11 4、reg[7:0] mema[255:0]正确的赋值是(A) A、mema[5]=3’ d0, B、8’ d0; C、1’ b1; D、mema[5][3:0]=4’ d1 5、在code模块中参数定义如下,请问top模块中d1模块delay1、delay2的值是( D) module code(x,y); module top; paramee delay1=1,delay2=1; …………….
2007 至2008学年度第二学期期末考核 《EDA》试题(开卷) 卷号:B 时间:120 分钟 2008 年6 月 专业:电子信息工程学号:姓名: 一填空题(20分) 1、VHDL 2、DEVICE.LIB SYMBOLS.LIB 3、实际零件焊接到电路板时所指示的外观和焊点的位置 4、电子设计自动化电子CAD技术 5、A L T E R A,X I L I N X 6、WAIT 7、电路连接 8、SRAM-BASE 9、2.54mm 300mil 10、元件外观和元件引线端子的图形 二名词解释(20分) 1 PLD/FPGA PLD是可编程逻辑器件(Programable Logic Device)的简称,FPGA是现场可编程门阵列(Field Programable Gate Array)的简称,两者的功能基本相同,只是实现原理略有不同,所以我们有时可以忽略这两者的区别,统称为可编程逻辑器件或PLD/FPGA。 2.过孔 当需要连接两个层面上的铜膜走线时就需要过孔(Via),过孔 又称为贯孔、沉铜孔和金属化孔。 过孔分为穿透式(Through)、半隐藏式(Blind)和隐藏式(Buried) 3.铜膜线 就是连接两个焊盘的导线,称为Track,一般铜膜线走线在不 同层面取不同的走向,例如顶层走水平线,则底层走垂直线。顶 层和底层走线之间的连接采用过孔(Via)连接。 4 PROM、PAL和PLA PROM:与阵列固定,或阵列可编程,一般用作存储器,其输入为存储器的地址,输出为存储器单元的内容。但输入的数目太大时,器件功耗增加,其局限性大。 PLA:与或阵列均可编程,但是其慢速特性和相对PAL、PROM而高得多的价格妨碍了它被广泛使用。PAL:或阵列固定,与阵列可编程,其第二代产品GAL具有了可电擦写、可重复编程、可设置加密的功能。 5 自顶向下的/自下而上的设计方法 自下而上的设计方法,使用该方法进行硬件设计是从选择具体元器件开始,并用这些元器件进行逻辑电路设计,从而完成系统的硬件设计,然后再将各功能模块连接起来,完成整个系统的硬件设计,自顶向下的设计方法就是从系统的总体要求出发,自顶向下分三个层次对系统硬件进行设计。 第一个层次是行为描述第二个层次是数据流描述第三个层次为逻辑综合
1-3 求指数函数()(0,0)at x t Ae a t -=>≥的频谱。 (2)220 2 2 (2) ()()(2) 2(2)a j f t j f t at j f t e A A a j f X f x t e dt Ae e dt A a j f a j f a f -+∞ ∞ ---∞-∞-==== =-+++??πππππππ ()X f = Im ()2()arctan arctan Re ()X f f f X f a ==-π? 1-5 求被截断的余弦函数0cos ωt (见图1-26)的傅里叶变换。 0cos ()0 ωt t T x t t T ?=? ≥?? 解:0()()cos(2)x t w t f t =π ()2sinc(2)W f T Tf =π () 002201cos(2)2j f t j f t f t e e πππ-= + 所以002211()()()22 j f t j f t x t w t e w t e -=+ππ 根据频移特性和叠加性得: 000011 ()()() 22 sinc[2()]sinc[2()] X f W f f W f f T T f f T T f f =-++=-++ππ 可见被截断余弦函数的频谱等于将矩形脉冲的频谱一分为二,各向左右移动f 0,同时谱线高度减小一半。也说明,单一频率的简谐信号由于截断导致频谱变得无限宽。 1-6 求指数衰减信号0()sin at x t e ωt -=的频谱 解 :() 0001sin()2j t j t t e e j -= -ωωω,所以() 001()2j t j t at x t e e e j --=-ωω 单边指数衰减信号1()(0,0)at x t e a t -=>≥的频谱密度函数为 1122 1()()j t at j t a j X f x t e dt e e dt a j a ∞ ∞ ----∞ -= == =++? ?ωωω ωω 根据频移特性和叠加性得: []001010222200222 000222222220000()()11()()()22()()[()]2[()][()][()][()] a j a j X X X j j a a a a j a a a a ??---+= --+=-??+-++?? --= -+-+++-++ωωωωωωωωωωωωωωωωωω ωωωωωωωω
简答: 1.VHDL中变量与信号的主要区别 一、变量是一个局部量,只能在进程和子程序,无延时,立即发生,主要作用是在进程中作为临时的数据存储单元。 从VHDL语句功能和行为仿真来看,信号与变量的差异主要表现在接受信息的方式和信息保持与传递的区域大小上。 (1)如:信号可以设置传输延迟量,而变量则不能; (2)如:信号可作为模块间的信息载体,如在结构体中个进程间传递信息;变量只能作为局部的信息载体,如只能在所定义的进程中有效。 (3) 变量的设置有时只是一种过渡,最后的信息传输和界面间的通信都是靠信号来完成综合后的信号将对应更多的硬件结构。 2.ASIC、FPGA、EDA、ISP的含义 ASIC:专用集成电路FPGA:可编程逻辑器件EDA:电子设计自动化ISP:因特网服务提供商 3.常用的库的名称(IEEE STD WORK VITAL) 5.进程语句的特点 (1)进程与进程,或其它并行语句之间的并行性,体现硬件电路并行运行特征。 (2)进程内部的顺序语句具有顺序与并行双重性。顺序行为体现硬件的逻辑功能,并行行为体现硬件特征。 进程内部使用顺序语句,对一个系统进行算法、行为和逻辑功能进行描述,可以具有高抽象性的特点,可以与具体的硬件没有关联。 这种顺序仅是指语句执行上的顺序(针对于HDL的行为仿真),并不意味着PROCESS语句在综合后所对应的硬件逻辑行为也同样具有顺序性。
VHDL程序无法进行诸如软件语言那样的“单步”调试,因为整个程序是一个整体,不能割裂每一句,只能通过仿真波形来了解程序的问题。 (3)进程有启动与挂起两种状态。 (4)进程与进程,或其它并行语句之间通过信号交流。 (5)时序电路必须由进程中的顺序语句描述,而此顺序语句必须由不完整的条件语句构成。推荐在一个进程中只描述针对同一时钟的同步时序逻辑,而异步时序逻辑或多时钟逻辑必须由多个进程来表达。 6.实体定义时端口方向OUT与BUFFER有何不同? OUT:输出端口。定义的通道为单向输出(写)模式,即通过此端口只能将实体内的数据流向外部。 BUFFER:缓冲端口。其功能与INOUT类似,区别在于当需要输入数据时,只允许内部回读输出的信号,即允许反馈。 如:在计数器的设计中,将计数器输出的计数信号回读,作为下一次计数的初值。 与OUT模式相比,BUFFER回读信号不是由外部输入的,而是由内部产生、向外输出信号。 即OUT结构体内部不能再使用,BUFFER结构体内部可再使用。
《EDA技术》第二学期期末试题B 卷号:B 时间:120 分钟2008 年6 月 专业:电子信息工程学号:姓名: 一、填空题(20分,每题2分) 当前ASIC制造商都自己开发了HDL语言,但是都不通用,只有美国国防部开发的()语言成为了IEEE. STD_1076标准,并在全世界得到了承认。 载入protel的Schematic中的()和()可满足一般用户需求,两个零件库中含有二极管、三极管、电阻、电容、电感等常用元件。 零件封装是指()。 EDA技术也称(),是在( )技术的基础上发展起来的计算机软件系统。 目前世界上有十几家生产CPLD/FPGA的公司,最大的三家是:(),( ),LATTIC 。 顺序描述语句中,()在MAX-PLUS中不被支持。 VHDL语句中能被赋予一定值的对象称为客体,主要有常数,信号和变量。其中常数对应代表数字电路中的电源和接地等。信号对应物理设计中的()。 FPGA可分为两大类,分别是SRAM-BASE和Anti-Fuse 设计时一般选用()。100mil=()mm,7.62mm=( )mil。 PCB封装元件实际上就是()。 二、名词解释题(20分,每题4分) 1 PLD/FPGA 2.过孔 3.铜膜线 4 PROM、PAL和PLA 5 自顶向下的/自下而上的设计方法 三、选择题(15分,每题3分) 1.下列常用热键具有在元件浮动状态时,编辑元件属性功能的是() PgUp Tab Space bar Esc 2.Design/Options菜单中下列选项不属于开关选项的是:() A.Snap Grid B.Hidden Pins C.Electrical Grid D.Title block 3.下列不属于VHDL基本程序结构是() A..CONFIGURATION定义区 B..ARCHITECTURE定义区 C.USE定义区 D.ENTITY定义区 4.下列关于VHDL中信号说法不正确的是:()
机械工程测试技术课后 习题答案 集团标准化小组:[VVOPPT-JOPP28-JPPTL98-LOPPNN]
第三章:常用传感器技术 3-1 传感器主要包括哪几部分?试举例说明。 传感器一般由敏感元件、转换元件、基本转换电路三部分组成。 如图所示的气体压力传感器。其内部的膜盒就是敏感元件,它的外部与大气压力相通,内部感受被测压力p ,当p 发生变化时,引起膜盒上半部分移动,可变线圈是传感器的转换元件,它把输入的位移量转换成电感的变化。基本电路则是完成上述电感变化量接入基本转换电路,便可转换成电量输出。 3-2 请举例说明结构型传感器与物性型传感器的区别。 答:结构型传感器主要是通过传感器结构参量的变化实现信号变换的。例如,电容式传感器依靠极板间距离变化引起电容量的变化;电感式传感器依靠衔铁位移引起自感或互感的变化。 物性型传感器则是利用敏感元件材料本身物理性质的变化来实现信号变换。例如,水银温度计是利用水银的热胀冷缩性质;压电式传感器是利用石英晶体的压电效应等。 3-3 金属电阻应变片与半导体应变片在工作原理上有何区别? 答: (1)金属电阻应变片是基于金属导体的“电阻应变效应”, 即电阻材料在外力作用下发生机械变形时,其电阻值发生变化的现象,其电阻的相对变化为()12dR R με=+; (2)半导体应变片是基于半导体材料的“压阻效应”,即电阻材料受到载荷作用而产生应力时,其电阻率发生变化的现象,其电阻的相对变化为dR d E R ρλερ == 。 3-4 有一电阻应变片(见图3-105),其灵敏度S 0=2,R =120Ω,设工作时其 应变为1000με,问ΔR =?设将此应变片接成图中所示的电路,试求:1)无应变时电流指示值;2)有应变时电流指示值;3)试分析这个变量能否从表中读出? 解:根据应变效应表达式R /R =S g 得 R =S g R =2100010-6120=0.24 1)I 1=1.5/R =1.5/120=0.0125A=12.5mA 2)I 2=1.5/(R +R )=1.5/(120+0.24)0.012475A=12.475mA 图3-105 题3-4图
EDA试题库建设 [70%基础题,20%中档题,10%提高题(试题容量:20套试卷,其中每套试题填空题10空(每空2分),选择题10题(每题2分)),简答题4题(每题5分),分析题2题(每题10分),设计题2题(每题10分)。] 基础题部分 填空题(140空) 1.一般把EDA技术的发展分为(CAD)、(CAE)和(EDA)三个阶段。 2.EDA设计流程包括(设计准备)、(设计输入)、(设计处理)和(器件编程)四个步骤。 3.时序仿真是在设计输入完成之后,选择具体器件并完成布局、布线之后进行的时序关系仿真,因此又称为(功能仿真)。4.VHDL的数据对象包括(变量)、(常量)和(信号),它们是用来存放各种类型数据的容器。 5.图形文件设计结束后一定要通过(仿真),检查设计文件是否正确。 6.以EDA方式设计实现的电路设计文件,最终可以编程下载到(FPGA)或者(CPLD)芯片中,完成硬件设计和验证。7.MAX+PLUS的文本文件类型是(.VHD)。 8.在PC上利用VHDL进行项目设计,不允许在(根目录)下进行,必须在根目录为设计建立一个工程目录。9.VHDL源程序的文件名应与(实体名)相同,否则无法通过编译。 10.常用EDA 的设计输入方式包括(文本输入方式)、(图形输入方式)、(波形输入方式)。 11.在VHDL 程序中,(实体)和(结构体)是两个必须的基本部分。 12.将硬件描述语言转化为硬件电路的重要工具软件称为(HDL 综合器)。 13、VHDL 的数据对象分为(常量)、(变量)和(信号)3 类。 14、VHDL 的操作符包括(算术运算符)和(符号运算符)。 15、常用硬件描述语言有(Verilog HDL)、(AHDL)以及(VHDL)。 16、VHDL基本语句有(顺序语句)、(并行语句)和属性自定义语句。 17、VHDL 同或逻辑操作符是(XNOR)。 18、原理图文件类型后缀名是(.GDF),Verilog HDL语言文本文件类型的后缀名是(.V )。 19、十六进制数16#E#E1对应的十进制数值是(224)。 20、一个完整的VHDL程序应包含三个基本部分,即库文件说明、(程序包应用说明)和(实体和结构体说明)。 21、VHDL 不等于关系运算符是(/= )。 22、STD_LOGIC_1164程序包是(IEEE )库中最常用的程序包。 23.文本输入是指采用(硬件描述语言)进行电路设计的方式。 24.当前最流行的并成为IEEE标准的硬件描述语言包括(vhdl)和(verilog)。 25.采用PLD进行的数字系统设计,是基于(芯片)的设计或称之为(自底向上)的设计。26.硬件描述语言HDL给PLD和数字系统的设计带来了更新的设计方法和理念,产生了目前最常用的并称之为(自顶向下)的设计法。 27.EDA工具大致可以分为(设计输入编辑器)、(仿真器)、(hdl综合器)、(适配器)以及(下载器)等5个模块。 28.将硬件描述语言转化为硬件电路的重要工具软件称为(综合器)。 29.用MAX+plusII输入法设计的文件不能直接保存在(根目录)上,因此设计者在进入设计之前,应当在计算机中建立保存设计文件的(工程)。 30.若在MAX+plusII集成环境下,执行原理图输入设计方法,应选择(block diagram/Schematic)命令方式。
第1章测试技术基础知识 1.4常用的测呈结果的表达方式有哪3种?对某量进行了8次测量,测得值分别为:8 2.40、 82.43、82.50、82.48、82.45、82.38、82.42、82.46 0试用3 种表达方式表示其测量结果。 解:常用的测量结果的表达方式有基于极限误差的表达方式、基于/分布的表达方式和基于不确怎度的表达方式等3种 1)基于极限误差的表达方式可以表示为 均值为 因为最大测量值为82.50,最小测量值为82.38,所以本次测量的最大误差为0.06.极限误差戈m取为最大误差的两倍,所以 忑=82.44 ±2x 0.06 = 82.44 ±0.12 2)基于/分布的表达方式可以表示为 一A = X ± S = 0.014 自由度“8-1 = 7,置信概率0 = 0.95,查表得f 分布值0 = 2.365,所以 x () = 82.44 ± 2.365 x 0.014 = 82.44 ± 0.033 3)基于不确定度的表达方式可以表示为 所以 X O =82.44±O.O14 解題思路:1)给岀公式;2)分别讣算公式里而的各分项的值;3)将值代入公式,算岀结 果。 第2章信号的描述与分析 2.2 一个周期信号的傅立叶级数展开为 含有正弦项的形式。 解^基波分量为 2JT T I 120JT . n ——cos —r + sin —r 10 4 30 4 所以:1)基频 co {} = - (rad / s) 4 2)信号的周期7 = —= 8(5) 5 — A — =X±(7x = X± 求: 曲)=4 + £( /I-1 2 K /? rm os —1 + 10 4 120”兀.fin ---- sin ——/) 30 4 (/的单位是秒) 1) ^(): 2)信号的周期:3)信号的均值; 4)将傅立叶级数表示成只 y(r)h ?]= 一、单项选择题(30分) 1.以下描述错误的是 C A.QuartusII是Altera提供的FPGA/CPLD集成开发环境 B.Altera是世界上最大的可编程逻辑器件供应商之一 C.MAX+plusII是Altera前一代FPGA/CPLD集成开发环境QuartusII的更新换代新产品 D.QuartusII完全支持VHDL、Verilog的设计流程 2.以下工具中属于FPGA/CPLD开发工具中的专用综合器的是 B A.ModelSim B.Leonardo Spectrum C.Active HDL D.QuartusII 3.以下器件中属于Xilinx 公司生产的是 C A.ispLSI系列器件 B.MAX系列器件 C.XC9500系列器件 D.FLEX系列器件 4.以下关于信号和变量的描述中错误的是 B A.信号是描述硬件系统的基本数据对象,它的性质类似于连接线 B.信号的定义范围是结构体、进程 C.除了没有方向说明以外,信号与实体的端口概念是一致的 D.在进程中不能将变量列入敏感信号列表中 5.以下关于状态机的描述中正确的是 B A.Moore型状态机其输出是当前状态和所有输入的函数 B.与Moore型状态机相比,Mealy型的输出变化要领先一个时钟周期 C.Mealy型状态机其输出是当前状态的函数 D.以上都不对 6.下列标识符中, B 是不合法的标识符。 A.PP0 B.END C.Not_Ack D.sig 7.大规模可编程器件主要有FPGA、CPLD两类,下列对CPLD结构与工作原理的描述中,正确的是 C 。 A.CPLD即是现场可编程逻辑器件的英文简称 B.CPLD是基于查找表结构的可编程逻辑器件 C.早期的CPLD是从GAL的结构扩展而来 D.在Altera公司生产的器件中,FLEX10K 系列属CPLD结构 8.综合是EDA设计流程的关键步骤,在下面对综合的描述中, D 是错误的。 A.综合就是把抽象设计层次中的一种表示转化成另一种表示的过程 B.综合就是将电路的高级语言转化成低级的,可与FPGA / CPLD的基本结构相映射的网表文件 C.为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束 D.综合可理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系是唯一的(即综合结果是唯一的) 9.嵌套使用IF语句,其综合结果可实现 A 。 A.带优先级且条件相与的逻辑电路 B.条件相或的逻辑电路 C.三态控制电路 D.双向控制电路 10.在VHDL语言中,下列对时钟边沿检测描述中,错误的是 D 。 A.if clk'event and clk = ‘1’ then B.if falling_edge(clk) then C.if clk’event and clk = ‘0’ then D.if clk’stable and not clk = ‘1’ then 11.下列那个流程是正确的基于EDA软件的FPGA / CPLD设计流程 B A.原理图/HDL文本输入→适配→综合→功能仿真→编程下载→硬件测试B.原理图/HDL文本输入→功能仿真→综合→适配→编程下载→硬件测试C.原理图/HDL文本输入→功能仿真→综合→编程下载→→适配硬件测试; D.原理图/HDL文本输入→功能仿真→适配→编程下载→综合→硬件测试12.在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,正确的是 A 。 A.PROCESS为一无限循环语句;敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动 B.敏感信号参数表中,应列出进程中使用的所有输入信号 C.进程由说明部分、结构体部分、和敏感信号参数表三部分组成 D.当前进程中声明的变量也可用于其他进程 13.下列语句中,不属于并行语句的是 B A.进程语句 B.CASE语句 C.元件例化语句 D.WHEN…ELSE…语句 14.VHDL语言共支持四种常用库,其中哪种库是用户的VHDL设计现行工作库 D A.IEEE库 B.VITAL库C.STD库D.WORK库15.VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述 D 。 A.器件外部特性 B.器件的综合约束 C.器件外部特性与内部功能 D.器件的内部功能 二、EDA名词解释,写出下列缩写的中文含义(10分) 1.CPLD:复杂可编程逻辑器件 2.ASIC:专用集成电路 3.LUT:查找表 4.EDA:电子设计自动化 5.ROM:只读存储器 三、程序填空题(20分) 以下是一个模为24(0~23)的8421BCD码加法计数器VHDL描述,请补充完整 班级学号姓名 密封线内不得答题 EDA期末考试试题及答案 一、单项选择题(30分,每题2分) 1. A. B C D.通常,EDAL 配器则需由 2.VHDL A.器件外部特性 C 3.下列标识符中, B 是不合法的标识符。 A.State0 B. 4.以下工具中属于 A.ModelSim C.MATLAB 5. A.立即完成 C.在进程的最后完成 6.以下关于CASE A.CASE B. 句>” C.CASE D.WHEN 围 7. A.STD_LOGIC_ARITH B.STD_LOGIC_1164 C. D. 8.基于EDA软件的FPGA / CPLD设计流程为:原理图/HDL文本输入→A → 综合→适配→时序仿真→编程下载→硬件测试。 A.功能仿真B.逻辑综合C.配置D.引脚锁定 9.不完整的IF语句,其综合结果可实现 D A.三态控制电路B.条件相或的逻辑电路 C.双向控制电路D.时序逻辑电路 10.下列语句中,属于并行语句的是A D.FOR语句 示转化成另一种表示的过程;在下面对综合的描述中, C 是错误的。 FPGA / CPLD的基本 系列器件 系列器件 语言中,下列对时钟边沿检测描述中,错误的是 D 班级 学号 姓名 密 封 线 内 不 得 答 题 二、EDA 名词解释,写出下列缩写的中文含义(10分,每题2分) 1.FPGA :现场可编程门阵列 班级学号姓名 密封线内不得答题1.试用VHDL描述一个外部特性如图所示的数据选择器,S为控制端口。(10 分) Library IEEE; Use IEEE.std_logic_1164.all; Entity sjxz IS Port(A,B,S:in std_logic; Q:out std_logic); END entity sjxz; Architecture bhv of sjxz IS Process(S) Begin IF S=’0’ Then Q<=A; ELSE Q<=B; END IF; END PROCESS’ END bhv; 2.下图为某一状态机对应的状态图,试用VHDL语言描述这一状态机。(18分) 1 Library IEEE; Use IEEE.std_logic_1164.all; Use IEEE.std_logic_unsigned.all; Entity FSM1 IS PORT(clk,rst:in std_logic; In1:in std_logic; Out1:out std_logic_vector(3 downto 0)); END entity FSM1; Architecture bhv of FSM1 IS TYPE FSM_ST IS(S0,S1,S2,S3); Singnal C_ST:FSM_ST; Begin Process(clk,rst) Begin IF rst=’1’ then C_ST<=S0; ELSIF clk’event AND clk=’1’then CASE C_ST IS When S0=>IF In1=’1’ then C_ST<=S1; ELSE C_ST<=S0; END IF; Out1<=”0000”; When S1=>IF In1=’0’ then C_ST<=S2; ELSE C_ST<=S1; END IF; Out1<=”1001”; When S2=>IF In1=’1’ then C_ST<=S3; ELSE C_ST<=S2; END IF; Out1<=”1100” ; When S3=>IF In1=’0’ then C_ST<=S0; ELSE C_ST<=S3; END IF; Out1<=”1111”; END CASE; END IF; END process; END bhv;EDA技术期末试卷(含答案)
EDA期末考试试卷