EDA技术使用教程课后答案第4章

上传人:dao****ing 文档编号:243095781 上传时间:2024-09-15 格式:PPT 页数:60 大小:397.50KB
返回 下载 相关 举报
EDA技术使用教程课后答案第4章_第1页
第1页 / 共60页
EDA技术使用教程课后答案第4章_第2页
第2页 / 共60页
EDA技术使用教程课后答案第4章_第3页
第3页 / 共60页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,EDA,技术实用教程,第,4,章,VHDL,设计初步,4.1,多路选择器的,VHDL,描述,K,X,康芯科技,4.1.1 2,选,1,多路选择器的,VHDL,描述,图,4-1 mux21a,实体,4.1,多路选择器的,VHDL,描述,K,X,康芯科技,4.1.1 2,选,1,多路选择器的,VHDL,描述,图,4-2 mux21a,结构体,4.1,多路选择器的,VHDL,描述,K,X,康芯科技,4.1.1 2,选,1,多路选择器的,VHDL,描述,【,例,4-1】,ENTITY mux21a IS,PORT ( a, b : IN BIT;,s : IN BIT;,y : OUT BIT );,END ENTITY mux21a;,ARCHITECTURE one OF mux21a IS,BEGIN,y = a WHEN s = 0 ELSE b ;,END ARCHITECTURE one ;,4.1,多路选择器的,VHDL,描述,K,X,康芯科技,4.1.1 2,选,1,多路选择器的,VHDL,描述,【,例,4-2】,ENTITY mux21a IS,PORT ( a, b : IN BIT;,s : IN BIT;,y : OUT BIT );,END ENTITY mux21a;,ARCHITECTURE one OF mux21a IS,SIGNAL d,e : BIT;,BEGIN,d = a AND (NOT S) ;,e = b AND s ;,y = d OR e ;,END ARCHITECTURE one ;,4.1,多路选择器的,VHDL,描述,K,X,康芯科技,4.1.1 2,选,1,多路选择器的,VHDL,描述,【,例,4-3】,ENTITY mux21a IS,PORT ( a, b, s: IN BIT;,y : OUT BIT );,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 ;,4.1,多路选择器的,VHDL,描述,K,X,康芯科技,4.1.1 2,选,1,多路选择器的,VHDL,描述,图,4-3 mux21a,功能时序波形,4.1,多路选择器的,VHDL,描述,K,X,康芯科技,4.1.2,相关语句结构和语法说明,【,例,4-4】,ENTITY e_name IS,PORT ( p_name : port_m data_type;,.,p_namei,: port_mi data_type );,END ENTITY e_name;,1.,实体表达,2.,实体名,3.,端口语句和端口信号名,4.1,多路选择器的,VHDL,描述,K,X,康芯科技,4.1.2,相关语句结构和语法说明,4.,端口模式,IN,输入端口,定义的通道为单向只读模式,OUT,输出端口,定义的通道为单向输出模式,INOUT,定义的通道确定为输入输出双向端口,BUFFER,缓冲端口,其功能与,INOUT,类似,4.1,多路选择器的,VHDL,描述,K,X,康芯科技,4.1.2,相关语句结构和语法说明,5.,数据类型,6.,结构体表达,【,例,4-5】,ARCHITECTURE arch_name OF e_name IS,说明语句,BEGIN,(,功能描述语句,),END ARCHITECTURE arch_name,;,4.1,多路选择器的,VHDL,描述,K,X,康芯科技,4.1.2,相关语句结构和语法说明,7.,赋值符号和数据比较符号,赋值符,“,=,”,表式中的等号,“,=,”,没有赋值的含义,只是一种数据比较符号。,IF a THEN . -,注意,,a,的数据类型必须是,boolean,IF (s1=0)AND(s2=1)OR(cb+1) THEN .,4.1,多路选择器的,VHDL,描述,K,X,康芯科技,4.1.2,相关语句结构和语法说明,8.,逻辑操作符,AND,、,OR、NOT,9.,条件语句,IF_THEN_ELSE,IF,语句必须以语句,“,END IF,;”,结束,4.1,多路选择器的,VHDL,描述,K,X,康芯科技,4.1.2,相关语句结构和语法说明,10. WHEN_ELSE,条件信号赋值语句,赋值目标,=,表达式,WHEN,赋值条件,ELSE,表达式,WHEN,赋值条件,ELSE,.,表达式,;,z = a WHEN p1 = 1 ELSE,b WHEN p2 = 1 ELSE,c ;,4.1,多路选择器的,VHDL,描述,K,X,康芯科技,4.1.2,相关语句结构和语法说明,11.,进程语句和顺序语句,在一个结构体中可以包含任意个进程语句结构,所有的进程语句都是并行语句,而由任一进程,PROCESS,引导的语句(包含在其中的语句)结构属于顺序语句。,12.,文件取名和存盘,4.2,寄存器描述及其,VHDL,语言现象,4.2.1 D,触发器的,VHDL,描述,K,X,康芯科技,【,例,4-6】,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 ;,ARCHITECTURE,bhv,OF DFF1 IS,SIGNAL Q1 : STD_LOGIC ; -,类似于在芯片内部定义一个数据的暂存节点,BEGIN,PROCESS (CLK,Q1),BEGIN,IF CLKEVENT AND CLK = 1,THEN Q1 = D ;,END IF;,END PROCESS ;,Q = Q1 ; -,将内部的暂存数据向端口输出(双横线,-,是注释符号),END,bhv,;,图,4-4 D,触发器,图,4-4 D,触发器,K,X,康芯科技,4.2,寄存器描述及其,VHDL,语言现象,4.2.2 VHDL,描述的语言现象说明,图,4-4 D,触发器,1.,标准逻辑位数据类型,STD_LOGIC,BIT,数据类型定义:,TYPE BIT IS(0,1); -,只有两种取值,STD_LOGIC,数据类型定义:,TYPE STD_LOGIC IS (U,X,0,1,Z,W,L,H,-);,K,X,康芯科技,4.2,寄存器描述及其,VHDL,语言现象,4.2.2 VHDL,描述的语言现象说明,图,4-4 D,触发器,2.,设计库和标准程序包,LIBRARY WORK ;,LIBRARY STD ;,USE STD.STANDARD.ALL ;,使用库和程序包的一般定义表式是:,LIBRARY ;,USE .ALL ;,K,X,康芯科技,4.2,寄存器描述及其,VHDL,语言现象,4.2.2 VHDL,描述的语言现象说明,图,4-4 D,触发器,3.,信号定义和数据对象,“,CLKEVENT AND CLK=1,”,“,SIGNAL Q1,:,STD_LOGIC,;”,4.,上升沿检测表式和信号属性函数,EVENT,EVENT,K,X,康芯科技,5.,不完整条件语句与时序电路,【,例,4-7】,ENTITY COMP_BAD IS,PORT( a1,,,b1 : IN BIT;,q1 : OUT BIT );,END ;,ARCHITECTURE one OF COMP_BAD IS,BEGIN,PROCESS (a1,b1),BEGIN,IF a1 b1 THEN q1 = 1 ;,ELSIF a1 b1 THEN q1 b1 THEN q1 = 1 ;,ELSE q1 = 0 ; END IF;,.,K,X,康芯科技,4.2.3,实现时序电路的,VHDL,不同表述,4.2,寄存器描述及其,VHDL,语言现象,【,例,4-9】,.,PROCESS (CLK),BEGIN,IF CLKEVENT AND (CLK=1) AND (CLKLAST_VALUE=0),THEN Q = D ; -,确保,CLK,的变化是一次上升沿的跳变,END IF;,END PROCESS ;,K,X,康芯科技,4.2.3,实现时序电路的,VHDL,不同表述,4.2,寄存器描述及其,VHDL,语言现象,【,例,4-10】,.,PROCESS (CLK),BEGIN,IF CLK=1 AND CLKLAST_VALUE=0 -,同例,3-9,THEN Q = D ;,END IF;,END PROCESS ;,K,X,康芯科技,【,例,4-11】,LIBRARY IEEE ;,USE IEEE.STD_LOGIC_1164.ALL ;,ENTITY DFF3 IS,PORT (CLK,,,D : IN STD_LOGIC ;,Q : OUT STD_LOGIC );,END ;,ARCHITECTURE,bhv,OF DFF3 IS,SIGNAL Q1 : STD_LOGIC;,BEGIN,PROCESS (CLK),BEGIN,IF rising_edge(CLK) -,必须打开,STD_LOGIC_1164,程序包,THEN Q1 = D ;,END IF;,END PROCESS ;,Q = Q1 ; -,在此,赋值语句可以放在进程外,作为并行赋值语句,END ;,K,X,康芯科技,4.2.3,实现时序电路的,VHDL,不同表述,4.2,寄存器描述及其,VHDL,语言现象,【,例,4-12】,.,PROCESS,BEGIN,wait until CLK = 1 ; -,利用,wait,语句,Q = D ;,END PROCESS;,K,X,康芯科技,4.2.3,实现时序电路的,VHDL,不同表述,【,例,4-13】,.,PROCESS (CLK),BEGIN,IF CLK = 1,THEN Q = D ; -,利用进程的启动特性产生对,CLK,的边沿检测,END IF;,END PROCESS ;,图,4-7,例,4-13,的时序波形,K,X,康芯科技,4.2.3,实现时序电路的,VHDL,不同表述,【,例,4-14】,.,PROCESS (CLK,,,D) BEGIN,IF CLK = 1 -,电平触发型寄存器,THEN Q = D ;,END IF;,END PROCESS ;,图,4-8,例,4-14,的时序波形,K,X,康芯科技,4.2.4,异步时序电路设计,【,例,4-15】,.,ARCHITECTURE,bhv,OF MULTI_DFF IS,SIGNAL Q1,Q2 : STD_LOGIC;,BEGIN,PRO1: PROCESS (CLK),BEGIN,IF CLKEVENT AND CLK=1,THEN Q1 = NOT (Q2 OR A);,END IF;,END PROCESS ;,PRO2: PROCESS (Q1),BEGIN,IF Q1EVENT AND Q1=1,THEN Q2 = D;,END IF;,END PROCESS ;,QQ = Q2 ;,.,K,X,康芯科技,图,4-9,例,4-15,综合后的电路(,Synplify,综合),4.2.4,异步时序电路设计,4.2,寄存器描述及其,VHDL,语言现象,K,X,康芯科技,图,4-10,半加器,h_adder,电路图及其真值表,4.3.1,半加器描述,4.3 1,位二进制全加器的,VHDL,描述,K,X,康芯科技,图,4-11,全加器,f_adder,电路图及其实体模块,4.3.1,半加器描述,4.3 1,位二进制全加器的,VHDL,描述,K,X,康芯科技,4.3.1,半加器描述,4.3 1,位二进制全加器的,VHDL,描述,【,例,4-16】,LIBRARY IEEE; -,半加器描述,(1),:布尔方程描述方法,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY h_adder IS,PORT (a, b : IN STD_LOGIC;,co, so : OUT STD_LOGIC);,END ENTITY h_adder;,ARCHITECTURE fh1 OF h_adder is,BEGIN,so = NOT(a XOR (NOT b) ; co = a AND b ;,END ARCHITECTURE fh1;,K,X,康芯科技,【,例,4-17】,LIBRARY IEEE; -,半加器描述,(2),:真值表描述方法,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY h_adder IS,PORT (a, b : IN STD_LOGIC;,co, so : OUT STD_LOGIC);,END ENTITY h_adder;,ARCHITECTURE fh1 OF h_adder is,SIGNAL,abc,: STD_LOGIC_VECTOR(1 DOWNTO 0) ; -,定义标准逻辑位矢量数据类型,BEGIN,abc, so=0; co so=1; co so=1; co so=0; co NULL ;,END CASE;,END PROCESS;,END ARCHITECTURE fh1 ;,K,X,康芯科技,4.3.1,半加器描述,4.3 1,位二进制全加器的,VHDL,描述,【,例,4-18】,LIBRARY IEEE ; -,或门逻辑描述,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY or2a IS,PORT (a, b :IN STD_LOGIC;,c : OUT STD_LOGIC );,END ENTITY or2a,;,ARCHITECTURE one OF or2a IS,BEGIN,c ,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,);,END ARCHITECTURE fd1;,K,X,康芯科技,4.3.2 CASE,语句,4.3 1,位二进制全加器的,VHDL,描述,1.,CASE,语句,CASE IS,When = ; . ; ,;,When = ; . ; ,;,.,WHEN OTHERS =,;,END CASE,;,K,X,康芯科技,4.3.2 CASE,语句,4.3 1,位二进制全加器的,VHDL,描述,2.,标准逻辑矢量数据类型,STD_LOGIC_VECTOR,STD_LOGIC,在使用,STD_LOGIC_VECTOR,中,,必须注明其数组宽度,即位宽,如:,B : OUT STD_LOGIC_VECTOR(7 DOWNTO 0),;,或,SIGNAL A,:,STD_LOGIC_VECTOR(1 TO 4),B = 01100010 ; - B(7),为,0,B(4 DOWNTO 1) = 1101 ; - B(4),为,1,B(7 DOWNTO 4) = A ; - B(6),等于,A(2),K,X,康芯科技,4.3.2 CASE,语句,4.3 1,位二进制全加器的,VHDL,描述,3.,并置操作符,SIGNAL a : STD_LOGIC_VECTOR (3 DOWNTO 0) ;,SIGNAL d : STD_LOGIC_VECTOR (1 DOWNTO 0) ;,.,a ,连接端口名,.);,K,X,康芯科技,4.4,计数器设计,【,例,4-20】,ENTITY CNT4 IS,PORT ( CLK : IN BIT ;,Q : BUFFER INTEGER RANGE 15 DOWNTO 0 ) ;,END ;,ARCHITECTURE,bhv,OF CNT4 IS,BEGIN,PROCESS (CLK),BEGIN,IF CLKEVENT AND CLK = 1 THEN,Q = Q + 1 ;,END IF;,END PROCESS ;,END,bhv,;,K,X,康芯科技,4.4,计数器设计,4.4.1 4,位二进制加法计数器设计,表式,Q = Q + 1,的右项与左项并非处于相同的时刻内,对于时序电路,除了传输延时外,前者的结果出现于当前时钟周期;后者,即左项要获得当前的,Q + 1,,,需等待下一个时钟周期。,表面上,,BUFFER,具有双向端口,INOUT,的功能,但实际上其输入功能是不完整的,它只能将自己输出的信号再反馈回来,并不含有,IN,的功能。,注意,K,X,康芯科技,4.4,计数器设计,4.4.2,整数类型,Q : BUFFER INTEGER RANGE 15 DOWNTO 0;,1,十进制整数,0,十进制整数,35,十进制整数,10E3,十进制整数,等于十进制整数,1000,16#D9#,十六进制整数,等于十六进制整数,D9H,8#720#,八进制整数,等于八进制整数,720O,2#11010010#,二进制整数,等于二进制整数,11010010B,整数常量的书写方式示例,Q : BUFFER NATURAL RANGE 15 DOWNTO 0,;,K,X,康芯科技,4.4.3,计数器设计的其他表述方法,【,例,4-21】,LIBRARY IEEE ;,USE IEEE.STD_LOGIC_1164.ALL ;,USE IEEE.STD_LOGIC_UNSIGNED.ALL ;,ENTITY CNT4 IS,PORT ( CLK : IN STD_LOGIC ;,Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ) ;,END ;,ARCHITECTURE,bhv,OF CNT4 IS,SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0);,BEGIN,PROCESS (CLK),BEGIN,IF CLKEVENT AND CLK = 1 THEN,Q1 = Q1 + 1 ;,END IF;,END PROCESS ;,Q 0) ; -,-,计数,器异步复位,ELSIF CLKEVENT AND CLK=1 THEN,-,检测时钟上升沿,接下页,K,X,康芯科技,4.5,一般加法计数器设计,IF EN = 1 THEN,-,检测是否允许计数(同步使能),IF CQI 0); -,大于,9,,,计数值清零,END IF;,END IF;,END IF;,IF CQI = 9 THEN COUT = 1; -,计数大于,9,,输出进位信号,ELSE COUT = 0;,END IF;,CQ X),SIGNAL d1 : STD_LOGIC_VECTOR(4 DOWNTO 0);,VARIABLE a1 : STD_LOGIC_VECTOR(15 DOWNTO 0);,.,d1 0),;,a1 := (OTHERS=0),;,d1 e(3),3=e(5), OTHERS=e(1) );,f = e(1) ,K,X,康芯科技,4.5,一般加法计数器设计,4.5.2,程序分析,图,4-14,例,4-22,的,RTL,电路(,Synplify,综合),K,X,康芯科技,4.5,一般加法计数器设计,4.5.2,程序分析,图,4-15,例,4-22,的工作时序,K,X,康芯科技,4.5.3,含并行置位的移位寄存器设计,【,例,4-23】,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY SHFRT IS - 8,位右移寄存器,PORT ( CLK,,,LOAD : IN STD_LOGIC;,DIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0);,QB : OUT STD_LOGIC );,END SHFRT;,ARCHITECTURE,behav,OF SHFRT IS,BEGIN,PROCESS (CLK, LOAD),VARIABLE REG8 : STD_LOGIC_VECTOR(7 DOWNTO 0);,BEGIN,IF CLKEVENT AND CLK = 1 THEN,IF LOAD = 1 THEN REG8 := DIN; -,由(,LOAD=1,),装载新数据,ELSE REG8(6 DOWNTO 0) := REG8(7 DOWNTO 1);,END IF;,END IF;,QB = REG8(0); -,输出最低位,END PROCESS;,END,behav,;,K,X,康芯科技,4.5,一般加法计数器设计,4.5.3,含并行置位的移位寄存器设计,图,4-16,例,4-23,的工作时序,clk,D0,D7,LOAD,QB,DIN7,DIN6,DIN5,DIN4,DIN3,DIN2,DIN1,DIN0,QB,D7,D6,D5,D4,D3,D2,D1,D0,D0,D7,D7,D6,D5,D4,D3,D2,D1,D1,D7,D7,D7,D6,D5,D4,D3,D2,D2,D7,D7,D7,D7,D6,D5,D4,D3,D3,D7,D7,D7,D7,D7,D6,D5,D4,D4,D7,D7,D7,D7,D7,D7,D6,D5,D5,D7,D7,D7,D7,D7,D7,D7,D6,D6,D7,D7,D7,D7,D7,D7,D7,D7,D7,习 题,K,X,康芯科技,4-1.,画出与下例实体描述对应的原理图符号元件:,ENTITY buf3s IS -,实体,1,:,三态缓冲器,PORT (input : IN STD_LOGIC ; -,输入端,enable : IN STD_LOGIC ; -,使能端,output : OUT STD_LOGIC ) ; -,输出端,END buf3x ;,ENTITY mux21 IS -,实体,2,:,2,选,1,多路选择器,PORT (in0, in1,sel,: IN STD_LOGIC;,output : OUT STD_LOGIC);,习 题,K,X,康芯科技,4-2.,图,4-17,所示的是,4,选,1,多路选择器,试分别用,IF_THEN,语句和,CASE,语句的表达方式写出此电路的,VHDL,程序。,选择控制的信号,s1,和,s0,的数据类型为,STD_LOGIC_VECTOR,;,当,s1=0,,,s0=0,;,s1=0,,,s0=1,;,s1=1,,,s0=0,和,s1=1,,,s0=1,分别执行,y=a,、,y=b,、,y=c,、,y=d,。,图,4-17 4,选,1,多路选择器,习 题,K,X,康芯科技,4-3.,图,4-18,所示的是双,2,选,1,多路选择器构成的电路,MUXK,,,对于其中,MUX21A,,当,s=0,和,1,时,分别有,y=a,和,y=b,。,试在一个结构体中用两个进程来表达此电路,每个进程中用,CASE,语句描述一个,2,选,1,多路选择器,MUX21A,。,图,4-18,双,2,选,1,多路选择器,习 题,K,X,康芯科技,4-4.,图,4-19,是一个含有上升沿触发的,D,触发器的时序电路,试写出此电路的,VHDL,设计文件。,图,4-19,时序电路图,习 题,K,X,康芯科技,4-5.,给出,1,位全减器的,VHDL,描述。要求:,(1),首先设计,1,位半减器,然后用例化语句将它们连接起来,图,4-20,中,h_suber,是半减器,,diff,是输出差,,s_out,是借位输出,,sub_in,是借位输入。,(2),以,1,位全减器为基本硬件,构成串行借位的,8,位减法器,要求用例化语句来完成此项设计,(,减法运算是,x y -,sub_in,=,diffr,),。,图,4-19,时序电路图,习 题,K,X,康芯科技,4-6.,根据图,4-21,,写出顶层文件,MX3256.VHD,的,VHDL,设计文件。,图,4-21,题,4-6,电路图,4-7.,设计含有异步清零和计数使能的,16,位二进制加减可控计数器。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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