首页 > 精品范文库 > 15号文库
EDA技术实验教案
编辑:深巷幽兰 识别码:24-1044072 15号文库 发布时间: 2024-06-21 13:28:33 来源:网络

第一篇:EDA技术实验教案

一、课程名称:

EDA技术实验

二、教材名称: 《EDA技术使用教程》,潘松等编著。

三、本课程教学目的、要求:

介绍EDA的基本知识、常用的EDA工具的使用方法和目标器件的结构原理、VHDL设计输入方法(图形和文本)、VHDL仿真、VHDL的设计优化等。

EDA技术作为重要的专业课程,其实践性强。在教学时要注重理论和实践的紧密结合,通过大量上机操作,使学生掌握VHDL的基本结构和编程思想。实验1 原理图输入方法及8位全加器设计(4课时)

1)实验目的:

熟悉利用MAX+plusⅡ的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个8位全加器的设计把握利用EDA软件进行电子电路设计的详细流程。2)实验报告要求:

详细叙述8位加法器的设计流程;给出各层次的原理图及其对应的仿真波形图;给出加法器的延时情况。

3)实验步骤:

(1)设计一个一位半加器。

步骤1:输入设计项目和存盘 步骤2:输入半加器元件: 步骤3:将项目设置为工程文件 步骤4:选择目标器件并编译 步骤5:时序仿真 步骤6:包装元件入库

选择菜单“File”→“Open”,在“Open”对话框中选择原理图编辑文件选项“Graphic Editor Files”,然后选择h_adder.gdf,重新打开半加器设计文件,然后选择如图4-5中“File”菜单的“Create Default Symbol”项,将当前文件变成了一个包装好的单一元件(Symbol),并被放置在工程路径指定的目录中以备后用。

(2)利用半加器组成一个一位全加器,并记录仿真结果。(3)利用全加器组成一个八位全加器,并记录仿真结果。

实验二

简单组合电路和时序电路设计(4课时)

一、实验目的:

熟悉Max+plusⅡ的VHDL文本设计流程全过程,学习简单组合电路和时序电路的设计和仿真方法。

二、实验内容

1:首先利用MAX+plusⅡ完成2选1多路选择器和一位全加器的文本编辑输入和仿真测试等步骤,给出仿真波形,验证本项设计的功能。

2:设计触发器(J-K),给出程序设计、软件编译、仿真分析、硬件测试及详细实验过程。

3:先设计或门和一位半加器的VHDL描述文件,并进行仿真调试,再用元件例化的方法实现一位全加器,并仿真调试。要求记录VHDL文件内容和仿真波形结果。

4:用一位全加器设计8为全加器。要求记录VHDL文件内容和仿真波形结果。(选作)参考程序 ENTITY mux21a IS PORT(a, b : IN BIT;s : IN BIT;y : OUT BIT);END ENTITY mux21a;ARCHITECTURE one OF mux21a IS SIGNAL d,e : BIT;BEGIN d <= a AND(NOT S);e <= b AND s;y <= d OR e;END ARCHITECTURE one;

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY or2a IS PORT(a, b :IN STD_LOGIC;c : OUT STD_LOGIC);END ENTITY or2a;

ARCHITECTURE fu1 OF or2a IS BEGIN c <= a OR b;END ARCHITECTURE fu1;

半加器描述(1)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY adder IS PORT(a, b : IN STD_LOGIC;co, so : OUT STD_LOGIC);END ENTITY adder;ARCHITECTURE fh1 OF adder is BEGIN so <= NOT(a XOR(NOT b));co <= a AND b;END ARCHITECTURE fh1;

1位二进制全加器顶层设计描述 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY f_adder IS PORT(ain,bin,cin : IN STD_LOGIC;cout,sum : OUT STD_LOGIC);END ENTITY f_adder;ARCHITECTURE fd1 OF f_adder IS COMPONENT h_adder PORT(a,b : IN STD_LOGIC;co,so : OUT STD_LOGIC);END COMPONENT ; COMPONENT or2a PORT(a,b : IN STD_LOGIC;c : OUT STD_LOGIC);END COMPONENT;

SIGNAL d,e,f : STD_LOGIC;BEGIN u1 : 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;二选一多路选择器仿真结果:

实验三

含异步清0和同步时钟使能的4位加法计数器(4课时)

一、实验目的:

学习计数器的设计、仿真,进一步熟悉VHDL设计技术。

二、实验内容:

设计一含计数使能、异步复位和能进行计数值并行预置功能的4位加法计数器。RST是异步清零信号,高电平有效;clk是时钟输入信号;D0、D1、D2、D3是4位数据输入端(数据预置输入端)。Q0、Q1、Q2、Q3为计数器输出端。COUT为进位输出端。ENA为使能端,为„1‟时,计数器实现对CLK时钟脉冲信号的加1计数,为0时停止计数。

参考程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT4B IS PORT(CLK : IN STD_LOGIC;RST : IN STD_LOGIC;ENA : IN STD_LOGIC;OUTY : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT : OUT STD_LOGIC);END CNT4B;ARCHITECTURE behav OF CNT4B IS SIGNAL CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN P_REG: PROCESS(CLK, RST, ENA)BEGIN IF RST = '1' THEN CQI <= “0000”;ELSIF CLK'EVENT AND CLK = '1' THEN IF ENA = '1' THEN CQI <= CQI + 1;ELSE CQI <= “0000”;END IF;END IF;OUTY <= CQI;END PROCESS P_REG;COUT <= CQI(0)AND CQI(1)AND CQI(2)AND CQI(3);--进位输出 END behav;

实验四

7段数码显示译码器设计(2课时)

一、实验目的:

1、学习7段数码显示译码器设计;

2、学习VHDL的多层次设计方法。

二、实验原理:

7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中来实现。但为了简化过程,首先完成7段BCD码译码器的设计。例如输出为“1101101”时,数码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管显示“5”。

图6-21 共阴数码管及其电路

三、实验内容

1、编程实现7段数码显示译码器设计;

