EDA技术实用教程第6章.ppt

上传人:wuy****n92 文档编号:80441160 上传时间:2023-03-23 格式:PPT 页数:66 大小:350KB
返回 下载 相关 举报
EDA技术实用教程第6章.ppt_第1页
第1页 / 共66页
EDA技术实用教程第6章.ppt_第2页
第2页 / 共66页
点击查看更多>>
资源描述

《EDA技术实用教程第6章.ppt》由会员分享,可在线阅读,更多相关《EDA技术实用教程第6章.ppt(66页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、EDA 技术实用教程技术实用教程第第 6 6 章章 VHDL设计进阶设计进阶 6.1 数据对象数据对象(常数、信号、变量常数、信号、变量)K KX康芯科技康芯科技6.1.1 常数常数 常数定义的一般表述如下:常数定义的一般表述如下:CONSTANT 常数名:数据类型常数名:数据类型:=表达式表达式;CONSTANT FBT:STD_LOGIC_VECTOR:=010110;-标准位矢类型标准位矢类型 CONSTANT DATAIN:INTEGER:=15;-整数类型整数类型 6.1 数据对象数据对象 K KX康芯科技康芯科技6.1.2 变量变量 变量赋值的一般表述如下:变量赋值的一般表述如下:

2、目标变量名目标变量名:=表达式表达式 定义变量的一般表述如下:定义变量的一般表述如下:VARIABLE 变量名变量名:数据类型数据类型:=初始值初始值;VARIABLE a:INTEGER RANGE 0 TO 15;-变量变量a定义为常数,取值范围是定义为常数,取值范围是0到到15 VARIABLE d:STD_LOGIC:=1;-变量变量a定义为标准逻辑位数据类型定义为标准逻辑位数据类型,初始值是初始值是1 6.1 数据对象数据对象 K KX康芯科技康芯科技6.1.3 信号信号 SIGNAL 信号名:信号名:数据类型数据类型:=初始值初始值;目标信号名目标信号名=表达式表达式 AFTER

3、时间量时间量;SIGNAL a,b,c,y,z:INTEGER;.PROCESS(a,b,c)BEGIN y=a+b;z=c a;y=b;END PROCESS;6.1 数据对象数据对象 K KX康芯科技康芯科技6.1.4 进程中的信号与变量赋值进程中的信号与变量赋值 信号信号SIGNAL变量变量VARIABLE基本用法基本用法用于作为电路中的信号连线用于作为电路中的信号连线用用于于作作为为进进程程中中局局部部数数据据存存储储单元单元适用范围适用范围在在整整个个结结构构体体内内的的任任何何地地方方都都能适用能适用只能在所定义的进程中使用只能在所定义的进程中使用行为特性行为特性在进程的最后才对信

4、号赋值在进程的最后才对信号赋值立即赋值立即赋值表表6-1 6-1 信号与变量赋值语句功能的比较信号与变量赋值语句功能的比较 K KX康芯科技康芯科技6.1.4 进程中的信号与变量赋值进程中的信号与变量赋值【例【例6-1】.ARCHITECTURE bhv OF DFF3 IS BEGIN PROCESS(CLK)VARIABLE QQ:STD_LOGIC;BEGIN IF CLKEVENT AND CLK=1 THEN QQ:=D1;END IF;END PROCESS;Q1=QQ;END;6.1 数据对象数据对象 K KX康芯科技康芯科技6.1.4 进程中的信号与变量赋值进程中的信号与变量赋

5、值【例【例6-2】.ARCHITECTURE bhv OF DFF3 IS SIGNAL QQ:STD_LOGIC;BEGIN PROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN QQ=D1;END IF;END PROCESS;Q1=QQ;END;6.1 数据对象数据对象 K KX康芯科技康芯科技6.1.4 进程中的信号与变量赋值进程中的信号与变量赋值【例【例6-3】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DFF3 IS PORT(CLK,D1:IN STD_LOGIC;Q1 :OUT STD_LO

6、GIC );END;ARCHITECTURE bhv OF DFF3 IS SIGNAL A,B:STD_LOGIC;BEGIN PROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN A=D1;B=A;Q1=B;END IF;END PROCESS;END;K KX康芯科技康芯科技6.1.4 进程中的信号与变量赋值进程中的信号与变量赋值 6.1 数据对象数据对象 图图6-1 例例6-3的的RTL电路电路 图图6-2 D触发器电路触发器电路 K KX康芯科技康芯科技6.1.4 进程中的信号与变量赋值进程中的信号与变量赋值【例【例6-4】LIBRARY IEEE

7、;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DFF3 IS PORT(CLK,D1:IN STD_LOGIC;Q1:OUT STD_LOGIC );END;ARCHITECTURE bhv OF DFF3 IS BEGIN PROCESS(CLK)VARIABLE A,B:STD_LOGIC;BEGIN IF CLKEVENT AND CLK=1 THEN A:=D1;B:=A;Q1=B;END IF;END PROCESS;END;K KX康芯科技康芯科技6.1.4 进程中的信号与变量赋值进程中的信号与变量赋值【例【例6-5】SIGNAL in1,in2,e1,.

8、:STD_LOGIC;.PROCESS(in1,in2,.)VARIABLE c1,.:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN IF in1=1 THEN.-第第 1 行行 e1=1010;-第第 2 行行 .IF in2=0 THEN.-第第 15+n 行行 .c1:=0011;-第第 30+m 行行 .END IF;END PROCESS;6.1 数据对象数据对象 K KX康芯科技康芯科技【例【例6-6】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4 ISPORT(i0,i1,i2,i3,a,b:IN

9、STD_LOGIC;q:OUT STD_LOGIC);END mux4;ARCHITECTURE body_mux4 OF mux4 ISsignal muxval:integer range 7 downto 0;BEGINprocess(i0,i1,i2,i3,a,b)begin muxval=0;if(a=1)then muxval=muxval+1;end if;if(b=1)then muxval q q q q null;end case;end process;END body_mux4;K KX康芯科技康芯科技【例【例6-7】LIBRARY IEEE;USE IEEE.STD_

10、LOGIC_1164.ALL;ENTITY mux4 ISPORT(i0,i1,i2,i3,a,b:IN STD_LOGIC;q:OUT STD_LOGIC);END mux4;ARCHITECTURE body_mux4 OF mux4 ISBEGINprocess(i0,i1,i2,i3,a,b)variable muxval:integer range 7 downto 0;begin muxval:=0;if(a=1)then muxval:=muxval+1;end if;if(b=1)then muxval:=muxval+2;end if;case muxval is when

11、0=q q q q null;end case;end process;END body_mux4;K KX康芯科技康芯科技6.1.4 进程中的信号与变量赋值进程中的信号与变量赋值 图图6-3 例例6-6的的RTL电路(电路(Synplify综合)综合)K KX康芯科技康芯科技6.1.4 进程中的信号与变量赋值进程中的信号与变量赋值 图图6-4 例例6-7的的RTL电路(电路(Synplify综合)综合)K KX康芯科技康芯科技6.1.4 进程中的信号与变量赋值进程中的信号与变量赋值 6.1 数据对象数据对象 图图6-5 例例6-6中错误的工作时序中错误的工作时序 K KX康芯科技康芯科技6.

12、1.4 进程中的信号与变量赋值进程中的信号与变量赋值 6.1 数据对象数据对象 图图6-6 例例6-7中正确的工作时序中正确的工作时序 K KX康芯科技康芯科技【例【例6-8】Library IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SHIFT IS PORT(CLK,C0:IN STD_LOGIC;-时钟和进位输入时钟和进位输入 MD:IN STD_LOGIC_VECTOR(2 DOWNTO 0);-移位模式控制字移位模式控制字 D :IN STD_LOGIC_VECTOR(7 DOWNTO 0);-待加载移位的数据待加载移位的数据 QB:OUT STD

13、_LOGIC_VECTOR(7 DOWNTO 0);-移位数据输出移位数据输出 CN:OUT STD_LOGIC);-进位输出进位输出END ENTITY;ARCHITECTURE BEHAV OF SHIFT IS SIGNAL REG :STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL CY:STD_LOGIC;BEGIN PROCESS(CLK,MD,C0)BEGIN IF CLKEVENT AND CLK=1 THEN CASE MD IS WHEN 001=REG(0)=C0;REG(7 DOWNTO 1)=REG(6 DOWNTO 0);CY REG(0)=R

14、EG(7);(接下页)(接下页)K KX康芯科技康芯科技(接上页)(接上页)REG(7 DOWNTO 1)REG(7)=REG(0);REG(6 DOWNTO 0)REG(7)=C0;REG(6 DOWNTO 0)=REG(7 DOWNTO 1);CY REG(7 DOWNTO 0)REG=REG;CY=CY;-保持保持 END CASE;END IF;END PROCESS;QB(7 DOWNTO 0)=REG(7 DOWNTO 0);CN=CY;-移位后输出移位后输出END BEHAV;K KX康芯科技康芯科技6.1.4 进程中的信号与变量赋值进程中的信号与变量赋值 6.1 数据对象数据对

15、象 图图6-7 例例6-8中带进位循环左移仿真波形(中带进位循环左移仿真波形(MD=001)K KX康芯科技康芯科技6.2.1 三态门设计三态门设计 6.2 双向和三态电路信号赋值例解双向和三态电路信号赋值例解【例【例6-9】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY tri_s IS port(enable:IN STD_LOGIC;datain:IN STD_LOGIC_VECTOR(7 DOWNTO 0);dataout:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END tri_s;ARCHITECTURE bh

16、v OF tri_s ISBEGINPROCESS(enable,datain)BEGIN IF enable=1 THEN dataout=datain;ELSE dataout=ZZZZZZZZ;END IF;END PROCESS;END bhv;K KX康芯科技康芯科技6.2.1 三态门设计三态门设计 6.2 双向和三态电路信号赋值例解双向和三态电路信号赋值例解 图图6-8 8位位3态控制门电路(态控制门电路(Synplify综合)综合)K KX康芯科技康芯科技6.2.2 双向端口设计双向端口设计 6.2 双向和三态电路信号赋值例解双向和三态电路信号赋值例解【例【例6-10】libra

17、ry ieee;use ieee.std_logic_1164.all;entity tri_state isport(control:in std_logic;in1:in std_logic_vector(7 downto 0);q:inout std_logic_vector(7 downto 0);x:out std_logic_vector(7 downto 0);end tri_state;architecture body_tri of tri_state isbeginprocess(control,q,in1)beginif(control=0)then x=q ;else

18、q=in1;x=ZZZZZZZZ;end if;end process;end body_tri;K KX康芯科技康芯科技6.2.2 双向端口设计双向端口设计 6.2 双向和三态电路信号赋值例解双向和三态电路信号赋值例解【例【例6-11】(以上部分同上例以上部分同上例)process(control,q,in1)beginif(control=0)then x=q;q=ZZZZZZZZ;else q=in1;x=ZZZZZZZZ;end if;end process;end body_tri;K KX康芯科技康芯科技6.2.2 双向端口设计双向端口设计 6.2 双向和三态电路信号赋值例解双向和

19、三态电路信号赋值例解 图图6-9 例例6-10的仿真波形图的仿真波形图 K KX康芯科技康芯科技6.2.2 双向端口设计双向端口设计 6.2 双向和三态电路信号赋值例解双向和三态电路信号赋值例解 图图6-10 例例6-11的仿真波形图的仿真波形图 K KX康芯科技康芯科技6.2.2 双向端口设计双向端口设计 6.2 双向和三态电路信号赋值例解双向和三态电路信号赋值例解 图图6-11 例例6-10的综合结果(的综合结果(Synplify综合)综合)K KX康芯科技康芯科技6.2.2 双向端口设计双向端口设计 6.2 双向和三态电路信号赋值例解双向和三态电路信号赋值例解 图图6-12 例例6-11

20、的综合结果(的综合结果(Synplify综合)综合)K KX康芯科技康芯科技6.2.3 三态总线电路设计三态总线电路设计【例【例6-12】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY tristate2 IS port(input3,input2,input1,input0:IN STD_LOGIC_VECTOR(7 DOWNTO 0);enable:IN STD_LOGIC_VECTOR(1 DOWNTO 0);output:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END tristate2;ARCHITECTURE

21、 multiple_drivers OF tristate2 ISBEGINPROCESS(enable,input3,input2,input1,input0)BEGIN IF enable=00 THEN output=input3;ELSE output Z);END IF;IF enable=01 THEN output=input2;ELSE output Z);END IF;(接下页)(接下页)K KX康芯科技康芯科技6.2.3 三态总线电路设计三态总线电路设计(接上页)(接上页)IF enable=10 THEN output=input1;ELSE output Z);END

22、IF;IF enable=11 THEN output=input0;ELSE output Z);END IF;END PROCESS;END multiple_drivers;K KX康芯科技康芯科技6.2.2 双向端口设计双向端口设计 6.2 双向和三态电路信号赋值例解双向和三态电路信号赋值例解【例【例6-13】(注:(注:MaxplusII不支持本例)不支持本例)library ieee;use ieee.std_logic_1164.all;entity tri2 isport(ctl:in std_logic_vector(1 downto 0);datain1,datain2,d

23、atain3,datain4:in std_logic_vector(7 downto 0);q:out std_logic_vector(7 downto 0);end tri2;architecture body_tri of tri2 isbegin q Z);q Z);q Z);q Z);end body_tri;K KX康芯科技康芯科技6.2.2 双向端口设计双向端口设计 6.2 双向和三态电路信号赋值例解双向和三态电路信号赋值例解 图图6-13 例例6-12错误的综合结果(错误的综合结果(Synplify综合结果)综合结果)K KX康芯科技康芯科技6.2.2 双向端口设计双向端口设

