海大EDA实验1参考答案

海大EDA实验1参考答案
海大EDA实验1参考答案

Laboratory Exercise 1

Switches, Lights, and Multiplexers ED实验参与答案

Part1

library ieee;

use part1 is

port(SW:in std_logic_vector(17 downto 0);

LEDR:out std_logic_vector(17 downto 0));

end part1;

architecture Behavior of part1 is

begin

LEDR <= SW;

end Behavior;

part2

library ieee;

use 2 to 1 multiplexer entity

entity mux21 is

port(in_x, in_y, in_s:in std_logic;

out_m:out std_logic);

end mux21;

--a 2 to 1 multiplexer architecture

architecture structural of mux21 is

signal u, v:std_logic;

begin

u <= in_x and (not in_s);

v <= in_y and in_s ;

out_m <= u or v ;

end structural;

--a eight-bit wide 2 to 1 multiplexer

library ieee;

use wide 2 to 1 multiplexer entity

entity mux21_8bit is

port(

SW: in std_logic_vector (17 downto 0);

--SW: in std_logic_vector (15 downto 8);

--SW: in std_logic_vector (17 downto 17);

LEDR: out std_logic_vector (7 downto 0));

end mux21_8bit;

--eight-bit wide 2 to 1 multiplexera rchitecture

architecture Structural of mux21_8bit is

component mux21

port(in_x, in_y, in_s:in std_logic;

out_m:out std_logic);

end component;

begin

U1:mux21port map (in_x=>SW(0), in_y=>SW(8), in_s=>SW(17), out_m=>LEDR(0));

U2:mux21port map (in_x=>SW(1), in_y=>SW(9), in_s=>SW(17), out_m=>LEDR(1));

U3:mux21port map (in_x=>SW(2), in_y=>SW(10), in_s=>SW(17), out_m=>LEDR(2));

U4:mux21port map (in_x=>SW(3), in_y=>SW(11), in_s=>SW(17), out_m=>LEDR(3));

U5:mux21port map (in_x=>SW(4), in_y=>SW(12), in_s=>SW(17), out_m=>LEDR(4));

U6:mux21port map (in_x=>SW(5), in_y=>SW(13), in_s=>SW(17), out_m=>LEDR(5));

U7:mux21port map (in_x=>SW(6), in_y=>SW(14), in_s=>SW(17), out_m=>LEDR(6));

U8:mux21port map (in_x=>SW(7), in_y=>SW(15), in_s=>SW(17), out_m=>LEDR(7));

end Structural;

part3

library ieee;

use 2 to 1 multiplexer entity

entity mux21 is

port(in_x, in_y, in_s:in std_logic;

out_m:out std_logic);

end mux21;

--a 2 to 1 multiplexer architecture

architecture structural of mux21 is

signal signal_u, signal_v:std_logic;

begin

signal_u <= in_x and (not in_s);

signal_v <= in_y and in_s ;

out_m <= signal_u or signal_v ;

end structural;

library ieee;

use 5 to 1 multiplexer entity

entity mux51 is

port(in5_u, in5_v, in5_w, in5_x, in5_y, in5_s1, in5_s2, in5_s0:in std_logic;

out5_m:out std_logic);

end mux51;

--a 5 to 1 multiplexer architecture

architecture Structural of mux51 is

component mux21

port (in_x, in_y, in_s:in std_logic;

out_m:out std_logic);

end component;

signal signal_a, signal_b, signal_c:std_logic;

begin

U1:mux21port map (in_x=>in5_u, in_y=>in5_v, in_s=>in5_s0, out_m=>signal_a);

U2:mux21port map (in_x=>in5_w, in_y=>in5_x, in_s=>in5_s0, out_m=>signal_b);

U3:mux21port map (in_x=>signal_a, in_y=>signal_b, in_s=>in5_s1, out_m=>signal_c);

U4:mux21port map (in_x=>signal_c, in_y=>in5_y, in_s=>in5_s2, out_m=>out5_m);

end Structural;

library ieee;

use

--a 3bit 5 to 1 multiplexer entity

entity mux51_3bit is

port(SW: in std_logic_vector (17 downto 0);

LEDR: out std_logic_vector (17 downto 0);

LEDG: out std_logic_vector (2 downto 0));

end mux51_3bit;

--a 3bit 5 to 1 multiplexer architecture

architecture structural of mux51_3bit is

component mux51

port(in5_u, in5_v, in5_w, in5_x, in5_y, in5_s1, in5_s2, in5_s0:in std_logic;

out5_m:out std_logic);

end component;

begin

LEDR <= sw;

U1:mux51 port map (in5_u=>SW(0), in5_v=>SW(3), in5_w=>SW(6), in5_x=>SW(9), in5_y=>SW(12),

in5_s0=>SW(15), in5_s1=>SW(16), in5_s2=>SW(17), out5_m=>LEDG(0));

U2:mux51 port map (in5_u=>SW(1), in5_v=>SW(4), in5_w=>SW(7), in5_x=>SW(10), in5_y=>SW(13),

in5_s0=>SW(15), in5_s1=>SW(16), in5_s2=>SW(17), out5_m=>LEDG(1));

U3:mux51 port map (in5_u=>SW(2), in5_v=>SW(5), in5_w=>SW(8), in5_x=>SW(11), in5_y=>SW(14),

in5_s0=>SW(15), in5_s1=>SW(16), in5_s2=>SW(17), out5_m=>LEDG(2));

end structural;

part4

library ieee;

use 7-segment decoder entity

entity decoder is

port(decoder_in_3:in std_logic_vector(2 downto 0);

HEX0:out std_logic_vector(0 to 6));

end decoder;

-- a 7-segment decorder architecture

architecture behavioral of decoder is

begin

process(decoder_in_3)

begin

case decoder_in_3 is

when "000"=> HEX0<= "0001001";

when "001"=> HEX0 <= "0000110";

when "010"=> HEX0 <= "1000110";

when "011"=> HEX0 <= "1000000";

when others => Hex0 <= "1111111";

end case;

end process;

end behavioral;

part5

library ieee;

use part5 is

port(SW: in std_logic_vector(17 downto 0);

HEX0,HEX1,HEX2,HEX3,HEX4: out std_logic_vector(6 downto 0));

end part5;

architecture Behavior of part5 is

component mux51_seg7

port(Mux51_seg7_in: in std_logic_vector(17 downto 0);

Seg: out std_logic_vector(6 downto 0));

end component;

begin

U0:mux51_seg7port map(Mux51_seg7_in=>SW,Seg=>HEX0);

U1:mux51_seg7port map(Mux51_seg7_in(17 downto 15)=>SW(17 downto 15), Mux51_seg7_in(14 downto 12)=>SW(11 downto 9),

Mux51_seg7_in(11 downto 9)=>SW(8 downto 6), Mux51_seg7_in(8 downto 6)=>SW(5 downto 3),

Mux51_seg7_in(5 downto 3)=>SW(2 downto 0), Mux51_seg7_in(2 downto 0)=>SW(14 downto 12),

Seg=>HEX1);

