EDA技术及应用 第四章 VHDL设计初步

上传人:dao****ing 文档编号:243097813 上传时间:2024-09-15 格式:PPT 页数:58 大小:890KB
返回 下载 相关 举报
EDA技术及应用 第四章 VHDL设计初步_第1页
第1页 / 共58页
EDA技术及应用 第四章 VHDL设计初步_第2页
第2页 / 共58页
EDA技术及应用 第四章 VHDL设计初步_第3页
第3页 / 共58页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,EDA,技术及应用,主讲:牛军浩,第四章,VHDL,设计初步,4.1,多路选择器的,VHDL,描述,4.2,寄存器描述及其,VHDL,语言现象,4.3 1,位二进制全加器的,VHDL,描述,4.4,计数器设计,4.5,一般加法计数器设计,教学目的,通过简单、完整而典型的,VHDL,设计示例,初步了解用,VHDL,表达和设计电路的方法。,4.1,多路选择器的,VHDL,描述,2,选,1,多路选择器的示意图和真值表,a,b,s,y,a,x,0,a,x,b,1,b,a,b,y,s,0,1,当,s=0,时,,y=a,当,s=1,时,,y=b,4.1,多路选择器的,VHDL,描述,2. 2,选,1,多路选择器实现原理图形输入法,0,0,1,y=a,0,a,1,1,0,y=b,b,0,4.1,多路选择器的,VHDL,描述,2. 2,选,1,多路选择器实现,VHDL,文本输入法,1,实体,结构体,实体名称,端口名称,流动方向,数据类型,结构体名,功能描述,4.1,多路选择器的,VHDL,描述,2. 2,选,1,多路选择器实现,VHDL,文本输入法,2,实体,结构体,4.1,多路选择器的,VHDL,描述,2. 2,选,1,多路选择器实现,VHDL,文本输入法,3,实体,结构体,4.1,多路选择器的,VHDL,描述,3.,相关语句结构和语法实体表达结构,ENTITY,、,IS,、,PORT,、,END,都是描述实体的关键词,不分大写小写,但是为了便于阅读,一般在设计中将关键词使用大写,自定义使用小写。,4.1,多路选择器的,VHDL,描述,3.,相关语句结构和语法实体名称,实体名表达的是该设计电路的器件名,通常根据相应电路的功能来确定。,不能用数字或中文、不能与工具库中已定义的元件名、不能数字开头。,4.1,多路选择器的,VHDL,描述,3.,相关语句结构和语法实体名称举例,mux41,74LS04,and2,adder4b,not,4,输入与门,4.1,多路选择器的,VHDL,描述,3.,相关语句结构和语法端口语句和名称,端口以,PORT();,来引导,端口模式有:,IN,、,OUT,、,INOUT,、,BUFFER,数据类型有:,BOOLEAN,、,BIT,、,INTEGER,、,CHAR,型等,4.1,多路选择器的,VHDL,描述,3.,相关语句结构和语法结构体表达结构,ARCHITECTURE,、,OF,、,IS,、,BEGIN,、,END,都是描述结构体的关键词。,功能描述语句:并行语句,顺序语句并行语句:,WHEN_ELSE,,逻辑操作赋值,顺序语句:,IF_THEN_ELSE,功能描述语句,4.1,多路选择器的,VHDL,描述,3.,相关语句结构和语法文件名称,使用,VHDL,语句编写:后缀是,.,vhd,使用,Verilog,HDL,语句编写:后缀是,.v,使用原理图输入设计:后缀是,.,gdf,文件名称建议和实体名称相同,4.1,多路选择器的,VHDL,描述,4.,思考,y =,ab,+ c,_,思考,1,:画出真值表,a,b,c,y,x,x,1,1,0,x,0,0,1,b,0,b,_,4.1,多路选择器的,VHDL,描述,4.,思考,y =,ab,+ c,_,思考,2,:使用原理图方式实现上式功能,4.1,多路选择器的,VHDL,描述,4.,思考,y =,ab,+ c,_,思考,3,:使用,VHDL,实现上式功能,4.1,多路选择器的,VHDL,描述,5.,赋值符号,Y = (a AND (NOT s) or (b AND s),赋值符号,4.1,多路选择器的,VHDL,描述,6.,各种表达式的比较,-,布尔逻辑表达式,y = (a,AND,(,NOT,s),OR,(b,AND,s),4.1,多路选择器的,VHDL,描述,6.,各种表达式的比较,-,条件赋值表达式,y = a,WHEN,s1=0,ELSE,b ;,赋值目标,=,表达式,WHEN,赋值条件,ELSE,表达式,WHEN,赋值条件,ELSE,表达式,WHEN,赋值条件,ELSE,表达式,;,4.1,多路选择器的,VHDL,描述,7.,各种表达式的比较,-IF_THEN_ELSE,表达,IF,(s=0),THEN,y=a;,ELSE,y=b;,END IF;,IF,条件表达式,THEN,赋值语句,;,ELSIF,条件表达式,THEN,赋值语句,;,ELSIF,条件表达式,THEN,赋值语句,;,ELSE,条件表达式,;,END IF,;,4.1,多路选择器的,VHDL,描述,8.,小结,4.1,节中主要通过多路选择器的实现过程,学习了,VHDL,描述的基本语言结构,以及,组合逻辑电路,的功能描述方法,布尔逻辑表达式,WHEN_ELSE,条件表达式,IF_THEN_ELSE,表达式,4.2,寄存器描述及其,VHDL,语言,1.,教学目的,通过,D,触发器的,VHDL,实现过程,学习,时序电路,的,VHDL,描述,方法。,4.2,寄存器描述及其,VHDL,语言,2. D,触发器的功能描述,当,CP=0,时,触发器不工作,处于维持状态。当,CP=1,时,它的功能如下:当,D=0,时,次态,=0,,当,D=1,时,次态,=1,。,4.2,寄存器描述及其,VHDL,语言,3. VHDL,实现,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY dff1 IS,PORT(,clk,: IN STD_LOGIC;,d: IN STD_LOGIC;,q: OUT STD_LOGIC,);,END dff1;,ARCHITECTURE,bhv,OF dff1 IS,SIGNALq1 : STD_LOGIC;,BEGIN,PROCESS (clk,q1),BEGIN,IF CLKEVENT AND CLK=1,THEN q1 = d;,END IF;,END PROCESS;,q=q1;,END,bhv,;,引用库,数据类型,内部节点,时钟条件,4.2,寄存器描述及其,VHDL,语言,4. VHDL,实现引用库,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,LIBRARY,设计库名称,;,USE,设计库,.,程序包名,.ALL;,数据类型、函数等放在设计库中和程序包中。,因为使用了,STD_LOGIC,的数据类型,而该数据类型放置在设计库,IEEE,的,STD_LOGIC_1164,程序包中,所以在使用前需要先申明。,4.2,寄存器描述及其,VHDL,语言,4. VHDL,实现数据类型,PORT(clk,: IN STD_LOGIC;,d: IN STD_LOGIC;,q: OUT STD_LOGIC);,BIT,的定义:,TYPE BIT IS (0, 1);,STD_LOGIC,的定义:,TYPE STD_LOGIC IS (U,X,0,1,Z,W,L,H,-),4.2,寄存器描述及其,VHDL,语言,4. VHDL,实现信号定义(内部节点),SIGNALq1 : STD_LOGIC;,不必定义端口模式(如,IN,、,OUT,),目的是为了设计更大的时序电路,q,q1,X1,PORT(clk,: IN STD_LOGIC;,d: IN STD_LOGIC;,q: OUT STD_LOGIC);,q=q1;,4.2,寄存器描述及其,VHDL,语言,4. VHDL,实现时钟表达式,IF,clkEVENT,AND,clk,=1,检测时钟信号的上升沿,表示,clk,信号有变化,并且变化后为,1,4.2,寄存器描述及其,VHDL,语言,4. VHDL,实现存储功能的产生,不完整的条件语句实现存储功能元件,如果是完整的条件语句,则只能构成逻辑电路,IF,clkEVENT,AND,clk,=1,THEN q1 = d;,END IF;,4.2,寄存器描述及其,VHDL,语言,5.,实现时序电路的不同描述,IF (,clkEVENT,) AND (,clk,=1) AND,(,clkLAST_VALUE,=0),IF (,clk,=1) AND (,clkLAST_VALUE,=0),IF,rising_edge(clk,) -STD_LOGIC_1164,定义,Wait until,clk,= 1;,4.2,寄存器描述及其,VHDL,语言,6.,同步时序电路和异步时序电路,移位寄存器,二进制计数器,只需一个时钟进程,需两个时钟进程,4.2,寄存器描述及其,VHDL,语言,6.,同步时序电路和异步时序电路,PROCESS (,clk,),BEGIN,*,END PROCESS;,PROCESS (q),BEGIN,*,END PROCESS;,4.3 1,位二进制全加器的,VHDL,描述,1.,半加器功能描述,全加器可由两个半加器和一个或门构成,半加器是最简单的加法器,把,2,个,1,位二进制数相加,不考虑低位的进位 ,产生一个,2,位和,和的低位叫半加和,高位叫半加进位,半加器由一个与门,一个或门和一个异或门构成,4.3 1,位二进制全加器的,VHDL,描述,2.,半加器真值表及电路图,a,b,co,so,0,0,0,0,0,1,0,1,1,0,0,1,1,1,1,0,co = a,AND,b,so = a,XOR,b,4.3 1,位二进制全加器的,VHDL,描述,3.,半加器,VHDL,描述方法布尔表达式,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY,h_adder,IS,PORT(,a,b,: IN STD_LOGIC;,co,so,: OUT STD_LOGIC);,END,h_adder,;,ARCHITECTURE a OF,h_adder,IS,BEGIN,co = a AND b;,so = a XOR b;,END a;,4.3 1,位二进制全加器的,VHDL,描述,3.,半加器,VHDL,描述方法真值表表达方式,a,b,co,so,0,0,0,0,0,1,0,1,1,0,0,1,1,1,1,0,4.3 1,位二进制全加器的,VHDL,描述,4.,全加器图形输入法,考虑低位进位的情况下,,2,个输入和,4.3 1,位二进制全加器的,VHDL,描述,5.,全加器,VHDL,描述,或门,通过顶层调用底层元件,实现全加器,下面使用,VHDL,描述实现或门逻辑。,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY or2aIS,PORT(,a,b,: IN STD_LOGIC;,c : OUT STD_LOGIC);,END or2a;,ARCHITECTURE a OF or2aIS,BEGIN,c = a or b;,END a;,4.3 1,位二进制全加器的,VHDL,描述,5.,全加器,VHDL,描述,顶层设计,通过顶层调用底层元件,实现全加器,d,e,f,4.3 1,位二进制全加器的,VHDL,描述,6.,新学内容总结,a.,标准逻辑矢量数据类型,b.,并置操作符,c. CASE,语句,d.,顶层描述及例化语句,4.3 1,位二进制全加器的,VHDL,描述,6.,新学内容总结标准逻辑矢量数据类型,STD_LOGIC_VECTOR,标准一维数组,数组中每一位的数据类型都是,STD_LOGIC,STD_LOGIC,标准位类型,定义方法:,A : OUT STD_LOGIC_VECTOR(7 DOWNTO 0),B : OUT STD_LOGIC_VECTOR(1 TO 5),赋值方法:,A = “01010101”;,A(7 DOWNTO 4 ) =“0101”;,4.3 1,位二进制全加器的,VHDL,描述,6.,新学内容总结并置操作符,并置操作符,&,的作用:,将操作数或者数组合并成新的数组,操作符 举例 功能,=,c,IF(s,=0)THEN,比较操作符,&,abc,= a & b,并置操作符,使用方法:,0 & 1 & a & d(1),定义信号,注释操作符,4.3 1,位二进制全加器的,VHDL,描述,6.,新学内容总结,CASE,语句,利用,CASE,语句可以直接表达电路的逻辑真值表,有效直观,功能表达语句 功能,c,ain,b,=,bin,co,=,d,so,=e);,u2 : h_adder2 PORT,MAP(a,=,e,b,=,cin,co,=,f,so,=sum);,u3 : or2a PORT,MAP(a,=,d,b,=,f,c,=,cout,);,例化名相当于电子电路里的标号,元件名即调用的元件实体的名称,相对于器件名称,PORT MAP,表示端口映射,端口到外部引脚或引线的连接关系,两个例化元件之间不能直接连接,=,是连接符号,例化名,:,元件名,PORT MAP(,端口名,=X,端口名,=Y, ),4.3 1,位二进制全加器的,VHDL,描述,7.,思考 习题,4-2,思考 习题,4-3,思考 习题,4-4,4.4,计数器设计,1.,计数器的,VHDL,描述,BUFFER,INTEGER,q=q+1,4.4,计数器设计,1.,计数器的,VHDL,描述,BUFFER,BUFFER,IN,OUT,INOUT,元件,等效于在结构体,BEGIN,之前定义了一个信号,供反馈使用,4.4,计数器设计,1.,计数器的,VHDL,描述,INTEGER,INTEGER,BIT,STD_LOGIC,STD_LOGIC_VECTOR,INTEGER,类型可用,32,位有符号的二进制数表示,取值范围:,-2147483647,+2147483647,INTEGER,必须有,RANGE,限定范围,否则无法综合,VHDL,规定加、减等算术符对应的操作数的数据类型只能是,INTEGER,型(除非重载算术操作符),NATURAL,、,POSITIVE,是,INTEGER,的子类型,在语句中,INTEGER,类型表达式不加 ,4.4,计数器设计,1.,计数器的,VHDL,描述,运算符重载,4.4,作业,1.,端口模式有那些?各有什么区别?,2.,习题,4-2,4.5 4,位,2,进制计数器设计,1.,带进位计数器的,VHDL,描述,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY cnt4 IS,PORT(,clk,: IN STD_LOGIC;,q : BUFFER INTEGER RANGE 15 DOWNTO 0;,c : OUT STD_LOGIC,);,END cnt4 ;,ARCHITECTURE a OF cnt4 IS,BEGIN,PROCESS(clk,),BEGIN,IF(clkEVENT,AND (,clk,= 1) THEN,IF (q 15),THEN q =q +1; c=0;,ELSE q = 0; c,clk, q =,qL, c=s1 );,u2: cnt4 PORT,MAP(clk,= s1 , q =,qH, c=,cout,);,END a;,4.5,作业,设计一位十进制计数器,即计数范围,0,9,要求:有进位输出,2.,使用第一题中的一位十进制计数器,设计,3,位十进制计数器,即计数范围,000,999,要求:有进位输出,采用顶层设计的方法,调用习题,1,的设计。,4.5,作业,设计一位十进制计数器,即技术范围,0,9,要求:有进位输出,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY,cntten,IS,PORT(,clk,: IN STD_LOGIC;,q : BUFFER INTEGER RANGE 9 DOWNTO 0;,c : OUT STD_LOGIC,);,END,cntten,;,ARCHITECTURE a OF,cntten,IS,BEGIN,PROCESS(clk,),BEGIN,IF(clkEVENT,AND (,clk,= 1) THEN,IF (q 9),THEN q =q +1; c=0;,ELSE q = 0; c,clk, q =,qL, c=s1 );,u2:,cntten,PORT,MAP(clk,= s1 , q =,qH, c=s2);,u3:,cntten,PORT,MAP(clk,= s2 , q =,qV, c=,cout,);,END a;,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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