当前位置:文档之家› 重庆大学EDA课程设计-vhdl语言-12.24小时时钟-乐曲播放电路-函数信号发生器

重庆大学EDA课程设计-vhdl语言-12.24小时时钟-乐曲播放电路-函数信号发生器

重庆大学EDA课程设计-vhdl语言-12.24小时时钟-乐曲播放电路-函数信号发生器
重庆大学EDA课程设计-vhdl语言-12.24小时时钟-乐曲播放电路-函数信号发生器

附录一、12/24小时数字时钟VHDL设计1,系统顶层逻辑图:

时序仿真波形

管脚定义以及锁定

2,分频模块。

①各个分频模块的模块图:

②,分别对应的仿真波形:

③50mhz分频至1k模块代码:

library ieee;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_1164.all;

entity wh4574_divto1k is

port(clk50m:in std_logic;

clk1k:out std_logic);

end wh4574_divto1k;

architecture behav of wh4574_divto1k is signal count1:std_logic_vector(14 downto 0);

signal count2:std_logic;

signal co:std_logic;

begin

process(clk50m)

begin

if clk50m'event and clk50m='1' then

if count1="110000110100111" then count1<="000000000000000";

co<='1';

else

count1<=count1+'1';

co<='0';

end if;

end if;

end process;

process(co)

begin

if co'event and co='1' then

count2<=not count2;

end if;

end process;

clk1k<=count2;

end behav;

50mhz分频至2k模块代码:

library ieee;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_1164.all;

entity wh4574_divto2k is

port(clk50m:in std_logic;

clk2k:out std_logic);

end wh4574_divto2k;

architecture behav of wh4574_divto2k is signal count1:std_logic_vector(13 downto 0);

signal count2:std_logic;

signal co:std_logic;

begin

process(clk50m)

begin

if clk50m'event and clk50m='1' then

if count1="11000011010011" then

count1<="00000000000000";

co<='1';

else

count1<=count1+'1';

co<='0';

end if;

end if;

end process;

process(co)

begin

if co'event and co='1' then

count2<=not count2;

end if;

end process;

clk2k<=count2;

end behav;

1k分频至5hz代码:

library ieee;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_1164.all;

entity wh4574_div1kto5 is

port(inclk1k:in std_logic;

clk5hz:out std_logic);

end wh4574_div1kto5;

architecture behav of wh4574_div1kto5 is signal count1:std_logic_vector(6 downto 0);

signal count2:std_logic;

signal co:std_logic;

begin

process(inclk1k)

begin

if inclk1k'event and inclk1k='1' then

if count1="1100011" then

count1<="0000000";

co<='1';

else

count1<=count1+'1';

co<='0';

end if;

end if;

end process;

process(co)

begin

if co'event and co='1' then

count2<=not count2;

end if;

end process;

clk5hz<=count2;

end behav;

5分频代码:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity wh4574_div_5 is

port(clk:in std_logic;

q:out std_logic);

end wh4574_div_5;

architecture behav of wh4574_div_5 is signal count:std_logic_vector(2 downto 0); begin

process(clk)

begin

if clk'event and clk='1' then

if count="100"then

count<="000";

q<='1';

else

count<=count+1;

q<='0';

end if;

end if;

end process;

end behav;

3,按键去抖动模块,二选一模块。

①模块图:

②时序仿真波形依次为:

③源代码:

按键去抖动:

library ieee;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_1164.all;

entity wh4574_qudou is

port(clk,keyin :in std_logic;

keyout:out std_logic);

end wh4574_qudou;

architecture behav of wh4574_qu dou is

begin

process(clk)

variable count1,count2:std_logic _vector(3 downto 0);

begin

if clk'event and clk='1' then

if keyin='0' then

if count1="0101" then

keyout<='0';

else count1:=count1+1;

end if;

elsif keyin='1' then

if count2="0101" then

keyout<='1';

else count2:=count2+1;

end if;

end if;

end if;

end process;

end behav;

二选一数选器:

library ieee;

use ieee.std_logic_1164.all;

entity wh4574_T_mux2 is

port(sel,a,b:in std_logic;

q:out std_logic);

end wh4574_T_mux2;

architecture bav of wh4574_T_mux2 is begin

process(sel,a,b)

begin

if sel='1' then

q<=a;

else

q<=b;

end if;

end process;

end bav;

4,24,60进制计数器模块,24小时转12小时模块,动态译码显示模块。

①模块图:

②时序仿真波形图。

24进制计数波形:

60进制仿真波形:

24小时制转12小时制:

③,程序源代码.

24进制计数器:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity wh4574_count24 is

port(CLK:in std_logic;

bcd10,bcd1:buffer std_logic_vector(3 downto 0);

CO:OUT STD_LOGIC);

end wh4574_count24;

architecture behav of wh4574_count24 is begin

process(CLK,bcd10)

begin

if CLK'EVENT AND CLK='1' THEN

if bcd10="0010"and bcd1="0011" th en

bcd1<="0000";

CO<='1';

elsif bcd1="1001" then

bcd1<="0000";

CO<='0';

else

bcd1<=bcd1+'1';

CO<='0';

end if;

end if;

end process;

process(CLK,bcd1)

begin

if CLK'event and CLK='1' then

if bcd1="0011"and bcd10="0010" th en

bcd10<="0000";

elsif bcd1="1001" then

bcd10<=bcd10+'1';

end if;

end if;

end process;

end behav;

60进制:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity wh4574_count60 is

port(clk:in std_logic;

bcd10,bcd1:buffer std_logic_vector(3 downto 0);

preset:in std_logic;

co:out std_logic);

end wh4574_count60;

architecture rtl of wh4574_count60 is signal co_1:std_logic;

begin

process(clk,preset)

begin

if preset='0' then

bcd1<="0000";

else

if clk='1'and clk'event then

if bcd1="1001" then

bcd1<="0000";

else

bcd1<=bcd1+'1';

end if;

end if;

end if;

end process;

process(clk,preset,bcd1)

begin

if preset='0' then

bcd10<="0000";

co_1<='0';

else

if clk='1'and clk'event then

if bcd1="1000"and bcd10="0101" th en

co_1<='1';

elsif bcd1="1001"and bcd10="0101" then

bcd10<="0000";

co_1<='0';

elsif bcd1="1001" then

bcd10<=bcd10+'1';

co_1<='0';

end if;

end if;

end if;

end process;

co<=not co_1;

end rtl;

24转换12

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity wh4574_trans is

port(clk:in std_logic;

switchP:in std_logic;

T24_10,T24_1:in std_logic_vector(3 downto 0);

T12_10,T12_1:buffer std_logic_vect or(3 downto 0));

end wh4574_trans;

architecture behav of wh4574_trans is begin

process(T24_10,T24_1)

begin

case switchP&T24_10&T24_1 is

when "100000000"=>T12_10<="000 0";T12_1<="0000";

when "100000001"=>T12_10<="000 0";T12_1<="0001";

when "100000010"=>T12_10<="000 0";T12_1<="0010";

when "100000011"=>T12_10<="000 0";T12_1<="0011";

when "100000100"=>T12_10<="000 0";T12_1<="0100";

when "100000101"=>T12_10<="0000";T12_1<="0101";

when "100000110"=>T12_10<="000 0";T12_1<="0110";

when "100000111"=>T12_10<="000 0";T12_1<="0111";

when "100001000"=>T12_10<="000 0";T12_1<="1000";

when "100001001"=>T12_10<="000 0";T12_1<="1001";

when "100010000"=>T12_10<="000 1";T12_1<="0000";

when "100010001"=>T12_10<="000 1";T12_1<="0001";

when "100010010"=>T12_10<="000 0";T12_1<="0000";

when "100010011"=>T12_10<="000 0";T12_1<="0001";

when "100010100"=>T12_10<="000 0";T12_1<="0010";

when "100010101"=>T12_10<="000 0";T12_1<="0011";

when "100010110"=>T12_10<="000 0";T12_1<="0100";

when "100010111"=>T12_10<="000 0";T12_1<="0101";

when "100011000"=>T12_10<="000 0";T12_1<="0110";

when "100011001"=>T12_10<="000 0";T12_1<="0111";

when "100100000"=>T12_10<="000 0";T12_1<="1000";

when "100100001"=>T12_10<="000 0";T12_1<="1001";

when "100100010"=>T12_10<="000 1";T12_1<="0000";

when "100100011"=>T12_10<="000 1";T12_1<="0001";

when "100100100"=>T12_10<="000 0";T12_1<="0000";

when "000000000"=>T12_10<="000 0";T12_1<="0000";

when "000000001"=>T12_10<="000 0";T12_1<="0001";

when "000000010"=>T12_10<="000

0";T12_1<="0010";

when "000000011"=>T12_10<="000 0";T12_1<="0011";

when "000000100"=>T12_10<="000 0";T12_1<="0100";

when "000000101"=>T12_10<="000 0";T12_1<="0101";

when "000000110"=>T12_10<="000 0";T12_1<="0110";

when "000000111"=>T12_10<="000 0";T12_1<="0111";

when "000001000"=>T12_10<="000 0";T12_1<="1000";

when "000001001"=>T12_10<="000 0";T12_1<="1001";

when "000010000"=>T12_10<="000 1";T12_1<="0000";

when "000010001"=>T12_10<="000 1";T12_1<="0001";

when "000010010"=>T12_10<="000 1";T12_1<="0010";

when "000010011"=>T12_10<="000 1";T12_1<="0011";

when "000010100"=>T12_10<="000 1";T12_1<="0100";

when "000010101"=>T12_10<="000 1";T12_1<="0101";

when "000010110"=>T12_10<="000 1";T12_1<="0110";

when "000010111"=>T12_10<="000 1";T12_1<="0111";

when "000011000"=>T12_10<="000 1";T12_1<="1000";

when "000011001"=>T12_10<="000 1";T12_1<="1001";

when "000100000"=>T12_10<="001 0";T12_1<="0000";

when "000100001"=>T12_10<="001 0";T12_1<="0001";

when "000100010"=>T12_10<="001 0";T12_1<="0010";