U2:mux51_seg7port map(Mux51_seg7_in(17 downto 15)=>SW(17 downto 15), Mux51_seg7_in(14 downto 12)=>SW(8 downto 6),

Mux51_seg7_in(11 downto 9)=>SW(5 downto 3), Mux51_seg7_in(8 downto 6)=>SW(2 downto 0),

Mux51_seg7_in(5 downto 3)=>SW(14 downto 12), Mux51_seg7_in(2 downto 0)=>SW(11 downto 9),

Seg=>HEX2);

U3:mux51_seg7port map(Mux51_seg7_in(17 downto 15)=>SW(17 downto 15), Mux51_seg7_in(14 downto 12)=>SW(5 downto 3),

Mux51_seg7_in(11 downto 9)=>SW(2 downto 0), Mux51_seg7_in(8 downto 6)=>SW(14 downto 12),

Mux51_seg7_in(5 downto 3)=>SW(11 downto 9), Mux51_seg7_in(2 downto 0)=>SW(8 downto 6),

Seg=>HEX3);

U4:mux51_seg7port map(Mux51_seg7_in(17 downto 15)=>SW(17 downto 15), Mux51_seg7_in(14 downto 12)=>SW(2 downto 0),

Mux51_seg7_in(11 downto 9)=>SW(14 downto 12), Mux51_seg7_in(8 downto 6)=>SW(11 downto 9),

Mux51_seg7_in(5 downto 3)=>SW(8 downto 6), Mux51_seg7_in(2 downto 0)=>SW(5 downto 3),

Seg=>HEX4);

end Behavior;

-----------------------------------------------------------------------------------------------

-----------A circuit that can select and display one of five characters------------------------

-----------------------------------------------------------------------------------------------

library ieee;

use mux51_seg7 is

port(Mux51_seg7_in: in std_logic_vector(17 downto 0);

Seg: out std_logic_vector(6 downto 0));

end mux51_seg7;

architecture Behavior of mux51_seg7 is

component mux51_3bit

port(S, U, V, W, X, Y: in std_logic_vector(2 downto 0);

M: out std_logic_vector(2 downto 0));

end component;

component char_7seg

port(C: in std_logic_vector(2 downto 0);

Display: out std_logic_vector(6 downto 0));

end component;

signal M : std_logic_vector(2 downto 0);

begin

M0: mux51_3bit port map(Mux51_seg7_in(17 downto 15), Mux51_seg7_in(14 downto 12),Mux51_seg7_in(11 downto 9),

Mux51_seg7_in(8 downto 6),Mux51_seg7_in(5 downto 3),Mux51_seg7_in(2 downto 0),M);

H0: char_7seg port map(M, Seg);

end Behavior;

-----------------------------------------------------------------------------------------------

------------------------------a 3bit mux5-----------------------------------------

-----------------------------------------------------------------------------------------------

library ieee;

use 2 to 1 multiplexer entity

entity mux21 is

port(in_x, in_y, in_s:in std_logic;

out_m:out std_logic);

end mux21;

--a 2 to 1 multiplexer architecture

architecture structural of mux21 is

signal signal_u, signal_v:std_logic;

begin

signal_u <= in_x and (not in_s);

signal_v <= in_y and in_s ;

out_m <= signal_u or signal_v ;

end structural;

library ieee;

use 5 to 1 multiplexer entity

entity mux51 is

port(in5_u, in5_v, in5_w, in5_x, in5_y, in5_s1, in5_s2, in5_s0:in std_logic;

out5_m:out std_logic);

end mux51;

--a 5 to 1 multiplexer architecture

architecture Structural of mux51 is

component mux21

port (in_x, in_y, in_s:in std_logic;

out_m:out std_logic);

end component;

signal signal_a, signal_b, signal_c:std_logic;

begin

U1:mux21port map (in_x=>in5_u, in_y=>in5_v, in_s=>in5_s0, out_m=>signal_a);

U2:mux21port map (in_x=>in5_w, in_y=>in5_x, in_s=>in5_s0, out_m=>signal_b);

U3:mux21port map (in_x=>signal_a, in_y=>signal_b, in_s=>in5_s1, out_m=>signal_c);

U4:mux21port map (in_x=>signal_c, in_y=>in5_y, in_s=>in5_s2, out_m=>out5_m);

end Structural;

-----------------------------------------------------------------------------------------------

------------------------------a 3bit 5 to 1 multiplexer----------------------------------------

-----------------------------------------------------------------------------------------------

library ieee;

use

--a 3bit 5 to 1 multiplexer entity

entity mux51_3bit is

port(S, U, V, W, X, Y: in std_logic_vector (2 downto 0);

M: out std_logic_vector (2 downto 0));

end mux51_3bit;

--a 3bit 5 to 1 multiplexer architecture

architecture structural of mux51_3bit is

component mux51

port(in5_u, in5_v, in5_w, in5_x, in5_y, in5_s1, in5_s2, in5_s0:in std_logic;

out5_m:out std_logic);

end component;

begin

U1:mux51 port map (in5_u=>U(0), in5_v=>V(0), in5_w=>W(0), in5_x=>X(0), in5_y=>Y(0),

in5_s0=>S(0), in5_s1=>S(1), in5_s2=>S(2), out5_m=>M(0));

U2:mux51 port map (in5_u=>U(1), in5_v=>V(1), in5_w=>W(1), in5_x=>X(1), in5_y=>Y(1),

in5_s0=>S(0), in5_s1=>S(1), in5_s2=>S(2), out5_m=>M(1));

U3:mux51 port map (in5_u=>U(2), in5_v=>V(2), in5_w=>W(2), in5_x=>X(2), in5_y=>Y(2),

in5_s0=>S(0), in5_s1=>S(1), in5_s2=>S(2), out5_m=>M(2));

end structural;

-----------------------------------------------------------------------------------------------

------------------------------a 7-segment decoder----------------------------------------------

-----------------------------------------------------------------------------------------------

library ieee;

use 7-segment decoder entity

entity char_7seg is

port(C:in std_logic_vector(2 downto 0);

Display:out std_logic_vector(6 downto 0));

end char_7seg;

-- a 7-segment decorder architecture

architecture behavioral of char_7seg is

begin

process(C)

begin

case C is

when "000"=> Display <= "0001001";

when "001"=> Display <= "0000110";

when "010"=> Display <= "1000111";

when "011"=> Display <= "1000000";

when others => Display <= "1111111";

end case;

end process;

end behavioral;

part6

--------------------------------------------------------------------------------------------

------------------Rotating the word HELLO on eight

--SW(17~15): select

--SW(14~12): H

--SW(11~9):E

--SW(8~6):L

--SW(5~3):O

--SW(2~0):none

---------------------------------------------------------------------------------------------

library ieee;

use part6 is

port(SW: in std_logic_vector(17 downto 0);

HEX0,HEX1,HEX2,HEX3,HEX4,HEX5,HEX6,HEX7: out std_logic_vector(6 downto 0)); end part6;

architecture Behavior of part6 is

component mux81_seg7

port(S, D0, D1, D2, D3, D4, D5, D6, D7: in std_logic_vector(2 downto 0);

Seg: out std_logic_vector(6 downto 0));

end component;

begin

