精品课件-电子设计自动化(EDA)(朱晓红)-第6章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
end if; end process p1; p11:process (clk) begin
27
第6章 实 训
if rising_edge (clk) then if count="111" then carry<='1'; else carry<='0'; end if;
end if; end process p11; p2:process(carry,load)
2.交通灯的信号功能 十字路口有4组交通灯,对面两组对应,分别以红、黄、绿 的次序转换。所有信号为低电平有效,即: OUT0、OUT1、OUT2分别为0、1、1时,表示纵向红灯亮,横 向绿灯亮; OUT0、OUT1、OUT2分别为1、0、1时,表示纵向绿灯亮,横 向红灯亮; OUT0、OUT1、OUT2分别为1、1、0时,表示纵向黄灯亮,横 向黄灯亮。
13
第6章 实 训
图6.9 元件布局图
14
第6章 实 训
(5) 设置自动布线参数。具体要求如下: 布线间隔:0.254 mm。 布线转弯角度:45°。 布线层:顶层布线方向垂直,底层布线方向水平。 布线宽度:网络GND为1 mm;其他为0.5 mm。 进行自动布线,并进行手工调整。布线后的电路如图6.10 所示。 (6) 用3D观察印制版设计是否合理。
"01001001" WHEN "0101", "01000001" WHEN "0110", "00011111" WHEN "0111", "00000001" WHEN "1000", "00001001" WHEN "1001", "00010001" WHEN "1010", "11000001" WHEN "1011", "01100011" WHEN "1100", "10000101" WHEN "1101", "01100001" WHEN "1110", "01110001" WHEN OTHERS;
29
第6章 实 训
end process p22; p3:process(carry,en)
begin if (rising_edge (carry) and en='1') then if load ='1' then count1<=data1; elsif count1="0000" then count1<="1001"; else count1<=count1-'1'; end if; end if;
34
第6章 实 训
-- A<=count0; -- B<=count1;
selout<=sel; segout<=num; R1<=not light(5); Y1<=not light(4); G1<=not light(3); R2<=not light(2); Y2<=not light(1); G2<=not light(0); end arch;
23
第6章 实 训
信号名 CLK START LIGHT(2)
信号模式 IN IN OUT
表 6.1 引 脚 锁 定
引脚号
信号名
20
LIGHT(1)
34
LIGHT(0)
10
信号模式 OUT OUT
引脚号 9 8
24
第6章 实 训
6.实验程序 实验程序如下:
library ieee;
use ieee.std_logic_1164.all;
--
A,B: out std_logic_vector(3 downto 0);
end;
architecture arch of trafic is
type states is (s3,s2,s1,s0);
signal state:
states:=s0;
25
第6章 实 训
signal next_state: states:=s0; signal count:std_logic_vector(2 downto 0); signal counta:std_logic_vector(1 downto 0); signal sel:std_logic_vector(3 downto 0); signal temp:std_logic_vector(3 downto 0); signal num:std_logic_vector(7 downto 0); signal count0: std_logic_vector(3 downto 0):="0000"; signal count1: std_logic_vector(3 downto 0):="0000"; signal data0: std_logic_vector(3 downto 0):="0000"; signal data1: std_logic_vector(3 downto 0):="0000"; signal light: std_logic_vector(5 downto 0); signal en,load,carry: std_logic; begin process(clk1) begin
WITH temp select NUM <="00000011" WHEN "0000", "10011111" WHEN "0001", "00100101" WHEN "0010", "00001101" WHEN "0011", "10011001" WHEN "0100",
33
第6章 实 训
end process p4; p6:process(state)
begin case state is
31
第6章 实 训
when s0 => light <="001100"; next_state<=s1; data0<="0000"; data1<="0011";
when s1 => light <="010100"; next_state<=s2; data0<="0100"; data1<="0000";
end process p3; p4:process(carry)
30
第6章 实 训
begin if (falling_edge (carry) ) then if( count0 ="0000" and count1 ="0000") then load<='1'; state<=next_state; else load<='0'; end if; end if;
when s2 => light <="100001"; next_state<=s3; data0<="0000"; data1<="0010";
when s3 => light <="100010"; next_state<=s0; data0<="0100"; data1<="0000";
end case; end process p6;
21
第6章 实 训
3.程序设计要求 (1) 设置一个交通灯工作启动按钮,高电平时开始工作, 低电平时四组均显示黄灯,即禁止通行。 (2) 交通灯工作时,程序中先是纵向红灯亮,横向绿灯亮 10 s,然后所有黄灯亮5 s,接着纵向绿灯亮,横向红灯亮10 s, 周而复始。 (3) 通过改变程序中计数器的计数值来修改交通灯交替点 亮的延时时间,以实现十字路口人流量的最佳控制。
26
第6章 实 训
if(rising_edge(clk1))then if(counta="11")then counta<="00"; else counta<=counta+'1'; end if;
end if; end process;
p1:process(clk) begin
if rising_edge (clk) then count <= count+'1';
第6章 实 训
第6章 实