24、计 图图6-14 例例6-13正确正确的综合结果的综合结果(Synplify综合结果)综合结果)K KX康芯科技康芯科技6.3 IF语句概述语句概述(1)IF 条件句条件句 Then 顺序语句顺序语句 END IF;(2)IF 条件句条件句 Then 顺序语句顺序语句 ELSE 顺序语句顺序语句 END IF;(3)IF 条件句条件句 Then IF 条件句条件句 Then .END IF END IF(4)IF 条件句条件句 Then 顺序语句顺序语句ELSIF 条件句条件句 Then顺序语句顺序语句.ELSE 顺序语句顺序语句END IF K KX康芯科技康芯科技6.3 IF语句概述语句概

25、述【例【例6-14】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY control_stmts ISPORT(a,b,c:IN BOOLEAN;output:OUT BOOLEAN);END control_stmts;ARCHITECTURE example OF control_stmts IS BEGIN PROCESS(a,b,c)VARIABLE n:BOOLEAN;BEGIN IF a THEN n:=b;ELSE n:=c;END IF;output=n;END PROCESS;END example;K KX康芯科技康芯科技6.3

26、 IF语句概述语句概述 输输 入入输输 出出din0 din1 din2 din3 din4 din5 din6 din7 output0 output1 output2 x x x x x x x 0 0 0 0 x x x x x x 0 1 1 0 0 x x x x x 0 1 1 0 1 0 x x x x 0 1 1 1 1 1 0 x x x 0 1 1 1 1 0 0 1 x x 0 1 1 1 1 1 1 0 1 x 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1表表6-2 8线线-3线优先编码器真值表线优先编码器真值表 注:注:表中的表中

