vhdl语言

VHDL介绍

雨燕双飞 提交于 2019-12-04 03:55:57
VHDL是一种硬件描述语言,它可以对电子电路和系统的行为进行描述。 制定了ieee.1164库。 使用VHDL语言描述的电路,可以进行综合和仿真。 VHDL代码3个基本组成部分:库(library)声明、实体(entity)和构造体(architecture)。 库(library)声明:列出了当前设计中需要用到的所有文件,如ieee,std,work等。 实体(entity):定义了电路的输入和输出引脚。 构造体(architecture):所包含的代码描述了电路要实验的功能。 1、库声明 库(library)的建立和使用有利于设计重用和代码共享,同时可以使代码结构更加清晰。 2、库的种类 在VHDL设计中有3个常用的库:ieee库,std库和work库。 在ieee库中有一个ieee正式认可的标准std_logic_1164.all。ieee库包含了许多包集。 比如: std_logic_1164:定义了std_logic(8值)和std_ulogic(9值)多值逻辑系统。 std_logic_arith:定义了signal(有符号)和unsigned(无符号)数据类型和相关算术运算和比较运算操作。它包含 许多数据类型转换函数,这种函数可以实现数据类型的转换。 常用的数据类型转换函数包括conv_integer(p),conv_unsigned(p,b),conv_signed

用VHDL语言编写时序电路

浪子不回头ぞ 提交于 2019-12-04 01:46:50
触发器: (1)D锁存器 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; process(clk) begin if clk'event and clk='1' then q1<=d; end if; q<=q1; end process; end bhv; 法2: library ieee; use ieee.std_logic_1164.all; entity test1 is port( clk,d:in bit; q:out bit ); end; architecture bhv of test1 is begin process(clk,d) begin if rising_edge(clk) then q<=d; end if; end process; end bhv; 来源: https://www.cnblogs.com/lhkhhk/p/11827370.html

用VHDL语言编写7人表决器

你离开我真会死。 提交于 2019-12-03 15:03:58
7人表决器,即大于等于3个人同意,结果为成功。用逻辑0和1表示就是超过3个1为真用‘1’表示,不成功用‘0’表示。则其程序如下: library ieee; use ieee.std_logic_1164.all; entity qb7 is port( a:in std_logic_vector(6 downto 0); b:out std_logic ); end; architecture bhv of qb7 is begin process(a) variable Q :integer; begin Q:=0; for n in 0 to 6 loop if(a(n)='1') then Q:=Q+1; end if; end loop; if Q>=4 then b<='1'; else b<='0'; end if; end process; end bhv; 在程序中,输入端口a,它的数据类型标准矢量类型(按位矢量输出)std_logic_vector(6 downto 0);即a<="1101101"可以这样赋值。 输出端口b,它的数据类型标准逻辑型(包含bit'0'和'1')std_logic;对于输出的结果用'0'和'1'表示。 变量Q,它的数据类型是整形,因为Q是统计1的个数,故用整数类型替代。 七人表决器的原理图: 七人表决器的仿真图: 来源: https

用VHDL语言描述全减器

北城余情 提交于 2019-12-03 11:56:32
图一 全减器原理图 图一是用VHDL语言描述全减器的原理图。全减器依然用到了例化语句。其程序如下: library ieee; use ieee.std_logic_1164.all; entity f_jq is port(x,y,sub_in:in std_logic; diffr,sub_out:out std_logic ); end; architecture fjq of f_jq is component BJQ port(a,b:in std_logic; d,s:out std_logic ); end component; component or2a port(A,B:in std_logic; C:out std_logic ); end component; signal net1,net2,net3 :std_logic; begin u1:BJQ port map(a=>x,b=>y,d=>net1,s=>net2); u2:BJQ port map(a=>net1,b=>sub_in,d=>diffr,s=>net3); u3:or2a port map(A=>net3,B=>net2,C=>sub_out); end architecture fjq; 其中用到例化语句半减器,其程序如下: library ieee; use ieee.std

VHDL相关语句结构和语法

*爱你&永不变心* 提交于 2019-12-02 22:46:41
1、条件语句 在VHDL结构体中用于描述逻辑功能和电路结构的语句可以分为顺序语句和并行语句两种类型。顺序语句的执行方式类似于普通软件语言的执行方式,是按照语句的前后排列方式逐条顺序执行的;在结构体中的并行语句,无论有多少行语句,都是同时执行的,与语句的前后次序无关。 在二选一多路选择器中描述电路功能的IF_THEN_ELSE语句属于顺序语句。 2、数据类型 (1)布尔代数型(Boolean) 定义位置:在std库的standard程序包中进行定义 取值:FALSE,TRUE (2) 位(bit) 定义位置:在std库的standard程序包中进行定义 取值:0,1(低电平 ,高电平) (3)位矢量(Bit_Vector) 定义位置:在std库的standard程序包中进行定义 位矢量是基于“位”数据类型的数组 例:signal A: bit_vector(0 to 7); signal B: bit_vector(7 downto 0); A<="00001010"; B<="00001010"; 其中:A(7)=0 A(6)=1 A(5)=0 A(4)=1 A(3)=0 A(2)=0 A(1)=0 A(0)=0 B(7)=0 B(6)=0 B(5)=0 B(4)=0 B(3)=1 B(2)=0 B(1)=1 B(0)=0 (4)标准逻辑型(Std_Logic) 定义位置

PLD/FPGA开发环境

一世执手 提交于 2019-11-28 02:35:41
http://blog.pfan.cn/378121200 这类软件都是由PLD/FPGA芯片厂家提供,基本都可以完成所有的设计输入(原理图或HDL),仿真,综合,布线,下载等工作。 Altera公司上一代的PLD开发软件,使用者众多。目前Altera已经停止开发MaxplusII,而转向QuartusII软件平台 MaxplusII学习资料下载 MaxplusII Baseline Altera公司的免费PLD开发软件,界面与标准版的MaxplusII完全一样,但需要通过使用MAX+PLUSII Advanced Synthsis插件才能支持VHDL/Verilog。 该支持MAX7000/3000和部分FLEX/ACEX芯片(如1K30,6016等),共47.1M 用网卡号申请license 如没有网卡,可以 用硬盘号申请 ,license会发到你的电子信箱,有效期为6个月,到期后可再申请 MaxplusII E+MAX Altera公司的免费PLD开发软件,界面与标准版的MaxplusII完全一样,只支持MAX7000和MAX3000系列器件,本身支持不复杂的VHDL和Verilog综合,软件较小,共26.8M 用网卡号申请license ,如没有网卡,可以 用硬盘号申请 ,其他同上 Altera公司新一代PLD开发软件,适合大规模FPGA的开发