《格雷码、二进制码转换.ppt》由会员分享,可在线阅读,更多相关《格雷码、二进制码转换.ppt(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、南理工紫金学院南理工紫金学院EDA设计实验设计实验第二节第二节 格雷码、二进制码转换格雷码、二进制码转换南理工紫金学院南理工紫金学院EDA设计实验设计实验实验内容实验内容1 1)学习)学习VHDLVHDL代码修改。代码修改。2 2)利用)利用casecase语句描述语句描述4 4位格雷码位格雷码/二进制码转二进制码转换电路,要求将输入输出的数据用数码管换电路,要求将输入输出的数据用数码管显示。显示。3 3)利用)利用generategenerate并行语句描述并行语句描述n n位格雷码位格雷码/二二进制码转换电路(进制码转换电路(n=4n=4)。)。4 4)利用实验箱验证所设计电路的正确性,利
2、用实验箱验证所设计电路的正确性,要求将输入输出的数据用七段数码管显示。要求将输入输出的数据用七段数码管显示。南理工紫金学院南理工紫金学院EDA设计实验设计实验原理原理4位格雷码转换为二进制表达式为:位格雷码转换为二进制表达式为:n位格雷码转换为二进制表达式位格雷码转换为二进制表达式南理工紫金学院南理工紫金学院EDA设计实验设计实验注意注意:VHDL VHDL 对大小写不敏感对大小写不敏感,和和“”“”中的内容除外。中的内容除外。Library IEEE;use IEEE.std_logic_1164.all;entity and_gate is port(a,b:IN std_logic;y:
3、out std_logic);end and_gate;architecture rhl of and_gate isbegin y=a and b;end rhl;程序包程序包库库VHDL VHDL 语言的基本结构语言的基本结构以二输入端与门为例以二输入端与门为例,该文件名为该文件名为:and_gate.vhdand_gate.vhd实体实体结构体结构体VHDL硬件描述语言基础硬件描述语言基础南理工紫金学院南理工紫金学院EDA设计实验设计实验库库 库是库是VHDLVHDL语言编写的源程序及其通过编译的数据的语言编写的源程序及其通过编译的数据的集合,由各种程序包组成,常见的为集合,由各种程序包
4、组成,常见的为STDSTD库,库,IEEEIEEE库。库。库和程序包库和程序包 使用库必须用该语句:使用库必须用该语句:librarylibrary ieeeieee;程序包提供了各种数据类型、函数定义以及各种类程序包提供了各种数据类型、函数定义以及各种类型转换函数及运算等,常见的程序包有以下几种。型转换函数及运算等,常见的程序包有以下几种。程序包程序包 常用程序包为常用程序包为std_logic_1164std_logic_1164程序包,程序包,std_logic_signedstd_logic_signed和和std_logic_unsignedstd_logic_unsigned程序包
5、,程序包,std_logic_arithstd_logic_arith程序包。程序包。南理工紫金学院南理工紫金学院EDA设计实验设计实验实体实体(EntityEntity)实体主要用来定义设计所需要的输入输出信号实体主要用来定义设计所需要的输入输出信号.entity 实体名实体名 IS port(列出输入列出输入/输出信输出信 号端口号端口);end 实体名实体名;entity and_gate IS port(a,b:IN BIT;y:out BIT);end and_gate;说明说明:1 1 文件名和实体名要一致文件名和实体名要一致.每个语句以;结尾。每个语句以;结尾。实体格式如下实体格
6、式如下VHDL硬件描述语言基础硬件描述语言基础南理工紫金学院南理工紫金学院EDA设计实验设计实验 1 1 基本标识符由字母、数字和下划线组成基本标识符由字母、数字和下划线组成 2 2 第一个字符必须是字母,最后一个字符不能是下划线第一个字符必须是字母,最后一个字符不能是下划线 3 3 不允许连续不允许连续2 2个下划线个下划线 4 4 关键字不能用于标识符关键字不能用于标识符 5 5 大小写是等效的大小写是等效的 实体名为实体名为VHDLVHDL标识符的一种。标识符是用户给标识符的一种。标识符是用户给常量常量、变量变量、信号信号、端口端口、子程序子程序或或参数参数定义的名字定义的名字VHDL
7、VHDL 的标识符的标识符(Identifiers)标识符命名规则标识符命名规则例如:例如:h_adder,mux21,exampleh_adder,mux21,example为合法标识符;为合法标识符;2adder,_mux21,ful_adder,adder_,and2adder,_mux21,ful_adder,adder_,and为错误的标识符。为错误的标识符。实体实体南理工紫金学院南理工紫金学院EDA设计实验设计实验PortPort中定义了信号名、端口模式、端口类型。中定义了信号名、端口模式、端口类型。entity and_gate IS port(a,b:IN BIT;y:out
8、BIT);end and_gate;VHDL硬件描述语言基础硬件描述语言基础端口类型端口类型端口模端口模式式信号名信号名实体实体南理工紫金学院南理工紫金学院EDA设计实验设计实验VHDL VHDL 语言的基本结构语言的基本结构VHDL VHDL 数据类型数据类型VHDL VHDL 数据类型分为数据类型分为逻辑数据类型逻辑数据类型和和数值数据类型数值数据类型。逻辑数据类型逻辑数据类型bitbit(位位)信号形式:(信号形式:(00,11););bit_vectorbit_vector(位数组位数组)信号形式:信号形式:“00111”00111”等。等。以上三种数据类型都在以上三种数据类型都在st
9、dstd库的库的standarstandar程序包中定义。程序包中定义。std_logicstd_logic(标准逻辑位标准逻辑位)信号形式:信号形式:00、11、X(X(不定不定)、Z(Z(高阻高阻),L(L(弱信号弱信号0)0),H(H(弱信号弱信号1)1),WW(弱信号不定)(弱信号不定),(不可能情况)。(不可能情况)。std_logic_vectorstd_logic_vector(标准逻辑位矢量)标准逻辑位矢量)以上两种数据类型都在以上两种数据类型都在ieeeieee库的库的std_logic_1164std_logic_1164程序包中定义。程序包中定义。使用这两种数据类型使用这
10、两种数据类型必须有两条声明语句:必须有两条声明语句:librarylibrary ieeeieee;useuse ieee.std_logic_1164.ieee.std_logic_1164.allall;南理工紫金学院南理工紫金学院EDA设计实验设计实验结构体(结构体(ArchitectureArchitecture)architecture 结构体名结构体名 of 实体名实体名 is-声明声明begin-结构体部分结构体部分end 结构体名结构体名;结构体描述结构体描述实体的行为功能实体的行为功能,其格式如下,其格式如下architecture rhl of and_gate isbeg
11、in y=一组顺序语句;一组顺序语句;whenwhen 条件表达式的值条件表达式的值=一组顺序语句;一组顺序语句;end caseend case;说明说明:casecasewhenwhen语句中条件表达式的值必须列举穷尽,语句中条件表达式的值必须列举穷尽,而且不能重复。而且不能重复。条件句中的条件句中的“=”=”不是操作符,只相当于不是操作符,只相当于“THEN”THEN”作作用。用。不能穷尽的表达式用不能穷尽的表达式用othersothers表示表示when otherswhen others=一组顺序语句;一组顺序语句;casecasewhenwhen语句是无序的,所有条件表达式的值并行
12、处理。语句是无序的,所有条件表达式的值并行处理。南理工紫金学院南理工紫金学院EDA设计实验设计实验 由于casecase属于顺序语句,属于顺序语句,在在VHDLVHDL中中顺序语句只能存顺序语句只能存在与进程中在与进程中。南理工紫金学院南理工紫金学院EDA设计实验设计实验VHDL VHDL 常用基本语句常用基本语句 进程语句进程语句进程进程主要用于描述顺序语句,其格式如下:主要用于描述顺序语句,其格式如下:标记标记:process (敏感信号表敏感信号表)-变量变量声明语句;声明语句;begin-顺序语句顺序语句end process;敏感信号敏感信号(包括端口信号)指那些值发生改变后能引起(
13、包括端口信号)指那些值发生改变后能引起进程语句执行的信号。当敏感信号发生改变时,进程启进程语句执行的信号。当敏感信号发生改变时,进程启动,动,beginbegin和和endend之间的语句从上到下之间的语句从上到下顺序顺序执行一次执行一次,然,然后返回进程语句开始,等待下一次敏感信号的变化。因后返回进程语句开始,等待下一次敏感信号的变化。因此进程语句有两种状态:此进程语句有两种状态:等待状态等待状态和和执行状态执行状态。南理工紫金学院南理工紫金学院EDA设计实验设计实验 译码器 D C B A“0001”显示1“1000”显示8南理工紫金学院南理工紫金学院EDA设计实验设计实验abcdefg七
14、段数码管七段数码管g为高位为高位,a为地位为地位例如例如:如果数码管要显如果数码管要显示示0,则赋值应该为则赋值应该为“0111111”g f e d c b a南理工紫金学院南理工紫金学院EDA设计实验设计实验利用模式利用模式6验证电路的正确性验证电路的正确性南理工紫金学院南理工紫金学院EDA设计实验设计实验WHEN ELSE 条件信号赋值语句条件信号赋值语句目标信号目标信号=表达式表达式1 when 条件条件1 else 表达式表达式2 when 条件条件2 else .表达式表达式n-1 when 条件条件n-1 else 表达式表达式n;南理工紫金学院南理工紫金学院EDA设计实验设计实
15、验作业:作业:1、写出格雷码二进制码转换原理。、写出格雷码二进制码转换原理。2、整理课堂所作内容,要求给出代码(关键地方给出注释)。、整理课堂所作内容,要求给出代码(关键地方给出注释)。1)建立建立VHDL文件,用文件,用Case语句描述语句描述4位格雷码、二进制码转换,位格雷码、二进制码转换,(P39););2)新建另一个)新建另一个VHDL文件、用文件、用FOR语句描述语句描述n位(位(n=4)格雷码)格雷码二进制码转换电路,要求输出用二进制码转换电路,要求输出用7段数码管显示(提示:在该段数码管显示(提示:在该代码中最后应用代码中最后应用case语句将语句将4位二进制转换位位二进制转换位7段代码。)段代码。)3、给出仿真波形。、给出仿真波形。4、给出管脚配置图。、给出管脚配置图。5、如果有硬件测试、给出硬件测试结果。、如果有硬件测试、给出硬件测试结果。6、写出碰到的问题及解决方法、体会。、写出碰到的问题及解决方法、体会。