27、的“x”为任意,类似为任意,类似VHDL中的中的“”值。值。K KX康芯科技康芯科技【例【例6-15】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY coder IS PORT(din:IN STD_LOGIC_VECTOR(0 TO 7);output:OUT STD_LOGIC_VECTOR(0 TO 2);END coder;ARCHITECTURE behav OF coder IS SIGNAL SINT:STD_LOGIC_VECTOR(4 DOWNTO 0);BEGIN PROCESS(din)BEGIN IF(din(7)=0)T

28、HEN output=000;ELSIF(din(6)=0)THEN output=100;ELSIF(din(5)=0)THEN output=010;ELSIF(din(4)=0)THEN output=110;ELSIF(din(3)=0)THEN output=001;ELSIF(din(2)=0)THEN output=101;ELSIF(din(1)=0)THEN output=011;ELSE output so so so so so NULL;END CASE;END PROCESS;K KX康芯科技康芯科技6.4.3 进程要点进程要点 6.4 进程语句归纳进程语句归纳 3.

29、进程必须由敏感信号的变化来启动进程必须由敏感信号的变化来启动 4.进程语句本身是并行语句进程语句本身是并行语句 K KX康芯科技康芯科技【例【例6-16】ENTITY mul ISPORT(a,b,c,selx,sely :IN BIT;data_out :OUT BIT );END mul;ARCHITECTURE ex OF mul IS SIGNAL temp:BIT;BEGINp_a:PROCESS(a,b,selx)BEGIN IF(selx=0)THEN temp=a;ELSE temp=b;END IF;END PROCESS p_a;p_b:PROCESS(temp,c,sel

30、y)BEGIN IF(sely=0)THEN data_out=temp;ELSE data_out=c;END IF;END PROCESS p_b;END ex;K KX康芯科技康芯科技6.4.3 进程要点进程要点 6.4 进程语句归纳进程语句归纳 5.信号是多个进程间的通信线信号是多个进程间的通信线 6.一个进程中只允许描述对应于一个时钟信号的同步时序逻辑一个进程中只允许描述对应于一个时钟信号的同步时序逻辑 K KX康芯科技康芯科技6.5 并行语句例解并行语句例解【例【例6-17】ARCHITECTURE dataflow OF mux ISSIGNAL seiect:INTEGER R

31、ANGE 15 DOWNTO 0;BEGINSelect=0 WHEN s0=0 AND s1=0 ELSE 1 WHEN s0=1 AND s1=0 ELSE 2 WHEN s0=0 AND s1=1 ELSE 3;x=a WHEN select=0 ELSE b WHEN select=1 ELSE c WHEN select=2 ELSE d;.K KX康芯科技康芯科技6.6 仿真延时仿真延时 6.6.1 固有延时固有延时 z=x XOR y AFTER 5ns;z=x XOR y;B=A AFTER 20ns;-固有延时模型固有延时模型 K KX康芯科技康芯科技6.6 仿真延时仿真延时

32、 6.6.2 传输延时传输延时 B=TRANSPORT A AFTER 20 ns;-传输延时模型传输延时模型 图图6-15 固有延时输入输出波形固有延时输入输出波形 图图6-16传输延时输入输出波形传输延时输入输出波形 K KX康芯科技康芯科技6.6 仿真延时仿真延时 6.6.3 仿真仿真 VHDL仿真器和综合器将自动为系统中的信号赋值仿真器和综合器将自动为系统中的信号赋值配置一足够小而又能满足逻辑排序的延时量,即仿真配置一足够小而又能满足逻辑排序的延时量,即仿真软件的最小分辩时间,这个延时量就称为仿真软件的最小分辩时间,这个延时量就称为仿真(Simulation Delta),或称),或称