6.1 鉴频器电路板的设计 6.2 数字钟的电路设计 6.3 交通信号灯的自动控制
1
第6章 实 训
6.1 鉴频器电路板的设计 1.鉴频器电路图 图6.1所示为鉴频器电路,该电路输入的是等幅调频波,输 出的是低频调制信号。
2
第6章 实 训
图6.1 鉴频器电路
3
第6章 实 训
use ieee.std_logic_unsigned.all;
entity trafic is
port ( clk,clk1:in std_logic;
R1,R2,Y1,Y2,G1,G2:out std_logic;
segout:out std_logic_vector(7 downto 0);
selout:out std_logic_vector(3 downto 0);
2.印制版设计
图6.2 元件布局图
4
第6章 实 训
图6.3 布线后的PCB
5
第6章 实 训
6.2 数字钟的电路设计 1.电路原理 数字钟电路一般由振荡器、分频器、计数器、译码器、显 示器等几部分组成。这些都是数字电路中应用最广的电路,其 组成框图如图6.4所示。
6
第6章 实 训
图6.4 采用LM8560的石英数字钟的方框图
7
第6章 实 训
下面简单介绍数字钟电路主要组成部分中元器件的选择:
图6.5 CD4541的引脚排列图
8
第6章 实 训
图6.6 LM8560的引脚排列图
9
第6章 实 训
图6.7 双阴极LED数码显示屏
10
第6章 实 训
2.创建电路原理图 绘制如图6.8所示的数字钟电路图。具体要求为:集成电路 LM8560的封装形式是DIP28;4069的封装形式是DIP14;电阻 RES2的封装形式是AXIAL0.3;电容CAP的封装形式是RAD0.1;电 解电容ELECTRO1的封装形式是RB.2/.4;晶振CRYSTAL的封装形 式是XTAL1;二极管DIODE的封装形式是DIODE0.4;喇叭SPEAKER 的封装形式是AXIAL0.4;开关K1~K5的封装形式是AXIAL0.3; EN-148-28的封装形式采用自制。
15
第6章 实 训
图6.10 布线后的PCB
16
第6章 实 训
图6.11 顶层3D图
17
第6章 实 训
图6.12 底层3D图
18
第6章 实 训
6.3 交通信号灯的自动控制 1.交通灯的工作原理 交通灯自动控制原理图如图6.13所示。
19
第6章 实 训
图6.13 交通灯自动控制原理图
20
第6章 实 训
32
第6章 实 训
SEL<="1110" when counta="00" else "1101" when counta="01" else "1011" when counta="10" else "0111" when counta="11";
temp<= count0 when sel="1110" else count1 when sel="1101" else count0 when sel="1011" else count1 when sel="0111";
11
第6章 实 训
图6.8 采用LM8560的石英数字钟电路图
12
第6章 实 训
3.绘制印制电路板 (1) 进行电气规则检查并创建网络表。 (2) 规划印制版,设置文档参数。要求印制版尺寸为 100 mm × 70 mm;可视栅格1设置为1 mm,可视栅格2设置为 10 mm,捕获栅格设置为0.5 mm。 (3) 装载原理图的网络表,由于二极管封装中的焊盘编号 与原理图中的不一致,在装载过程中会出错,所以要修改封装 中的焊盘编号使之与原理图中的编号保持一致,并更新PCB。 (4) 对元件进行手工布局调整,调整后的布局如图6.9所示。
begin if rising_edge (carry) then if load ='1' then count0<=data0; elsif count0="0000" then
28
第6章 实 训
count0<="1001"; else count0<=count0-'1'; end if; end if; end process p2; p22:process(carry,count0) begin if carry='0' then if count0="0000" then en<='1'; else en<='0'; end if; end if;
22
第6章 实 训
4.实验连线 20(CP1)→1 Hz(系统工作时钟CLK); 34→K1(逻辑电平开关K1,表示交通灯的启停控制); 10→OUT0(表ห้องสมุดไป่ตู้纵向红灯亮,横向绿灯亮); 9→OUT1(表示纵向绿灯亮,横向红灯亮); 8→OUT2(表示纵向黄灯亮,横向黄灯亮)。 5.引脚锁定 引脚锁定见表6.1。
相关文档
最新文档