when "000100011"=>T12_10<="001 0";T12_1<="0011";

when "000100100"=>T12_10<="0010";T12_1<="0100";

when others=>T12_10<="ZZZZ";T12 _1<="ZZZZ";

end case;

end process;

end behav;

动态译码显示模块

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity wh4574_led is

port(din0,din1,din2,din3,din4,din5,din6,din7:i n std_logic_vector(3 downto 0);

clk:in std_logic;

led_sa,led_sb,led_sc:out std_logic;

led_a,led_b,led_c,led_d,led_e,led_f,led _g,led_dp:out std_logic);

end entity;

architecture behav of wh4574_led is signal seg:std_logic_vector(6 downto 0); signal sel:std_logic_vector( 2 downto 0); signal num:std_logic_vector(3 downto 0); signal s:std_logic_vector(2 downto 0); begin

led_sa<=sel(0);

led_sb<=sel(1);

led_sc<=sel(2);

led_a<=seg(0);

led_b<=seg(1);

led_c<=seg(2);

led_d<=seg(3);

led_e<=seg(4);

led_f<=seg(5);

led_g<=seg(6);

process(clk)

begin

if rising_edge(clk) then

if s="111" then

s<="000";

else s<=s+'1';

end if;

end if;

end process;

process(s,din0,din1,din2,din3,din4,din5,din6, din7)

begin

if s="000" then

sel<="000";

num<=din0;

led_dp<='0';

elsif s="001" then

sel<="001" ;num<=din1;

led_dp<='0';

elsif s="010" then

sel<="010" ;num<=din2;

led_dp<='1';

elsif s="011" then

sel<="011" ;num<=din3;

led_dp<='0';

elsif s="100" then

sel<="100" ;num<=din4;

led_dp<='1';

elsif s="101" then

sel<="101" ;num<=din5;

led_dp<='0';

elsif s="110" then

sel<="110";num<=din6;

led_dp<='0';

else

sel<="111";num<=din7;

led_dp<='0';

end if;

end process;

seg<="0111111" when num=0 else

"0000110" when num=1 else "1011011" when num=2 else "1001111" when num=3 else "1100110" when num=4 else "1101101" when num=5 else "1111101" when num=6 else "0000111" when num=7 else "1111111" when num=8 else "1101111" when num=9 else "1110111" when num=10 else "1111100" when num=11 else "0111001" when num=12 else "1011110" when num=13 else "ZZZZZZZ" when num=14 else "1110001" when num=15 else "ZZZZZZZ";

end behav;

5,整点报时模块:

①,模块图:②,时序仿真波形

③,源代码:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity wh4574_chuck is

port(clk_2K,clk_1K,clk1:in std_logic;

ss,s,mm,m:in std_logic_vector(3 do wnto 0);

buzz:out std_logic);

end wh4574_chuck;

architecture behav of wh4574_chuck is signal buzz_1:std_logic;

begin

process(ss,s,mm,m,clk_2K,clk_1K,clk1) begin

if (mm="0101" and m="1001") and (ss ="0101") and (s>4) and (s<=9) then

if clk1='1' then

buzz_1<=clk_1K;

else

buzz_1<='Z';

end if;

elsif (mm="0000" and m="0000") and (ss="0000") and (s="0000") then

if clk1='1' then

buzz_1<=clk_2K;

else

buzz_1<='Z';

end if;

else

buzz_1<='Z';

end if;

buzz<=buzz_1;

end process;

end behav;

二乐曲播放电路设计1 电路系统逻辑顶层图:

时序仿真波形:

管脚定义锁定表:

2乐曲节拍发生器模块:

①,模块图及时序仿真波形:

②,程序源代码:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith.all;

entity wh4574_music_rom is

port(clk,back,pause: in std_logic;

index: out std_logic_vector(3 downto 0);

set1: in std_logic_vector(3 downto 0)); end wh4574_music_rom;

architecture behav of wh4574_music_rom is subtype word is integer range 0 to 15;

type memory is array(0 to 523) of word; signal rom: memory;

signal clk_cnt: integer range 0 to 249; signal clk_4Hz: std_logic;

signal adr: integer range 0 to 523;

begin

divide: process(clk)

begin