U0:mux81_seg7port map(S=>SW(17 downto 15),D0=>SW(2 downto 0),D1=>SW(2 downto 0),D2=>SW(2 downto 0),D3=>SW(14 downto 12),

D4=>SW(11 downto 9),D5=>SW(8 downto 6),D6=>SW(8 downto 6),D7=>SW(5 downto 3),Seg=>HEX0);

U1:mux81_seg7port map(S=>SW(17 downto 15),D0=>SW(2 downto 0),D1=>SW(2 downto 0),D2=>SW(14 downto 12),D3=>SW(11 downto 9),

D4=>SW(8 downto 6),D5=>SW(8 downto 6),D6=>SW(5 downto 3),D7=>SW(2 downto 0),Seg=>HEX1);

U2:mux81_seg7port map(S=>SW(17 downto 15),D0=>SW(2 downto 0),D1=>SW(14 downto 12),D2=>SW(11 downto 9),D3=>SW(8 downto 6),

D4=>SW(8 downto 6),D5=>SW(5 downto 3),D6=>SW(2 downto 0),D7=>SW(2 downto 0),Seg=>HEX2);

U3:mux81_seg7port map(S=>SW(17 downto 15),D0=>SW(14 downto 12),D1=>SW(11 downto 9),D2=>SW(8 downto 6),D3=>SW(8 downto 6),

D4=>SW(5 downto 3),D5=>SW(2 downto 0),D6=>SW(2 downto 0),D7=>SW(2 downto 0),Seg=>HEX3);

U4:mux81_seg7port map(S=>SW(17 downto 15),D0=>SW(11 downto 9),D1=>SW(8 downto 6),D2=>SW(8 downto 6),D3=>SW(5 downto 3),

D4=>SW(2 downto 0),D5=>SW(2 downto 0),D6=>SW(2 downto 0),D7=>SW(14 downto 12),Seg=>HEX4);

U5:mux81_seg7port map(S=>SW(17 downto 15),D0=>SW(8 downto 6),D1=>SW(8 downto 6),D2=>SW(5 downto 3),D3=>SW(2 downto 0),

D4=>SW(2 downto 0),D5=>SW(2 downto 0),D6=>SW(14 downto 12),D7=>SW(11 downto 9),Seg=>HEX5);

U6:mux81_seg7port map(S=>SW(17 downto 15),D0=>SW(8 downto 6),D1=>SW(5 downto 3),D2=>SW(2 downto 0),D3=>SW(2 downto 0),

D4=>SW(2 downto 0),D5=>SW(14 downto 12),D6=>SW(11 downto 9),D7=>SW(8 downto 6),Seg=>HEX6);

U7:mux81_seg7port map(S=>SW(17 downto 15),D0=>SW(5 downto 3),D1=>SW(2 downto 0),D2=>SW(2 downto 0),D3=>SW(2 downto 0),

D4=>SW(14 downto 12),D5=>SW(11 downto 9),D6=>SW(8 downto 6),D7=>SW(8 downto 6),Seg=>HEX7);

end Behavior;

-----------------------------------------------------------------------------------------------

-----------A circuit that can select and display one of eight characters-----------------------

-----------------------------------------------------------------------------------------------

library ieee;

use mux81_seg7 entity

entity mux81_seg7 is

port(S, D0, D1, D2, D3, D4, D5, D6, D7: in std_logic_vector(2 downto 0);

Seg: out std_logic_vector(6 downto 0));

end mux81_seg7;

--the mux81_seg7 architecture

architecture Behavior of mux81_seg7 is

component mux81_3bit

port(S, D0, D1, D2, D3, D4, D5, D6, D7: in std_logic_vector(2 downto 0);

M: out std_logic_vector(2 downto 0));

end component;

component char_7seg

port(C: in std_logic_vector(2 downto 0);

Display: out std_logic_vector(6 downto 0));

end component;

signal M1 : std_logic_vector(2 downto 0);

begin

M0: mux81_3bit port map(S, D0, D1, D2, D3, D4, D5, D6, D7,M1);

H0: char_7seg port map(M1, Seg);

end Behavior;

-----------------------------------------------------------------------------------------------

------------------------------a 3bit mux8-----------------------------------------

-----------------------------------------------------------------------------------------------

library ieee;

use 3bit multiplexer 8 to 1 entity

entity mux81_3bit is

port(S, D0, D1, D2, D3, D4, D5, D6, D7: in std_logic_vector(2 downto 0);

M: out std_logic_vector(2 downto 0));

end mux81_3bit;

--a 3bit multiplexer 8 to 1 architecture

architecture behavioral of mux81_3bit is

begin

with S select

M <= D0when "000",

D1 when "001",

D2 when "010",

D3 when "011",

D4 when "100",

D5 when "101",

D6 when "110",

D7 when "111",

"ZZZ"when others;

end behavioral;

-----------------------------------------------------------------------------------------------

------------------------------a 7-segment decoder---------------------------------------------- ----------------------------------------------------------------------------------------------- library ieee;

use 7-segment decoder entity

entity char_7seg is

port(C:in std_logic_vector(2 downto 0);

Display:out std_logic_vector(6 downto 0));

end char_7seg;

-- a 7-segment decorder architecture

architecture behavioral of char_7seg is

begin

process(C)

begin

case C is

when "000"=> Display <= "0001001";

when "001"=> Display <= "0000110";

when "010"=> Display <= "1000111";

when "011"=> Display <= "1000000";

when others => Display <= "1111111";

end case;

end process;

end behavioral;

(最新版)南京理工大学EDA设计实验报告

摘要 通过实验学习和训练,掌握基于计算机和信息技术的电路系统设计和仿真方法。要求:1. 熟悉Multisim软件的使用,包括电路图编辑、虚拟仪器仪表的使用和掌握常见电路分析方法。2. 能够运用Multisim软件对模拟电路进行设计和性能分析,掌握EDA设计的基本方法和步骤。Multisim常用分析方法:直流工作点分析、直流扫描分析、交流分析。掌握设计电路参数的方法。复习巩固单级放大电路的工作原理,掌握静态工作点的选择对电路的影响。了解负反馈对两级放大电路的影响,掌握阶梯波的产生原理及产生过程。 关键字:电路仿真 Multisim 负反馈阶梯波 目次 实验一 (1) 实验二.............................................................................................11实验三 (17)

实验一单级放大电路的设计与仿真 一、实验目的 1.设计一个分压偏置的单管电压放大电路,要求信号源频率5kHz(峰值10mV) , 负载电阻5.1kΩ,电压增益大于50。 2.调节电路静态工作点(调节电位计),观察电路出现饱和失真和截止失真的输 出信号波形,并测试对应的静态工作点值。 3.调节电路静态工作点(调节电位计),使电路输出信号不失真,并且幅度尽可 能大。在此状态下测试: ①电路静态工作点值; ②三极管的输入、输出特性曲线和β、r be 、r ce值; ③电路的输入电阻、输出电阻和电压增益; ④电路的频率响应曲线和f L、f H值。 二、实验要求 1.给出单级放大电路原理图。 2.给出电路饱和失真、截止失真和不失真且信号幅度尽可能大时的输出信号波 形图,并给出三种状态下电路静态工作点值。 3.给出测试三极管输入、输出特性曲线和β、r be 、r ce值的实验图,并给出 测试结果。 4.给出正常放大时测量输入电阻、输出电阻和电压增益的实验图,给出测试结 果并和理论计算值进行比较。 5.给出电路的幅频和相频特性曲线,并给出电路的f L、f H值。 6.分析实验结果。 三、实验步骤 实验原理图:

