- 1、本文档共124页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【例】 以如图1所示的RS触发器为例,定义如下: ENTITY rsff IS PORT ( S,R: IN BIT; q, qb: BUFFER BIT ); END rsff ; 端口数据类型: (1)标准数据类型,如:整数、实数,位,位矢量等。 (2)IEEE标准数据类型,标准逻辑位STD_LOGIC、标准逻辑矢量STD_LOGIC _VECTOR。 (3)用户自定义的数据类型,如枚举型、数组类型、文件(FILE)类型、记录(RECORD)类型等。 在逻辑电路设计中用到两种,即位逻辑数据类型(BIT)和位向量型(BIT_VECTOR)。 BIT类型也可以用STD_LOGIC说明,BIT_VECTOR也可以用STD_LOGIC_VECTOR说明。 但是,在使用STD_LOGIC和STD_LOGIC_VECTOR时,应该在实体说明以前增加两条语句: LIBRARY IEEE:——IEEE库 USE IEEE. STD_LOGIC_1164.ALL: 一个基本设计实体由实体说明(Entity Declaration) 和结构体(Architecture Body)两部分构成。如果把实体说明看作为一个黑盒子,则知道黑盒子的输入和输出,但不知道黑盒子里面的内容。黑盒子里面的内容由结构体来描述。 3.结构体(Architecture ) 结构体定义了设计单元的具体功能,一定要跟在实体的后面。结构体可以分为两部分:说明部分和描述体部分。一个结构体的具体结构描述如下: ARCHITECTURE 结构体名 OF 实体名 IS [结构体说明]内部信号,常数,数据类型等的定义; BEGIN [并行处理语句]; END 结构体名; 进程(PROCESS)语句 进程语句是VHDL中使用最广泛的语句之一,进程语句既能够描述组合逻辑,又能够描述时序逻辑。 进程语句的结构如下: [进程名]:PROCESS(敏感信号1,敏感信号2,…) BEGIN END PROCESS [进程名] ; 进程的启动 在PROCESS语句中一般都带有几个输入信号,在书写时写在PROCESS后面的括号中。这些信号中的任意一个信号发生变化(“1”变“0”或“0”变“1”)都会启动PROCESS 语句,因此这些信号称为敏感信号。 时钟信号上升沿和下降沿的表示 (1) 表示一个上升沿时钟clk: clk ′EVENT AND clk =1; rising_edge(clk) (2) 表示一个下降沿时钟clk: clk ′EVENT AND clk =0; Falling_edge(clk) 加法器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY adder4 IS PORT ( a,b: IN STD_LOGIC_VECTOR (3 DOWNTO 0); cin: IN STD_LOGIC; sum: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); cout: OUT STD_LOGIC); END adder4; ARCHITECTURE behavior OF adder4 IS SIGNAL c: STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN PROCESS (a,b,cin,c) BEGIN c(0) = cin; FOR i IN 0 TO 3 LOOP sum(i) = a(i) XOR b(i) XOR c(i); c(i+1) = (a(i) AND b(i)) OR (c(i) AND (a(i) OR b(i))); END LOOP; cout = c(4); END PROCESS; END behavior; 算术逻辑运算单元 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.
文档评论(0)