33、 延时,从而使并行语延时,从而使并行语句和顺序语句中的并列赋值逻辑得以正确执行。由此句和顺序语句中的并列赋值逻辑得以正确执行。由此可见,在行为仿真、功能仿真乃至综合中,引入可见,在行为仿真、功能仿真乃至综合中,引入 延延时是必需的。仿真中,时是必需的。仿真中,延时的引入由延时的引入由EDA工具自动工具自动完成,无需设计者介入。完成,无需设计者介入。习习 题题 K KX康芯科技康芯科技6-1.什么是固有延时?什么是惯性延时?什么是固有延时?什么是惯性延时?6-2.是什么?在是什么?在VHDL中,中,有什么用处?有什么用处?6-3.哪些情况下需要用到程序包哪些情况下需要用到程序包STD_LOGIC

34、_UNSIGNED?试举一例。?试举一例。6-4.说明信号和变量的功能特点,应用上的异同点。说明信号和变量的功能特点,应用上的异同点。6-5.在在VHDL设计中,给时序电路清设计中,给时序电路清0(复位复位)有两种方法,它们是什么?有两种方法,它们是什么?6-6.哪哪一一种种复复位位方方法法必必须须将将复复位位信信号号放放在在敏敏感感信信号号表表中中?给给出出这这两两种种电电路路的的VHDL描述。描述。6-7.什么是重载函数?重载算符有何用处?如何调用重载算符函数?什么是重载函数?重载算符有何用处?如何调用重载算符函数?习习 题题 K KX康芯科技康芯科技6-8.判断下面判断下面3个程序中是否

