实验六 二选一数据选择器的VHDL设计_第1页
实验六 二选一数据选择器的VHDL设计_第2页
实验六 二选一数据选择器的VHDL设计_第3页
实验六 二选一数据选择器的VHDL设计_第4页
实验六 二选一数据选择器的VHDL设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1任务分析:数据选择器的功能 1知识准备:结构体、数据对象与运算符2任务实施:二选一数据选择器设计3任务五 二选一数据选择器的VHDL实现12一、任务分析:数据选择器 在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,叫做数据选择器,也称多路选择器或多路开关。数据选择器(MUX)的逻辑功能是在地址选择信号的控制下,从多路数据中选择一路数据作为输出信号。因此对于一个具有2n个输入 和1个输出的多路选择器,应有n个地址选择变量。2一) 结构体ARCHITECTURE 结构体名 OF 实体名 IS 说明语句;BEGIN 功能描述语句;END ARCHITECTURE 结构体名;功能: 对

2、数据类型、常数、信号、子程序和元件等元素的 说明。 描述实体逻辑行为。二、知识准备:结构体,数据对象与运算符3VHDL结构体术语说明语句:用于定义结构体中所用的数据对象(常量和信号)和子程序,并对所引用的元件加以说明,但不能定义变量。功能描述语句:有五种类型,可以把它们看成结构体的五种子结构。这五种语句结构本身是并行语句,但内部可能含有并行运行的逻辑描述语句或顺序运行的逻辑描述语句,如进程内部包含的即为顺序语句。五种语句结构分别为块语句、进程语句、信号赋值语句、子程序调用语句和元件例化语句。 4结构体结构图由若干并行执行语句包装在一起形成一个子模块。定义顺序语句模块,用从外部获得的信号值,或内

3、部的运算数据向其它的信号进行赋值。将设计实体内的处理结果向定义的信号或界面端口进行赋值用以调用过程或函数,并将获得的结果赋值于信号。元件调用,用来调用另一个实体所描述的电路。结构体说明语句功能描述语句块语句进程语句信号赋值语句子程序调用语句元件例化语句5实体和结构体之间的关系Input 1Input nOutput 1Output n实体ABCDSelMUX_Out26结构体三种描述方法行为描述(behavior process)数据流描述(data flow)结构化描述(structure)真值表布尔方程式逻辑电路7结构体行为描述 行为描述是高层次描述方式(类似于真值表),它只描述输入与输出

4、之间的逻辑转换关系,而不涉及具体逻辑电路结构等信息。 主要用于系统数学模型的仿真或系统工作原理的仿真。故其大量采用的算术运算、关系运算、惯性延时、传输延时等描述方式是难于或不能进行逻辑综合的。8Behavior Process描述 architecture one of mux21 isbegin y=a when s=0 else b; end one;真值表高层次的功能描述,不必考虑在具体电路是怎样实现的。9结构体数据流描述 数据流描述:也称寄存器(RTL)描述方式,明确描述了数据信号的流动路径、流动方向和流动结果。 它采用类似于逻辑函数式的并行信号赋值语句进行描述。可以描述时序电路,也可

5、描述组合电路。是完全能够进行逻辑综合的描述方式。10architecture one of mux21 isbegin y=(a and (not s) ) or (b and s);end one;Data Flow描述逻辑函数式11结构体结构化描述 结构化描述:复杂数字逻辑系统的层次化设计法。设计中,高层次的设计模块调用低层次的设计模块,或直接用门电路设计单元来设计一复杂的逻辑电路。12architecture one of mux21 is signal d,e:bit; begin d=a and (not s); e=b and s; y=d or e; end one;Struct

6、ure描述逻辑图13三种描述方式的比较描述方式优点缺点适用场合结构化描述连接关系清晰,电路模块化清晰繁琐、复杂层次化设计数据流描述布尔函数定义明白逻辑方程难以获得小门数设计行为描述逻辑关系描述清晰不一定能综合系统建模、复杂的电路14二) 数据对象(data objects) 是数据类型的载体,共有三种形式的对象:Constant(常量)Variable(变量)Signal(信号)15Constant width: integer := 7;Constant Vcc: REAL:=5.0; Constant D: Std_Logic_Vector(3 Downto 0):= ”0000”;不能在

7、程序中改变;增强程序的可读性,便于修改程序;常量的使用范围取决于其定义位置,可在Library、Entity、Architecture、Process中进行定义,其有效范围也相应限定。1、常量(Constant)定义格式为:Constant 常量名:数据类型 :=表达式; 162、 变量 变量是一个局部量,用于对中间数据的临时存储,并不一定代表电路的某一硬件,没有物理意义。定义格式为:Variable 变量名:数据类型:=设定值; 如:Variable a: integer := 0;变量赋值语句的语法格式为: 变量名 := 表达式(设定值); 如:a := b and c;17变量赋值整体赋