2、对7段数码显示译码器设计进行编辑、仿真,给出其所有信号的时序仿真波形; 参考程序: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DECL7S IS PORT(A : IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END;ARCHITECTURE one OF DECL7S IS BEGIN PROCESS(A)BEGIN CASE A IS WHEN “0000” => LED7S <= “0111111”;WHEN “0001” => LED7S <= “0000110”;WHEN “0010” => LED7S <= “1011011”;WHEN “0011” => LED7S <= “1001111”;WHEN “0100” => LED7S <= “1100110”;WHEN “0101” => LED7S <= “1101101”;WHEN “0110” => LED7S <= “1111101”;WHEN “0111” => LED7S <= “0000111”;WHEN “1000” => LED7S <= “1111111”;WHEN “1001” => LED7S <= “1101111”;WHEN OTHERS => NULL;END CASE;END PROCESS;END;仿真结果:

综合后的计数器和译码器连接电路的顶层文件原理图:

实验五

用状态机实现序列检测器的设计(4课时)

一、实验目的:

1、掌握状态机的编程方法和步骤;

2、掌握用状态机设计序列检测器的方法和步骤;

二、实验内容

用状态机编程实现对系列数“11100101”的检测,当某一系列串(以左移方式)进入检测器后,若该串与预置的系列数相同,则输出“A”,否则输出“B”。

三、实验步骤:

1、编辑系列检测器的VHDL程序;

2、仿真测试并给出仿真波形,了解控制信号的时序;

3、将上述方案改为系列检测密码为可预置(外部输入)情况,重新编写程序、编译和仿真,并记录仿真结果。参考程序:

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SCHK IS PORT(DIN,CLK,CLR : IN STD_LOGIC;AB : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END SCHK;ARCHITECTURE behv OF SCHK IS SIGNAL Q:INTEGER RANGE 0 TO 8;SIGNAL D:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN D<=“11100101”;PROCESS(CLK,CLR)BEGIN IF CLR= '1' THEN Q <= 0;ELSIF clk='1' AND clk'EVENT THEN CASE Q IS WHEN 0 => IF DIN = D(7)THEN Q<=1;ELSE Q<=0;END IF;WHEN 1 => IF DIN = D(6)THEN Q<=2;ELSE Q<=0;END IF;WHEN 2 => IF DIN = D(5)THEN Q<=3;ELSE Q<=0;END IF;WHEN 3 => IF DIN = D(4)THEN Q<=4;ELSE Q<=0;END IF;WHEN 4 => IF DIN = D(3)THEN Q<=5;ELSE Q<=0;END IF;WHEN 5 => IF DIN = D(2)THEN Q<=6;ELSE Q<=0;END IF;WHEN 6 => IF DIN = D(1)THEN Q<=7;ELSE Q<=0;END IF;WHEN 7 => IF DIN = D(0)THEN Q<=8;ELSE Q<=0;END IF;WHEN OTHERS=> Q<=0;END CASE;END IF;END PROCESS;PROCESS(Q)BEGIN IF Q=8 THEN AB<=“1010”;ELSE AB<=“1011”;END IF;END PROCESS;END behv;仿真结果:

提高型实验:

实验六

用VHDL实现数字钟及校园打铃系统(6课时)

一、实验目的及要求:

1、掌握VHDL语言的基本结构及编程思想。

2、掌握VHDL语言的进行系统设计的方法和步骤。

3、提高学生综合应用能力。

二、实验内容:

1、用VHDL实现数字钟及校园打铃系统的软件编辑。

2、用VHDL实现数字钟及校园打铃系统的软件仿真。

三、实验步骤

1、用VHDL编辑60进制计数器,并进行软件仿真。

2、用VHDL编辑24进制计数器,并进行软件仿真。

3、用VHDL编辑30进制计数器,并进行软件仿真。

4、用元件例化的方法实现数字钟的软件编辑及软件仿真。

5、实现数字钟的校时功能。

6、实现数字钟的打铃功能。

7、完成数字钟及校园打铃系统的实验报告。

实验七

A/D采样控制器设计

一、实验目的及要求:

1、掌握VHDL语言的基本结构及编程思想。

2、掌握A/D采样控制器的工作原理。

3、掌握A/D采样控制器的VHDL语言编程方法。

二、实验内容:

1、设计一A/D0809模数转换器控制器。

2、将转换结果送数码管显示器显示(2位)。

3、模拟输入通道为IN0。

三、实验步骤:

1、ADC0809特点介绍

(1)、单极性输入,8位A/D转换精度。(2)、逐次逼近式,每次采样时间约为100US(3)、8通道模拟输入

2、A/D转换器外部引脚功能结构图

3、A/D转换器时序图

4、AD转换控制器与AD转换器的接口电路框图

5、状态控制

S0状态:初始状态。ADDC=‘1’,选择1通道模拟信号输入。

ALE=START=OE=LOCK=‘0’;

S1状态:通道锁存。ALE=‘1’, START=OE=LOCK=‘0’;

S2状态:启动A/D转换。ALE=‘1’,START=‘1’,OE=LOCK=‘0’; S3状态:A/D转换等待状态。

ALE=START=‘0’,OE=LOCK=‘0’;

IF EOC=‘0’

保持当前状态不变,继续等待A/D转换。

ELSE

转换结束,进入下一状态。

S4状态:数据输出允许状态。A/D转换完毕,开启数据输出允许信号。

ALE=‘0’,START=‘0’,OE=‘1’,LOCK=‘0’;

S5状态:数据锁存状态。开启数据锁存信号,将转换结果送锁存器锁存。

ALE=‘0’,START=‘0’,OE=‘1’,LOCK=‘1’; S6状态:延时状态。为了保证数据可靠锁存,延时一个时钟状态周期。

ALE=‘0’,START=‘0’,OE=‘1’,LOCK=‘1’; 其它状态:返回到初始状态。ALE=START=OE=LOCK=‘0’;

6、参考程序: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY AD0809 IS

PORT(D :IN STD_LOGIC_VECTOR(7 DOWNTO 0);

CLK0,EOC : IN STD_LOGIC;

ADDA,OE : OUT STD_LOGIC;

ALE,START : OUT STD_LOGIC;

Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);

QQ : OUT INTEGER RANGE 15 DOWNTO 0);END AD0809;ARCHITECTURE behav OF AD0809 IS

TYPE ST_TYPE IS(S0, S1, S2, S3,S4,S5,S6,S7);

SIGNAL CURRENT_STATE,NEXT_STATE : ST_TYPE;

SIGNAL REGL:STD_LOGIC_VECTOR(7 DOWNTO 0);

SIGNAL LOCK :STD_LOGIC;

BEGIN

ADDA<='1';

PRO: PROCESS(CURRENT_STATE,EOC)

BEGIN

CASE CURRENT_STATE IS

WHEN S0 => QQ<=0;ALE<='0';START<='0';OE<='0';LOCK<='0';NEXT_STATE <= S1;

WHEN S1 => QQ<=1;ALE<='0';START<='0';OE<='0';LOCK<='0';NEXT_STATE <= S2;

WHEN S2 => QQ<=2;ALE<='1';START<='1';OE<='0';LOCK<='0';NEXT_STATE <= S3;

WHEN S3 => QQ<=3;ALE<='1';START<='1';OE<='0';LOCK<='0';

IF EOC='0' THEN NEXT_STATE <= S4;

ELSE NEXT_STATE <= S3;

END IF;

WHEN S4 => QQ<=4;ALE<='0';START<='0';OE<='0';LOCK<='0';

IF EOC='1' THEN NEXT_STATE <= S5;

ELSE NEXT_STATE <= S4;

END IF;

WHEN S5 => QQ<=5;ALE<='0';START<='1';OE<='1';LOCK<='0';NEXT_STATE <= S6;

WHEN S6 => QQ<=6;ALE<='0';START<='0';OE<='1';LOCK<='1';NEXT_STATE <= S7;

WHEN S7 => QQ<=7;ALE<='0';START<='0';OE<='1';LOCK<='1';NEXT_STATE <= S0;

WHEN OTHERS => NEXT_STATE <= S0;

END CASE;

END PROCESS PRO;REG:PROCESS(CLK0)

BEGIN

IF CLK0'EVENT AND CLK0='1' THEN

CURRENT_STATE<=NEXT_STATE;

END IF;

END PROCESS REG;

COM:PROCESS(LOCK)

BEGIN

IF LOCK'EVENT AND LOCK='1' THEN

REGL<=D;

END IF;

END PROCESS COM;

Q<=REGL;END behav;

实验八

数字频率计设计

一、实验目的及要求:

1、掌握VHDL语言的基本结构及编程思想。

2、掌握数字频率计的工作原理。

3、掌握数字频率计的VHDL语言编程方法。

二、实验内容:

1、设计8位十进制数字频率计。

2、测量频率范围为1Hz-50MHz

三、实验原理: 测频原理框图

四、实验步骤 1、8位十进制计数器设计

(1)用VHDL设计十进制计数器,并进行软件和硬件仿真 参考程序如下: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 IS

PORT(CLK,RST,EN : IN STD_LOGIC;

CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

COUT : OUT STD_LOGIC);

END CNT10;ARCHITECTURE behav OF CNT10 IS BEGIN

PROCESS(CLK, RST, EN)

VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

IF RST = '1' THEN

CQI :=(OTHERS =>'0');--计数器复位

ELSIF CLK'EVENT AND CLK='1' THEN

--检测时钟上升沿

IF EN = '1' THEN

--检测是否允许计数

IF CQI < “1001” THEN

CQI := CQI + 1;--允许计数

ELSE

CQI :=(OTHERS =>'0');--大于9,计数值清零

END IF;

END IF;

END IF;

IF CQI = “1001” THEN COUT <= '1';--计数大于9,输出进位信号

ELSE

COUT <= '0';

END IF;

CQ <= CQI;

--将计数值向端口输出

END PROCESS;END behav;(2)8位十进制频率计电路图 2、32位锁存器设计 参考程序

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY reg32b IS

PORT(load : IN STD_LOGIC;

din: in STD_LOGIC_VECTOR(31 DOWNTO 0);

DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0));

END reg32b;ARCHITECTURE behav OF reg32b IS BEGIN

PROCESS(load,din)

BEGIN

IF load'EVENT AND load='1' THEN

dout<=din;

END PROCESS;END behav;3控制器设计

(1)控制器时序图

(2)参考程序 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY testctl IS

PORT(clk : IN STD_LOGIC;

tsten:out

STD_LOGIC;

clr_cnt: out

STD_LOGIC;

load:out

STD_LOGIC);

END testctl;ARCHITECTURE behav OF testctl IS

signal p2clk:std_logic;BEGIN

PROCESS(clk)

BEGIN

IF clk'EVENT AND clk='1' THEN

p2clk<=not p2clk;

END PROCESS;

process(clk,p2clk)

begin

if clk='0' and p2clk='0'

then

clr_cnt<='1';

else clr_cnt<='0';

end if;

end process;

load<=not p2clk;

tsten<=p2clk;END behav;

END IF;END IF;

实验九

DAC接口电路与波形发生器设计

一、实验目的及要求:

1、掌握VHDL语言的基本结构及编程思想。

2、掌握DA转换器接口方法。

3、掌握DA转换器的VHDL语言编程方法。

二、实验内容:

1、设计一DAC0832数模转换器控制器。

2、要求使用DAC转换器输出一正弦波,最大值为5V。(使用单缓冲方式)

3、要求正弦波频率能步进可调,步进间隔为100Hz。(使用2个按键控制,一个步进为加,另一个为步进减)

三、实验原理

1、DAC0832特点(1)、8位电流DAC转换,输出为电流信号,因此要转换为电压输出,必须外接集成运算放大器。(2)、转换时间约为50---500ns,转换速度比电压型DAC转换器快,电压型一般为1---10us(3)、20脚双列直插式封装的CMOS型器件。(4)、内部具有两极数据寄存器,可采用单或双缓冲方式。

2、D/A转换器外部引脚功能及内部结构图

3、工作方式

方式一:直通工作方式(本实验采用此种方式)

一般用于只有一路输出信号的情况。

接线情况:ILE=1,CS=WR1=WR2

=XFER=0 方式

二、双缓冲器工作方式

采用两步操作完成,可使DA转换输出前一数据的同时,将采集下一个数据送到8位输入寄存器,以提高转换速度。

一般用于多路DA输出。

4、DA转换器与控制器接口电路设计

5、实验仪实际接口电路图

6、DA转换器输出波形步进可调控制电路设计 设计思想:

设输入控制器的时钟频率为50MHz。

1、DA转换一次,需要一个时钟周期。若采用64点输出,则需要64个时钟周期。如果控制器时钟频率为64Hz,则输出的正弦波频率为1Hz。

