EDA实验与实践讲义
q, qb : out std_logic); end latch;
architecture behv of latch is signal n3,n4:std_logic; component andd2 port(a,b:instd_logic;
y:out std_logic); end component; begin
u1 : andd2 port map(clk,n3,n4); u2 : andd2 port map(clk,d,n3); u3 : andd2 port map(qb,n3,q); u4 : andd2 port map(n4,q,qb);
①、 使用Text Editor输入锁存器的结构描述 ? 编译 ?
②、 使用Wave Form Editor编辑激励波形 ? 模拟 ? 分析波形。
(6)硬件验证:以ALTERA公司的FLEX_EPF10K10TC144_4为下载目标。
① 、使用信号和模块: 用模块12,17,22,23使用信号如表4-2所示:
② 、实验内容:模块23的第7开关置为ON, 其余为OFF,用开关K1 ,EDGE1代表锁存器的输入d和CLK; OUT1~OUT2分别代表其输出;从输出指示LED观察OUT1~OUT2随输入K1的改变情况,看是否满足设计要求。 输 入 芯片 芯 片 功能 输 出 芯片 芯 片 功 能 信号名 脚名 信号类别 信号名 脚名 信号类别 K1 P41 OUT1 P116 A 输出QB EDGE1 P22 CLK OUT2 P114 输出Q 表4-2 2、触发器设计: (1)DFF设计
源程序之一:DFF4_1.VHD LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY DFF4_1 IS
PORT(CLK,D,CLR,PSET : IN STD_LOGIC; Q,QB: OUT STD_LOGIC); END DFF4_1;
ARCHITECTURE RT1 OF DFF4_1 IS BEGIN
PROCESS(CLK,PSET,CLR) BEGIN
IF (PSET='0') THEN Q<='1'; QB<=’0’;
ELSIF(CLR='0') THEN Q<='0'; QB<=’1’;
ELSIF (CLK'EVENT AND CLK='1') THEN Q<=D;
QB<=NOT D; END IF; END PROCESS; END RT1;
源程序之二:DFF4_2.VHD LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
VHDL&Verilog HDL
36
EDA实验与实践讲义
ENTITY DFF4_2 IS
PORT(CLK,D,CLR,PSET : IN STD_LOGIC; Q,QB: OUT STD_LOGIC); END DFF4_2;
ARCHITECTURE RT1 OF DFF4_2 IS BEGIN
PROCESS(CLK) BEGIN
IF (PSET='0') THEN Q<='1'; QB<=’0’;
ELSIF(CLR='0') THEN Q<='0'; QB<=’1’;
ELSIF (CLK'EVENT AND CLK='1') THEN Q<=D;
QB<=NOT D; END IF; END PROCESS; END RT1;
源程序之三:基于Verilog HDL的DFF4_3.V module DFF4_3(d, clk, rst,set, q,qn); input d, clk, rst,set; output q,qn; reg q,qn;
always @(posedge clk or posedge rst or posedge set) begin if ( rst ) begin q =0; qn=1; end else if(set) begin q =1; qn=0; end else
begin q=d; qn=~d; end end endmodule (2)、硬件验证,:以ALTERA公司的FLEX_EPF10K10TC144_4为下载目标。
② 、使用信号和模块: 用模块22,23,12,使用信号如表4-2所示。
② 、实验内容: 模块23的第7开关置为ON, 其余为OFF, 用开关K1 , PULSE1代表触发器的输入d和CLK,EDGE1,EDGE2代表复位信号及置位信号; OUT1~OUT2分别代表其输出;从输出指示LED观察OUT1~OUT2随输入的改变情况,看是否满足设计要求。 输 入 芯片 芯 片 功能 输 出 芯片 芯 片 功 能 信号名 脚名 信号类别 信号名 脚名 信号类别 K1 P41 D OUT1 P116 Q PULSE1 P20 CLK OUT2 P114 QB EDGE2 P23 CLR EDGE1 P22 PSET VHDL&Verilog HDL 37
EDA实验与实践讲义
表4-2
(3)、试比较上面两个程序综合结果有何区别,有何特点? 四、 实验报告要求:
通过验证归纳锁存器与触发器材的区别。
VHDL&Verilog HDL
38
EDA实验与实践讲义
实验六 时序逻辑电路设计之二 -----计数器和移位寄存器设计
一、实验目的
1、熟悉时序逻辑器件的基本模块利用硬件描述语言进行设计的基本方法;
2、熟练掌握VHDL语言的IF语句、PROCESS语句的不同应用特点以及异步、同步置位/复位功能的引入;
3、进一步学习使用EDA集成设计软件Max+plus II进行电路的模拟、综合过程; 二、实验器材
1、AEDK_EDAII实验机及其附件 一台; 2、计算机:Pentium或相应处理器以上,有一个空余的并行口 五、 实验内容 1、四位计数器设计
(1)源程序之一:cnt4b_1.vhd LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_unsigned.ALL;
ENTITY cnt4b_1 IS
PORT(clk:IN STD_LOGIC;
q:INOUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END cnt4b_1;
ARCHITECTURE behv OF cnt4b_1 IS BEGIN
PROCESS(clk) BEGIN
IF clk='1' AND clk'EVENT THEN q<=q+1; END IF;
END PROCESS; END behv;
(2)源程序之二:cnt4b_2.vhd LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_unsigned.ALL;
ENTITY cnt4b_2 IS
PORT(CLK,CLR,LD:IN STD_LOGIC;
D: IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q:INOUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END cnt4b_2;
ARCHITECTURE behv OF cnt4b_2 IS BEGIN
PROCESS(CLK,CLR,LD) BEGIN
IF (clr='0') THEN Q<=\
ELSIF clk='1' AND clk'EVENT THEN IF(LD='0') THEN Q<=Q+1; ELSE Q<=D; END IF;
VHDL&Verilog HDL
一台; 39
EDA实验与实践讲义
END IF; END PROCESS; END behv; (3)、源程序之三:cnt4b_3.vhd--------模拟74161,74160 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_unsigned.ALL;
ENTITY cnt4b_3 IS
PORT(CLK,CLR,LD,ET,EP:IN STD_LOGIC;
D: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
QD,QC,QB,QA,RCO:OUT STD_LOGIC); END cnt4b_3;
ARCHITECTURE behv OF cnt4b_3 IS
SIGNAL Q: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN
QD<=Q(3); QC<=Q(2); QB<=Q(1); QA<=Q(0);
PROCESS(CLK) BEGIN
IF clk='1' AND clk'EVENT THEN IF(clr='0') THEN Q<=\
ELSIF(LD='0') THEN
Q<=D;
ELSIF(ET='1' AND EP='1') THEN IF(Q=“1111”) THEN Q<=\ ELSE
修改这个值可以完 Q<=Q+1; 成任意(<15)进制 END IF;
END IF;
IF Q = 15 AND ET = '1' THEN RCO <= '1'; ELSE
RCO <= '0'; END IF; END IF; END PROCESS; END behv; (4)、源程序之四:cnt4b_4.vhd--------模拟74161,74160 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_unsigned.ALL;
ENTITY cnt4b_4 IS
PORT(CLK,CLR,LD,ET,EP:IN STD_LOGIC;
D:IN STD_LOGIC_VECTOR(3 DOWNTO 0); QD,QC,QB,QA,RCO:OUT STD_LOGIC); END cnt4b_4;
ARCHITECTURE behv OF cnt4b_4 IS
SIGNAL Q: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN
VHDL&Verilog HDL
40