南京理工大学EDA1实验报告(模电部分)

南京理工大学EDA课程设计(一) 实验报告 专业:自动化 班级: 姓名: 学号: 指导老师: 2013年10月

摘要 在老师的悉心指导下,通过实验学习和训练,我已经掌握基了于Multisim的电路系统设计和仿真方法。在一周的时间内,熟悉了Multisim软件的使用,包括电路图编辑、虚拟仪器仪表的使用和掌握常见电路分析方法。能够运用Multisim软件对模拟电路进行设计和性能分析,掌握EDA设计的基本方法和步骤。 实验一:单级放大电路的仿真及设计,设计一个分压偏置的单管电压放大电路,并进行测试与分析,主要测试最大不失真时的静态工作点以及上下限频率。 实验二:负反馈放大电路的设计与仿真,设计一个阻容耦合两级电压放大电路,给电路引入电压串联深度负反馈,,观察负反馈对电路的影响。 实验三:阶梯波发生器的设计与仿真,设计一个能产生周期性阶梯波的电路,对电路进行分段测试和调节,直至输出合适的阶梯波。改变电路元器件参数,观察输出波形的变化,确定影响阶梯波电压范围和周期的元器件。 关键词:EDA设计及仿真multisim 放大电路反馈电路阶梯波发生器

实验一:单级放大电路的仿真及设计 一、实验要求 1、设计一个分压偏置的单管电压放大电路,要求信号源频率5kHz(峰值10mV) ,负载电阻5.1kΩ,电压增益大于50。 2、调节电路静态工作点(调节电位计),观察电路出现饱和失真和截止失真的输出信号波形,并测试对应的静态工作点值。 3、调节电路静态工作点(调节电位计),使电路输出信号不失真,并且幅度最大。在此状态下测试: (1)电路静态工作点值; (2)三极管的输入、输出特性曲线和 、r be 、r ce值; (3)电路的输入电阻、输出电阻和电压增益; (4)电路的频率响应曲线和f L、f H值。 二、实验步骤 1、设计分压偏置的单级放大电路如图1-1所示: 图1-1、单级放大电路原理图

8位全加器实验报告

实验1 原理图输入设计8位全加器 一、实验目的: 熟悉利用QuartusⅡ的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个8位全加器的设计把握利用EDA软件进行电子线路设计的详细流程。 二、原理说明: 一个8位全加器可以由8个1位全加器构成,加法器间的进位可以串行方式实现。即将低位加法器的进位输出cout与其相邻的高位加法器的最低进位输入信号cin相接。而一个1位全加器可以按照本章第一节介绍的方法来完成。 三、实验内容: 1:完全按照本章第1节介绍的方法与流程,完成半加器和全加器的设计,包括原理图输入、编译、综合、适配、仿真。 2:建立一个更高的原理图设计层次,利用以上获得的1位全加器构成8位全加器,并完成编译、综合、适配、仿真和硬件测试。 四、实验环境: 计算机、QuartusII软件。 五、实验流程: 实验流程: 根据半加器工作原 理,建立电路并仿 真,并将元件封装。 ↓ 利用半加器构成一位 全加器,建立电路并 仿真,并将元件封 装。 ↓ 利用全加器构成8位全 加器,并完成编译、综 合、适配、仿真。 图1.1 实验流程图

六、实验步骤: 1.根据半加器工作原理建立电路并仿真,并将元件打包。(1)半加器原理图: 图1.2 半加器原理图(2)综合报告: 图1.3 综合报告: (3)功能仿真波形图4: 图1.4 功能仿真波形图

时序仿真波形图: 图1.5 时序仿真波形图 仿真结果分析:sout为和信号,当a=1,b=0或a=0,b=1时,和信号sout为1,否则为0.当a=b=1时,产生进位信号,及cout=1。 (4)时序仿真的延时情况: 图1.6 时序仿真的延时情况 (5)封装元件: 图1.7 元件封装图 2. 利用半加器构成一位全加器,建立电路并仿真,并将元件封装。 (1)全加器原理图如图: 图2.1 全加器原理图

南京理工大学EDA设计(1) 优秀

南京理工大学EDA设计(Ⅰ) 实验报告 作者: 学号: 学院(系): 专业: 吴少琴 指导老师: 实验日期: 10.27 - 10.30 2014 年 11 月

摘要 本次EDA实验主要由四个实验组成,分别是单级放大电路的设计与仿真、差动放大电路的设计与仿真、负反馈放大电路的设计与仿真、阶梯波发生器电路的设计。通过电路的设计和仿真过程,进一步强化对模拟电子线路知识的理解和应用,增强实践能力和对仿真软件的运用能力。 关键词 EDA 设计仿真

目录 实验一单级放大电路的设计与仿真 (1) 实验二差动放大电路的设计与仿真 (11) 实验三负反馈放大电路的设计与仿真 (18) 实验四阶梯波发生器电路的设计 (29) 总结 (42) 参考文献 (42)

实验一单级放大电路的设计与仿真 一、实验目的 1、掌握放大电路静态工作点的调试方法。 2、掌握方法电路在不失真状态下电路参数的计算方法。 3、掌握放大电路饱和失真和截止失真时的波形状态并了解其形成原因。 4、观察静态工作点的选择对输出波形及电压放大倍数的影响。 二、实验要求 1.设计一个分压偏置的单管电压放大电路,要求信号源频率10kHz(峰值5mV) ,负载电阻8kΩ,直流供电电源为12V。要求设计指标为电压增益50至100倍之间,带宽大于1MHz。 2.调节电路静态工作点(调节偏置电阻),观察电路出现饱和失真和截止失真的输出信号波形,并测试对应的静态工作点值。 3.调节电路静态工作点(调节偏置电阻),使电路输出信号不失真,并且幅度最大。在此状态下测试: ①电路静态工作点值; ②三极管的输入、输出特性曲线和 、r be、r ce值; ③电路的输入电阻、输出电阻和电压增益; ④电路的频率响应曲线和f L、f H值。 三、实验步骤 (一)单级放大电路原理图

EDA 1位全加器实验报告

南华大学 船山学院 实验报告 (2009 ~2010 学年度第二学期) 课程名称EDA 实验名称1位全加器 姓名学号200994401 专业计算机科学与 班级01 技术 地点8-212 教师

一、实验目的: 熟悉MAX+plus 10.2的VHDL 文本设计流程全过程 二、实验原理图: ain cout cout ain bin sum cin bin sum cin f_adder or2a f e d u3 u2u1b a c co so B co so B h_adder A h_adder A 三、实验代码: (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);

南理工EDA2多功能数字钟设计实验报告(蒋立平)——优秀