2、因此,只需要控制DA转换控制器的时钟频率,则就可以控制正弦波频率,正弦波频率与时钟频率的 关系为1:64。

3、题目要求正弦波步进频率为100Hz,则时钟频率步进应为6400Hz。按“加”键,则时钟频率增加6400Hz,按“减”减,时钟频率减小6400Hz。

7、带按键控制DA转换器与控制器接口电路设计

四、实验程序 参考程序:

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DAC0832 IS

PORT(CLK :IN STD_LOGIC;

DD : OUT INTEGER RANGE 255 DOWNTO 0);END DAC0832;ARCHITECTURE behav OF DAC0832 IS SIGNAL Q:INTEGER RANGE 63 DOWNTO 0;SIGNAL D : INTEGER RANGE 255 DOWNTO 0;BEGIN

PROCESS(CLK)

BEGIN

IF CLK'EVENT AND CLK='1' THEN Q<=Q+1;

END IF;

END PROCESS;PROCESS(Q)

BEGIN

CASE Q

IS

WHEN 00=>D<=254;WHEN 01=>D<=252;WHEN 02=>D<=249;WHEN 03=> D<=245;

WHEN 04=>D<=239;WHEN 05=>D<=233;WHEN

06=> D<=225;WHEN

07=> D<=217;

WHEN 08=>D<=207;WHEN 09=>D<=197;WHEN

10=> D<=186;WHEN

11=> D<=174;

WHEN 12=>D<=162;WHEN 13=>D<=150;WHEN 14=> D<=137;WHEN

15=> D<=124;

WHEN 16=>D<=112;WHEN 17=>D<=99;WHEN 18=> D<=87;

WHEN

19=> D<=75;

WHEN 20=>D<=64;WHEN

21=>D<=53;WHEN 22=>D<=43;

WHEN 23=> D<=34;

WHEN 24=>D<=26;WHEN 25=>D<=19;WHEN

26=> D<=13;

WHEN

27=> D<=8;

WHEN 28=>D<=4;

WHEN

29=>D<=1;

WHEN 30=>D<=0;

WHEN

31=> D<=0;

WHEN 32=>D<=1;WHEN 33=>D<=4;

WHEN 34=> D<=8;

WHEN 35=> D<=13;WHEN 36=>D<=19;WHEN 37=>D<=26;

WHEN 38=> D<=34;

WHEN

39=> D<=43;

WHEN 40=>D<=53;WHEN

41=>D<=64;WHEN 42=> D<=75;

WHEN

43=> D<=87;

WHEN 44=>D<=99;WHEN 45=>D<=112;WHEN 46=>D<=124;WHEN

47=> D<=137;

WHEN 48=>D<=150;WHEN 49=>D<=162;WHEN 50=> D<=255;WHEN 51=> D<=174;

WHEN 52=>D<=186;WHEN 53=>D<=197;WHEN 54=>D<=207;WHEN 55=> D<=217;

WHEN 56=>D<=225;WHEN 57=>D<=233;WHEN 58=> D<=239;WHEN

59=> D<=245;

WHEN 60=>D<=249;WHEN 61=> D<=252;WHEN 62=> D<=254;WHEN 63=>D<=255;WHEN OTHERS=>NULL;END CASE;END PROCESS;

DD<=D;

END;

实验十

七段显示器动态扫描电路设计(提高型)

实验目的及要求:

1、掌握VHDL语言的基本结构及编程思想。

2、掌握七段显示器动态扫描电路设计方法。设计要求:

1、设计一个七段数码管动态扫描电路。

2、数码管个数为8个,共阴极接法。

3、设计BCD码--七段字符码的转换电路;

4、设计一电路,控制上述电路实现“12345678”八个数字的显示,要求显示方式为:

(1)自左至右逐个点亮数码管,最后全亮;再重复以上动作,每次变化时间间隔为1秒。

(2)自左至右点亮数码管,每次只点亮一个,最后全息灭,再重复以上动作,每次变化时间间隔为1秒。

(3)先中间两个点亮,再依次向外点亮;全亮后,再依次向中间熄灭;重复上述步骤,每次变化时间间隔为1秒。一、七段显示器动态扫描电路设计框图

二、存储器设计(8位8字节静态随机存储器SRAM)LIBRARY ieee;

USE ieee.std_logic_1164.all;ENTITY MEMO_RD_WR IS PORT(WR,RD: IN STD_LOGIC;

A : IN STD_LOGIC_VECTOR(2 DOWNTO 0);

B : IN STD_LOGIC_VECTOR(2 DOWNTO 0);

D : IN STD_LOGIC_VECTOR(7 DOWNTO 0);

Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END MEMO_RD_WR;ARCHITECTURE a OF MEMO_RD_WR IS

SIGNAL Q0,Q1,Q2,Q3: STD_LOGIC_VECTOR(7 DOWNTO 0);

SIGNAL Q4,Q5,Q6,Q7: STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESS(WR,A)

BEGIN

IF WR='1' THEN

CASE

A

IS

WHEN “000”=>Q0<=D;

WHEN “001”=> Q1<=D;

WHEN “010”=>Q2<=D;

WHEN “011”=> Q3<=D;

WHEN “100”=>Q4<=D;

WHEN “101”=> Q5<=D;

WHEN “110”=>Q6<=D;

WHEN “111”=> Q7<=D;

WHEN OTHERS=>NULL;

END CASE;

END IF;

END PROCESS;PROCESS(RD,B)

BEGIN

IF RD='1' THEN

CASE

B

IS

WHEN “000”=>Q<=Q0;

WHEN “001”=> Q<=Q1;

WHEN “010”=>Q<=Q2;

WHEN “011”=> Q<=Q3;

WHEN “100”=>Q<=Q4;

WHEN “101”=> Q<=Q5;

WHEN “110”=>Q<=Q6;

WHEN “111”=> Q<=Q7;

WHEN OTHERS=>NULL;

END CASE;

END IF;

END PROCESS;END a;

四、循环取数电路设计 LIBRARY ieee;

USE ieee.std_logic_1164.all;ENTITY GET_CODE IS PORT(CLK1: IN STD_LOGIC;

D : IN STD_LOGIC_VECTOR(7 DOWNTO 0);

RD:OUT STD_LOGIC;

A : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);

DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END GET_CODE;ARCHITECTURE a OF GET_CODE

IS

SIGNAL LOAD: STD_LOGIC;

SIGNAL QQ : STD_LOGIC_VECTOR(7 DOWNTO 0);

SIGNAL NUM: INTEGER RANGE 7 DOWNTO 0;BEGIN

RD<=„1‟;

LOAD<=CLK1;PROCESS(CLK1)

BEGIN

IF CLK1'EVENT AND CLK1='1' THEN

IF NUM<=7

THEN

NUM<=NUM+1;

ELSE NUM<=0;

END IF;

END IF;END PROCESS;PROCESS(NUM)

BEGIN

CASE NUM IS

WHEN 0 =>A<=“000”;

WHEN 1 =>A<=“001”;

WHEN 2 =>A<=“010”;

WHEN 3 =>A<=“011”;

WHEN 4 =>A<=“100”;

WHEN 5 =>A<=“101”;

WHEN 6 =>A<=“110”;

WHEN 7 =>A<=“111”;

WHEN OTHERS =>NULL;

END CASE;

END PROCESS;PROCESS(LOAD)

BEGIN

IF LOAD„EVENT AND LOAD=„1‟

THEN-------上升沿锁存

QQ<=D;

END IF;END PROCESS;DOUT(7 DOWNTO 0)<=QQ(7 DOWNTO 0);END a;

五、扫描控制器设计 LIBRARY ieee;

USE ieee.std_logic_1164.all;ENTITY SCAN_8 IS PORT(CLK2: IN STD_LOGIC;

C : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));

END SCAN_8;ARCHITECTURE a OF SCAN_8

IS

SIGNAL NUM: INTEGER RANGE 7 DOWNTO 0;BEGIN PROCESS(CLK2)

BEGIN

IF CLK2'EVENT AND CLK2=‘1' THEN

IF NUM<=7

THEN

NUM<=NUM+1;

ELSE NUM<=0;

END IF;

END IF;END PROCESS;Process(num)

begin

CASE

NUM

IS

WHEN 1=>C<=“11111110”;WHEN 2=> C<=“11111101”;

WHEN 3=>C<=“11111011”;WHEN 4=> C<=“11110111”;

WHEN 5=>C<=“11101111”;WHEN 6=> C<=“11011111”;

WHEN 7=>C<=“10111111”;WHEN 0=> C<=“01111111”;

WHEN

OTHERS=>NULL;

END CASE;END PROCESS;END A;

应用实例一:显示“01234567”八个数字

LIBRARY ieee;

USE ieee.std_logic_1164.all;ENTITY disp_data IS PORT(CLK: IN STD_LOGIC;

WR:OUT STD_LOGIC;

A:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);

Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END disp_data;ARCHITECTURE a OF disp_data

IS

--SIGNAL QQ : STD_LOGIC_VECTOR(7 DOWNTO 0);

SIGNAL NUM: INTEGER RANGE 7 DOWNTO 0;BEGIN

WR<=„1‟;PROCESS(CLK)

BEGIN

IF CLK'EVENT AND CLK='1' THEN

IF NUM<=7

THEN

NUM<=NUM+1;

ELSE NUM<=0;

END IF;