8、值:temp := “10101010”;temp := “AA” ; 逐位赋值:temp(7) := 1;多位赋值temp (7 downto 4) := “1010”;多位赋值用双引号逐位赋值用单引号赋值标志183、信号 信号数据对象,代表电路内部线路,其在元件之间起互连作用,没有方向性,可给它赋值,也可当作输入。定义格式为: Signal 信号名:数据类型:=设定值; 如:Signal A : Std_logic_vector(3 Downto 0) := “0000”; 信号赋值语句的语法格式为: 信号名=表达式(设定值);A = “1010”19信号赋值SIGNAL temp : S

9、td_Logic_Vector (7 downto 0);整体赋值:temp = “10101010”;temp = “AA” ; 逐位赋值:temp(7) = 1;多位赋值:temp (7 downto 4) = “1010”;多位赋值用双引号逐位赋值用单引号赋值标志20信号、变量、常量对比(一)、定义Signal clk: std_logic; Variable data: std_logic_vector(7 downto 0);Constant width: integer :=7 ;(二)、赋值方式clk = 1; (非立即)data := “1010”; (立即)(三)、逻辑功能信

10、号可以代表电路的内部连接,而变量仅仅是电路内部的数据交换。21(五)、适用范围信号:实体、结构体、程序包变量:定义了变量的进程、子程序的顺序语句中常量:视其定义的位置而定若常量定义在实体中,适用范围是实体所对应的所有结构体。若常量定义在结构体中,适用范围就是本结构体。(四)、定义区域信号:实体、结构体、程序包变量:进程、子程序常量:实体、结构体、程序包、块、进程、子程序22能进行逻辑运算的数据类型:bit、bit_vector、boolean、 std_logic、std_logic_vector1、逻辑操作符三) VHDL语言的操作符(operator)23注意,逻辑运算符的左右两边以及代入

11、的信号的数据类型必须是相同的。当一个语句中存在多个逻辑表达式时,除了NOT运算符,其他6种运算符没有优先级之分,在设计中应注意根据实际逻辑表达式设置括号。逻辑运算符应用举例y=a XOR b; -逻辑表达式 y=aby=a AND b AND c AND d; -逻辑表达式 y=abcdy101011结果为真) = 等于/= 不等于 小于= 小于或等于(也用于信号的赋值操作) 大于= 大于或等于253、算术运算符+ :加,:减; + :正,:负* :乘, /:除 ,REM 求余 , MOD求模:整数和实数,ABS:求绝对值* 乘方:左边可以是整数或浮点数,右边必须是整数,且只有在左边为浮点数时

12、,右边才可以为负数。其中取模,取余,取绝对值和乘方运算的操作数只能是整型,其他的可以是整数和实数型。264、并置运算符 VHDL语言中的并置运算符为“&”,用于位的连接,形成位矢量。也可以进行多个矢量的连接,以构成位长更大的位矢量。并置运算符应用举例。SIGNAL data_1: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL data_2: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL data_3: STD_LOGIC_VECTOR(7 DOWNTO 0);data_1=0000;data_2=1111;data_3= data_1&dat

13、a_2;运算后,data_3的结果为00001111。275、移位运算符SLL是将向量左移,右边移空位补0;SRL是将向量右移,左边移空位补0;SLA是将向量左移,右边第一位数值保持不变;SRA是将向量右移,左边第一位数值保持不变;ROL和ROR是自循环移位方式。28移位运算符操作示意图29移位运算符应用举例:A=0101;B=A SLL 1;-B=1010C=A SRL 1;-C=0010D=A SLA 1;-D=1011E=A SRA 1;-E=0010F=A ROL 1;-F=1010G=A ROR 1;-G=101030数据类型必须一致表达式中有多个运算符时一般要加括号,但and、or

14、等除外VHDL操作符优先级6、运算符的优先级31 signal d1,d2,s : integer; SIGNAL a ,b,c : STD_LOGIC_VECTOR (3 DOWNTO 0) ; SIGNAL d,e,f,g : STD_LOGIC_VECTOR (1 DOWNTO 0) ; SIGNAL h,i,j,k : STD_LOGIC ; SIGNAL l,m,n,o,p : BOOLEAN ; . s=a and b; - integer 不能进行逻辑运算 a=b AND c; - a、b、c的数据类型同属4位长的位矢量 d=e OR f OR g ; - 两个操作符OR相同,不

15、需括号 h=(i NAND j)NAND k ; - NAND必须加括号 l=(m XOR n)AND(o XOR p); - 操作符不同,必须加括号 h=i AND j AND k ; - 两个操作符都是AND,不必加括号 h=i AND j OR k ; - 两个操作符不同,未加括号,表达错误 a=b AND e ; - 操作数b与e的位矢长度不一致,表达错误 h=i OR l ; - 数据类型不同,表达错误。32【例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 ;任务实施:二选一数据选择器设计333【例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; BEGINd = a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论