EDAⅡ实验报告 --多功能数字钟 学院专业: 学生学号: 指导老师:蒋立平 交稿时间:2012年3月25日

摘要 本实验借助于quartusⅡ软件设计一个多功能的数字时钟,具有24小时计时、星期显示、保持、清零、校分校时校星期、整点报时等基本功能,并在此基础上添加了闹钟、音乐闹钟、秒表等附加功能。同时,留有万年历的接口可以方便的进行扩展。.利用quartusⅡ进行相应的设计、仿真、调试,最后下载到SmartSOPC实验系统上验证设计的正确性。 关键词:多功能数字时钟,quartusⅡ,计时,星期显示,整点报时,闹钟,秒表 ABSTRACT This experiment is to design a multifunctional digital clock with quartus Ⅱ.The multifunctional digital clock has varities of the functions like 24-hour timer,week,keeping,clearing zero,adjusting time and chime on integral hour .It also include additional functions such as alarm clock,stopwatch and so on.At the sametimes,it can be added calendar.we designed and simulated with quartusⅡ.Finally downloaded it to the experiment platform to test. Key words:multifunctional digital clock,quartusⅡ,time,week,chime on integral hour, alarm clock,stopwatch

南京理工大学EDA(1)实验报告

EDA设计(一)实验报告

实验一单级放大电路的设计与仿真 一.实验要求 设计一个分压偏置的单管电压放大电路,要求信号源频率5kHz(峰值10mV) ,负载电阻5.1kΩ,电压增益大于50。 调节电路静态工作点(调节电位计),观察电路出现饱和失真和截止失真的输出信号波形,并测试对应的静态工作点值。 调节电路静态工作点(调节电位计),使电路输出信号不失真,并且幅度最大。在此状态下测试: 1、电路静态工作点值; 2、三极管的输入、输出特性曲线和 、 Rbe 、Rce值; 3、电路的输入电阻、输出电阻和电压增益; 4、电路的频率响应曲线和fL、fH值。 二.实验原理 三极管在工作正常放大区时,可以起到放大的作用。但三极管工作在放大区的前提是直流电源为三极管提供合适的静态工作点。如果三极管的静态工作点不合适,则会导致放大出现饱和或截至失真,而不能正常放大。 当三极管工作在合适的静态点时,三极管有电压放大的作用。此时表征放大电路的交流参数为输入电阻,输出电阻以及电压放大倍数。 由于电路中有电抗元件电容,另外三极管PN结也有等效电容的作用,所以,对于不同频率的交流输入信号,电路的电压放大倍数是不同的。电压放大倍数与频率的关系定义为频率特性。

三.单级放大电路原理图 四.实验步骤 1.调节电路静态工作点(调节电位计Rw),用示波器观察电路出现饱和失真、截止失真和使电路输出信号不失真(并且幅度最大)时输出信号波形,并测试对应的静态工作点值。 (1)当电位计R w为0%时(即滑动变阻器取0欧姆时)电路出现饱和失真; 饱和失真波形为下图:

由波形图可以看出波形的下部明显被削平,波形处于失真状态,因此可得到饱和失真有削底现象。 此时,电路饱和失真时的静态工作点值为: 即管压降ce V =0.1V ,be U =0.659V ,基极电流b I =0.13mA ,集电极电流c I =3mA 。 根据以上数据可分析得ce V

EDA课程设计----八位二进制全加器

EDA设计说明书 课程名称:EDA技术实用教程 设计题目:八位二进制全加器 院系:电子信息与电气工程学院学生姓名: 学号: 专业班级: 指导教师:李响 2011 年6 月1

1. 设计目的 熟悉利用QuartusⅡ的原理图输入法设计简单的组合电路,掌握层次化设计的方法,并通过一个八位全加器的设计把握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。 2. 设计原理 2.1 一位全加器的原理 一位全加器可以用两个半加器及一个或门连接而成,因此需要首先完成半加器的设计。在本设计中,将采用原理图输入法来完成设计。 一位全加器的设计步骤: ①为本项工程设计建立文件夹; ②输入设计项目和存盘; ③将设计项目设计成可调用的元件; ④设计全加器顶层文件; ⑤将设计项日设置成工程和时序仿真。 2.2 八位全加器的原理 一个八位全加器可以由八个一位全加器构成,加法器之间的进位可以用串行方式实现,即将低位加法器的进位输出cout 与相邻的高位加法器的最低进位输入信号cin 相接。 3. 设计方案与仿真 3.1 一位全加器的设计与仿真 全加器的实现是以半加器的实现为基础的,因此,要设计全加器应首先设计一个一位的半加器。半加器的实现方案为: ①为此项工程建立文件夹; ②在基本元件库中,选中需要的元件,将元件(包含元件and2、not 、xnor 和输 入输出引脚input、output)调入原理图编辑窗口中;

③将己设计好的原理图文件存盘; ④将所设计的半加器设置成可调用的元件。 用原理图输入法所设计的半加器原理图如图3-1所示,利用QuartusⅡ软件平台,根据图3-1所示电路,可生成一个半加器元件符号,如图3-2所示。在半加器的基础上,为了建立全加器的顶层文件,必须再打开一个原理图编辑窗口,方法同上。其中,所选择的元件包含半加器、或门和输入输出引脚,由此可得到如图3-3所示的全加器原理图;进而可生成个全加器元件符号,如图3-4所示。 图3-1 半加器原理图图3-2 半加器元件符号 图3-3 全加器原理图图3-4 全加器元件符号按照一位全加器原理图连接电路,通过编译、仿真所得的波形图如图3-5所示: 图3-5 一位全加器时序仿真波形 根据图3-5可知,当输入信号ain 、bin 、cin 全是低电平时,输出信号sum 和cout 全是低电平;当输入信号ain 、bin 、cin 中有且只有一个为高电平时,输出信号sum 为高电平,输出信号cout 为低电平;当输入信号ain 、bin 、cin 中有两个为

格雷码、二进制转换电路,vhdl南京理工大学紫金学院实验报告,eda

EDA技术与应用 实验报告 实验名称:格雷码、二进制转换电路 姓名: 学号: 班级:通信 时间:2013 南京理工大学紫金学院电光系

实验目的 1)学习用VHDL代码描述组合逻辑电路的方法。 2)掌握whe n…else…和gen erate 并行语句的使用。 实验原理 1、格雷码、二进制码转换理论分析 4位格雷码二进制转换的真值表如图1。 G5G1Gi G*Bi Bl RO fl Q Q U Q V Q0 0V D丄b a01 €0110Q i0 01e0a*1 打1100100 1110101 亦1G10110 416011ft 110]a00 t10丄1001 11111Q10 111u1a I] 10101140 10111101 10611110 i4001i11 图14 由真值表得到的表达式如下: B3 G3 B2 B3 G2 B1 B2 G1 BO B1 G0 对于n位二进制码转换为格雷码的码转换电路,转换表达式如下: g n a n g i a i 1 a i 2、GENERIC GENERAT语句 a、GENERIC GENERIC被称为参数传递映射语句,它描述响应的元件类属参数间的衔接和传送方式。 参数传递语句用于设计从外部端口改变原件内部参数或结构规模的元件,也可称其为类书元件。该语句在改变电路结构或元件硬件升级方面显得尤为便捷。