if (clk'event and clk ='1') then

if clk_cnt=249 then

clk_cnt<=0;clk_4Hz<='1';

else

clk_cnt<=clk_cnt+1;clk_4Hz<='0';

end if;

end if;

end process;

cnt:process(clk_4Hz,back,pause)

begin

if pause='1' then

if adr=523 then

adr<=0;

elsif (back='0') then

adr<=0;

elsif (clk_4Hz'event and clk_4Hz='1'and back='1') then

adr<=adr+1;

end if;

else

null;

end if;

end process;

music:process(set1)

begin

if set1="0011" then

index<=conv_std_logic_vector(rom(adr),4); rom(0)<=0;rom(1)<=0;rom(2)<=0;rom(3)<=5; rom(4)<=8;rom(5)<=5;rom(6)<=8;rom(7)<=9; rom(8)<=11;rom(9)<=11;rom(10)<=10;rom(11 )<=9;

rom(12)<=9;rom(13)<=10;rom(14)<=10;rom(1 5)<=0;

rom(16)<=0;rom(17)<=0;rom(18)<=0;rom(19) <=5;

rom(20)<=8;rom(21)<=5;rom(22)<=8;rom(23) <=9;

rom(24)<=11;rom(25)<=11;rom(26)<=10;rom( 27)<=9;

rom(28)<=9;rom(29)<=10;rom(30)<=9;rom(31 )<=8;

rom(32)<=8;rom(33)<=8;rom(34)<=0;rom(35)

<=0;

<=9;

rom(40)<=11;rom(41)<=11;rom(42)<=9;rom(4 3)<=8;

rom(44)<=8;rom(45)<=6;rom(46)<=6;rom(47) <=5;

rom(48)<=5;rom(49)<=5;rom(50)<=5;rom(51) <=5;

rom(52)<=0;rom(53)<=0;rom(54)<=0;rom(55) <=0;

rom(56)<=0;rom(57)<=0;rom(58)<=0;rom(59) <=5;

rom(60)<=8;rom(61)<=5;rom(62)<=8;rom(63) <=9;

rom(64)<=11;rom(65)<=11;rom(66)<=10;rom( 67)<=9;

rom(68)<=9;rom(69)<=10;rom(70)<=10;rom(7 1)<=0;

rom(72)<=0;rom(73)<=0;rom(74)<=0;rom(75) <=5;

rom(76)<=8;rom(77)<=5;rom(78)<=8;rom(79) <=9;

rom(80)<=11;rom(81)<=11;rom(82)<=10;rom( 83)<=9;

rom(84)<=9;rom(85)<=10;rom(86)<=9;rom(87 )<=8;

rom(88)<=8;rom(89)<=8;rom(90)<=0;rom(91) <=13;

rom(92)<=13;rom(93)<=11;rom(94)<=11;rom( 95)<=10;

rom(96)<=9;rom(97)<=9;rom(98)<=8;rom(99) <=9;

rom(100)<=9;rom(101)<=8;rom(102)<=10;ro m(103)<=8;

rom(104)<=8;rom(105)<=8;rom(106)<=8;rom( 107)<=8;

rom(108)<=9;rom(109)<=10;rom(110)<=10;ro m(111)<=9;

rom(112)<=9;rom(113)<=9;rom(114)<=9;rom( 115)<=9;

rom(116)<=0;rom(117)<=7;rom(118)<=8;rom( 119)<=7;

rom(120)<=6;rom(121)<=6;rom(122)<=6;rom( 123)<=12; om(127)<=13;

rom(128)<=12;rom(129)<=12;rom(130)<=11;r om(131)<=11;

rom(132)<=10;rom(133)<=10;rom(134)<=10;r om(135)<=10;

rom(136)<=11;rom(137)<=10;rom(138)<=11;r om(139)<=11;

rom(140)<=8;rom(141)<=8;rom(142)<=8;rom( 143)<=8;

rom(148)<=9;rom(149)<=10;rom(150)<=10;ro m(151)<=10;

rom(152)<=10;rom(153)<=10;rom(154)<=0;ro m(155)<=7;

rom(156)<=8;rom(157)<=7;rom(158)<=6;rom( 159)<=6;

rom(160)<=6;rom(161)<=8;rom(162)<=8;rom( 163)<=8;

rom(164)<=9;rom(165)<=9;rom(166)<=7;rom( 167)<=7;

rom(168)<=8;rom(169)<=8;rom(170)<=9;rom( 171)<=9;

rom(172)<=9;rom(173)<=9;rom(174)<=9;rom( 175)<=10;

rom(176)<=11;rom(177)<=11;rom(178)<=9;ro m(179)<=10;

rom(180)<=10;rom(181)<=11;rom(182)<=13;r om(183)<=12;

rom(184)<=12;rom(185)<=12;rom(186)<=12;r om(187)<=12;

rom(188)<=8;rom(189)<=8;rom(190)<=9;rom( 191)<=9;

rom(192)<=12;rom(193)<=12;rom(194)<=12;r om(195)<=8;

rom(196)<=8;rom(197)<=9;rom(198)<=9;rom( 199)<=8;

rom(200)<=12;rom(201)<=12;rom(202)<=12;r om(203)<=12;

rom(204)<=0;rom(205)<=10;rom(206)<=10;ro m(207)<=12;

rom(208)<=13;rom(209)<=13;rom(210)<=10;r om(211)<=9;

rom(212)<=9;rom(213)<=8;rom(214)<=8;rom( 215)<=12;

om(219)<=12;

rom(220)<=0;rom(221)<=10;rom(222)<=10;ro m(223)<=12;

rom(224)<=13;rom(225)<=13;rom(226)<=15;r om(227)<=14;

rom(228)<=14;rom(229)<=13;rom(230)<=13;r om(231)<=12;

rom(232)<=12;rom(233)<=10;rom(234)<=9;ro m(235)<=8;

rom(236)<=8;rom(237)<=8;rom(238)<=6;rom( 239)<=8;

rom(240)<=11;rom(241)<=11;rom(242)<=10;r om(243)<=9;

rom(244)<=9;rom(245)<=8;rom(246)<=9;rom( 247)<=9;

rom(248)<=9;rom(249)<=9;rom(250)<=9;rom( 251)<=9;

rom(252)<=8;rom(253)<=8;rom(254)<=9;rom( 255)<=9;

rom(256)<=12;rom(257)<=12;rom(258)<=12;r om(259)<=8;

rom(260)<=8;rom(261)<=9;rom(262)<=9;rom( 263)<=8;

rom(264)<=12;rom(265)<=12;rom(266)<=12;r om(267)<=12;

rom(268)<=0;rom(269)<=10;rom(270)<=10;ro m(271)<=12;

rom(272)<=13;rom(273)<=13;rom(274)<=15;r om(275)<=14;

rom(276)<=14;rom(277)<=13;rom(278)<=13;r om(279)<=12;

rom(280)<=12;rom(281)<=12;rom(282)<=12;r om(283)<=12;

rom(284)<=0;rom(285)<=10;rom(286)<=10;ro m(287)<=12;

rom(288)<=13;rom(289)<=13;rom(290)<=15;r om(291)<=14;

rom(292)<=14;rom(293)<=13;rom(294)<=13;r om(295)<=12;

rom(296)<=12;rom(297)<=10;rom(298)<=14;r om(299)<=15;

rom(300)<=15;rom(301)<=15;rom(302)<=10;r om(303)<=10; om(307)<=9;

rom(308)<=9;rom(309)<=8;rom(310)<=8;rom( 311)<=8;

rom(312)<=8;rom(313)<=8;rom(314)<=8;rom( 315)<=8;

rom(316)<=8;rom(317)<=8;rom(318)<=8;rom( 319)<=8;

rom(320)<=0;rom(321)<=0;rom(322)<=0;rom( 323)<=0;

rom(324)<=0;rom(325)<=0;rom(326)<=0;rom( 327)<=0;

rom(328)<=0;rom(329)<=0;rom(330)<=0;rom( 331)<=0;

rom(332)<=0;rom(333)<=0;rom(334)<=0;rom( 335)<=0;

rom(336)<=0;rom(337)<=0;rom(338)<=0;rom( 339)<=0;

rom(340)<=0;rom(341)<=0;rom(342)<=0;rom( 343)<=0;

rom(344)<=0;rom(345)<=0;rom(346)<=0;rom( 347)<=0;

rom(348)<=0;rom(349)<=0;rom(350)<=0;rom( 351)<=0;

rom(352)<=0;rom(353)<=0;rom(354)<=0;rom( 355)<=0;

rom(356)<=0;rom(357)<=0;rom(358)<=0;rom( 359)<=0;

rom(360)<=0;rom(361)<=0;rom(362)<=0;rom( 363)<=0;

rom(364)<=0;rom(365)<=0;rom(366)<=0;rom( 367)<=0;

rom(368)<=0;rom(369)<=0;rom(370)<=0;rom( 371)<=0;

rom(372)<=0;rom(373)<=0;rom(374)<=0;rom( 375)<=0;

rom(376)<=0;rom(377)<=0;rom(378)<=0;rom( 379)<=0;

rom(380)<=0;rom(381)<=0;rom(382)<=0;rom( 383)<=0;

rom(384)<=0;rom(385)<=0;rom(386)<=0;rom( 387)<=0;

rom(388)<=0;rom(389)<=0;rom(390)<=0;rom( 391)<=0;

rom(392)<=0;rom(393)<=0;rom(394)<=0;rom( 395)<=0;

rom(396)<=0;rom(397)<=0;rom(398)<=0;rom( 399)<=0;

rom(400)<=0;rom(401)<=0;rom(402)<=0;rom( 403)<=0;

rom(404)<=0;rom(405)<=0;rom(406)<=0;rom( 407)<=0;

rom(408)<=0;rom(409)<=0;rom(410)<=0;rom( 411)<=0;

rom(412)<=0;rom(413)<=0;rom(414)<=0;rom( 415)<=0;

rom(416)<=0;rom(417)<=0;rom(418)<=0;rom( 419)<=0;

rom(420)<=0;rom(421)<=0;rom(422)<=0;rom( 423)<=0;

rom(424)<=0;rom(425)<=0;rom(426)<=0;rom( 427)<=0;

rom(428)<=0;rom(429)<=0;rom(430)<=0;rom( 431)<=0;

rom(432)<=0;rom(433)<=0;rom(434)<=0;rom( 435)<=0;

rom(436)<=0;rom(437)<=0;rom(438)<=0;rom( 439)<=0;

rom(440)<=0;rom(441)<=0;rom(442)<=0;rom( 443)<=0;

rom(444)<=0;rom(445)<=0;rom(446)<=0;rom( 447)<=0;

rom(448)<=0;rom(449)<=0;rom(450)<=0;rom( 451)<=0;

rom(452)<=0;rom(453)<=0;rom(454)<=0;rom( 455)<=0;

rom(456)<=0;rom(457)<=0;rom(458)<=0;rom( 459)<=0;

rom(460)<=0;rom(461)<=0;rom(462)<=0;rom( 463)<=0;

rom(464)<=0;rom(465)<=0;rom(466)<=0;rom( 467)<=0;

rom(468)<=0;rom(469)<=0;rom(470)<=0;rom( 471)<=0;

elsif set1="0001" then

index<=conv_std_logic_vector(rom(adr),4); rom(0)<=8;rom(1)<=8;rom(2)<=7;rom(3)<=8; rom(4)<=12;rom(5)<=12;rom(6)<=12;rom(7)< =12;

rom(8)<=8;rom(9)<=8;rom(10)<=7;rom(11)<= 8;

rom(12)<=10;rom(13)<=10;rom(14)<=10;rom( 15)<=10;

rom(16)<=8;rom(17)<=8;rom(18)<=7;rom(19) <=8;

rom(20)<=5;rom(21)<=5;rom(22)<=10;rom(23 )<=10;

rom(24)<=9;rom(25)<=6;rom(26)<=7;rom(27) <=8;

rom(28)<=9;rom(29)<=9;rom(30)<=9;rom(31) <=9;

rom(32)<=8;rom(33)<=8;rom(34)<=7;rom(35) <=8;

rom(36)<=12;rom(37)<=12;rom(38)<=12;rom( 39)<=12;

rom(40)<=13;rom(41)<=13;rom(42)<=14;rom( 43)<=13;

rom(44)<=10;rom(45)<=10;rom(46)<=10;rom( 47)<=10;

rom(48)<=13;rom(49)<=13;rom(50)<=14;rom( 51)<=15;

rom(52)<=12;rom(53)<=12;rom(54)<=10;rom( 55)<=10;

rom(56)<=11;rom(57)<=10;rom(58)<=6;rom(5 9)<=9;

rom(60)<=8;rom(61)<=8;rom(62)<=8;rom(63) <=8;

rom(64)<=8;rom(65)<=8;rom(66)<=7;rom(67) <=8;

rom(68)<=12;rom(69)<=12;rom(70)<=12;rom( 71)<=12;

rom(72)<=8;rom(73)<=8;rom(74)<=7;rom(75) <=8;

rom(76)<=10;rom(77)<=10;rom(78)<=10;rom( 79)<=10;

rom(80)<=8;rom(81)<=8;rom(82)<=7;rom(83) <=8;

rom(84)<=5;rom(85)<=5;rom(86)<=10;rom(87 )<=10;

rom(88)<=9;rom(89)<=6;rom(90)<=7;rom(91) <=8;

rom(92)<=9;rom(93)<=9;rom(94)<=9;rom(95) <=9;

rom(96)<=8;rom(97)<=8;rom(98)<=7;rom(99) <=8;

rom(100)<=12;rom(101)<=12;rom(102)<=12;r om(103)<=12;

rom(104)<=13;rom(105)<=13;rom(106)<=14;r om(107)<=15;

rom(108)<=12;rom(109)<=12;rom(110)<=12;r om(111)<=12;

rom(112)<=13;rom(113)<=13;rom(114)<=14;r om(115)<=15;

rom(116)<=12;rom(117)<=12;rom(118)<=10;r om(119)<=10;

rom(120)<=11;rom(121)<=10;rom(122)<=5;ro m(123)<=9;

rom(124)<=8;rom(125)<=5;rom(126)<=15;ro m(127)<=14;

rom(128)<=13;rom(129)<=13;rom(130)<=11;r om(131)<=9;

rom(132)<=9;rom(133)<=5;rom(134)<=14;ro m(135)<=13;

rom(136)<=12;rom(137)<=12;rom(138)<=9;ro m(139)<=8;

rom(140)<=8;rom(141)<=8;rom(142)<=9;rom( 143)<=10;

rom(144)<=11;rom(145)<=11;rom(146)<=11;r om(147)<=13;

rom(148)<=12;rom(149)<=12;rom(150)<=10;r om(151)<=9;

rom(152)<=10;rom(153)<=10;rom(154)<=11;r om(155)<=11;

rom(156)<=12;rom(157)<=8;rom(158)<=15;ro m(159)<=14;

rom(160)<=13;rom(161)<=13;rom(162)<=11;r om(163)<=11;

rom(164)<=14;rom(165)<=15;rom(166)<=15;r om(167)<=15;

rom(168)<=12;rom(169)<=12;rom(170)<=15;r om(171)<=14;

rom(172)<=15;rom(173)<=15;rom(174)<=15;r om(175)<=13;

rom(176)<=14;rom(177)<=15;rom(178)<=15;r om(179)<=15; rom(180)<=13;rom(181)<=14;rom(182)<=15;r om(183)<=15;

rom(184)<=15;rom(185)<=15;rom(186)<=12;r om(187)<=12;

rom(188)<=12;rom(189)<=12;rom(190)<=0;ro m(191)<=8;

rom(192)<=15;rom(193)<=14;rom(194)<=13;r om(195)<=13;

rom(196)<=11;rom(197)<=9;rom(198)<=9;ro m(199)<=7;

rom(200)<=14;rom(201)<=13;rom(202)<=12;r om(203)<=12;

rom(204)<=9;rom(205)<=8;rom(206)<=8;rom( 207)<=8;

rom(208)<=9;rom(209)<=10;rom(210)<=11;ro m(211)<=11;

rom(212)<=11;rom(213)<=13;rom(214)<=12;r om(215)<=12;

rom(216)<=10;rom(217)<=9;rom(218)<=10;ro m(219)<=10;

rom(220)<=10;rom(221)<=11;rom(222)<=12;r om(223)<=8;

rom(224)<=15;rom(225)<=14;rom(226)<=13;r om(227)<=13;

rom(228)<=11;rom(229)<=11;rom(230)<=14;r om(231)<=15;

rom(232)<=15;rom(233)<=15;rom(234)<=12;r om(235)<=12;

rom(236)<=9;rom(237)<=14;rom(238)<=15;ro m(239)<=15;

rom(240)<=15;rom(241)<=13;rom(242)<=14;r om(243)<=15;

rom(244)<=15;rom(245)<=15;rom(246)<=13;r om(247)<=14;

rom(248)<=15;rom(249)<=15;rom(250)<=15;r om(251)<=9;

rom(252)<=9;rom(253)<=9;rom(254)<=15;ro m(255)<=15;

rom(256)<=14;rom(257)<=14;rom(258)<=12;r om(259)<=12;

rom(260)<=8;rom(261)<=8;rom(262)<=7;rom( 263)<=8;

rom(264)<=12;rom(265)<=12;rom(266)<=12;r om(267)<=12;

rom(268)<=8;rom(269)<=8;rom(270)<=7;rom( 271)<=8;

rom(272)<=10;rom(273)<=10;rom(274)<=10;r om(275)<=10;

rom(276)<=8;rom(277)<=8;rom(278)<=7;rom( 279)<=8;

rom(280)<=5;rom(281)<=5;rom(282)<=10;ro m(283)<=10;

rom(284)<=9;rom(285)<=6;rom(286)<=7;rom( 287)<=8;

rom(288)<=9;rom(289)<=9;rom(290)<=9;rom( 291)<=9;

rom(292)<=8;rom(293)<=8;rom(294)<=7;rom( 295)<=8;

rom(296)<=12;rom(297)<=12;rom(298)<=12;r om(299)<=12;

rom(300)<=13;rom(301)<=13;rom(302)<=14;r om(303)<=15;

rom(304)<=12;rom(305)<=12;rom(306)<=12;r om(307)<=12;

rom(308)<=13;rom(309)<=13;rom(310)<=14;r om(311)<=15;

rom(312)<=12;rom(313)<=12;rom(314)<=10;r om(315)<=10;

rom(316)<=11;rom(317)<=10;rom(318)<=6;ro m(319)<=9;

rom(320)<=8;rom(321)<=8;rom(322)<=8;rom( 323)<=8;

rom(324)<=13;rom(325)<=13;rom(326)<=14;r om(327)<=15;

rom(328)<=12;rom(329)<=12;rom(330)<=10;r om(331)<=10;

rom(332)<=11;rom(333)<=10;rom(334)<=6;ro m(335)<=9;

rom(336)<=8;rom(337)<=8;rom(338)<=8;rom( 339)<=8;

rom(340)<=13;rom(341)<=13;rom(342)<=14;r om(343)<=15;

rom(344)<=15;rom(345)<=15;rom(346)<=15;r om(347)<=10;

rom(348)<=11;rom(349)<=10;rom(350)<=6;ro m(351)<=9;

rom(352)<=9;rom(353)<=9;rom(354)<=8;rom( 355)<=8; rom(356)<=0;rom(357)<=0;rom(358)<=0;rom( 359)<=0;

rom(360)<=0;rom(361)<=0;rom(362)<=0;rom( 363)<=0;

rom(364)<=0;rom(365)<=0;rom(366)<=0;rom( 367)<=0;

rom(368)<=0;rom(369)<=0;rom(370)<=0;rom( 371)<=0;

rom(372)<=0;rom(373)<=0;rom(374)<=0;rom( 375)<=0;

rom(376)<=0;rom(377)<=0;rom(378)<=0;rom( 379)<=0;

rom(380)<=0;rom(381)<=0;rom(382)<=0;rom( 383)<=0;

rom(384)<=0;rom(385)<=0;rom(386)<=0;rom( 387)<=0;

rom(388)<=0;rom(389)<=0;rom(390)<=0;rom( 391)<=0;

rom(392)<=0;rom(393)<=0;rom(394)<=0;rom( 395)<=0;

rom(396)<=0;rom(397)<=0;rom(398)<=0;rom( 399)<=0;

rom(400)<=0;rom(401)<=0;rom(402)<=0;rom( 403)<=0;

rom(404)<=0;rom(405)<=0;rom(406)<=0;rom( 407)<=0;

rom(408)<=0;rom(409)<=0;rom(410)<=0;rom( 411)<=0;

rom(412)<=0;rom(413)<=0;rom(414)<=0;rom( 415)<=0;

rom(416)<=0;rom(417)<=0;rom(418)<=0;rom( 419)<=0;

rom(420)<=0;rom(421)<=0;rom(422)<=0;rom( 423)<=0;

rom(424)<=0;rom(425)<=0;rom(426)<=0;rom( 427)<=0;

rom(428)<=0;rom(429)<=0;rom(430)<=0;rom( 431)<=0;

rom(432)<=0;rom(433)<=0;rom(434)<=0;rom( 435)<=0;

rom(436)<=0;rom(437)<=0;rom(438)<=0;rom( 439)<=0;

rom(440)<=0;rom(441)<=0;rom(442)<=0;rom( 443)<=0;

rom(444)<=0;rom(445)<=0;rom(446)<=0;rom( 447)<=0;

rom(448)<=0;rom(449)<=0;rom(450)<=0;rom( 451)<=0;

rom(452)<=0;rom(453)<=0;rom(454)<=0;rom( 455)<=0;

rom(456)<=0;rom(457)<=0;rom(458)<=0;rom( 459)<=0;

rom(460)<=0;rom(461)<=0;rom(462)<=0;rom( 463)<=0;

rom(464)<=0;rom(465)<=0;rom(466)<=0;rom( 467)<=0;

rom(468)<=0;rom(469)<=0;rom(470)<=0;rom( 471)<=0;

elsif set1="0010"then

index<=conv_std_logic_vector(rom(adr),4); rom(0)<=5;rom(1)<=11;rom(2)<=10;rom(3)<= 10;

rom(4)<=0;rom(5)<=10;rom(6)<=11;rom(7)<= 10;

rom(8)<=9;rom(9)<=8;rom(10)<=9;rom(11)<= 10;

rom(12)<=11;rom(13)<=10;rom(14)<=10;rom( 15)<=10;

rom(16)<=0;rom(17)<=6;rom(18)<=11;rom(19 )<=11;

rom(20)<=0;rom(21)<=11;rom(22)<=12;rom(2 3)<=11;

rom(24)<=9;rom(25)<=10;rom(26)<=11;rom(2 7)<=11;

rom(28)<=11;rom(29)<=10;rom(30)<=10;rom( 31)<=10;

rom(32)<=0;rom(33)<=8;rom(34)<=12;rom(35 )<=12;

rom(36)<=0;rom(37)<=12;rom(38)<=13;rom(3 9)<=12;

rom(40)<=11;rom(41)<=10;rom(42)<=10;rom( 43)<=11;

rom(44)<=9;rom(45)<=8;rom(46)<=14;rom(47 )<=14;

rom(48)<=0;rom(49)<=13;rom(50)<=12;rom(51)<=11;

rom(52)<=6;rom(53)<=7;rom(54)<=10;rom(55 )<=10;

rom(56)<=9;rom(57)<=8;rom(58)<=8;rom(59) <=8;

rom(60)<=8;rom(61)<=8;rom(62)<=8;rom(63) <=8;

rom(64)<=5;rom(65)<=11;rom(66)<=10;rom(6 7)<=10;

rom(68)<=0;rom(69)<=10;rom(70)<=11;rom(7 1)<=10;

rom(72)<=9;rom(73)<=8;rom(74)<=9;rom(75) <=10;

rom(76)<=11;rom(77)<=10;rom(78)<=10;rom( 79)<=10;

rom(80)<=0;rom(81)<=6;rom(82)<=11;rom(83 )<=11;

rom(84)<=0;rom(85)<=11;rom(86)<=12;rom(8 7)<=11;

rom(88)<=9;rom(89)<=10;rom(90)<=11;rom(9 1)<=11;

rom(92)<=11;rom(93)<=10;rom(94)<=10;rom( 95)<=10;

rom(96)<=0;rom(97)<=8;rom(98)<=12;rom(99 )<=12;

rom(100)<=0;rom(101)<=12;rom(102)<=13;ro m(103)<=12;

rom(104)<=11;rom(105)<=10;rom(106)<=10;r om(107)<=11;

rom(108)<=9;rom(109)<=7;rom(110)<=14;ro m(111)<=14;

rom(112)<=0;rom(113)<=13;rom(114)<=12;ro m(115)<=11;

rom(116)<=6;rom(117)<=8;rom(118)<=10;ro m(119)<=10;

rom(120)<=9;rom(121)<=8;rom(122)<=8;rom( 123)<=8;

rom(124)<=8;rom(125)<=8;rom(126)<=0;rom( 127)<=8;

rom(128)<=11;rom(129)<=12;rom(130)<=12;r om(131)<=13;

rom(132)<=11;rom(133)<=10;rom(134)<=9;ro m(135)<=0;

rom(136)<=6;rom(137)<=10;rom(138)<=11;ro

m(139)<=11;

rom(140)<=11;rom(141)<=12;rom(142)<=10;r om(143)<=9;

rom(144)<=8;rom(145)<=0;rom(146)<=4;rom( 147)<=9;

rom(148)<=10;rom(149)<=10;rom(150)<=10;r om(151)<=11;

rom(152)<=11;rom(153)<=6;rom(154)<=7;ro m(155)<=7;

rom(156)<=8;rom(157)<=9;rom(158)<=8;rom( 159)<=8;

rom(160)<=8;rom(161)<=8;rom(162)<=9;rom( 163)<=10;

rom(164)<=0;rom(165)<=8;rom(166)<=10;ro m(167)<=12;

rom(168)<=12;rom(169)<=13;rom(170)<=11;r om(171)<=10;

rom(172)<=9;rom(173)<=0;rom(174)<=15;ro m(175)<=14;

rom(176)<=15;rom(177)<=15;rom(178)<=12;r om(179)<=13;

rom(180)<=12;rom(181)<=11;rom(182)<=10;r om(183)<=0;

rom(184)<=8;rom(185)<=11;rom(186)<=12;ro m(187)<=12;

rom(188)<=12;rom(189)<=13;rom(190)<=13;r om(191)<=8;

rom(192)<=8;rom(193)<=8;rom(194)<=7;rom( 195)<=7;

rom(196)<=8;rom(197)<=8;rom(198)<=8;rom( 199)<=8;

rom(200)<=8;rom(201)<=8;rom(202)<=5;rom( 203)<=11;

rom(204)<=10;rom(205)<=10;rom(206)<=0;ro m(207)<=10;

rom(208)<=11;rom(209)<=10;rom(210)<=9;ro m(211)<=8;

rom(212)<=9;rom(213)<=10;rom(214)<=11;ro m(215)<=10;

rom(216)<=10;rom(217)<=10;rom(218)<=0;ro m(219)<=6;

rom(220)<=11;rom(221)<=11;rom(222)<=0;ro m(223)<=11;

rom(224)<=12;rom(225)<=11;rom(226)<=9;ro m(227)<=10;

rom(228)<=11;rom(229)<=11;rom(230)<=11;r om(231)<=10;

rom(232)<=10;rom(233)<=10;rom(234)<=0;ro m(235)<=8;

rom(236)<=12;rom(237)<=12;rom(238)<=0;ro m(239)<=12;

rom(240)<=13;rom(241)<=12;rom(242)<=11;r om(243)<=10;

rom(244)<=10;rom(245)<=11;rom(246)<=9;ro m(247)<=8;

rom(248)<=14;rom(249)<=14;rom(250)<=0;ro m(251)<=13;

rom(252)<=12;rom(253)<=11;rom(254)<=6;ro m(255)<=7;

rom(256)<=10;rom(257)<=10;rom(258)<=9;ro m(259)<=8;

rom(260)<=8;rom(261)<=8;rom(262)<=8;rom( 263)<=8;

rom(264)<=8;rom(265)<=8;rom(266)<=8;rom( 267)<=8;

rom(268)<=0;rom(269)<=0;rom(270)<=0;rom( 271)<=0;

rom(272)<=0;rom(273)<=0;rom(274)<=0;rom( 275)<=0;

rom(276)<=0;rom(277)<=0;rom(278)<=0;rom( 279)<=0;

rom(280)<=0;rom(281)<=0;rom(282)<=0;rom( 283)<=0;

rom(284)<=0;rom(285)<=0;rom(286)<=0;rom( 287)<=0;

rom(288)<=0;rom(289)<=0;rom(290)<=0;rom( 291)<=0;

rom(292)<=0;rom(293)<=0;rom(294)<=0;rom( 295)<=0;

rom(296)<=0;rom(297)<=0;rom(298)<=0;rom( 299)<=0;

rom(300)<=0;rom(301)<=0;rom(302)<=0;rom( 303)<=0;

rom(304)<=0;rom(305)<=0;rom(306)<=0;rom( 307)<=0;

rom(308)<=0;rom(309)<=0;rom(310)<=0;rom( 311)<=0;

rom(312)<=0;rom(313)<=0;rom(314)<=0;rom(

315)<=0;

rom(316)<=0;rom(317)<=0;rom(318)<=0;rom( 319)<=0;

rom(320)<=0;rom(321)<=0;rom(322)<=0;rom( 323)<=0;

rom(324)<=0;rom(325)<=0;rom(326)<=0;rom( 327)<=0;

rom(328)<=0;rom(329)<=0;rom(330)<=0;rom( 331)<=0;

rom(332)<=0;rom(333)<=0;rom(334)<=0;rom( 335)<=0;

rom(336)<=0;rom(337)<=0;rom(338)<=0;rom( 339)<=0;

rom(340)<=0;rom(341)<=0;rom(342)<=0;rom( 343)<=0;

rom(344)<=0;rom(345)<=0;rom(346)<=0;rom( 347)<=0;

rom(348)<=0;rom(349)<=0;rom(350)<=0;rom( 351)<=0;

rom(352)<=0;rom(353)<=0;rom(354)<=0;rom( 355)<=0;

rom(356)<=0;rom(357)<=0;rom(358)<=0;rom( 359)<=0;

rom(360)<=0;rom(361)<=0;rom(362)<=0;rom( 363)<=0;

rom(364)<=0;rom(365)<=0;rom(366)<=0;rom( 367)<=0;

rom(368)<=0;rom(369)<=0;rom(370)<=0;rom( 371)<=0;

rom(372)<=0;rom(373)<=0;rom(374)<=0;rom( 375)<=0;

rom(376)<=0;rom(377)<=0;rom(378)<=0;rom( 379)<=0;

rom(380)<=0;rom(381)<=0;rom(382)<=0;rom( 383)<=0;

rom(384)<=0;rom(385)<=0;rom(386)<=0;rom( 387)<=0;

rom(388)<=0;rom(389)<=0;rom(390)<=0;rom( 391)<=0;

rom(392)<=0;rom(393)<=0;rom(394)<=0;rom( 395)<=0;

rom(396)<=0;rom(397)<=0;rom(398)<=0;rom(399)<=0;

rom(400)<=0;rom(401)<=0;rom(402)<=0;rom( 403)<=0;

rom(404)<=0;rom(405)<=0;rom(406)<=0;rom( 407)<=0;

rom(408)<=0;rom(409)<=0;rom(410)<=0;rom( 411)<=0;

rom(412)<=0;rom(413)<=0;rom(414)<=0;rom( 415)<=0;

rom(416)<=0;rom(417)<=0;rom(418)<=0;rom( 419)<=0;

rom(420)<=0;rom(421)<=0;rom(422)<=0;rom( 423)<=0;

rom(424)<=0;rom(425)<=0;rom(426)<=0;rom( 427)<=0;

rom(428)<=0;rom(429)<=0;rom(430)<=0;rom( 431)<=0;

rom(432)<=0;rom(433)<=0;rom(434)<=0;rom( 435)<=0;

rom(436)<=0;rom(437)<=0;rom(438)<=0;rom( 439)<=0;

rom(440)<=0;rom(441)<=0;rom(442)<=0;rom( 443)<=0;

rom(444)<=0;rom(445)<=0;rom(446)<=0;rom( 447)<=0;

rom(448)<=0;rom(449)<=0;rom(450)<=0;rom( 451)<=0;

rom(452)<=0;rom(453)<=0;rom(454)<=0;rom( 455)<=0;

rom(456)<=0;rom(457)<=0;rom(458)<=0;rom( 459)<=0;

rom(460)<=0;rom(461)<=0;rom(462)<=0;rom( 463)<=0;

rom(464)<=0;rom(465)<=0;rom(466)<=0;rom( 467)<=0;

rom(468)<=0;rom(469)<=0;rom(470)<=0;rom( 471)<=0;

else

index<="0000";

end if;

end process;

end behav;

EDA技术与VHDL程序设计基础教程习题答案

EDA技术与VHDL程序设计基础教程习题答案 第1章EDA习题答案 1.8.1填空 1.EDA的英文全称是Electronic Design Automation 2.EDA技术经历了计算机辅助设计CAD阶段、计算机辅助工程设计CAE阶段、现代电子系统设计自动化EDA阶段三个发展阶段 3. EDA技术的应用可概括为PCB设计、ASIC设计、CPLD/FPGA设计三个方向 4.目前比较流行的主流厂家的EDA软件有Quartus II、ISE、ModelSim、ispLEVER 5.常用的设计输入方式有原理图输入、文本输入、状态机输入 6.常用的硬件描述语言有VHDL、V erilog 7.逻辑综合后生成的网表文件为EDIF 8.布局布线主要完成将综合器生成的网表文件转换成所需的下载文件 9.时序仿真较功能仿真多考虑了器件的物理模型参数 10.常用的第三方EDA工具软件有Synplify/Synplify Pro、Leonardo Spectrum 1.8.2选择 1.EDA技术发展历程的正确描述为(A) A CAD->CAE->EDA B EDA->CAD->CAE C EDA->CAE->CAD D CAE->CAD->EDA 2.Altera的第四代EDA集成开发环境为(C) A Modelsim B MUX+Plus II C Quartus II D ISE 3.下列EDA工具中,支持状态图输入方式的是(B) A Quartus II B ISE C ispDesignEXPERT

D Syplify Pro 4.下列几种仿真中考虑了物理模型参数的仿真是(A) A时序仿真 B 功能仿真 C 行为仿真 D 逻辑仿真 5.下列描述EDA工程设计流程正确的是(C) A输入->综合->布线->下载->仿真 B布线->仿真->下载->输入->综合 C输入->综合->布线->仿真->下载 D输入->仿真->综合->布线->下载 6.下列编程语言中不属于硬件描述语言的是(D) A VHDL B V erilog C ABEL D PHP 1.8.3问答 1.结合本章学习的知识,简述什么是EDA技术?谈谈自己对EDA技术的认识? 答:EDA(Electronic Design Automation)工程是现代电子信息工程领域中一门发展迅速的新技术。 2.简要介绍EDA技术的发展历程? 答:现代EDA技术是20世纪90年代初从计算机辅助设计、辅助制造和辅助测试等工程概念发展而来的。它的成熟主要经历了计算机辅助设计(CAD,Computer Aided Design)、计算机辅助工程设计(CAED,Computer Aided Engineering Design)和电子设计自动化(EDA,Electronic System Design Automation)三个阶段。 3.什么是SOC?什么是SOPC? 答:SOC (System on Chip,片上系统) SOPC(System on a Programmable Chip,片上可编程系统) 4.对目标器件为CPLD/FPGA的VHDL设计,主要有几个步骤?每步的作用和结果分别是什

VHDL与数字系统课程设计

课程设计报告 实践课题:VHDL与数字系统课程设计 学生:XXX 指导老师:XXX、XXX 系别:电子信息与电气工程系 专业:电子科学与技术 班级:XXX 学号:XXX

一、设计任务 用VHDL设计一个简单的处理器,并完成相关的仿真测试。 .设计要求: 图1是一个处理器的原理图,它包含了一定数量的寄存器、一个复用器、一个加法/减法器(Addsub),一个计数器和一个控制单元。 图1 简单处理器的电路图 数据传输实现过程:16位数据从DIN输入到系统中,可以通过复用器分配给R0~R7和A,复用器也允许数据从一个寄存器传通过Bus送到另外一个寄存器。 加法和减法的实现过程:复用器先将一个数据通过总线放到寄存器A中,然后将另一个数据放到总线上,加法/减法器对这两个数据进行运算,运算结果存入寄存器G中,G中的数据又可根据要求通过复用器转存到其他寄存器中。 1)Rx ←[Ry] :将寄存器Ry中的内容复制到Rx; 2)Mvi Rx,#D :将立即数存入寄存器Rx中去。 所有指令都按9位编码(取自DIN的高9位)存储在指令存储器IR中,编编码规则为IIIXXXYYY,III表示指令,XXX表示Rx寄存器,YYY表示Ry寄存器。立即数#D是在mvi指令存储到IR中之后,通过16位DIN输入