35、有错误,若有则指出错误所在,并给出完整程序。个程序中是否有错误,若有则指出错误所在,并给出完整程序。程序程序1:Signal A,EN:std_logic;Process(A,EN)Variable B:std_logic;Beginif EN=1 then B=A;end if;end process;程序程序2:Architecture one of sample is variable a,b,c:integer;begin c LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LE

36、D7S LED7S LED7S NULL;END CASE;END PROCESS;END;实实 验验 与与 设设 计计K KX康芯科技康芯科技(4)实实验验内内容容2:引引脚脚锁锁定定及及硬硬件件测测试试。建建议议选选GW48系系统统的的实实验验电电路路模模式式6(参参考考附附录录图图6),用用数数码码8显显示示译译码码输输出出(PIO46-PIO40),键键8、键键7、键键6和和键键5四位控制输入,硬件验证译码器的工作性能。四位控制输入,硬件验证译码器的工作性能。(5)实实验验内内容容3:用用第第4章章介介绍绍的的例例化化语语句句,按按图图6-19的的方方式式连连接接成成顶顶层层设设计计电

37、电路路(用用VHDL表表述述),图图中中的的CNT4B是是一一个个4位位二二进进制制加加法法计计数数器器,可可以以由由例例4-22修修改改获获得得;模模块块DECL7S即即为为例例6-18实实体体元元件件,重重复复以以上上实实验验过过程程。注注意意图图6-20中中的的tmp是是4位位总总线线,led是是7位位总总线线。对对于于引引脚脚锁锁定定和和实实验验,建建议议选选电电路路模模式式6,用用数数码码8显显示示译译码码输输出出,用用键键3作作为为时时钟钟输输入入(每每按按2次次键键为为1个个时时钟钟脉冲脉冲),或直接接时钟信号,或直接接时钟信号clock0。(8)实实验验报报告告:根根据据以以上