其语句格式为: generic map(param.list)port map(port list); 例:generic(n:integer:=7); 该语句定义了参数N为整数,且赋值为7。 b、GENERAT语句 电路某部分由同类元件构成,这类同类元件叫做规则结构,如:ROM,RA,M 移位寄存器 等规则结构可以用生成语句来描述。生成语句可以用for_generate 语句描述。 其书写格式如下: 标号:for 循环变量in 离散范围generate 并行处理语句; end generate 标号; 其中,标号是for_generate 语句的唯一标识符,是可选项;循环变量的值在每一次循环中都发生变化;离散范围用来指定变量循环的取值范围,循环变量实际上规定了循环的次数;循环变量每去一个只就执行一次并行语句。 该语句和for_loop 语句很类似,但是二者也有一定的区别。For_generate 语句中执行的语句为并行语句,而for_loop 语句中执行的语句为顺序语句。 三、实验内容 1、建立工程、输入代码先建立工程,工程命名为“ b_to_g ”, 顶层文件名为“ b_to_g ”。 选择“ File->New ”,在弹出的窗口中选择“ VHDL File ”建立“ VHDL文件。在新建的VHDL文件中输入格雷码、二进制码转换的VHDL代码。将文件保存。 代码如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity b_to_g is generic(n:integer:=7); port(b:in std_logic_vector(n downto 0); g:buffer std_logic_vector(n downto 0)); end; architecture rhg of b_to_g is begin g(n)<=b(n); b1:for i in 0 to n-1 generate g(i)<=b(i+1) xor b(i); end generate b1; end;

eda实验报告

一位全加器 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; -- Uncomment the following lines to use the declarations that are -- provided for instantiating Xilinx primitive components. --library UNISIM; --use UNISIM.VComponents.all; entity adder is port(a,b,cin:in std_logic; co,so:out std_logic); end adder; architecture Behavioral of adder is signal temp1,temp2:std_logic; begin temp1<= a xor b; temp2<= temp1 and cin; so<= temp1 xor cin; co<= temp2 OR (a AND b); end Behavioral; 四位全加器 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; -- Uncomment the following lines to use the declarations that are -- provided for instantiating Xilinx primitive components. --library UNISIM; --use UNISIM.VComponents.all; entity counter10 is

单级放大电路,南京理工大学紫金学院eda实验报告

EDA(二)模拟部分电子线路仿真实验报告 实验名称:单级放大电路 姓名: 学号: 班级:通信 时间: 2013.4 南京理工大学紫金学院电光系

一.实验目的 1.三极管输入输出特性曲线分析; 2.掌握放大电路静态工作点的测试方法; 3.掌握放大电路动态参数的测试方法; 4.静态工作点对动态参数的影响以及失真分析 二、实验原理 分析静态工作点一般采用估算法求解,其步骤为: (1)画出电路的直流通路 (2)选择回路计算基极电位V B (3)选择合适的回路计算I E、I B、U CE 利用软件有两种方法求得电路的静态工作点,一种用万用表测量,另一种利用DC Operating Point仿真手段来得到。 放大电路的动态分析主要分析电路三个参量Au、Ri、Ro,首先应画出微变等效电路图。 三.实验内容 2.1 1.电路图

2、静态分析 理论分析:步骤 1.画出电路的直流通路 2.选择回路计算基极电位V B 3.选择合适的回路计算I E ,I B ,U CE 所用分压偏置电路直流通路如图所示:

基极电流I B 很小,故I B <

EDA技术基础实验报告

EDA技术基础实验报告 学院:信息科学与技术学院 班级: 姓名: 学号:

实验一 MAX—plusII及开发系统使用 一、实验目的 1、熟悉利用MAX-plusⅡ的原理图输入方法设计简单的组合电路 2、掌握层次化设计的方法 3、熟悉DXT-BⅢ型EDA试验开发系统的使用 二、主要实验设备 PC 机一台(中档以上配置),DXT-B3 EDA实验系统一台。 三、实验原理 数字系统设计系列实验是建立在数字电路基础上的一个更高层次的设计性实验。它是借助可编程逻辑器件(PLD),采用在系统可编程技术(ISP),利用电子设计自动化软件(EDA),在计算机(PC)平台上进行的。 因为本实验是在计算机平台上进行,因此实验方式,实验手段和实验仪器与传统的实验有很大的区别,主要体现在以下几个方面: 1、实验器材集中化,所有实验基本上在一套实验设备上进行。 传统的实验每作完一个实验,实验器材基本上都要变动(个别除外)。而做本实验时,只要在计算机上把不同的程序输进去,其它步骤所有实验都一致; 2、实验耗材极小(基本上没有耗材); 3、在计算机上进行,自动化程度高,人机交互性好,修改、验证实验简单; 4、下载后,实验结果清晰; 5、实验仪器损耗少,维护简单; 下面,就本套实验设备做一个简单的介绍。 1、Max+PlusII软件的安装步骤: 第一步:系统要求 奔3CPU以上,128M内存以上,4G 以上硬盘,98 操作系统(98或Me操作系统才可以下载,其他操作系统下载必须安装驱动,否则只能仿真,如果只是进行仿真的话,对系统没要求) 第二步:安装 点击安装可执行文件进行安装,安装完毕后会弹出一对话框,点击是或否都可以。 第三步:将安装文件夹中的License 文件夹打开,里面有一个License.bat 注册文件,

南京理工大学EDA设计 多功能数字钟的设计

EDA数字钟的设计 指导老师:谭雪琴 姜萍 姓名:张羊 学院:电子工程与光电技术学院专业:真空电子技术 学号:0804620127 完成时间:2011年4月

目录: 一.设计要求……………………………………………………………… 二.方案论证……………………………………………………………… 三.子模块设计…………………………………………………………… 1.频率源设计…………………………………………………………… ①模48计数器的设计……………………………………………… ②模1000计数器的设计…………………………………………… ③模2计数器的设计……………………………………………… ④ 1KHZ脉冲的设计………………………………………………… ⑤ 500HZ脉冲的设计……………………………………………… ⑥ 1HZ脉冲的设计………………………………………………… 2.计数部分电路设计…………………………………………………… ①模60计数器的设计……………………………………………… ②模24计数器的设计……………………………………………… ③计数器的设计…………………………………………………… 3.清零和保持电路的设计………………………………………………

4.校分和校时电路的设计……………………………………………… 5.报时电路的设计……………………………………………………… 6.显示电路的设计……………………………………………………… ①模6计数器的设计……………………………………………… ② 24选4(或六选一)数据选择器的设计………………………… ③动态显示设计…………………………………………………… 7.最终总体电路………………………………………………………… 四.附加闹铃功能………………………………………………………… ①频率源的设计…………………………………………………… ②闹铃的设计………………………………………………………五.编程下载……………………………………………………………… 六.实验总结和感受………………………………………………………七.参考文献………………………………………………………………

EDA实验报告