的。 有一些指令,如加法指令和减法指令,需要在总线上多次传输数据,因此需要多个时钟周期才能完成。控制单元使用了一个两位计数器来区分这些指令执行的每一个阶段。当Run信号置位时,处理器开始执行DIN输 时间 指令 T0T1T2T3 (mv):I0 (mvi):I1 (add):I2 (sub):I3 IR in IR in IR in IR in RY out,RX in,Done DIN out,RX in,Done RX out,A in RX out,A in ---- ---- RY out,G in,Addsub RY out,G in,Addsub ---- ---- G out,RX in,Done G out,RX in,Done 二、实现功能说明 2.1 mv Rx,Ry 实现的功能:将寄存器Rx的值赋给寄存器Ry(以mv R0, R5为例) (1 )计数器为“00”时,指令寄存器的置位控制信号输入端IRin=1有效,将DIN输入的数据的高9位锁存。 置位的控制信号如图3加粗黑线所示。 图3 (2)计数器为“01”时,首先控制单元根据设计器为“00”时输入的指令,向复用器发出选通控制信号,复用器根据该控制信号让R5的值输出到总线上,然后控制单元控制寄存器R0将总线上的值锁存,完成整个寄存器对寄存器的赋值过程。置位的控制信号和数据流如图4加粗黑线所示。 图4