END IF;END PROCESS;PROCESS(NUM)

BEGIN

CASE NUM IS

WHEN 0 =>Q<=“00111111”;A<=“000”;

WHEN 1 =>Q<=“00000110”;A<=“001”;

WHEN 2 =>Q<=“01011011”;A<=“010”;

WHEN 3 =>Q<=“01001111”;A<=“011”;

WHEN 4 =>Q<=“01100110”;A<=“100”;

WHEN 5 =>Q<=“01101101”;A<=“101”;

WHEN 6 =>Q<=“01111101”;A<=“110”;

WHEN 7 =>Q<=“01111111”;A<=“111”;

WHEN OTHERS =>NULL;

END CASE;END PROCESS;END a;实验十一

彩灯控制器设计(提高型实验)

实验目的及要求:

1、掌握VHDL语言的基本结构及编程思想。

2、掌握VHDL语言的进行系统设计的方法和步骤。

3、培养学生综合应用能力。实验内容:

1、了解各类节日彩灯的显示方式(主要是动态方式)(上街观察);

2、将你所了解的情况,画出你的设计思想框图;

3、根据框图画出电路框图(用EDA技术);

4、用VHDL语言编程实现;

5、完成课程设计报告(约202_字)

实验

十二、红绿交通灯控制系统

实验目的及要求:

1、掌握VHDL语言的基本结构及编程思想。

2、掌握VHDL语言的进行系统设计的方法和步骤。

3、培养学生综合应用能力。实验内容:

设计一个简易十字路口交通灯控制器。要求:

1、每个路口有红、绿、黄三个指示灯指示交通运行情况。红灯亮,禁止车辆通行;绿灯亮,车辆正常通行。

2、利用两位数码管显示通行到计时时间。

3、用VHDL语言编程实现;

4、完成课程设计报告 实验步骤:

1、红绿黄灯秒计数选择控制电路(traffic_mux)SING_STATE:

00

绿灯20秒(横向路口);

01

黄灯5秒(横向路口)

绿灯20秒(直向路口)

黄灯5秒(直向路口)

RECOUNT:重新计数信号。=„1‟,发送倒计时时间数据; =„0‟,正常倒计时; LIBRARY IEEE;

USE IEEE.std_logic_1164.all;USE IEEE.std_logic_unsigned.all;

USE IEEE.std_logic_arith.all;entity traffic_mux is

port(reset,clk_1Hz,recount: in std_logic;

sign_state: in std_logic_vector(1 downto 0);

load: out integer range 255 downto 0);end;

begin

process(reset,clk_1s)

begin

if reset='1' then

load<=“00000000”;