一MAX –plusII及开发系统使用 一、实验目的 1、熟悉利用MAX-plusⅡ的原理图输入方法设计简单的组合电路 2、掌握层次化设计的方法 3、熟悉DXT-BⅢ型EDA试验开发系统的使用 二、主要实验设备 PC 机一台(中档以上配置),DXT-B3 EDA实验系统一台。 三、实验原理 数字系统设计系列实验是建立在数字电路基础上的一个更高层次的设计性实验。它是借助可编程逻辑器件(PLD),采用在系统可编程技术(ISP),利用电子设计自动化软件(EDA),在计算机(PC)平台上进行的。 因为本实验是在计算机平台上进行,因此实验方式,实验手段和实验仪器与传统的实验有很大的区别,主要体现在以下几个方面: 1、实验器材集中化,所有实验基本上在一套实验设备上进行。 传统的实验每作完一个实验,实验器材基本上都要变动(个别除外)。而做本实验时,只要在计算机上把不同的程序输进去,其它步骤所有实验都一致; 2、实验耗材极小(基本上没有耗材); 3、在计算机上进行,自动化程度高,人机交互性好,修改、验证实验简单;

4、下载后,实验结果清晰; 5、实验仪器损耗少,维护简单; 下面,我们就本套实验设备做一个简单的介绍。 (一)Max+plusⅡ10.0的使用。 1、Max+PlusII软件的安装步骤: 第一步:系统要求 奔3CPU以上,128M内存以上,4G 以上硬盘,98 操作系统(98或Me操作系统才可以下载,其他操作系统下载必须安装驱动,否则只能仿真,如果大家只进行仿真的话,对系统没要求) 第二步:安装 点击安装可执行文件进行安装,安装完毕后会弹出一对话框,点击是或否都可以。 第三步:将安装文件夹中的License 文件夹打开,里面有一个License.bat 注册文件,将此文件复制到你的安装目录下(你的安装目录可放在任一个驱动器下,然后建立一个Max10的文件夹,将系统安装在此文件夹中,安装后此文件夹中会有三个文件夹)的任一个文件夹中,要清楚位置。 第四步:注册 启动Max+PlusII 软件,可以从开始-->程序-->Altera-->Max+PlusII 打开,也可以建立一个快捷方式在桌面上。启动软件后, 会有弹出一个对话框,点击是或否都可以,然 后进入系统。点击菜单中的Options,然后选 中License菜单项,打开弹出一个注册对话框, 在注册文件路径中打开你第三步中复制位置的 License 文件,然后点击OK,注册完毕。 2、 max+plusⅡ软件基本设计流程

南京理工大学数字计时器设计实验报告EDA

数字计时器设计实验报告 姓名:XX 学号:10042104XX 班级:10042104 实验时间:2012年9月17日

目录1 摘要2 关键词2 正文2 实验目2 电路功能设计要求2 设计内容简介3 设计原理3 秒脉冲发生电路3 计时电路5 译码显示电路6 清零电路7 校分电路8 报时电路8 实验中遇到的问题和解决方法10 附录11 参考文献11 电路总图11 元件清单11 芯片引脚图和功能表12

摘要:本次实验分部设计时钟产生电路、计数电路、显示和驱动电路、快速循环校分、开机或手动清零电路、报时电路并分别调试,最终组合测试的方式完成了9:59秒(循环)计时电路的设计.按设计实验完成之后可以实现多种功能.本文介绍了各个部分的功能,阐述了设计方法并且展示了线路布局. 关键词:计数七段显示时钟清零 正文: 一.实验目的 1.掌握常规电子器件的使用方法,了解各个器件的参数; 2.初步了解电子功能器件的按功能分部设计方法. 二.电路功能设计要求 1、设计制作一个0分00秒~9分59秒的多功能计时器,设计要求如下: a.设计一个脉冲发生电路,为计时器提供秒脉冲(1HZ),为报时电路提供驱动蜂鸣 器的高低脉冲信号(1KHZ、2KHZ); b.设计计时电路:完成0分00秒~9分59秒的计时、译码、显示功能; c.设计清零电路:具有开机自动清零功能,并且在任何时候,按动清零开关,可以对计 时器进行手动清零. d.设计校分电路:在任何时候,拨动校分开关,可进行快速校分.(校分隔秒) e.设计报时电路:使数字计时器从9分53秒开始报时,每隔一秒发一声,共发三声低 音,一声高音;即9分53秒、9分55秒、9分57秒发低音(频率1kHz),9分59秒发高音(频率2kHz); f.系统级联.将以上电路进行级联完成计时器的所有功能.

EDA 实验报告

4-1 组合电路设计 实验目的:熟悉Quartus2的VHDL文本设计流程全过程,学习简单的组合电路的设计,多层次电路设计、仿真、和硬件测试。 实验任务1:利用软件完成二选一多路选择器的文本编辑和仿真测试等步骤,给出仿真波形,最后在实验系统上进行硬件测试,验证功能。然后,利用元件例化语句描述图3-31,并将此文件放在同一目录下。 实验任务2:利用刚刚完成的实验内容,设计完成一位全加器,仿真该全加器,得到仿真结果,并利用一位二进制全加器为基本元件,用例化语句写出八位并行二进制全加器的顶层文件,讨论该加法器的电路特性。 实验代码及仿真结果: 二选一多路选择器: library ieee; use ieee.std_logic_1164.all; entity mux21a is port(a,b,s: in std_logic; y:out std_logic ); 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; 仿真结果: 分析: 1、s对电路的输出具有决定作用,s为0时输出为a的值,为1时输出为b的值。从仿真 结果可以看出0到10ns内,s为0,此时y的输出为0,是a的值。 2、10到20ns时间内,s为1,输出为b的值,y为1。 图3-31的仿真仿真程序: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity singt is port(a:in std_logic_vector(3 downto 1); s:in std_logic_vector(1 downto 0); outy: out std_logic); end singt; architecture bhv of singt is component mux21a

南理工EDA2 DDS实现 基于quartus

一、设计内容简介 DDS即Direct Digital Synthesizer数字合成器,是一种基于全数字技术从相位概念出发直接合成所需波形的一种频率合成技术。具有相对带宽大,频率转换时间短,分辨力高,相位连续性好等优点,很容易实现频率相位和幅度的数控调制,广泛应用于通讯领域。本实验是设计一个频率和相位均可控制的具有正弦和余弦输出的直接数字频率合成器。 二、设计目的 1·学习运用EDA技术,使用FPGA实现直接数字频率合成器(DDS)。 2·熟悉掌握QuartusⅡ软件的使用方法。 3·熟悉掌握各芯片的逻辑功能及使用。 4·了解下载板结构及其引脚分配。 5·提高动手能力以及提出问题分析问题解决问题的能力。 三、实验设计要求 (1)设计基本要求 1、利用QuartusII软件和SmartSOPC实验箱实现DDS的设计; 2、DDS中的波形存储器模块用Altera公司的Cyclone系列FPGA芯片中的RAM实现,RAM结构配置成212×10类型; 3、具体参数要求:频率控制字K取4位;基准频率fc=1MHz,由实验板上的系统时钟分频得到; 4、系统具有使能功能; 5、利用实验箱上的D/A转换器件将ROM输出的数字信号转换为模拟信号,能够通过示波器观察到正弦波形; 6、通过开关(实验箱上的Ki)输入DDS的频率和相位控制字,并能用示波器观察加以验证; (2)设计提高部分要求 1、通过按键(实验箱上的Si)输入DDS的频率和相位控制字,以扩大频率控制和相