EDA技术实用教程-VHDL版课后答案

第一章 1-1 EDA技术与ASIC设计和FPGA开发有什么关系? P3~4 答:利用EDA技术进行电子系统设计的最后目标是完成专用集成电路ASIC的设计和实现;FPGA和CPLD是实现这一途径的主流器件。FPGA和CPLD通常也被称为可编程专用IC,或可编程ASIC。FPGA和CPLD的应用是EDA技术有机融合软硬件电子设计技术、SoC(片上系统)和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核具有规范的接口协议,良好的可移植与可测试性,为系统开发提供了可靠的保证。 第二章 2-1 叙述EDA的FPGA/CPLD设计流程。P13~16 答:1.设计输入(原理图/HDL文本编辑);2.综合;3.适配;4.时序仿真与功能仿真;5.编程下载;6.硬件测试。 2-2 IP是什么?IP与EDA技术的关系是什么? P24~26 IP是什么? 答:IP是知识产权核或知识产权模块,用于ASIC或FPGA/CPLD中的预先设计好的电路功能模块。 IP与EDA技术的关系是什么?答:IP在EDA技术开发中具有十分重要的地位;与EDA技术的关系分有软IP、固IP、硬IP:软IP是用VHDL等硬件描述语言描述的功能块,并不涉及用什么具体电路元件实现这些功能;软IP 通常是以硬件描述语言HDL源文件的形式出现。固IP是完成了综合的功能块,具有较大的设计深度,以网表文件的形式提交客户使用。硬IP提供设计的最终阶段产品:掩模。 2-3 叙述ASIC的设计方法。P18~19 答:ASIC设计方法,按版图结构及制造方法分有半定制(Semi-custom)和全定制(Full-custom)两种实现方法。 全定制方法是一种基于晶体管级的,手工设计版图的制造方法。 半定制法是一种约束性设计方式,约束的目的是简化设计,缩短设计周期,降低设计成本,提高设计正确率。半定制法按逻辑实现的方式不同,可再分为门阵列法、标准单元法和可编程逻辑器件法。 2-4 FPGA/CPLD在ASIC设计中有什么用途? P16,18 答:FPGA/CPLD在ASIC设计中,属于可编程ASIC的逻辑器件;使设计效率大为提高,上市的时间大为缩短。 2-5 简述在基于FPGA/CPLD的EDA设计流程中所涉及的EDA工具,及其在整个流程中的作用。 P19~23答:基于FPGA/CPLD的EDA设计流程中所涉及的EDA工具有:设计输入编辑器(作用:接受不同的设计输

VHDL语言与EDA课程设计

湖南人文科技学院 课程设计报告课程名称: VHDL语言与EDA课程设计 ~ 设计题目:出租车自动计价器设计 系别: 专业: 班级: 学生姓名: 学号: 起止日期: 2011年6月13日~2011年6月26日 $ 指导教师: 教研室主任:

摘要 随着我国社会经济的全面发展,各大中小城市的出租车营运事业发展迅速,出租车已经成为人们日常出行选择较为普遍的交通工具。出租车计价器是出租车营运收费的专用智能化仪表,是出租车市场规范化、标准化以及减少司机与乘客之间发生纠纷的重要设备。一种功能完备、简单易用、计量准确的出租车计价器是加强出租车行业管理、提高服务质量的必备品。根据预定的设计要求和设计思路,我们使用VHDL硬件描述语言设计了一个实际的基于Altera FPGA芯片的出租车自动计价器系统,介绍了该系统的电路结构和程序设计。通过在软件中编译和下载测试,得到了仿真波形和关键的设计结果。经过在实验箱上进行硬件测试,证明该出租车计价系统具有实用出租车计价器的基本功能,如能进一步完善,将可以实用化和市场化。 关键词:出租车自动计价器;VHDL; FPGA ;

目录 设计要求 (1) 1、方案论证与对比 (1) 方案一 (1) 方案二 (2) 两种方案的对比 (2) 2、实验步骤和设计过程 (2) 计程模块 (2) 等待计时模块 (2) 计费模块 (3) 3、调试与操作说明 (3) 中的VHDL程序 (3) 程序的编译与及仿真波形 (6) 程序的下载与功能的测试 (7) 4、课程设计心得体会 (9) 5、元器件及仪器设备明细 (10) 6、参考文献 (11) 7、致谢 (12)

跑马灯VHDL课程设计报告

跑马灯VHDL课程设计 一、设计任务 控制8个led进行花式显示,设计四种显示模式: 1.从左到右逐个点亮led; 2.从右到左逐个点亮led; 3.从两边到中间逐个点亮led; 4.从中间到两边逐个点亮led; 四种模式循环切换,由复位键rst控制系统的运行与停止. 二、设计过程 根据系统设计要求,采用状态机进行设计,状态机具有四种状态,每种状态完成一种显示模式四种状态间使用case语句进行切换. 程序如下: library ieee; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_1164.all; entity pmd is port( clk, rst: in std_logic; y: buffer std_logic_vector(7 downto 0)); end pmd; architecture behave of pmd is type states is (state0, state1, state2, state3); signal state: states;

begin process (clk, rst) begin if rst='1' then y<="00000000" ; state <= state0; elsif (clk'event and clk='1') then case state is when state0 => if y="00000000" then y<="10000000";state <= state0; elsif y="10000000" then y<="01000000";state <= state0; elsif y="01000000" then y<="00100000";state <= state0; elsif y="00100000" then y<="00010000";state <= state0; elsif y="00010000" then y<="00001000";state <= state0; elsif y="00001000" then y<="00000100";state <= state0; elsif y="00000100" then y<="00000010";state <= state0; elsif y="00000010" then y<="00000001";state <= state1; end if; when state1 => if y="00000001" then y<="00000010";state <= state1; elsif y="00000010" then y<="00000100";state <= state1; elsif y="00000100" then y<="00001000";state <= state1; elsif y="00001000" then y<="00010000";state <= state1; elsif y="00010000" then y<="00100000";state <= state1; elsif y="00100000" then y<="01000000";state <= state1;

EDA技术与VHDL语言课程设计

EDA技术与VHDL语言课程设计 课程设计 EDA技术与VHDL语言 课程设计报告 班级: 电信11-2班 姓名: 董元伟 学号: 1106110205 指导教师: 李铁 成绩: 电子与信息工程学院 信息与通信工程系 - 2 - 课程设计;数字密码锁 目录 摘 要 ..................................................................... .......................................... - 3 - 一、设计目 的 ..................................................................... ............................ - 4 - 二、设计内容和要 求 ..................................................................... .................. - 4 - 1、用户开 锁 ..................................................................... ......................... - 5 -

2、管理员解除警 报 ..................................................................... .............. - 5 - 3、管理员修改密 码 ..................................................................... .............. - 5 - 4、定时返 回 ..................................................................... ......................... - 6 - 三、设计思路和系统结构...................................................................... ............ - 6 - 1、设计模 块 ..................................................................... ......................... - 6 - 2、系统结构和数字密码锁原理 图 .............................................................. - 7 - 3、设计思 路 ..................................................................... ......................... - 8 - 四、实验设计程序 如 ..................................................................... ................... - 9 - 五、创建测试平台仿真结 果 ..................................................................... ....... - 21 - 参考文

VHDL课程设计-PS2键盘

VHDL课程设计-PS2键盘

目录 一、课程设计的目的与任务 (3) 二、课程设计题目 (3) 1、指定题目: (3) 2、自选题目: (3) 三、课程设计的内容与要求 (3) 1、设计内容 (4) 2、设计要求 (4) 四、实验仪器设备 (4) 五、设计方案 (4) 1、PS2解码 (4) 2、设计思路 (6) 3、模块设计 (7) 4、各模块分析 (8) (1)PS2时钟检测模块 8 (2)PS2解码模块 10 (3)PS2组合模块 12 (4)控制LED模块 14 (5)PS2总的组合模块 16 六、综合与仿真 (17) 1、综合 (17) 2、仿真 (18) (1)电平检测模块仿真 (18) (2)LED灯控制模块仿真 (18)

(3)PS2_module总模块仿真 (19) 七、硬件下载 (23) 八、心得体会 (24) 九、参考文献 (24) 一、课程设计的目的与任务 (1)熟练掌握EDA工具软件QuartusII的使用; (2)熟练用VHDL硬件描述语言描述数字电路; (3)学会使用VHDL进行大规模集成电路设计; (4)学会用CPLD\FPGA使用系统硬件验证电路设计的正确性; (5)初步掌握EDA技术并具备一定的可编程逻辑芯片的开发能力; 二、课程设计题目 1、指定题目: 0 :多功能计数器;1 :数字秒表;2 :简易数字钟;3 :简易频率计; 4 :彩灯控制器; 5 :交通灯控制器; 6 :四路智力竞赛抢答器; 7 :简易微波炉控制器;8 :表决器;9 :数字密码锁; 我的的学号尾数是2,所以我要做的题目是简易数字钟。由于我之前已经学过Verilog HDL和VHDL,所以简易数字钟相对于我比较简单,我完成了简易数字钟并验收后,再选择了另一个自选题目来完成。 简易数字钟:设计一个以“秒”为基准信号的简易数字钟,显示时、分、秒,同时可实现整点报时和清零(我已经完成,而且已经验收了)。 2、自选题目: 在完成了数字钟的设计后,我选择了另一个设计的题目,那就是PS2键盘扫描。所以这次课程设计我的报告主要详细写的是PS2键盘扫描的程序,而不是简易数字钟。 PS键盘扫描:设计一个PS键盘扫描程序,能接受键盘的输入时钟和数据,区别哪一个键输入,同时解译通码和断码,使用LED灯来显示收到的数据。三、课程设计的内容与要求

EDA技术与VHDL语言设计

《EDA技术与VHDL语言设计》 课程设计 题目:交通灯控制器 姓名: ***** 院系:电子信息工程系 专业:电子信息工程 班级:电信112班 学号: ****** 指导教师: ****** 2013年6 月

交通灯控制器 *** (电子信息工程学系指导教师:**) 摘要:传统的交通灯控制器多数由单片机实现,本文介绍基于EDA技术设计交通灯控制器的 一种方案。EDA技术的一个重要特征是使用硬件描述语言来完成系统的设计文件,这在电子 设计领域已得到设计者的广泛采用。给出了交通灯控制器的源程序和仿真结果,仿真结果表明 该设计方案可行。 关键词:交通灯控制器;仿真;设计 1.设计原理 1.1设计要求 设计一个十字路口交通控制器,器示意图如图1.1所示,A方向和B方向歌设红(R)、黄(Y)、 绿(G)、和左拐(L)四盏灯,四种灯按合理的顺序亮灭,并能将灯亮的时间以倒计时的形式显示出来。A方向红、绿、黄、左拐灯亮的时间分别为65s、40s、5s、和15s,B方向红、绿、黄、左拐灯亮的时 间分别为55s、30s、5s、和15s。 1.2功能要求 两个方向各种灯亮的时间能够进行设置和修改,此外假设A方向是主干路,车流大,因此在 表1.2 交通灯控制器的状态 1.3设计思路和原理 根据交通灯控制器要求实现的功能,考虑用两个并行执行的always模块来分别控制A和B两个方向的四盏灯,这两个always模块使用同一个时钟信号,以进行同步。也就是说,两个always模块的敏感信号是同一个,每个模块控制一个方向的四种灯按如下顺序点亮,并往复循环:绿灯→黄灯→左拐灯→黄灯→红灯。 每种灯亮的时间采用一个减法计数器进行计数,计数器用同步预置法设计,这样只需改变计数器的

VHDL课程设计报告---交通灯设计

课程设计 课程名称:交通灯设计. 学院:电气工程学院专业:测仪姓名:学号: 年级:级任课教师: 2012年 1月12日

电气工程学院 课程设计任务书 课题名称:交通灯控制器的设计 专业、班级:测控技术与仪器测仪班 指导教师: 20 年1 月2 日至20 年1 月13 日共2周 指导教师签名: 教研室主任签名: 分管院长签名:

一、课程设计内容 1.学习ALTERA公司的FPGA/CPLD的结构、特点和性能。 2.学习集成开发软件MAX+plus II/Quartus II的使用及设计过程。 3.熟悉EDA工具设计数字电路设计方法,掌握VHDL硬件描述语言设计方法。 4.根据给定题目设计数字电路,来加深对可编程逻辑器件的理解和掌握。 二、课程设计应完成的工作 1.在所选择器件内完成交通灯控制器的设计,要求设计完成后芯片具有交通灯控制器的全部功能、包括显示和操作接口。 2.交通灯控制器要求控制十字路口两道路的交通灯,两道路交替通行,每次通行时间可设定20——60秒之间,每个路口要求有前行、禁止、人行灯。 (根据实际设计进度考虑可以增加左右转向灯,等待和通行时间显示等)。 3.撰写设计说明书一份(不少于2000字),阐述系统的工作原理,软、硬件设计方法,重点阐述软件思路。说明书应包括封面、任务书、目录、摘要、正文、参考文献(资料)等内容,以及硬件电路综合图和软件程序清单等材料。 注:设计说明书题目字体用小三,黑体,正文字体用五号字,宋体,小标题用四号及小四,宋体,并用A4纸打印。 三、课程设计进程安排

四、设计资料及参考文献 1.康华光主编,《电子技术基础-数字部分》,高等教育出版社,1998。2.谭会生等主编,《EDA技术及应用》,西安电子科技大学出版社,2001 3.潘松等主编,《EDA技术实用教程》,科学出版社,2006 4.雷伏容主编,《VHDL电路设计》,清华大学出版社,2006 5.Charles H.Roth等著,《数字系统设计与VHDL》,电子工业出版社,2008 五、成绩评定综合以下因素: (1) 说明书及设计图纸的质量(占50%)。 (2) 独立工作能力及设计过程的表现(占30%)。 (3) 回答问题的情况(占20%)。 说明书和图纸部分评分分值分布如下:

EDA技术与VHDL基础课后习题答案(供参考)

《EDA技术与VHDL基础》 课后习题答案 第一章EDA技术概述 一、填空题 1、电子设计自动化 2、非常高速集成芯片硬件描述语言 3、CAD、CAE、EDA 4、原理图输入、状态图输入、文本输入 5、VHDL、Verilog HDL 6、硬件特性 二、选择题 1、A 2、C 3、A 4、D 5、C 6、D 7、A 第二章可编程逻辑器件基础 一、填空题 1、PLD 2、Altera公司、Xilinx公司、Lattice公司 3、基于反熔丝编程的FPGA 4、配置芯片 二、选择题 1、D 2、C 3、C 4、D 第三章VHDL程序初步——程序结构 一、填空题 1、结构、行为、功能、接口 2、库和程序包、实体、结构体、配置 3、实体名、类型表、端口表、实体说明部分

4、结构体说明语句、功能语句 5、端口的大小、实体中子元件的数目、实体的定时特性 6、设计库 7、元件、函数 8、进程PROCESS、过程PROCEDURE 9、顺序语句、并行语句 二、选择题 1、D 2、C 3、C 4、B 5、D 6、B 7、A 8、C 三、简答题 2、 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY nand_3in IS PORT(a,b,c:IN STD_LOGIC; y:OUT STD_LOGIC); END; ARCHITECTURE bhv OF nand_3in IS BEGIN y<=NOT(a AND b AND c); END bhv; 5、0000 6、(247) 第四章VHDL基础 一、填空题 1、顺序语句、并行语句 2、跳出本次循环 3、等待、信号发生变化时 4、函数、过程 5、值类属性、函数类属性、信号类属性、数据类型类属性、数据范围类属性 6、程序调试、时序仿真 7、子程序、子程序 二、选择题

VHDL课程设计报告

湖南科技大学 信息与电气工程学院 课程设计任务书 20 —20 学年第学期 专业:学号:姓名: 课程设计名称: 设计题目: 完成期限:自年月日至年月日共周设计依据、要求及主要内容(可另加附页): 指导教师(签字): 批准日期:年月日

目录 一、摘要 二、VHDL语言介绍 三、设计的目的 四、设计内容 五、电路工作原理 六、主要程序及仿真结果 七、对本次设计的体会和建议 八、参考文献

一、摘要 人类社会已进入到高度发达的信息化社会。信息化社会的发展离不开电子信息产品开发技术、产品品质的提高和进步。电子信息产品随着科学技术的进步,其电子器件和设计方法更新换代的速度日新月异。实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化(EDA,Electronics Design Automation)技术,EDA技术的发展和推广应用又极大地推动了电子信息产业的发展。为保证电子系统设计的速度和质量,适应“第一时间推出产品”的设计要求,EDA技术正逐渐成为不可缺少的一项先进技术和重要工具。目前,在国内电子技术教学和产业界的技术推广中已形成“EDA热”,完全可以说,掌握EDA技术是电子信息类专业学生、工程技术人员所必备的基本能力和技能。EDA技术在电子系统设计领域越来越普及,本设计主要利用VHDL语言设计一个电子数字钟,它的计时周期为24小时,显示满刻度为24时59分59秒。总的程序由几个各具不同功能的单元模块程序拼接而成,其中包括分频程序模块、时分秒计数和设置程序模块、比较器程序模块、三输入数据选择器程序模块、译码显示程序模块和拼接程序模块。并且使用软件进行电路波形仿真。 关键词:数字钟EDA VHDL语言 二、VHDL语言介绍 1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL 设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。 三、设计的目的 本项实验通过六十进制计数器和数字钟的设计与仿真,学习VHDL语言及VHDL文本输入设计方法,编写六十进制计数器和数字钟源程序,应用VMAX+plusII软件进HDL文本输入设计与波形仿真。熟练地运用数字系统的设计方法进行数字系统设计,能进行较复杂的数字系统设计,按要求设计一个数字钟。 四、设计内容 1、60进制计数器计数器 60进制计数器计数器是一个用以实现计数功能的时序部件,它不仅可用来及脉冲数,还常用作数子系统的定时、分频和执行数字运算以及其它特定的逻辑功能。计数器种类很多。按

EDA技术与VHDL(第2版)习题解答

第3章 VHDL 基础 3-1 如图所示 input output enable buf3s mux21 in0in1output sel 3-2 程序: IF_THEN 语句 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY mux21 S PORT ( s1,s0 : IN STD_LOGIC_VECTOR ; a,b,c,d : IN STD_LOGIC ; y : OUT STD_LOGIC ) ; END ENTITY mux21 ; ARCHITECTURE one OF mux21 IS BEGIN PROCESS ( s0,s1,a,b,c,d ) BEGIN IF s1=?0? AND s0=?0? THEN y<=a ; ELSIF s1=?0? AND s0=?1? THEN y<=b ; ELSIF s1=?1? AND s0=?0? THEN y<=c ; ELSIF s1=?1? AND s0=?1? THEN y<=d ; ELSE y<=NULL ; END IF ; END PROCESS ; END ARCHITECTURE one ; CASE 语句 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY mux21 IS

PORT ( s1,s0 : IN STD_LOGIC_VECTOR ; a,b,c,d : IN STD_LOGIC ; y : OUT STD_LOGIC ) ; END ENTITY mux21 ; ARCHITECTURE two OF mux21 IS SIGNAL s : STD_LOGIC_VECTOR ( 1 DOWNTO 0 ) ; BEGIN s<=s1 & s0 ; PROCESS ( s ) BEGIN CASE s IS WHEN “00” => y<=a ; WHEN “01” => y<=b ; WHEN “10” => y<=c ; WHEN “11” => y<=d ; WHEN OTHERS => NULL ; END CASE ; END PROCESS ; END ARCHITECTURE two ; 3-3 程序: LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY MUXK IS PORT ( s0,s1 : IN STD_LOGIC ; a1,a2,a3 : IN STD_LOGIC ; outy : OUT STD_LOGIC ) ; END ENTITY MUXK ; ARCHITECTURE double OF MUXK IS SIGNAL tmp : STD_LOGIC ; --内部连接线 SIGNAL u1_s, u1_a, u1_b, u1_y : STD_LOGIC ; SIGNAL u2_s, u2_a, u2_b, u2_y : STD_LOGIC ; BEGIN p_MUX21A_u1 : PROCESS ( u1_s, u1_a, u1_b, u1_y ) BEGIN

完整word版,EDA技术与VHDL(A卷答案)

4.大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是C。 A. FPGA是基于乘积项结构的可编程逻辑器件; B. FPGA是全称为复杂可编程逻辑器件; C. 基于SRAM的FPGA器件,在每次上电后必须进行一次配置; D. 在Altera公司生产的器件中,MAX3000系列属FPGA结构。 5.以下对于进程PROCESS的说法,正确的是: A A. 进程语句本身是并行语句 B. 进程内部由一组并行语句来描述进程功能 C. 进程之间可以通过变量进行通信 D. 一个进程可以同时描述多个时钟信号的同步时序逻辑 6.在VHDL语言中,下列对时钟上升沿检测描述中,错误的是C。 A. if clk’event and clk = ‘1’ then B. if rising_edge(clk) then C. if clk’event and clk = ‘0’ then D. if not clk’stable and clk = ‘1’ then 7.关于VHDL中的数字,请找出以下数字中数值最大的一个:B A. 2#1111_1110# B. 8#366# C. 10#169# D. 16#F#E1 8.下列标识符中,B是不合法的标识符。 A. State0 B. 9moon C. Not_Ack_0 D. signall 9.下列语句中,不属于并行语句的是:D A.进程语句 B.条件信号赋值语句 C.元件例化语句 D.IF语句 10. 状态机编码方式中,其中 C 占用触发器较多,但其实现比较适合FPGA的应用 A. 状态位直接输出型编码 B. 顺序编码 C. 一位热码编码 D. 以上都不是

VHDL课程设计

本科实验报告 实验名称:数字系统设计与实验(软件部分)

实验一 QuartusII9.1软件的使用 一、实验目的: 1、通过实现书上的例子,掌握QUARTUSII9.1软件的使用. 2、编程实现3-8译码电路以掌握VHDL组合逻辑的设计以及QUARTUSII9.1软件的使用。 二、实验内容 1.十进制加法计数器的VHDL文本及仿真 功能图: VHDL文本: library IEEE; use IEEE.std_logic_1164.all; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity count10 is port(clk,load,en:in std_logic; data_in:in std_logic_vector(3 downto 0); seg:out std_logic_vector(6 downto 0)); end count10; architecture beha of count10 is signal qout:std_logic_vector(3 downto 0); signal q_temp:std_logic_vector(3 downto 0); begin process(clk,load) begin if(load='1')then q_temp<=data_in; elsif(clk'event and clk='1')then

if(en='0')then qout<=qout; elsif(qout="1001")then qout<="0000"; else qout<=qout+1; end if; q_temp<=qout; end if; end process; process(q_temp) begin case q_temp is when"0000"=>seg<="1000000"; when"0001"=>seg<="1111001"; when"0010"=>seg<="0100100"; when"0011"=>seg<="0110000"; when"0100"=>seg<="0011001"; when"0101"=>seg<="0010010"; when"0110"=>seg<="0000010"; when"0111"=>seg<="1111000"; when"1000"=>seg<="0000000"; when"1001"=>seg<="0010000"; when others=>seg<="0001000"; end case; end process; end beha; 功能仿真流程及结果: 全编译通过后,进行仿真 新建波形文件,在其中添加所需节点。将clk设置为时钟信号,将en设置为高电平,将load 设置为低电平,将data_in设置为想要预置的数值。 运行Generate Functional Simulation Nest List命令产生能仿真的网标文件。点击Start Simulation开始模拟仿真 仿真结果:

EDA技术与VHDL程序开发基础教程 教学资料第二章

2.8.1填空 1.可编程逻辑器件的英文全称是Programmable Logic Device 2.可编程逻辑器件技术经历了PROM 、PLA、PAL 三个发展阶段 3. CPLD的基本结构包括可编程逻辑阵列块、输入/输出块、互联资源三个部分 4.目前市场份额较大的生产可编程逻辑器件的公司有Altera 、Xillinx 、Lattice 5.根据器件应用技术FPGA可分为基于SRAM编程的FPGA、基于反熔丝编程的FPGA 6. 快速通道/互联通道包括行互连、列互联、逻辑阵列块、逻辑单元 7.常用的的FPGA配置方式为主动串行、主动并行、菊花链 8.实际项目中,实现FPGA的配置常常需要附加一片EPROM 9.球状封装的英文缩写为BGA 10.CPLD/FPGA选型时主要考虑的因素有器件逻辑资源、芯片速度、功耗、封装2.8.2选择 1. 在下列可编程逻辑器件中,不属于高密度可编程逻辑器件的是(D) A EPLD B CPLD C FPGA D PAL 2. 在下列可编程逻辑器件中,属于易失性器件的是(D) A EPLD B CPLD C FPGA D PAL 3.下列逻辑部件中不属于Altera公司CPLD的是(A) A通用逻辑块(GLB) B可编程连线阵列(PIA) C输入输出控制(I/O) D逻辑阵列块(LAB) 4.下列逻辑部件中不属于Lattice公司CPLD的是(D) A通用逻辑块(GLB) B全局布线区(GRP) C输出布线区(ORP) D逻辑阵列块(LAB) 5.下列FPGA中不属于Xilinx公司产品的是(D) A XC4000 B Virtex

vhdl流水灯课程设计报告

院系: 姓名: 学号: 课程设计名称: 指导老师: 时间:

摘要 VHDL的特点 应用VHDL进行系统设计,有以下几方面的特点。 (一)功能强大 VHDL具有功能强大的语言结构。它可以用明确的代码描述复杂的控制逻辑设计。并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。VHDL是一种设计、仿真和综合的标准硬件描述语言。 (二)可移植性 VHDL语言是一个标准语言,其设计描述可以为不同的EDA工具支持。它可以从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台。此外,通过更换库再重新综合很容易移植为ASIC设计。 (三)独立性 VHDL的硬件描述与具体的工艺技术和硬件结构无关。设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。程序设计的硬件目标器件有广阔的选择范围,可以是各系列的CPLD、FPGA及各种门阵列器件。 (四)可操作性 由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。 (五)灵活性 VHDL最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。使其在任何大系统的设计中,随时可对设计进行仿真模拟。所以,即使在远离门级的高层次(即使设计尚未完成时),设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。VHDL的设计结构 VHDL描述数字电路系统设计的行为、功能、输入和输出。它在语法上与现代编程语言相似,但包含了许多与硬件有特殊关系的结构。 VHDL将一个设计称为一个实体Entity(元件、电路或者系统),并且将它分成外部的可见部分(实体名、连接)和内部的隐藏部分(实体算法、实现)。当定义了一个设计的实体之后,其他实体可以利用该实体,也可以开发一个实体库。所以,内部和外部的概念对系统设计的VHDL是十分重要的。

相关主题
文本预览
相关文档 最新文档