版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、黑龙江大学电子工程学院第五章 VHDL设计进阶本章对VHDL的语言规则和语句类型做系统的论述。一、 VHDL语言要素 二、VHDL顺序语句三、VHDL并行语句四、子程序五、库、程序包及其配置六、VHDL描述风格七、常用元件设计举例八、VHDL与原理图混合设计方式黑龙江大学电子工程学院四、 子程序-略讲子程序是一个VHDL程序模块,它是利用顺序语句来定义和完成算法的,可以有效的完成重复性的设计工作。不能调用子程序时候使用结构体重定义的信号,只能通过子程序调用及与子程序的界面端口进行通信。子程序分为过程(PROCEDURE)和函数(FUNCTION)。过程和函数的区别在于:(1)过程的调用通过其界
2、面获得多个返回值,函数只有一个返回值;(2)在函数入口中所有的参数都是输入参数、而过程有输入参数、输出参数和双向参数;(3)过程一般被看做一种语句结构,函数通常是表达式的一部分;(4)过程可以单独存在,而函数通常作为语句的一部分被调用;(5)可重载; (6)与主电路同一级别,调用一次就生成一个电路块。1、函数(FUNCTION) 2、重载函数 3、过程(PROCEDURE) 4、重载过程黑龙江大学电子工程学院1、函数(FUNCTION)VHDL中有多种函数形式,如在库中的库函数和用户自定义的函数等。格式如下,分为函数首和函数体两部分,程序包中的函数有函数首 FUNCTION 函数名(参数表)
3、RETURN 数据类型;-函数首 FUNCTION 函数名(参数表) RETURN 数据类型 IS 函数体开始 说明部分; BEGIN 顺序语句; END FUNCTION 函数名;(1)、函数首 函数通常放在程序包中,此时函数首不能省函数首是由函数名、参数表和返回值的数据类型三部分组成的。函数名可以是标识符也可以是重载运算符(需要加双引号)。函数名后面的参数表是函数的输入值,可以信号或常量,常量可不说明函数RETURN 后面的是返回值的数据类型。例如:FUNCTION max(a,b:IN STD_LOGIC) RETURN STD_LOGIC; FUNCTION func1(a,b,c:R
4、EAL) RETURN REAL;-参量为常数FUNCTION “*”(a,b:INTERGER) RETURN INTERGER;-操作符函数FUNCTION as2(SIGNAL in1,in2:REAL) RETURN REAL;-信号型参数 黑龙江大学电子工程学院(2)、 函数体函数体的说明部分用于对函数中使用的数据类型、常量、变量进行说明;顺序语句部分用来完成规定的算法或转换。LIBRARY IEEE;-例5-33函数的应用USE IEEE.STD_LOGIC_1164.ALL;ENTITY func IS PORT(a:IN STD_LOGIC_VECTOR(0 TO 2); m:
5、OUT STD_LOGIC_VECTOR(0 TO 2);END ENTITY func;ARCHITECTURE demo OF func IS FUNCTION sam(x,y,z:STD_LOGIC) RETURN STD_LOGIC IS-函数 BEGIN -函数说明部分省略,从BEGIN开始为顺序语句部分 RETURN (x AND y )OR z; END FUNCTION sam; -函数结束 函数定义在结构体的说明部分BEGIN -结构体的功能描述开始 PROCESS(a) -结构体中定义一个进程 BEGIN -进程开始 后面为顺序语句 m(0)=sam(a(0),a(1),a
6、(2); -进程中调用了函数 m(1)=sam(a(2),a(0),a(1); m(2)r THEN RETURN l; ELSE RETURN r; END IF; END; FUNCTION “+”(l:STD_LOGIC_VECTOR; r:INTEGER) RETURN STD_LOGIC_VECTOR IS VARIBLE result:STD_LOGIC_VECTOR(lRANGE); BEGIN result:= UNSGNED(l)+r; RETURN STD_LOGIC_VECTOR(result); end; :-其他重载函数END STD_LOGIC_UNSIGNED;黑
7、龙江大学电子工程学院LIBRARY IEEE; -例5-35重载函数使用USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cnt4 ISPORT(clk: IN STD_LOGIC; q:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);END cnt4ARCHITECTURE one OF cnt4 ISBEGIN PROCESS(clk) BEGIN IF (clkEVENT AND clk=1) THEN IF q=15 THEN 判左右等,调用重载函数和整形比较 q=“0000”;
8、 ELSE q=q+1;- 调用重载函数”+”完成逻辑矢量和整形相加 END IF; END IF; END PROCESS;END ARCHITECTURE; 黑龙江大学电子工程学院3、过程(PROCEDURE)过程和函数是子程序的两种形式,过程也分为过程首和过程体两部分,格式: PROCEDURE 过程名(参数表);-过程首 PROCEDURE 过程名(参数表) IS -过程体开始 说明部分; BEGIN 顺序语句; END PROCEDURE 过程名;(1)、过程首 函数通常放在程序包中,此时过程首不能省过程首是由过程名和参数表组成。例如:PROCEDURE pro1(VARIABLE
9、a,b:INOUT REAL); PROCEDURE pro2(CONSTANT a1:IN INTEGER; VARIABLE b1:OUT INTEGER) ;PROCEDURE pro3(SIGNAL sig:INOUT BIT);信号类型有IN、OUT、INOUT三种,如果没有给数数据对象的类型 IN对应常量,INOUT和OUT对应目标为变量。黑龙江大学电子工程学院(2)、 过程体过程体是顺序语句,调用时启动过程体中顺序语句的执行,过程中可以使用顺序语句中的所有语句,包括WAIT语句,如果过程在进程中,那么当进程有敏感变量时,过程中也不能使用WAIT语句。例5-36过程使用示例1 PR
10、OCEDURE shift( din,s:IN STD_LOGIC_VECTOR; SIGNAL dout: OUT STD_LOGIC_VECTOR) ISVARIABLE sc: INTEGER;BEGIN sc:= CONV_INTEGER(s); FOR i IN dinRANGE LOOP IF(sc+i=dinRIGHT) THEN dout(sc+i) =din(i); -将din数据右移sc位赋给dout ELSE dout(sc+i-dinLENGTH) v1;-当条件满足时候,跳出循环 END LOOP q1; ASSERT(v2v1); -如果v2b) THEN RETU
11、RN a;ELSE RETURN B;END IF; END max;END my_pkg;由于程序包也是用VHDL语言编写的,所以其源程序也需要以.vhd文件类型保存,my_pkg的源程序名为my_pkg.vhd。为了使用my_pkg程序包中定义内容,在设计实体的开始,需要将其打开,打开my_pkg程序包的语句是USE work. my_pkg.ALL; 常用的程序包有 STD_LOGIC_1164, STD_LOGIC_ARITH, STD_LOGIC_UNSIGNED, STD_LOGIC_SIGNED程序包黑龙江大学电子工程学院3、配置(CONFIGURATION)配置语句用来描述层与
12、层之间的连接关系以及实体与结构之间的连接关系。设计者可以使用这些语句来选择不同的构造体,使其与设计实体相对应。在仿真某一实体时,可以使用配置来选择不同的构造体,进行性能对比试验,以得到性能最佳的构造体。 语法格式如下: CONFIGURATION 配置名 OF 实体名 IS 语句说明; END 配置名;配置主要为顶层设计实体指定结构体,或为参与例化的元件指定所希望的结构体,以层次方式来对元件例化做结构配置。I、在设计实体中选配使用结构体的配置格式简单配置的应用CONFIGURATION 配置名 OF 实体名 IS FOR 选配结构体名 END FOR; END 配置名; 黑龙江大学电子工程学院
13、例5-39配置的简单应用LIBRARY IEEE; -选择使用结构体USE IEEE.STD_LOGIC_1164.ALL;ENTITY nand1 ISPORT(a:IN STD_LOGIC; b:IN STD_LOGIC; c:OUT STD_LOGIC );END ENTITY nand1;ARCHITECTURE one OF nand1 ISBEGINc=NOT(a AND b);END ARCHITECTURE one;ARCHITECTURE two OF nand1 ISBEGINc=s,b=q,c=q); u2:nand1 PORT MAP(a=q,b=r,c=qf);END
14、 ARCHITECTURE rsf;CONFIGURATION sel OF rs1 IS FOR rsf -使用rsf结构体 FOR u1,u2:nand1 USE CONFIGURATION WORK.first; END FOR; -使用first库中元件nand1来例化生成电路u1,u2 END FOR;END sel; 黑龙江大学电子工程学院第五章 VHDL设计进阶本章对VHDL的语言规则和语句类型做系统的论述。一、 VHDL语言要素 二、VHDL顺序语句三、VHDL并行语句四、子程序五、库、程序包及其配置六、VHDL描述风格七、常用元件设计举例八、VHDL与原理图混合设计方式黑龙江
15、大学电子工程学院六、VHDL描述风格VHDL程序中对于相同的逻辑功能,可以在结构体的执行语句中使用不同的语句表达方式,这种不同的描述方法称为描述风格。共分为三种描述风格,即行为描述、数据流描述和结构描述。 1、行为描述 2、数据流描述 3、结构描述 黑龙江大学电子工程学院1、行为描述数据流描述 行为描述只表示输入与输出间的转换行为,不包含任何的结构信息。行为描述主要使用函数、过程和进程语句,以算法形式描述数据的变换与传送.优点:只需要清楚输入输出的行为,而不需要花费精力关注设计功能的门级实现,使自顶向下的设计成为可能。例5-41 一位全加器的行为描述 LIBRARY IEEE; USE IEE
16、E.STD_LOGIC_1164.ALL; ENTITY onebitadder IS PORT( x,y,cin:IN STD_LOGIC; sum,count:OUT STD_LOGIC); END onebitadder; ARCHITECTURE behave OF onebitadder IS BEGIN PROCESS(x,y,cin) 黑龙江大学电子工程学院 PROCESS(x,y,cin) VARIABLE n: INTEGER; BEGIN n:=0; IF(x=1) THEN n:= n+1; END IF; IF(y=1) THEN n:=n+1; END IF; IF(
17、cin=1)THEN n:=n+1;-输入求和 END IF; IF(n=0) THEN sum=0; count=0; ELSIF(n=1) THEN sum=1;count=0; ELSIF(n=2) THEN sum=0 ;count=1; ELSE sum=1; count=1; END IF; END PROCESS; END behave;真值表x y cin sum cout0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1 黑龙江大学电子工程学院2、数据流描述 数据流描述方式(RTL描
18、述方式),主要使用并行的型号赋值语句,即显示的表示了该设计单元的行为,又隐含了该设计单元的结构。例5-42 一位全加器的数据流描述 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY onebitadder1 IS PORT( x,y,cin:IN BIT; sum,count:OUT BIT); END onebitadder1; ARCHITECTURE dataflow OF onebitadder1 IS BEGIN sum= x XOR y XOR cin; count=(a AND y)OR(x AND cin)OR(y AND ci
19、n); END dataflow;逻辑方程:count=xy+ycin+cinxsum=x y cin黑龙江大学电子工程学院2、结构描述 结构描述是描述该设计单元的硬件结构,即硬件是如何构成的。主要使用元件例化和配置语句来描述元件的类型和元件之间的互联关系。例5-43 一位全加器的结构描述 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY onebitadder2 IS PORT( x,y,cin:IN BIT; sum,count:OUT BIT); END onebitadder2; ARCHITECTURE structure OF on
20、ebitadder2 IS COMPONENT xor3-三输入异或门 PORT(a,b,c:IN BIT; o:OUT BIT); END COMPONENT; COMPONENT and-两输入与门 PORT(a,b:IN BIT; o:OUT BIT); END COMPONENT; 黑龙江大学电子工程学院 COMPONENT or3 三输入或门 PORT(a,b,c:IN BIT; o: OUT BIT); END COMPONENT; SIGNAL s1,s2,s3:BIT; BEGIN G1:xor3 PORT MAP(x,y,cin,sum); G2:and2 PORT MAP(
21、x,y,s1); G3:and2 PORT MAP(x,cin,s2); G4:and2 PORT MAP(y,cin,s3); G5:or3 PORT MAP(s1,s2,s3,cout); END structure;黑龙江大学电子工程学院第五章 VHDL设计进阶本章对VHDL的语言规则和语句类型做系统的论述。一、 VHDL语言要素 二、VHDL顺序语句三、VHDL并行语句四、子程序五、库、程序包及其配置六、VHDL描述风格七、常用元件设计举例八、VHDL与原理图混合设计方式黑龙江大学电子工程学院七、常用元件设计举例本小节通过一些常用基本逻辑电路的设计,介绍VHDL语言描述基本逻辑电路的方
22、法。 1、组合逻辑电路设计 2、时序逻辑电路设计 黑龙江大学电子工程学院1、组合逻辑电路设计I、基本门电路例5-44 二输入与门LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY andgate IS PORT( a,b:IN STD_LOGIC; c:OUT STD_LOGIC);END andgate;ARCHITECTURE and_2 OF andgate ISBEGIN c=a AND b;END and_2; 黑龙江大学电子工程学院LIBRARY IEEE; II、 8-3线优先编码器 例5-45 方法1USE IEEE.STD_LOGI
23、C_1164.ALL; -使用条件赋值语句实现ENTITY encoder IS PORT( a,b,c,d,e,f,g,h:IN STD_LOGIC; out0,out1,out2:OUT STD_LOGIC);END encoder;ARCHITECTURE behave1 OF encoder IS -条件赋值方式SIGNAL outvec:STD_LOGIC_VECTOR(2 WOWNTO 0);BEGIN outvec(2 DOWNTO 0)=“111”WHEN h=1 ELSE “110”WHEN g=1 ELSE “101”WHEN f=1 ELSE “100”WHEN e=1
24、ELSE “011”WHEN d=1 ELSE “010”WHEN c=1 ELSE “001”WHEN b=1 ELSE “000”WHEN a=1 ELSE“000”; out0 = outvec(0); out1 = outvec(1); out2 0 AND inputs(i)/=1 LOOP找到第一个inputs(i)=1 i:=i-1; END LOOP; (out2,out1,out0)=CONV_STD_LOGIC_VECTOR(i,3); END PROCESS;-将整形i转化为3位标准逻辑矢量类型赋给端口END behave2; 黑龙江大学电子工程学院LIBRARY IEE
25、E; - 8-3线优先编码器 例5-45 方法3USE IEEE.STD_LOGIC_1164.ALL; -使用IF语句实现ENTITY encoder IS PORT( in1:IN STD_LOGIC_VECTOR(7 DOWNTO 0); out1:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END encoder;ARCHITECTURE behave3 OF encoder IS BEGINPROCESS(in1)BEGIN IF in1(7)=1 THEN out1=“111”;-注意优先级 ELSIF in1(6)=1 THEN out1=“110”; EL
26、SIF in1(5)=1 THEN out1=“101”; ELSIF in1(4)=1 THEN out1=“100”; ELSIF in1(3)=1 THEN out1=“011”; ELSIF in1(2)=1 THEN out1=“010”; ELSIF in1(1)=1 THEN out1=“001”; ELSIF in1(0)=1 THEN out1=“000”; ELSE out1=“XXX”; END IF; END PROCESS;END behave3; 黑龙江大学电子工程学院LIBRARY IEEE; III、 7段显示译码器 例5-46USE IEEE.STD_LOGI
27、C_1164.ALL; -使用条件赋值语句实现ENTITY decoder IS PORT( d:IN STD_LOGIC_VECTOR(3 DOWNTO 0); x:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END decoder;ARCHITECTURE a OF decoder IS -选择信号赋值BEGIN WITH d SELECT x=“1111110”WHEN “0000”,-7段共阳数码管 “0110000”WHEN “0001”, “1101101”WHEN “0010”, “1111001”WHEN “0011”, “0110011”WHEN “01
28、00”, “1011011”WHEN “0101”, “1011111”WHEN “0110”, “1110000”WHEN “0111”, “1111111”WHEN “1000”, “1111011”WHEN “1001”, “0000000”WHEN OTHERS; END a; 黑龙江大学电子工程学院LIBRARY IEEE; IV、多路分配器 例5-47USE IEEE.STD_LOGIC_1164.ALL; -使用条件赋值语句实现ENTITY dmux1to8 IS PORT( data,enable:IN STD_LOGIC; s:IN STD_LOGIC_VECTOR(2 DO
29、WNTO 0) y0,y1,y2,y3,y4,y5,y6,y7: OUT STD_LOGIC);END dmux1to8;ARCHITECTURE a OF dmux1to8 IS BEGIN PROCESS( enable, s, data ) BEGIN IF enable=0 THEN y0=1;y1=1;y2=1;y3=1; y4=1;y5=1;y6=1;y7=1; -输出负逻辑 ELSIF s=“000” THEN y0=NOT(data); ELSIF s=“001” THEN y1=NOT(data); ELSIF s=“010” THEN y2=NOT(data); ELSIF
30、 s=“011” THEN y3=NOT(data); ELSIF s=“100” THEN y4=NOT(data); ELSIF s=“101” THEN y5=NOT(data); ELSIF s=“110” THEN y6=NOT(data); ELSIF s=“111” THEN y7=NOT(data); -s不同时候,通道不同 END IF; END PROCESS;END a; 黑龙江大学电子工程学院V、多位加法运算 例5-48LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;E
31、NTITY adder IS PORT( a,b:IN STD_LOGIC_VECTOR(7 DOWNTO 0); cin:IN STD_LOGIC; s: OUT STD_LOGIC_VECTOR(8DOWNTO 0);END adder;ARCHITECTURE behave OF adder IS BEGIN s= (0&a)+(0&b)+(“00000000”&cin);-都通过并置扩展为9位宽END behave; 在进行加法的时候将a,和b的高位都扩展了一个位0,在进位位cin前面扩展了7个位0,也就是都变成了9位,然后进行加法操作的。黑龙江大学电子工程学院
32、VI、三态门电路及总线缓冲器 例5-49 三态门电路LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY tristate IS PORT( en,din:IN STD_LOGIC; dout:OUT STD_LOGIC); END tristate;ARCHITECTURE tri OF tristate IS BEGIN PROCESS(en,din) BEGIN IF en=1 THEN dout=din; ELSE dout=Z; END IF; END PROCESS;END tri; 74LVC1G125黑龙江大学电子工程学院VI、三态
33、门及总线缓冲器 例5-50 8位单向总线缓冲器LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY tr1_buf8 IS PORT( din:IN STD_LOGIC_VECTOR(7 DOWNTO 0); dout:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); en: IN STD_LOGIC); END tr1_buf8;ARCHITECTURE behave OF tr1_buf8 IS BEGIN PROCESS(en,din) BEGIN IF (en=1) THEN dout=din; ELSE dout=“ZZ
34、ZZZZZZ”; END IF; END PROCESS;END behave; 黑龙江大学电子工程学院VI、三态门及总线缓冲器 例5-51 8位双向总线缓冲器LIBRARY IEEE; -74lS245USE IEEE.STD_LOGIC_1164.ALL; ENTITY bidir IS PORT( a,b:INOUT STD_LOGIC_VECTOR(7 DOWNTO 0); noe,dir: IN STD_LOGIC); END bidir;ARCHITECTURE bi OF bidir ISSIGNAL aout,bout:STD_LOGIC_VECTOR (7 DOWNTO 0)
35、; BEGIN PROCESS(a,en,dir) BEGIN IF (noe=0) AND (dir=1)THEN bout=a; ELSE bout=“ZZZZZZZZ”; END IF; b=bout; END PROCESS; 黑龙江大学电子工程学院 PROCESS(b,en,dir) BEGIN IF (noe=0) AND (dir=0)THEN aout=b; ELSE aout=“ZZZZZZZZ”; END IF; a=aout; END PROCESS;END bi; 黑龙江大学电子工程学院2、时序逻辑电路设计LIBRARY IEEE; - I、JK触发器 例5-52USE
36、 IEEE.STD_LOGIC_1164.ALL;ENTITY jkff IS PORT( clk,j,k:IN STD_LOGIC; q,nq:OUT STD_LOGIC); j=1,k=0 输出Q=1END jkff; j=0,k=1 输出Q=0ARCHITECTURE behave OF jkff IS j=1,k=1 输出Q=Not(Q) SIGNAL q_s,nq_s:STD_LOGIC; j=0,k=0 输出Q不变BEGIN PROCESS(clk,j,k) BEGIN IF(clkEVENT AND clk=1) THEN if (j=0)AND(k=1) THEN q_s=0;
37、 nq_s=1; ELSIF(j=1)AND (k=0) THEN q_s=1;nq_s=0; ELSIF(j=1)AND(k=1) THEN q_s=NOT q_s;nq_s=NOT nq_s; END IF; END IF; q=q_s; nq=nq_s; END PROCESS;END behave; 黑龙江大学电子工程学院II、8位锁存器 例5-53LIBRARY IEEE; -74LS273 USE IEEE.STD_LOGIC_1164.ALL;ENTITY reg_8 IS PORT( d:IN STD_LOGIC_VECTOR(0 TO 7); clk :IN STD_LOGI
38、C; q:OUT STD_LOGIC_VECTOR(0 TO 7);END reg_8;ARCHITECTURE behave OF reg_8 ISBEGIN PROCESS(clk) BEGIN IF(clkEVENT AND clk=1) THEN 时钟边沿锁存 q=d; END IF; END PROCESS;END behave; 黑龙江大学电子工程学院LIBRARY IEEE; III、异步复位和置位、同步预置的4位计数器 例5-54USE IEEE.STD_LOGIC_1164.ALL; -使用位矢量方式USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.
39、STD_LOGIC_UNSIGNED.ALL;ENTITY cnt41 IS PORT( pst,clk,enable ,rst,load:IN STD_LOGIC; date :IN STD_LOGIC_VECTOR(3 DOWNTO 0); cnt: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0) );END cnt41;ARCHITECTURE behave OF cnt41 ISBEGIN count: PROCESS(rst,clk,pst) BEGIN IF(rst=1) THEN cnt0); -异步清零 ELSIF pst=1 THEN cnt1); -
40、异步置1 ELSIF (clkEVENT AND clk=1) THEN IF load=1 THEN cnt=date; -同步加载 ELSIF enable =1 THEN cnt=cnt+1; -同步计数END IF; END IF; END PROCESS count;END behave; 黑龙江大学电子工程学院LIBRARY IEEE; III、异步复位和置位、同步预置的4位计数器 例5-54USE IEEE.STD_LOGIC_1164.ALL; -使用整数形式实现ENTITY cntm41 IS PORT( pst,clk,enable ,rst,load:IN BIT; da
41、ta :IN INTEGER RANGE 0 TO 15; q: OUT INTEGER RANGE 0 TO 15 );END cntm41;ARCHITECTURE behave OF cntm41 ISBEGIN PROCESS(rst,clk,pst) VARIABLE cnt: INTEGER RANGE 0 TO 15; BEGIN IF(rst=1) THEN cnt:= 0; ELSIF pst=1 THEN cnt:=15; ELSIF(clkEVENT AND clk=1) THEN IF load =1 THEN cnt:=data; -同步加载 ELSIF enable
42、 =1 THEN cnt :=cnt+1; -同步计数 END IF; END IF; q=cnt; END PROCESS;END behave; -教材写的不对,进行了修正黑龙江大学电子工程学院LIBRARY IEEE; IV、同步计数器 例5-55USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cntm60 IS PORT( ci:IN STD_LOGIC; -1增加,0不变 nreset :IN STD_LOGIC; -异步清零端 load:IN STD_LOGIC;-并行加载控制 d: IN STD
43、_LOGIC_VECTOR(7 DOWNTO 0);-输入 clk:IN STD_LOGIC; co:OUT STD_LOGIC;-溢出信号 qh: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); ql: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0););END cntm60;ARCHITECTURE behave OF cntm60 ISBEGIN co=1 WHEN(qh=“0101” AND ql=“1001” AND ci=1) ELSE 0; -计数溢出输出一个时钟周期高电平 59秒时候输出进位 黑龙江大学电子工程学院PROCESS
44、(clk,nreset) BEGIN IF(nreset=0) THEN qh=“0000”; ql=“0000”;-异步清零 ELSIF ( clkEVENT and clk =1) THEN IF(load =1) THEN qh=d (7 DOWNTO 4); ql=d(3 DOWNTO 0); -同步预置 ELSIF (ci =1) THEN -模60的实现 IF(ql = 9) THEN q=“0000”; -如低4位为9,则低位清零 IF (qh = 5 ) THEN qh=“0000”; -若高位为5,则高位清零 ELSE qh=qh+1; -若高位不是5,则高位加1 END I
45、F; ELSE ql=ql+1; -如低位不等于9,则低位加1 END IF; END IF; END IF; END PROCESS;END behave; 黑龙江大学电子工程学院LIBRARY IEEE; V、序列信号发生器 例5-56USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY senqgen IS PORT( clk,clr,clock:IN STD_LOGIC; zo :OUT STD_LOGIC); END senqgen;ARCHITE
46、CTURE behave OF senqgen IS SIGNAL count:STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL z:STD_LOGIC:=0;BEGIN PROCESS(clk,clr) 进程1,实现每个脉冲同步计数加1 BEGIN IF(clr=1) THEN count=“000”; ELSE IF(clk=1 AND clkEVENT) THEN IF(count=“111”) THEN count =“000”; ELSE count zzzzzzzzz=0; END CASE; END PROCESS; PROCESS(clock,z) 进程3,同步输出进程 BEGIN IF(clockEVENT AND clock=1) THEN z0=z; END IF; END PROCESS;END behave; 黑龙江大学电子工程学院第五章 VHDL设计进阶本章对VHDL的语言规则和语句类型做系统的论述。一、 VHDL语言要素 二、VHDL顺序语句三、VHDL并行语句四、子程序五、库、程序包及其配置六、VHDL描述风格七、常用元件设计举例八、VHDL与原理图混合设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年运动鞋品牌校园代理销售及培训合同3篇
- 二零二五年度个人住房公积金贷款房产抵押合同范本3篇
- 2024年路灯改造与城市环境美化工程合同3篇
- 2024年简化版货物销售协议样本版
- 2024房屋联建协议范本:权益分配明细版
- 二零二五年度二手电动自行车买卖与品牌营销合同2篇
- 2024年白糖采购正式合同
- 2024年离婚财产分配审计合同
- 万兆工厂试点实施的阶段性规划策略
- 2024年版权许可合同:电子书数字版权的分级授权
- 英语-湖南省天一大联考暨郴州市2025届高考高三第二次教学质量检测(郴州二检怀化统考)试题和答案
- 【MOOC期末】《形势与政策》(北京科技大学)期末慕课答案
- 营销专业安全培训
- 2024年度五星级酒店厨师团队管理与服务合同3篇
- 广东省广州市花都区2024年七年级上学期期末数学试题【附答案】
- 期末测试模拟练习 (含答案) 江苏省苏州市2024-2025学年统编版语文七年级上册
- 上海市徐汇区2024-2025学年高一语文下学期期末试题含解析
- 安全风险隐患举报奖励制度
- 线性代数知到智慧树章节测试课后答案2024年秋贵州理工学院
- 建筑幕墙工程检测知识考试题库500题(含答案)
- 安防主管岗位招聘面试题及回答建议(某大型集团公司)2025年
评论
0/150
提交评论