位控制的范围;(注意:按键后有消颤电路) 2、能够同时输出正余弦两路正交信号; 3、在数码管上显示生成的波形频率; 4、充分考虑ROM结构及正弦函数的特点,进行合理的配置,提高计算精度; 5、设计能输出多种波形(三角波、锯齿波、方波等)的多功能波形发生器; 6、基于DDS的AM调制器的设计; 7、自己添加其他功能。 四、实验设计原理 直接数字频率合成器(Direct Digital Frequency Synthesizer)是一种基于全数字技术,从相位概念出发直接合成所需波形的一种频率合成技术。工作原理是:先将已经数字化的正弦波(或三角波、方波)信号的幅值数据存储在波形存储器ROM 或RAM 中,然后在标准时钟的作用下,通过控制电路按照一定的地址关系从ROM 中读出来,送入D/A转换为模拟波形,再通过低通滤波器,将D/A输出波形上的阶梯和毛刺滤除,即可获得所需波形的模拟信号。整体电路工作原理图如下图所示。 DDS工作流程示意图如下图所示。 (1)频率预置与调节电路 作用:实现频率控制量的输入;不变量K被称为相位增量,也叫频率控制字。 (2)累加器

EDA实验报告

EDA 实验 实验一 用原理图输入法设计半加器 一、实验目的: 1.熟悉利用Quartus Ⅱ的原理图输入方法设计简单组合电路; 2.通过一个半加器的设计把握利用EDA 软件进行电子线路设计的详细流程; 3.学会对实验板上的FPGA/CPLD 进行编程下载,硬件验证自己的设计项目。 二、实验器材: 1、计算机及操作系统 2、QUARTUS II 软件 三、实验要求: 1. 利用原理图输入法对半加器电路进行描述; 2. 进行波形仿真测试; 3. 严格按照实验步骤进行实验; 4. 管脚映射按照芯片的要求进行。 四、实验原理 其中a, b 为输入端口,So 与Co 分别为半加器 和与进位。其逻辑表达式为: 2. 根据逻辑表达式进行原理图输入。 五、实验步骤: 1. 为本项工程设计建立文件夹。注意文件夹 名不能用中文,且不可带空格。 2. 输入设计项目并存盘。 3. 将设计项目设计为工程文件。 4. 选择目标器件并编译。 b a b a b a So ⊕=+=ab Co =

5. 时序仿真。 6. 引脚锁定。 7. 编程下载。 实验二用原理图法设计一位、四位全加器 一、实验目的: 1. 熟悉利用QuartusⅡ的原理图输入方法设计简单组合电路; 2. 通过一个半加器的设计把握利用EDA 软件进行电子线路设计的详细流程; 3. 学会对实验板上的FPGA/CPLD 进行编程下载,硬件验证自己的设计项目。 二、实验器材: 1、计算机及操作系统 2、QUARTUS II软件 三、实验要求: 1.利用原理图输入法对一位全加器电路进行描述; 2. 进行波形仿真测试; 3. 严格按照实验步骤进行实验; 四、实验原理: 利用实验一所设计的半加器设计一位全加器;利用设计封装好的一位全加器进行四位全加器的设计。 五、实验步骤: 与实验一相同。 六、实验报告: 1. 要求画出一位、四位全加器的真值表; 2. 分析用半加器实现一位全加器的优点; 3. 对波形进行分析,并绘制波形图。 实验三用文本输入法设计D触发器和锁存器 一、实验目的: 1. 熟悉QuartusⅡ的VHDL 文本设计过程。 2. 学习简单时序电路的设计、仿真和硬件测试。 二、实验器材:

EDA技术实验报告

(此文档为word格式,下载后您可任意编辑修改!) 实验一利用原理图输入法设计4位全加器 一、实验目的: 掌握利用原理图输入法设计简单组合电路的方法,掌握MAX+plusII的层次化设计方法。通过一个4位全加器的设计,熟悉用EDA软件进行电路设计的详细流程。 二、实验原理: 一个4位全加器可以由4个一位全加器构成,全加器的进位以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的低位进位输入信号cin相接。 1位全加器f-adder由2个半加器h-adder和一个或门按照下列电路来实现。 半加器h-adder由与门、同或门和非门构成。 四位加法器由4个全加器构成 三、实验内容:

1. 熟悉QuartusII软件界面,掌握利用原理图进行电路模块设计的方法。 QuartusII设计流程见教材第五章:QuartusII应用向导。 2.设计1位全加器原理图 (1)生成一个新的图形文件(file->new->graphic editor) (2)按照给定的原理图输入逻辑门(symbol->enter symbol) (3)根据原理图连接所有逻辑门的端口,并添加输入输出端口 (4)为管脚和节点命名: 在管脚上的PIN_NAME处双击鼠标左键,然后输入名字; 选中需命名的线,然后输入名字。 (5)创建缺省(Default)符号: 在 File菜单中选择 Create Symbol Files for Current File 项,即可创建一个设计的符号,该符号可被高层设计调用。 3.利用层次化原理图方法设计4位全加器 (1)生成新的空白原理图,作为4位全加器设计输入 (2)利用已经生成的1位全加器的缺省符号作为电路单元,设计4位全加器的原理图. 4.新建波形文件(file->new->Other Files->Vector Waveform File),保存后进行仿真(Processing ->Start Simulation),对4位全加器进行时序仿真。给出波形图,并分析仿真结果是否正确。

EDA全加器实验报告

1位全加器设计实验报告 彭世晶32211317 实验目的:用原理图输入法完成半加器和全加器的设计,熟悉和练习Quartus Ⅱ的应用。 实验原理:1位全加器可以用两个半加器及一个或门连接而成,因此需要首先完成半加器的设计。用最简单的原理图输入法来完成半加器及全加器的设计。 实验真值表: 半加器 全加器

实验逻辑图: 半加器 全加器 实验程序: 半加器 module h_adder(a,b,so,co); //半加器描述 input a,b; output so,co; assign {co,so}=a+b; //两位二进制数直接相加 endmodule 或门 module or2a(a.b.c); //或门逻辑描述 output c; input a,b assign c=a|b; endmodule 全加器顶层文件 module f_adder(ain,bin,cin,cout,sum); //一位全加器顶层设计描述output cout,sum; input ain,bin,cin; wire e,d,f; //定义网线型变量作内部单元连接线h_adder u1(ain,bin,e,d); //使用位置关联法进行例化 h_adder u2(.a(e),.so(sum),.b(cin),.co(f)); or2a u3(.a(d),.b(f),.c(cout)); //使用端口名关联法进行例化

Endmodule 实验波形图: 半加器 全加器 实验RTL图: 实验结果与分析: 通过EDA实验我对编程环境QuartusⅡ有了一定的了解,也初步了解了硬件平台。我个人认为老师应当增加实验次数,以便我们加强自己的动手能力。

相关文档
最新文档