elsif(clk_1Hz'event and clk_1Hz='1')

then

if

recount = '1‘

then

CASE sign_state IS

WHEN “00” => load <= 20;

WHEN “01” => load <= 5;

WHEN “10” => load <= 20;

WHEN “01” => load <= 5;

WHEN OTHERS =>null;

END CASE;

end if;

end if;end process;end BEHAVIOR;

2、倒计时控制电路(count_down)library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;use IEEE.std_logic_unsigned.all;entity count_down is port(reset,clk_1Hz: in std_logic;recount:in std_logic;load: in integer range 255 downto 0;seg7:out std_logic_vector(15 downto 0);next_state: out std_logic);end;architecture BEHAVIOR of count_down is signal cnt_ff: integer range 255 downto 0;begin process(clk_1Hz,reset)begin if(reset='1')then cnt_ff<=“00000000”;seg7<=“***0”;elsif(clk_1Hz'event and clk_1Hz='1')then if recount='1‘ then cnt_ff<=load-1;else cnt_ff<=cnt_ff-1;end if;end if;end process;process(cnt_ff)begin case cnt_ff is when 0=>seg7<=“***1”;when 1=>seg7<=“***0”;when 2=> seg7<=“***1”;when 3=> seg7<=“***1”;when 4=> seg7<=“***0”;when 5=> seg7<=“***1”;when 6=> seg7<=“***1”;when 7=> seg7<=“***1”;when 8=> seg7<=“***1”;when 9=> seg7<=“***1”;when 10=> seg7<=“***1”;when 11=> seg7<=“***0”;when 12=> seg7<=“***1”;when 13=> seg7<=“***1”;when 14=> seg7<=“***0”;when 15=> seg7<=“***1”;when 16=> seg7<=“***1”;when 17=> seg7<=“***1”;when 18=> seg7<=“***1”;when 19=> seg7<=“***1”;when 20=> seg7<=“***1”;when 21=> seg7<=“***0”;when 22=> seg7<=“***1”;when 23=> seg7<=“***1”;when 24=> seg7<=“***0”;when 25=> seg7<=“***1”;when 26=> seg7<=“***1”;when 27=> seg7<=“***1”;when 28=> seg7<=“***1”;when 29=> seg7<=“***1”;when others=> seg7<=“***1”;end case;end process;next_state <= '1' when cnt_ff=1 else '0';end BEHAVIOR;

3、红绿灯信号控制电路(traffic_fsm)LIBRARY IEEE;USE IEEE.std_logic_1164.all;USE IEEE.std_logic_arith.all;USE IEEE.std_logic_unsigned.all;entity traffic_FSM is port(reset,clk,clk_1Hz,flash_1Hz: in std_logic;a_m:in std_logic;next_state: in std_logic;recount: out std_logic;sign_state: out std_logic_vector(1 downto 0);red: out std_logic_vector(1 downto 0);green: out std_logic_vector(1 downto 0);yellow: out std_logic_vector(1 downto 0));end;architecture BEHAVIOR of traffic_FSM is type Sreg0_type is(r0g1, r0y1, g0r1, y0r1, y0y1, y0g1, g0y1, r0r1);signal state : Sreg0_type;signal light: std_logic_vector(5 downto 0);begin if(reset='1')then state<=r0g1;

----设定当前为横向红灯亮,竖向绿灯亮 sign_state<=“01”;------选择20秒倒计时

recount<=‘1’;------装入计数初值并启动倒计时 else if(clk'event and clk='1')then case STATE is when r0g1 => if(a_m='1' and clk_1Hz='1')then if(next_state = ‘1’)then--当前计数完毕,转入下一种计时

recount<='1';state<=r0y1;sign_state <= “01”;else recount<=‘0’;state<=r0g1;----否则,继续倒计时 end if;when r0y1 =>--now state: red0 on yellow1 flash if(a_m='1' and clk_1Hz='1')then if(next_state = '1')then recount<='1';state<=g0r1;sign_state <= “10”;else recount<='0';state<=r0y1;end if;when g0r1 =>--now state: green0 on red1 on if(a_m='1' and ena_1Hz='1')then if(next_state = '1')then recount<='1';state<=y0r1;sign_state <= “11”;else recount<='0';state<=g0r1;end if;when y0r1 =>--now state: green0 on red1 on if(a_m='1' and ena_1Hz='1')then if(next_state = '1')then recount<='1';state<=r0g1;sign_state <= “00”;else recount<='0';state<=y0r1;--red=2'b10;green=2'b00;yellow=2'b01;end if;when others => state<=r0g1;recount<='0';sign_state <= “00”;end case;end if;end if;end process;--light: r(10)y(10)g(10)light <= “010010” when(state=r0g1)else “011000” when(state=r0y1)else “100001” when(state=g0r1)else “100100” when(state=y0r1)else “110000”;red <= light(5 downto 4);yellow <= light(3 downto 2)and(flash_1Hz & flash_1Hz);green <= light(1 downto 0);end BEHAVIOR;

第二篇:EDA技术基础实验教案

实验一 2选1多路选择器VHDL设计

一、实验目的:

熟悉利用MAX+plusⅡ的VHDL文本设计流程全过程,学习简单组合逻辑电路的设计、多层次电路的设计、仿真和硬件测试。

二、实验内容:

按照MAX+plusⅡ的文本输入设计方法与流程完成2选1多路选择器的输入(mux21a.vhd)和仿真测试等步骤,给出仿真波形图。最后在实验系统上进行硬件测试,实际验证本项设计的功能。

三、实验步骤:

1、根据2选1多路选择器的工作原理,编写2选1的VHDL源程序,并输入计算机,mux21a.vhd文件名将源程序存盘。2选1多路选择器的参考程序如下:

【例1-1】

ENTITY mux21a IS PORT(a, b : IN BIT;s : IN BIT;y : OUT BIT);END ENTITY mux21a;ARCHITECTURE one OF mux21a IS SIGNAL d,e : BIT;BEGIN d <= a AND(NOT S);e <= b AND s;y <= d OR e;END ARCHITECTURE one;

【例1-2】

ENTITY mux21a IS PORT(a, b : IN BIT;s : IN BIT;y : OUT BIT);END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN y <=(a AND(NOT s))OR(b AND s);END ARCHITECTURE one;

【例1-3】 ENTITY mux21a IS PORT(a, b, s: IN BIT;y : OUT BIT);END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN PROCESS(a,b,s)BEGIN IF s = '0' THEN y <= a;ELSE y <= b;END IF;END PROCESS;END ARCHITECTURE one;

2、对mux21a.vhd文件编译后,再进行波形仿真,完成输入信号a、b、s 输入电平的设置,启动仿真器Simulator,观察输出波形的情况。

3、锁定引脚、编译并编程下载。参选实验电路模式5和附表一,键

1、键

2、键3为输入信号a、b、s分别锁定在EP1K30/50144-PIN TQFP 目标芯片的8、9、10引脚,输出信号y锁定在目标芯片的20引脚。

4、硬件实测2选1多路选择器的逻辑功能。按动GW48实验板上的高低电平输入键

1、键

2、键3,得到不同的s、b、a输入组合;观察输出发光二极管D1的亮灭,检查2选1多路选择器的设计结果是否正确。

思考题

用以上同样的方法设计4选1数据选择器mux41a.vhd,并仿真设计结果。

实验报告要求:

写出实验源程序,画出仿真波形。分析实验结果,以及它们的硬件测试实验结果写进实验报告。写出心得体会。

实验二 D触发器的VHDL设计

一、实验目的:

熟悉利用MAX+plusⅡ的VHDL文本设计流程全过程,学习简单时序电路的设计、仿真和硬件测试。

二、实验内容:

按MAX+plusⅡ的文本输入设计方法与流程完成D触发器的VHDL设计、软件编译、仿真分析、硬件测试及详细实验过程。

D触发器的VHDL设计的参考程序如下:

【例2-1】

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DFF1 IS PORT(CLK : IN STD_LOGIC;D : IN STD_LOGIC;Q : OUT STD_LOGIC);END;ARCHITECTURE bhv OF DFF1 IS BEGIN SIGNAL Q1 : STD_LOGIC;--类似于在芯片内部定义一个数据的暂存节点 BEGIN PROCESS(CLK)BEGIN IF CLK'EVENT AND CLK = '1' THEN Q1 <= D;END IF;Q <= Q1;--将内部的暂存数据向端口输出 END PROCESS;END bhv;

三、实验步骤:

1、打开文本编辑器,输入D触发器的VHDL源程序,并用D_ff.vhd文件名将源程序存盘。

2、选择目标器件EP1K30/50144-PIN TQFP。

3、对D_ff.vhd文件编译后,再进行波形仿真,完成输入信号d、clk输入电平的设置,启动仿真器Simulator,观察输出波形的情况。

4、锁定引脚、编译并编程下载。参选实验电路模式5和附表一,键1为输入信号d锁定在EP1K30/50144-PIN TQFP 目标芯片的8引脚,输出信号q和nq锁定在目标芯片的20和21引脚。

实验报告要求:

写出实验源程序,画出仿真波形。分析实验结果,以及它们的硬件测试实验结果写进实验报告。写出心得体会。

实验三 含异步清0同步时钟使能的4位加法计数器设计

一、实验目的:

学习时序电路的设计、仿真和硬件测试,进一步熟悉VHDL设计技术。

二、实验原理:

图4-1 含计数使能、异步复位和计数值并行预置功能4位加法计数器

图4-1是一含计数使能、异步复位和计数值并行预置功能4位加法计数器,例4-1是其VHDL描述。由图4-1所示,图中间是4位锁存器;rst是异步清信号,高电平有效;clk是锁存信号;D[3..0]是4位数据输入端。当ENA为'1'时,多路选择器将加1器的输出值加载于锁存器的数据端;当ENA为'0'时将“0000”加载于锁存器。

三、实验内容:

1、按照VHDL文本输入设计方法和步骤,在MAX+plusII上对例4-1 进行编辑、编译、综合、适配、仿真。说明例4-1中各语句的作用,详细描述示例的功能特点,给出其所有信号的时序仿真波形。

[例4-1] LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT4B IS PORT(CLK : IN STD_LOGIC;RST : IN STD_LOGIC;ENA : IN STD_LOGIC;OUTY : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT : OUT STD_LOGIC);END CNT4B;ARCHITECTURE behav OF CNT4B IS SIGNAL CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN P_REG: PROCESS(CLK, RST, ENA)BEGIN IF RST = '1' THEN CQI <= “0000”;ELSIF CLK'EVENT AND CLK = '1' THEN IF ENA = '1' THEN CQI <= CQI + 1;END IF;END IF;

OUTY <= CQI;END PROCESS P_REG;--进位输出

COUT<=CQI(0)AND CQI(1)AND CQI(2)AND CQI(3);END behav;

2、引脚锁定以及硬件下载测试。

建议选实验电路模式5,用键8(PIO7)控制RST;用键7(PIO6)控制ENA;计数溢出COUT接发光管D8(PIO15);OUTY是计数输出,接数码1(PIO19-PIO16,低位靠右);时钟CLK接clock0(引脚号为54),通过短路帽选择4Hz信号。引脚锁定窗后进行编译、下载和硬件测试实验。将实验过程和实验结果写进实验报告。

结合第五章例题使学生能够提高对具有计数使能、异步复位和计数值并行预置功能功能的计数器中各功能的实现的认识、并能完成设计。

思考题1:

在例4-1 中是否可以不定义信号 CQI,而直接用输出端口信号完成加法运算,即 : OUTY <= OUTY + 1 ?

思考题2:

修改例4-1,用进程语句和IF语句实现进位信号的检出。

实验报告要求:

写出实验源程序,画出仿真波形。分析实验结果,以及它们的硬件测试实验结果和附加内容实验情况写进实验报告。写出心得体会。

实验四 7段数码显示译码器设计

一、实验目的:

学习7段数码显示译码器设计;学习多层次设计方法。

二、实验原理:

7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用VHDL译码程序在FPGA或CPLD中实现。本项实验很容易实现这一目的。例5-1作为7段BCD码译码器的设计,输出信号LED7S的7位分别接如图5-1数码管的7个段,高位在左,低位在右。例如当LED7S输出为 “1101101” 时,数码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、0、1,接有高电平的段发亮,于是数码管显示“5”。

三、实验内容:

1、说明例5-1中各语句的含义,以及该例的整体功能。在MAX+plusII上对以下该例进行编辑、编译、综合、适配、仿真,给出其所有信号的时序仿真波形(提示:用输入总线的方式给出输入信号仿真数据)。

[例5-1] LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DecL7S IS PORT(A : IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END;ARCHITECTURE one OF DecL7S IS BEGIN PROCESS(A)BEGIN CASE A(3 DOWNTO 0)IS WHEN “0000” => LED7S <= “0111111”;--X“3F”0 WHEN “0001” => LED7S <= “0000110”;--X“06”1 WHEN “0010” => LED7S <= “1011011”;--X“5B”2 WHEN “0011” => LED7S <= “1001111”;--X“4F”3 WHEN “0100” => LED7S <= “1100110”;--X“66”4 WHEN “0101” => LED7S <= “1101101”;--X“6D”5 WHEN “0110” => LED7S <= “1111101”;--X“7D”6 WHEN “0111” => LED7S <= “0000111”;--X“07”7 WHEN “1000” => LED7S <= “1111111”;--X“7F”8 WHEN “1001” => LED7S <= “1101111”;--X“6F”9 WHEN “1010” => LED7S <= “1110111”;--X“77”10 WHEN “1011” => LED7S <= “1111100”;--X“7C”11 WHEN “1100” => LED7S <= “0111001”;--X“39”12 WHEN “1101” => LED7S <= “1011110”;--X“5E”13 WHEN “1110” => LED7S <= “1111001”;--X“79”14 WHEN “1111” => LED7S <= “1110001”;--X“71”15 WHEN OTHERS => NULL;END CASE;END PROCESS;END;

2、引脚锁定以及硬件下载测试。建议选实验电路模式6,用数码8显示译码输出(PIO46--PIO40),键

8、键

7、键

6、键5四位控制输入,硬件验证译码器的工作性能。

3、用VHDL例化语句(参考实验1中的1位全加VHDL文本输入设计)按图5-2 的方式,以例4-1和例5-1为底层元件,完成顶层文件设计,并重复以上实验过程。注意图5-2中的tmp是4位总线,led是7位总线。对于引脚锁定和实验,建议仍选实验电路模式6,用数码8显示译码输出,用键3作为时钟输入(每按2次键为1个时钟脉冲),或直接时钟信号clock0。

实验报告要求:

写出实验源程序,画出仿真波形。分析实验结果,以及它们的硬件测试实验结果写进实验报告。写出心得体会。

实验五 2位数的十进制计数器的设计

一、实验目的:

通过实验让读者掌握复杂时序逻辑电路的EDA原理图输入设计法和文本输入设计法,通过电路仿真,进一步了解有时钟使能的2位十进制计数器的功能和特性。

二、实验原理:

有时钟使能的2位十进制计数器是频率计的核心元件之一,这里用2个74162来设计完成。

三、实验内容:

1.用文本输入设计方法编写2位十进制计数器的VHDL源程序,并用twin10_g.vhd文件名存盘,参考程序如下: LIBRARY ieee;

USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.all;ENTITY twin10_v IS PORT(Clrn,Ent1,Enp,Clk : IN STD_LOGIC;

Qa,Qb

: OUT STD_LOGIC_VECTOR(3 downto 0);

Co

: OUT STD_LOGIC);END twin10_v;ARCHITECTURE a OF twin10_v IS SIGNAL Ent2 : STD_LOGIC;BEGIN

PROCESS(Clk)

VARIABLE tmpa,tmpb :STD_LOGIC_VECTOR(3 downto 0);

BEGIN IF(Clk'event AND Clk='1')THEN

IF Clrn='0' THEN tmpa := “0000”;tmpb := “0000”;

ELSIF(Ent1 AND Enp)='1' THEN

IF tmpa=“1001” THEN

tmpa:=“0000”;

IF tmpb=“1001” THEN tmpb:=“0000”;

ELSE tmpb:= tmpb+1;

END IF;

ELSE tmpa := tmpa+1;

END IF;

END IF;

END IF;

Qa <= tmpa;Ent2<=tmpa(0)AND tmpa(3)AND Ent1;

Qb <= tmpb;Co<= tmpb(0)AND tmpb(3)AND Ent2;END PROCESS;END a;2.同样编译后再进行波形仿真

按照波形仿真的操作步骤,对2位十进制计数器进行波形仿真。

3.锁定引脚、编译并编程下载。参选实验电路模式5和附表一,引脚锁定目标芯片为EP1K30/50144-PIN TQFP 实验报告要求:

写出实验源程序,画出仿真波形。对设计的2位十进制计数器进行实验结果的分析,以及硬件测试实验结果写进实验报告。写出心得体会。

第三篇:eda技术教案

EDA技术教案 第一次课 内容:

介绍EDA技术的涵义、发展历程和应用领域; 介绍EDA技术的主要内容; 介绍EDA的工程设计流程; 说明本课程的特点与学习方法。教学目的:

通过介绍EDA技术的涵义、发展历程和应用领域,使学生了解本课程的实际应用很大,调动学生学习这门课程的积极性

通过介绍EDA技术的主要内容,使学生了解这门课程要学习什么。在此基础上说明本课程的特点与学习方法。

说明各种通信系统的组成,了解它们的优缺点,出现背景。重点说明数字通信系统的特定和优点。

介绍EDA的工程设计流程,说明当前EDA设计的特点,用软件方式设计硬件,用软件方式设计的系统到硬件系统的转换是由有关开发软件自动完成的,因此类似软件编程,不需太多的低层硬件知识,使学生克服畏难情绪。教学重点、难点:

EDA技术的三个发展阶段以及各阶段的特点; EDA的定义和EDA技术的主要内容; EDA的工程设计流程。教学方法:

比较、举例、图解。教学过程:

(一)自我介绍,说明课时安排、成绩评定方法、课程定位、教学网站的进入。

(二)讲授新课

课堂教学实施过程共分六步。介绍EDA技术的涵义。

说明EDA技术的发展背景,说明EDA技术的三个发展阶段,比较三个阶段的各解决了什么问题,在此基础上理解各阶段的特点。

在第二步理解EDA技术进行电子系统设计的特点的基础上引出并详细说明EDA的定义,加深对EDA技术的涵义的理解。

在第三步详细说明EDA的定义的基础上,引出EDA技术的4个主要内容:硬件描述语言:设计的主要表达手段;大规模可编程逻辑器件:设计的载体;软件开发工具:设计的工具;实验开发系统:下载工具及硬件验证工具。再分别介绍EDA技术的4个主要内容:了解常用的硬件描述语言VHDL和Verilog;了解两种常用的大规模可编程逻辑器件FPGA和CPLD以及它们各自的特点;了解主流EDA工具软件;了解本课程使用的西安唐都公司的TD-EAD实验系统

说明课程要求:通过学习这门课程要掌握运用EDA开发工具设计开发电子系统,引出这门课程的特点:实践性强,说明我们的学习方法:抓住一个重点:VHDL的编程;掌握两个工具: Quartus II 和 TD-EAD实验系统;运用三种手段:通过案例分析、应用设计和上机实践,实现理论与实践相结合,边学边用,边用边学。用设计一个简单电子系统为例,引出EDA的工程设计流程。说明当前EDA技术发展的特点:用软件方式设计硬件;用软件方式设计的系统到硬件系统的转换是由有关开发软件自动完成的;设计过程中可用有关软件进行各种仿真;系统可现场编程,在线升级;整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。现代EDA设计类似软件编程,不需太多的低层硬件知识,使学生克服畏难情绪。同时这里又回顾复习了使用EDA技术进行电子系统设计的特点。最后图解说明EDA的工程设计流程。第二次课

内容:安装 Quartus Ⅱ,VHDL 与 Quartus Ⅱ初体验 教学目的:

理解VHDL语言的特点。

了解主流EDA工具Quartus Ⅱ,掌握其安装方法。掌握使用 Quartus Ⅱ进行FPGA设计的基本流程。

教学重点、难点:使用Quartus Ⅱ进行FPGA设计的基本流程。教学方法: 举例、演示。教学过程:

课堂教学实施过程共分两步。

回顾上节课所讲的EDA的主要内容。在此基础上引出VHDL语言的特点,并介绍主流EDA开发工具Quartus Ⅱ,说明它的不同版本的特点。重点介绍PC破解版的安装步骤。演示安装过程,在演示是重点提醒学生注意容易出错的几个地方。

回顾上节课所讲的当前EDA技术发展的特点,EDA的工程设计流程。在此基础上说明使用 Quartus Ⅱ进行FPGA设计的基本流程,并通过实际演示设计一个简单的电子系统:与非门,说明使用 Quartus Ⅱ和VHDL开发电子系统的基本流程。在演示过程中重点提醒学生注意容易出错的几个地方,并给出一些初学者的小窍门。第三次课

内容:VHDL 程序基本结构,VHDL 基本数据类型,VHDL 数据对象 教学目的:

掌握VHDL语言程序的基本结构,特别是实体和结构体。

掌握VHDL语言的语言要素,包括VHDL语言的基本数据类型、数据对象和VHDL 运算符,理解信号和变量的区别。

教学重点、难点:VHDL语言程序的基本结构,VHDL语言的语言要素。教学方法:举例、演示、归纳、比较。教学过程:

课堂教学实施过程共分三步。1)VHDL 程序基本结构

回顾上节课设计与非门的例子,引出设计与非门的设计思想:先确定系统功能和接口,再进行内部电路设计,由此引出VHDL程序的基本结构:实体:对应系统接口,结构体:对应系统内部电路。从与非门的VHDL程序中可以直观的看到它的三部分:库、程序包的调用,实体声明,结构体定义。

以与非门的VHDL程序为例说明库、程序包的调用的作用。说明调用语法,介绍常用的三个库、程序包。

以与非门的VHDL程序为例说明实体声明的语法,各项的意义。提醒学生注意初学者容易出错的地方,如:实体名必须与文件名相同,否则编译会出错;最后一条端口声明语句不可加分号等。并通过演示出错情况,加深学生的印象。最后通过图解归纳实体声明的格式,容易出错的地方,并对初学者进行相应的建议:使用范例,在Edit—> Insert Template 中选择范例。Quartus 进行编译时,要求关联文件文件名相同,建议采用 Quartus 默认文件名,不要自己更改文件名。

以与非门的VHDL程序为例说明结构体的语法,各项的意义。提醒学生注意初学者容易出错的地方。并通过演示出错情况,加深学生的印象。最后通过图解归纳结构体的格式,应注意的地方。

2)VHDL 基本数据类型

回到与非门的VHDL程序的实体声明部分,引出VHDL的数据类型。介绍各种数据类型,重点介绍最常用的标准逻辑位、标准逻辑位矢量。提醒学生注意使用标准逻辑位矢量时必须注明数组中元素个数和排列方向,并举例说明。最后比较VHDL和C语言中使用数据类型的异同点:VHDL同 C 语言一样,必须先声明端口和信号,然后才能使用,在声明中必须定义它们的数据类型;与 C 语言不同,VHDL是强类型语言,只有相同数据类型的端口、信号和操作数才能相互作用。3)VHDL 数据对象

介绍VHDL的数据对象:信号、变量和常量。以与非门的VHDL程序为例,通过图解比较说明信号和端口的异同点。说信号声明的格式和信号赋值语句的格式。重点说明矢量赋值,通过举例说明在矢量赋值要特别注意两矢量之间的元素对应关系。

说明定义变量的语法格式、变量赋值的语法格式。比较信号和变量的区别。最后介绍定义常量的语法格式。第四次课

内容:VHDL 运算符、VHDL 并行信号赋值语句。

教学目的:

掌握VHDL 运算符。

掌握VHDL语言的并行信号赋值语句,特别是选择信号赋值语句和条件信号赋值语句,理解条件信号赋值语句的各赋值子句的优先级差别。教学重点、难点:并置运算符“&”、选择信号赋值语句、条件信号赋值语句。教学方法:举例、演示、图解。教学过程:

课堂教学实施过程共分四步。

分别介绍VHDL的四种运算符:算术运算符、并置运算符、关系运算符、逻辑运算符。对算术运算符重点说明能支持的数据类型和不能支持的数据类型。并置运算符是本课程的一个难点,通过一个电路设计,举例说明并置运算符的应用。关系运算符重点说明能支持的数据类型。提醒学生注意:“<=”在条件语句中出现为小于等于,其它情况为信号赋值。逻辑运算符重点说明其优先级关系。

并行语句是硬件描述语言区别于一般软件程序语言的最显著的特点之一。通过图解说明常用并行语句特点,从图中直观的看到:并行语句之间是并行执行,但并行语句内部的执行可以是顺序的(进程语句),也可以是并行的(块语句)。

介绍并行信号赋值语句:简单信号赋值语句、选择信号赋值语句、条件信号赋值语句。给出选择信号赋值语句格式,并通过设计3-8 线译码器,说明如何使用选择信号赋值语句。提醒学生注意容易出错的几点:“选择值”一定要覆盖所有可能情况,若不可能一一指定,则要借助 others为其它情况找个“出口”。因此强烈建议初学者使用 with „ select 语句时,最后都带上 when „

others。“选择值”必须互斥,不能出现条件重复或重叠的情况。给元素赋常数值,用单引号;给矢量赋常数值,用双引号。通过演示出错情况,加深学生的印象。

给出条件信号赋值语句格式,并通过设计8-3 线优先编码器,说明如何使用条件信号赋值语句。提醒学生注意容易:在执行 When „

Else 语句时,赋值条件按书写的先后顺序逐项测试,一旦发现某一赋值条件得到满足,即将相应表达式的值赋给目标信号,并不再测试下面的赋值条件。即各赋值子句有优先级的差别,按书写的先后顺序从高到低排列。通过观察仿真结果,直观的看到赋值优先级,加深学生的印象。第五次课

内容:进程语句、VHDL语言的顺序语句。教学目的:

掌握进程语句,掌握进程的工作原理和特点,理解进程与时钟的关系。

掌握VHDL语言的顺序语句,特别是IF 语句和CASE语句,理解IF、CASE语句和选择信号赋值语句、条件信号赋值语句的区别。

教学重点、难点:进程的工作原理和特点,进程与时钟的关系。IF 语句和CASE语句,IF 语句和CASE语句的嵌套。

教学方法:图解、举例、总结。教学过程:

课堂教学实施过程共分四步。

介绍进程语句的特点、格式,说明各项意义。图解说明进程工作原理,通过该图直观的理解进程的特点:进程本身是并行语句,单其内部是顺序语句;进程只有在特定的时刻(敏感信号发生变化)才会被激活。在此基础上说明进程与时钟的关系。通过图解说明时钟上升沿驱动进程语句,使学生较好的理解了进程的时钟和进程是一种隐形的循环。给出时钟沿的VHDL描述,通过几个寄存器的设计,说明如何使用进程语句,通过观察波形仿真图,加深学生对进程与时钟的关系的理解。最后总结进程的要点和容易出错的几个地方。介绍顺序语句,提醒学生注意进程在激活的一瞬间就执行完进程中所有语句。重点介绍IF 语句和CASE 语句。给出IF 语句的三种格式,说明它们的特点。在此基础上总结使用 IF 语句注意的要点。最后通过设计串行输入并行输出的移位寄存器和并行输入串行输出的移位寄存器,加深学生对IF语句、IF语句嵌套的理解。

给出CASE 语句的格式,说明CASE 语句使用要点。最后通过设计带使能端的 2-4 译码器,加深学生对IF语句、IF语句嵌套的理解。介绍LOOP语句和空语句。第六次课

内容:层次化设计概念、在Quartus II 中实现层次化设计 教学目的:

理解层次化设计的优点。

理解层次化设计的核心思想:模块化、元件重用。

掌握在 Quartus II 中采用图形法与文本法结合的混合输入方法实现元件重用和系统的层次化设计。

教学重点、难点:在Quartus II 中实现层次化设计。教学方法:图解、举例、演示。教学过程:

课堂教学实施过程共分三步。

说明层次化设计的优点。图解说明层次化设计的核心思想:模块化、元件重用。加深对层次化设计的优点的理解。

图解说明在 Quartus II 中实现系统层次化设计的主要步骤:首先按自顶向下的设计方法,设计系统,划分和定义系统子模块,形成系统层次化设计图。其次用 VHDL 语言设计底层子模块,并生成相应的元件符号。最后调用下层元件,完成上层模块的设计,并生成相应的元件符号。这样从底层元件开始,自底向上完成系统的设计。

通过实际演示时钟选择器的设计过程,说明如何在Quartus II 中实现系统层次化设计,主要包括模块划分、元件设计文件的建立、元件符号的生成、元件调用、LPM宏模块的调用与参数配置、顶层电路原理图的建立。第七次课

内容:系统层次化设计进阶

教学目的:理解元件例化、程序包和类属映射。教学重点、难点:略 教学方法:图解、举例。教学过程:

课堂教学实施过程共分四步。

回顾上节课的内容:在Quartus II 中实现层次化设计,并引出新问题:如何用 VHDL 语言而不是元件符号来调用已设计的元件,实现系统层次化设计。由此引出元件例化、程序包和类属映射这几个层次化设计中最重要的VHDL语句。

说明什么是元件例化:将以前设计的实体当作本设计的一个元件(元件定义),然后再调用这个元件,即用VHDL语言将各元件之间的连接关系描述出来(元件映射)。介绍元件例化中的元件定义和元件映射的语法格式,说明各项意义。通过一个例子引用2分频电路,来说明如何使用元件例化。

通过图解说明元件例化语句的缺点:如果在一个实体中用到多个元件,那么在其结构体中要用大量篇幅定义元件。元件定义在结构体中,只有这个实体能调用该元件,如果有多个实体用到同一个元件,那么在这多个实体中都要对该元件进行定义。通过对该问题的解决,引出程序包:将数据类型、元件定义、子程序等收集到一个VHDL程序包中,只要在设计实体中用USE语句调用该程序包,就可以使用这些预定义的数据类型、元件定义、子程序。说明程序包的语法格式,通过举例说明如何在程序包中进行元件定义以及如何应用程序包。提醒学生注意容易出错的地方:程序包设计文件应保存为同名的VHDL文件并编译。只有编译过的程序包才能被其它设计实体调用。

通过一个常见的实际问题:设计一个带参数的电子系统,使其应用范围更广,引出类属映射语句。通过设计带参数的分频器,说明如何用 VHDL 语言设计和调用带参数的元件。第八次课

内容:Moore 状态机的 VHDL 描述、Mealy 状态机的 VHDL 描述。

教学目的:理解什么是Moore 状态机和Mealy 状态机,掌握Moore 状态机和Mealy 状态机的 VHDL 描述。

教学重点、难点:Moore 状态机和Mealy 状态机的 VHDL 描述。教学方法:图解、举例、类比。教学过程:

课堂教学实施过程共分三步。说明组合逻辑和时序逻辑的区别。用老式按钮风扇类比组合逻辑,空调遥控器类比时序逻辑,形象的说明了组合电路的输出只与当前输入有关。时序逻辑电路的输出不仅与当前输入有关,还与过去的一系列输入有关。由此引出状态机:输出由当前状态和当前输入决定,是一种广义的时序电路。状态机分Moore与Mealy型。说明这两种状态机的特点:Moore型输出仅取决于其所处状态,Mealy型输出不仅与当前状态有关,也与当前输入有关,更常见。举例说明Moore 型状态机,并画出其状态转移图,通过状态转移图加强Moore型输出仅取决于其所处状态的理解。举例说明Mealy型状态机,并画出其状态转移图,通过状态转移图说明Mealy型输出不仅与当前状态有关,也与当前输入有关的特点。

以Moore状态机的状态转换图说明如何用VHDL来描述Moore状态机,分为两个进程:确定状态转移的进程 Chang_State,决定输出值的进程 Output_Process。状态转移进程:Moore 状态机状态转移与输出 Dout 无关。当S0状态输入0时,仍然还在S0状态,没有进行状态转移,因此也与这种自环与状态转移无关。状态转移进程由去掉输出和自环后的状态转移图决定。根据化简后的状态图写出状态转移进程。CASE语句嵌套IF语句,CASE语句表示当前状态,IF语句表示在当前状态下,根据当前输入决定状态转移。提醒学生注意:一定要有状态机开始工作的条件,否则状态机永远不会工作。输出进程:在Moore状态机中输出只与当前状态相关,用一个CASE语句完成。

在上一步的基础上,对比Moore状态机的VHDL实现,说明Mealy状态机的实现,仍分为两个进程:确定状态转移的进程Chang_State,决定输出值的进程 Output_Process。由于Mealy状态机与Moore状态机的区别只在输出 Dout 同时与当前状态 Si 和当前输入有关。因此Chang_State进程的实现与Moore机相同。输出由当前状态和当前输入共同决定,因此输出进程 Output_Process也是CASE嵌套IF的格式,与状态转移进程类似。第九次课

内容:用状态机实现交通灯控制器

教学目的:掌握使用状态机实现数字系统设计的方法。教学重点、难点:在 Quartus II 中状态机的实现方法。教学方法:图解、举例、演示。教学过程:

课堂教学实施过程共分四步。

说明任务与要求,进行系统分析设计,在此基础上画出系统框图,确定元件模块和元件接口与连接。回顾在Quartus II 中实现层次化设计过程,用VHDL语言实现底层模块:计数器和控制器的设计。

重点介绍如何用状态机设计控制器,确定状态和状态转移条件,画出状态转移图,发现这是个Moore状态机。回顾Moore状态机的VHDL实现,完成对控制器的设计。完成计数器和控制器的设计后,生成相应的计数器和控制器元件符号。按系统框图建立顶层电路图,编译工程。第十次课

教学内容:Protel2004项目文件的管理和编辑

(一)教学目标:

1、学会在Protel2004软件中创建相应的各种文件

2、学会在Protel2004文件中创建相应的项目

3、学会在Protel2004文件中创建相应的设计工作区 教学重点:

对Protel2004软件中各种层级,各种种类繁多的文件的识别和创建 教学方法:演示操作法 课时安排:1课时 教学过程:

一、Protel2004包含了三级文件管理模式,分别是设计工作区,项目和文件,级别依次从高到低。而文件有分为好多种类有原理图文件,PCB封装文件,库文件,脚本文件,混合信号仿真文件,又如项目文件中有包含不同项目对应得不同文件。我们只是建立几个常用的文件

二、在Protel2004工作环境中创建原理图文件

1、打开文件/创建/原理图,创建一个原理图文件,并保存。注意器保存位置和保存的文件名称,类型扩展名。

2、打开文件/创建/PCB文件,创建一个PCB文件,并保存。注意器保存位置和保存的文件名称,类型扩展名。

三、在Protel2004工作环境中创建项目文件

打开文件/创建/项目/PCB项目,创建一个PCB项目文件,并保存。注意器保存位置和保存的文件名称,类型扩展名。

四、在Protel2004工作环境中创建项目文件

打开文件/创建/设计工作区,创建一个设计工作区文件,并保存。注意器保存的方法、位置和保存的文件名称,类型扩展名。

以上在保存文件的,项目级工作区的时候有几种不同的方法:

1、在相应的文件上点击右键保存,或另存为

2、在菜单栏中文件中找出相应命令执行保存操作

五、打开工作面板projects.查看他们的结构关系。教学反思于总结:

在演示教学的同时要注意教学的节奏,应反复演示,是学生能看清楚每一个操作步骤。要求学生对于常用的文件类型的扩展名,图形符号有所了解。第十一次课

教学内容:原理图的设计基础 教学目标:

1、掌握原理图的一般设计步骤

2、熟悉Protel2004原理图设计工具栏

3、熟练操作原理图的图样的放大于缩小 教学难点:

掌握原理图图样的放大于缩小的操作方法,牢记器快捷键操作。教学方法:讲授法和演示操作法 课时安排:1课时 教学过程:

一、原理图的一般设计步骤(讲授法)原理图的设计流程如下:

1、启动Protel2004原理图编辑器

新建一个原理图文件或打开一个原理图文件,都可以启动原理图编辑器,进入原理图设计工作。

这里我们打开Protel2004自带示例中的一个原理图文件。

2、设置原理图图样的大小及版面

3、在图样上放置元器件

4、对所放置元器件进行布局、布线

5、对布局、布线后的元器件进行调整

二、Protel2004 原理图设计工具栏

这里我们打开Protel2004自带示例中的一个原理图文件。

Protel2004为设计者提供了方便快捷的原理图绘制工具,分类放置在不同的工具栏中。这些工具栏,可以通过执行选单命令“视图/工具栏”的下拉菜单进行打开和关闭。

三、图样的放大于缩小:

1、在视图菜单中有一系列的图样于缩小命令,分别执行这些命令,观察图样的变化,并记忆理解这些命令的含义和作用。熟练掌握这些命令的快捷键执行方式。

2、利用键盘实现图样的放大于缩小。教学反思于总结:

关于原理图设计的一般步骤,学生只要有个大致的了解就可以了,这个过程会在以后的操作中逐渐的熟练起来。儿本节课中第三部分是重点难点。需要学生对于各个命令逐条的反复的操作,观察器变化,这个操作过程是枯燥的,应该尽可能的提高这节课的趣味性。让学生更积极的投入进去。第十二讲

教学内容:连接线路

(一)教学目标:

1、能够熟练的连接导线

2、学会放置线路节点

3、掌握设置网络标号 教学重点:

1、熟练的在电路中连接导线

2、理解网络标号的含义并能够正确而且熟练的放置网络标号 教学方法:演示教学法,任务完成法 课时安排:2课时 教学过程:

一、连接导线

当所有电路元器件、电源和其他对象放置完毕后,就可以进行原理图中个对象的连线。连线的主要目的是按照电路设计的要求建立网络的实际连通性。打开任一原理图电路,对所教授内容进行演示。

连线的方法:执行“放置/导线命令”命令,或左键单击wring工具栏中的连接导线命令。此时光标变为十字状,进入连线状态。当光标到达电气引脚是,会自动出现一个红色的“×”,单击鼠标左键,确定导线的起点,拖动鼠标到终点处,单击鼠标左键,一根导线结束。再次单击开始画第二条导线,也可单击鼠标右键退出连线状态。

Protel2004为设计者提供了四种导线模式:90度走线、45度走线、任意角度走线和自动布线。在画导线过程中,按下shift+space键,可以在各种走线模式间循环切换。

二、放置线路结点

所谓线路结点,是指当两条导线交叉时相连的状况。如果没有结点存在,则认为该两条导线在电气上是不连通的。反之,则连通。

Protel2004是设计者在绘制导线时,将在T字连线处自动产生结点,而在十字处不会自动产生结点,若设计者需要结点则必须由手工放置。

三、设置网络标号

网络标号是实际电气连接的导线的序号。具有相同的网络标号的导线,不管图上是否连在一起,都被看做是同一条导线。它多用于多层次电路或多重式电路的各个模块电路之间的连接,这个功能在绘制印制电路板时十分重要。

放置网络标签的方法:执行“放置/网络标签”命令,光标变成十字状当网络标签于导线或引脚连接状态时,会出现红色的“×”标志,单击鼠标左键,完成放置。同时对网络标签进行设置。

绘制下列电路图,完成对所学内容的练习

教学反思与总结:

本次课中,导线和网络标签的使用在绘制原理图的过程中是经常使用的,尤其是连接导线,需要反复的练习才能够熟练的掌握。有的学生在连接导线是的终点和下一段导线的起点操作不正确,将单击变为了双击,会造成元器件短路(如下图示例)。还有就是网络标签的放置位置不正确,没有注意到红色小叉的标记,随让标签也是放置在了导线或者元件的附近,但是并未形成成功的连接。第十三讲

教学内容:原理图的绘制 教学目标:

1、通过实际的大量的练习熟悉并掌握原理图文件的设计步骤

2、通过实际的大量的练习教学重点:

熟悉并掌握原理图的绘画技巧 教学方法:任务式教学法 课时安排:1课时 教学过程:

绘制下面的原理图,进行练习:

教学反思与总结:

注意I/O端口、总线、网络标签的绘制细节。

第四篇:《EDA技术基础》实验总结报告及要求

电工电子中心202_年5月绘制

湖北师范学院电工电子实验教学省级示范中心电子版实验报告

什么什么设计(研究)

红色部分提交时请删除!!

题目:“什么内容”的设计或“什么内容”的研究,例如: 基于FPGA的数字抢答器设计 基于FPGA的等精度数字频率计设计 Verilog HDL同步时序电路研究 一种简易数字频率计设计

基于FPGA的DDS信号发生器的设计

更多参考“大学生电子实验室”论坛设计选题指南 一.任务解析

根据对设计选题的理解,明确要做什么,要达到什么要求(参数、指标)。二.方案论证

对所要完成的设计任务,参考相关资料,提出设计方案,拿不同方案进行对比分析,选择你能够实现的方案,并明确指出为什么要选择此方案,较其它方案有何优点。三.实验步骤

方案的具体实施,按实际实施过程认真做好原始记录,可以包括单元电路仿真分析,部分指标测试(实际效果)等等,描述演示效果要明确所用设备,说明实验箱,使用了什么仪器等。四.结果分析

对所测试结果(演示现象)做分析,得出结论(描述现象)。五.经验总结

对完成任务情况进行总结,是否达到预期的设计,效果如何,还有哪些可以改进的,改进建议,特别是错误分析。

如果是自己独立完成的,我相信一定会有很多心得体会可以总结的,挫折的苦恼,成功的喜悦。如果你完成了一个设计性实验,一点体会都没有,那么我相信你一定是走捷径完成了任务,而没有真正独立完成本设计任务!老师批改报告,往往把学生的心得体会看成一个亮点。心得体会一定要认真写,把自己做设计性实验的过程认真总结,让老师感受到你是一步一步完成该设计性实验选题的。

第2页,共2页

第五篇:EDA分频器实验教案

实验三:整数分频器的设计

一 实验目的

了解利用类属设计可配置的重用设计技术。二 实验原理

利用类属n 可以改变分频器的分频系数,输出q的频率是输入信号clk频率的1/n。通过给n赋不同的值,就可以得到需要的频率。三 实验器材 EDA实验箱 四 实验内容

1.参考教材第5章中5.3.1,完成整数分频器的设计。

2.修改5.3.1中的分频系数n,观察仿真波形和实验箱输入/输出信号的变化。3.在试验系统上硬件验证分频器的功能。

在实验三中,建议将实验箱的实验电路结构模式设定为模式7。输入信号clk由键7的输出来模拟,输入信号reset_n由键8模拟,输出信号q接至LED:D14。当然,也可以由实验者设定到其它功能相似的键或者LED。

代码:(参考教材第5章中5.3.1)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity p is

generic(n:integer:=8);

port(clk,reset_n:in std_logic;

q: out std_logic);end p;architecture behavl_p of p is

signal count:integer range n-1 downto 0;begin

process(reset_n,clk)

begin

if reset_n='0' then q<='0';count<=n-1;

elsif(clk'event and clk='1' and clk'last_value='0')then

count<=count-1;

if count>=(n/2)then q<='0';

else q<='1';

end if;

if count<=0 then count<=n-1;

end if;

end if;end process;end behavl_p;

五 实验注意事项

1.编写代码时一定要书写规范

2模式的选择和引脚的配置一定要合理 六 实验报告

简述实验过程,将实验项目分析设计,仿真和测试写入实验报告。

EDA技术实验教案
TOP