38、上的的实实验验内内容容写写出出实实验验报报告告,包包括括程程序序设设计计、软软件件编编译译、仿仿真真分分析析、硬硬件件测测试试和和实实验验过过程程;设设计计程程序序、程程序序分分析析报报告告、仿仿真真波波形形图图及及其分析报告。其分析报告。K KX康芯科技康芯科技图图6-18共阴数码管及其电路共阴数码管及其电路 图图6-19 计数器和译码器连接电路的顶层文件原理图计数器和译码器连接电路的顶层文件原理图实实 验验 与与 设设 计计K KX康芯科技康芯科技6-2.八位数码扫描显示电路设计八位数码扫描显示电路设计(1)实验目的:实验目的:学习硬件扫描显示电路的设计。学习硬件扫描显示电路的设计。(2)

39、实实验验原原理理:图图6-20所所示示的的是是8位位数数码码扫扫描描显显示示电电路路,其其中中每每个个数数码码管管的的8个个段段:h、g、f、e、d、c、b、a(h是是小小数数点点)都都分分别别连连在在一一起起,8个个数数码码管管分分别别由由8个个选选通通信信号号k1、k2、k8来来选选择择。被被选选通通的的数数码码管管显显示示数数据据,其其余余关关闭闭。如如在在某某一一时时刻刻,k3为为高高电电平平,其其余余选选通通信信号号为为低低电电平平,这这时时仅仅k3对对应应的的数数码码管管显显示示来来自自段段信信号号端端的的数数据据,而而其其它它7个个数数码码管管呈呈现现关关闭闭状状态态。根根据据这

40、这种种电电路路状状况况,如如果果希希望望在在8个个数数码码管管显显示示希希望望的的数数据据,就就必必须须使使得得8个个选选通通信信号号k1、k2、k8分分别别被被单单独独选选通通,并并在在此此同同时时,在在段段信信号号输输入入口口加加上上希希望望在在该该对对应应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫描显示的目的。数码管上显示的数据,于是随着选通信号的扫变,就能实现扫描显示的目的。实实 验验 与与 设设 计计K KX康芯科技康芯科技图图6-20 8位数码扫描显示电路位数码扫描显示电路 K KX康芯科技康芯科技【例【例6-19】LIBRARY IEEE;USE IEEE.STD_L

41、OGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SCAN_LED IS PORT(CLK:IN STD_LOGIC;SG :OUT STD_LOGIC_VECTOR(6 DOWNTO 0);-段控制信号输出段控制信号输出 BT :OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-位控制信号输出位控制信号输出 END;ARCHITECTURE one OF SCAN_LED IS SIGNAL CNT8 :STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL A :INTEGER RANGE 0 TO

42、15;BEGINP1:PROCESS(CNT8)BEGIN CASE CNT8 IS WHEN 000=BT=00000001;A BT=00000010;A BT=00000100;A BT=00001000;A BT=00010000;A BT=00100000;A BT=01000000;A BT=10000000;A NULL;END CASE;END PROCESS P1;接下页接下页K KX康芯科技康芯科技P2:PROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN CNT8 SG SG SG SG SG SG SG SG SG SG SG SG

43、SG SG SG SG NULL;END CASE;END PROCESS P3;END;接上页接上页实实 验验 与与 设设 计计K KX康芯科技康芯科技(3)实实验验内内容容1:说说明明例例6-19中中各各语语句句的的含含义义,以以及及该该例例的的整整体体功功能能。对对该该例例进进行行编编辑辑、编编译译、综综合合、适适配配、仿仿真真,给给出出仿仿真真波波形形。实实验验方方式式:若若考考虑虑小小数数点点,SG的的8个个段段分分别别与与PIO49、PIO48、PIO42(高高位位在在左左)、BT的的8个个位位分分别别与与PIO34、PIO35、PIO41(高高位位在在左左);电电路路模模式式不不

44、限限,引引脚脚图图参参考考附附录录图图10。将将GW48EDA系系统统左左下下方方的的拨拨码码开开关关全全部部向向上上拨拨,这这时时实实验验系系统统的的8个个数数码码管管构构成成图图6-20的的电电路路结结构构,时时钟钟CLK可可选选择择clock0,通通过过跳跳线线选选择择16384Hz信信号号。引引脚脚锁锁定定后后进进行行编编译译、下下载载和和硬硬件件测测试试实实验验。将将实实验验过过程和实验结果写进实验报告。程和实验结果写进实验报告。(4)实实验验内内容容2:修修改改例例6-19的的进进程程P1中中的的显显示示数数据据直直接接给给出出的的方方式式,增增加加8个个4位位锁锁存存器器,作作为

45、为显显示示数数据据缓缓冲冲器器,使使得得所所有有8个个显显示示数数据据都都必必须须来来自自缓缓冲冲器器。缓缓冲冲器器中中的的数数据据可可以以通通过过不不同同方方式式锁锁入入,如如来来自自A/D采采样样的的数数据据、来来自自分分时时锁锁入的数据、来自串行方式输入的数据,或来自单片机等。入的数据、来自串行方式输入的数据,或来自单片机等。实实 验验 与与 设设 计计K KX康芯科技康芯科技6-3.数控分频器的设计数控分频器的设计(1)实验目的实验目的:学习数控分频器的设计、分析和测试方法。:学习数控分频器的设计、分析和测试方法。(2)实实验验原原理理:数数控控分分频频器器的的功功能能就就是是当当在在

46、输输入入端端给给定定不不同同输输入入数数据据时时,将将对对输输入入的的时时钟钟信信号号有有不不同同的的分分频频比比,数数控控分分频频器器就就是是用用计计数数值值可可并并行行预预置置的的加加法法计计数数器器设设计计完完成成的的,方方法法是是将将计计数数溢溢出出位位与与预预置置数数加加载载输输入入信信号号相相接接即即可可,详细设计程序如例详细设计程序如例6-20所示。所示。(3)分分析析:根根据据图图6-21的的波波形形提提示示,分分析析例例6-20中中的的各各语语句句功功能能、设设计计原原理理及及逻辑功能,详述进程逻辑功能,详述进程P_REG和和P_DIV的作用,并画出该程序的的作用,并画出该程

47、序的RTL电路图。电路图。实实 验验 与与 设设 计计K KX康芯科技康芯科技图图6-21 当给出不同输入值当给出不同输入值D时,时,FOUT输出不同频率输出不同频率(CLK周期周期=50ns)实实 验验 与与 设设 计计K KX康芯科技康芯科技(4)仿真仿真:输入不同的:输入不同的CLK频率和预置值频率和预置值D,给出如图,给出如图6-21的时序波形。的时序波形。(5)实实验验内内容容1:在在实实验验系系统统上上硬硬件件验验证证例例6-20的的功功能能。可可选选实实验验电电路路模模式式1(参参考考附附录录图图3);键键2/键键1负负责责输输入入8位位预预置置数数D(PIO7-PIO0);CL

48、K由由clock0输输入入,频频率率选选65536Hz或或更更高高(确确保保分分频频后后落落在在音音频频范范围围);输输出出FOUT接接扬扬声声器器(SPKER)。编编译译下下载载后后进进行行硬硬件件测测试试:改改变变键键2/键键1的的输输入入值值,可可听听到到不不同同音音调的声音。调的声音。(6)实实验验内内容容2:将将例例6-20扩扩展展成成16位位分分频频器器,并并提提出出此此项项设设计计的的实实用用示示例例,如如PWM的设计等。的设计等。(7)思思考考题题:怎怎样样利利用用2个个例例6-20给给出出的的模模块块设设计计一一个个电电路路,使使其其输输出出方方波波的的正负脉宽的宽度分别由可

49、两个正负脉宽的宽度分别由可两个8位输入数据控制?位输入数据控制?(8)实实验验报报告告:根根据据以以上上的的要要求求,将将实实验验项项目目分分析析设设计计,仿仿真真和和测测试试写写入入实实验验报告。报告。K KX康芯科技康芯科技【例【例6-20】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DVF IS PORT(CLK :IN STD_LOGIC;D :IN STD_LOGIC_VECTOR(7 DOWNTO 0);FOUT:OUT STD_LOGIC );END;ARCHITE

50、CTURE one OF DVF IS SIGNAL FULL:STD_LOGIC;BEGIN P_REG:PROCESS(CLK)VARIABLE CNT8:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN IF CLKEVENT AND CLK=1 THEN IF CNT8=11111111 THEN CNT8:=D;-当当CNT8计数计满时,输入数据计数计满时,输入数据D被同步预置给计数器被同步预置给计数器CNT8 FULL=1;-同时使溢出标志信号同时使溢出标志信号FULL输出为高电平输出为高电平 ELSE CNT8:=CNT8+1;-否则继续作加否则继续作加1计数

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com