vhdl

阅读 / 问答 / 标签

&是什么意思在vhdl中?怎么用?

这个是连接符可以把几个信号连接成一个信号。比如A 是3BIT ;B是4BITC<=A&B;那么C就是一个7BIT的信号啦!是由A拼在高3BIT,B拼在低4BIT构成的。

VHDL中"按位与","按位或"怎么表示

VHDL中,与运算符号是"AND",或运算符号是"OR",参与逻辑运算的两个操作数的位抄数必须相等,而逻辑运算本身就是按zd位运算的。假设操作数A和B位数相等(类型相同),则表达式AANDB就是按位与、AORB就是按位或。

vhdl语言怎样运行

用综合软件综合然后下载到板子上就行了

VHDL 数字钟

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity MINSECONDb isport(clk,clrm,stop:in std_logic;----时钟/清零信号 secm1,secm0:out std_logic_vector(3 downto 0);----秒高位/低位 co:out std_logic);-------输出/进位信号end MINSECONDb;architecture SEC of MINSECONDb issignal clk1,DOUT2:std_logic;beginprocess(clk,clrm)variable cnt1,cnt0:std_logic_vector(3 downto 0);---计数 VARIABLE COUNT2 :INTEGER RANGE 0 TO 10 ;beginIF CLK"EVENT AND CLK="1"THEN IF COUNT2>=0 AND COUNT2<10 THEN COUNT2:=COUNT2+1; ELSE COUNT2:=0; DOUT2<= NOT DOUT2; END IF; END IF;if clrm="1" then----当clr为1时,高低位均为0cnt1:="0000";cnt0:="0000";elsif clk"event and clk="1" then if stop="1" then cnt0:=cnt0; cnt1:=cnt1; end if;if cnt1="1001" and cnt0="1000" then----当记数为98(实际是经过59个记时脉冲)co<="1";----进位cnt0:="1001";----低位为9elsif cnt0<"1001" then----小于9时cnt0:=cnt0+1;----计数--elsif cnt0="1001" then--clk1<=not clk1;elsecnt0:="0000";if cnt1<"1001" then----高位小于9时cnt1:=cnt1+1;elsecnt1:="0000";co<="0";end if;end if;end if;secm1<=cnt1;secm0<=cnt0;end process;end SEC;秒模块程序清单library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity SECOND isport(clk,clr:in std_logic;----时钟/清零信号 sec1,sec0:out std_logic_vector(3 downto 0);----秒高位/低位 co:out std_logic);-------输出/进位信号end SECOND;architecture SEC of SECOND isbeginprocess(clk,clr)variable cnt1,cnt0:std_logic_vector(3 downto 0);---计数beginif clr="1" then----当ckr为1时,高低位均为0cnt1:="0000";cnt0:="0000";elsif clk"event and clk="1" thenif cnt1="0101" and cnt0="1000" then----当记数为58(实际是经过59个记时脉冲)co<="1";----进位cnt0:="1001";----低位为9elsif cnt0<"1001" then----小于9时cnt0:=cnt0+1;----计数elsecnt0:="0000";if cnt1<"0101" then----高位小于5时cnt1:=cnt1+1;elsecnt1:="0000";co<="0";end if;end if;end if;sec1<=cnt1;sec0<=cnt0;end process;end SEC;分模块程序清单 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity MINUTE isport(clk,en:in std_logic; min1,min0:out std_logic_vector(3 downto 0); co:out std_logic);end MINUTE;architecture MIN of MINUTE isbeginprocess(clk)variable cnt1,cnt0:std_logic_vector(3 downto 0);beginif clk"event and clk="1" thenif en="1" thenif cnt1="0101" and cnt0="1000" thenco<="1";cnt0:="1001";elsif cnt0<"1001" thencnt0:=cnt0+1;elsecnt0:="0000";if cnt1<"0101" thencnt1:=cnt1+1;elsecnt1:="0000";co<="0";end if;end if;end if;end if;min1<=cnt1;min0<=cnt0;end process;end MIN;时模块程序清单 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity HOUR isport(clk,en:in std_logic;----输入时钟/高电平有效的使能信号 h1,h0:out std_logic_vector(3 downto 0));----时高位/低位end HOUR;architecture hour_arc of HOUR isbeginprocess(clk)variable cnt1,cnt0:std_logic_vector(3 downto 0);----记数beginif clk"event and clk="1" then---上升沿触发if en="1" then---同时“使能”为1if cnt1="0010" and cnt0="0011" thencnt1:="0000";----高位/低位同时为0时cnt0:="0000";elsif cnt0<"1001" then----低位小于9时,低位记数累加cnt0:=cnt0+1;elsecnt0:="0000";cnt1:=cnt1+1;-----高位记数累加end if;end if;end if;h1<=cnt1;h0<=cnt0;end process;end hour_arc;动态扫描模块 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity SELTIME is port( clk:in std_logic;------扫描时钟 secm1,secm0,sec1,sec0,min1,min0,h1,h0:in std_logic_vector(3 downto 0);-----分别为秒个位/时位;分个位/ daout:out std_logic_vector(3 downto 0);----------------输出 sel:out std_logic_vector(2 downto 0));-----位选信号end SELTIME;architecture fun of SELTIME is signal count:std_logic_vector(2 downto 0);----计数信号begin sel<=count; process(clk) begin if(clk"event and clk="1") then if(count>="111") then count<="000"; else count<=count+1; end if; end if; case count is when"111"=>daout<= secm0;----秒个位 when"110"=>daout<= secm1;----秒十位 when"101"=>daout<= sec0;----分个位 when"100"=>daout<= sec1;----分十位 when"011"=>daout<=min0; ----时个位 when"010"=>daout<=min1;----时十位 when"001"=>daout<=h0; when others =>daout<=h1; end case; end process;end fun;报时模块 library ieee;use ieee.std_logic_1164.all;entity ALERT isport(m1,m0,s1,s0:in std_logic_vector(3 downto 0);------输入秒、分高/低位信号 clk:in std_logic;------高频声控制 q500,qlk:out std_logic);----低频声控制end ALERT;architecture sss_arc of ALERT is begin process(clk) begin if clk"event and clk="1" then if m1="0101" and m0="1001" and s1="0101" then----当秒高位为5,低位为9时且分高位为5 if s0="0001" or s0="0011" or s0="0101" or s0="0111" then---当分的低位为1或3或5或7时 q500<="1";----低频输出为1 else q500<="0";----否则输出为0 end if; end if;if m1="0101" and m0="1001" and s1="0101" and s0="1001" then---当秒高位为5,低位为9时且分高位为5,----分低位为9时,也就是“59分59秒”的时候“报时” qlk<="1";-----高频输出为1 else qlk<="0"; end if;end if; end process; end sss_arc;显示模块 library ieee;use ieee.std_logic_1164.all;entity DISPLAY is port(d:in std_logic_vector(3 downto 0);----连接seltime扫描部分d信号 q:out std_logic_vector(6 downto 0));----输出段选信号(电平)end DISPLAY;architecture disp_are of DISPLAY isbegin process(d) begincase d is when"0000" =>q<="0111111";--显示0 when"0001" =>q<="0000110";--显示1 when"0010" =>q<="1011011";--显示2 when"0011" =>q<="1001111";--显示3 when"0100" =>q<="1100110";--显示4 when"0101" =>q<="1101101";--显示5 when"0110" =>q<="1111101";--显示6 when"0111" =>q<="0100111";--显示7 when"1000" =>q<="1111111";--显示8 when others =>q<="1101111";--显示9end case; end process;end disp_are;顶层文件(原理图输入) ******************************************************************** 数字钟设计模块与程序(不含秒表)********************************************************************* 1.分频模块(原理图输入) 2. 秒模块程序 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity SECOND isport(clk,clr:in std_logic; sec1,sec0:out std_logic_vector(3 downto 0); co:out std_logic);end SECOND;architecture SEC of SECOND isbeginprocess(clk,clr)variable cnt1,cnt0:std_logic_vector(3 downto 0);beginif clr="1" thencnt1:="0000";cnt0:="0000";elsif clk"event and clk="1" thenif cnt1="0101" and cnt0="1000" thenco<="1";cnt0:="1001";elsif cnt0<"1001" thencnt0:=cnt0+1;elsecnt0:="0000";if cnt1<"0101" thencnt1:=cnt1+1;elsecnt1:="0000";co<="0";end if;end if;end if;sec1<=cnt1;sec0<=cnt0;end process;end SEC;3.分模块程序 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity MINUTE isport(clk,en:in std_logic; min1,min0:out std_logic_vector(3 downto 0); co:out std_logic);end MINUTE;architecture MIN of MINUTE isbeginprocess(clk)variable cnt1,cnt0:std_logic_vector(3 downto 0);beginif clk"event and clk="1" thenif en="1" thenif cnt1="0101" and cnt0="1000" thenco<="1";cnt0:="1001";elsif cnt0<"1001" thencnt0:=cnt0+1;elsecnt0:="0000";if cnt1<"0101" thencnt1:=cnt1+1;elsecnt1:="0000";co<="0";end if;end if;end if;end if;min1<=cnt1;min0<=cnt0;end process;end MIN;4.时模块程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity HOUR isport(clk,en:in std_logic; h1,h0:out std_logic_vector(3 downto 0));end HOUR;architecture hour_arc of HOUR isbeginprocess(clk)variable cnt1,cnt0:std_logic_vector(3 downto 0);beginif clk"event and clk="1" thenif en="1" thenif cnt1="0010" and cnt0="0011" thencnt1:="0000";cnt0:="0000";elsif cnt0<"1001" thencnt0:=cnt0+1;end if;end if;end if;h1<=cnt1;h0<=cnt0;end process;end hour_arc;5.扫描模块程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity SELTIME is port( clk:in std_logic; sec1,sec0,min1,min0,h1,h0:in std_logic_vector(3 downto 0); daout:out std_logic_vector(3 downto 0); sel:out std_logic_vector(2 downto 0));end SELTIME;architecture fun of SELTIME is signal count:std_logic_vector(2 downto 0);begin sel<=count; process(clk) begin if(clk"event and clk="1") then if(count>="101") then count<="000"; else count<=count+1; end if; end if; case count is when"000"=>daout<= sec0; when"001"=>daout<= sec1; when"010"=>daout<= min0; when"011"=>daout<= min1; when"100"=>daout<=h0; when others =>daout<=h1; end case; end process;end fun;6.显示模块程序library ieee;use ieee.std_logic_1164.all;entity DISPLAY is port(d:in std_logic_vector(3 downto 0); q:out std_logic_vector(6 downto 0));end DISPLAY;architecture disp_are of DISPLAY isbegin process(d) begincase d is when"0000" =>q<="0111111"; when"0001" =>q<="0000110"; when"0010" =>q<="1011011"; when"0011" =>q<="1001111"; when"0100" =>q<="1100110"; when"0101" =>q<="1101101"; when"0110" =>q<="1111101"; when"0111" =>q<="0100111"; when"1000" =>q<="1111111"; when others =>q<="1101111";end case; end process;end disp_are;7.定时闹钟模块程序 library ieee;use ieee.std_logic_1164.all;entity ALERT isport(m1,m0,s1,s0:in std_logic_vector(3 downto 0); clk:in std_logic; q500,qlk:out std_logic);end ALERT;architecture sss_arc of ALERT is begin process(clk) begin if clk"event and clk="1" then if m1="0101" and m0="1001" and s1="0101" then if s0="0001" or s0="0011" or s0="0101" or s0="0111" then q500<="1"; else q500<="0"; end if; end if;if m1="0101" and m0="1001" and s1="0101" and s0="1001" thenqlk<="1";elseqlk<="0";end if;end if;end process;end sss_arc;

FPGA和VHDL的关系

我是在明德扬里看到一些关于FPGA方面的,它的视频学习其中有一个专门讲解VHDL的课程,我想两者的关系应该是相辅相成的

VHDL语言设计中并行语句与串行语句包含哪些语句?

通常说并行语句和顺序语句,不说串行语句的!VHDL并行语句7个:进程语句块语句并行信号赋值语句(两种形式)并行过程调用语句并行断言语句元件例化语句生成语句VHDL顺序语句13个:WAIT语句变量赋值语句信号赋值语句IF 语句CASE语句NULL语句(空语句)LOOP语句NEXT 语句EXIT 语句过程调用语句RETURN 语句断言语句REPORT语句其它语句一般称为声明语句,或者子句。

在VHDL中矢量类型数据与整型数据怎么运算?

我不太清楚你的意思,但对于VHDL语言来说它是一种强类型语言,不允许不同数据类型直接进行运算,必须转为同种数据类型才可以运算。转换方法有函数转换法;类型标记转换法,常数转换法。 把矢量类型转为整型后就可以运算了!也可以把整型转为矢量类型。以下以矢量类型转为整型为例;A:STD_LOGIC_VECTORB:INTEGERB<=CONV_INTEGER(A)--把标准逻辑位矢量转成整型。这之后就可以进行运算了,其他类型的转换你查一下表就可以了。我插不上函数表的图片你自己查一下。

VHDL语言的设计采用什么方法?

设计什么?还是语言本身的设计?

VHDL编程语言中遇到这样的表达方式,是什么意思啊?就是在1234前面的X表示什么?

X 是十六进制定义符,X“0000”等于“0000000000000000”。x<=X“1234”; 即依次将00000001、00000010、00000011、00000100 赋值给x 。----------------------------------------------------------signal x: std_logic_vector(15 downto 0); //信号x: 标准逻辑向量(从高15位降到低0位)begin //开始 x<=X“1234”; //赋值x U0:clk7seg port map( //按8段编码依次输出 x=>x, //重新赋值

VHDL 语句中,具有判断功能的语句有哪几种?。

有以下4种:case语句:CASE 表达式 ISWHEN 条件表达式=>顺序处理语句;END CASE;if语句:IF 条件 THEN顺序处理语句;ELSE顺序处理语句;END IF;when语句:while语句:

vhdl中怎么元件例化?

首先在结构体中声明元件:COMPONENT<元件名>GENERIC(类属参数说明);PORT(端口参数列表);ENDCOMPONENT;[<标号>:]<元件名>[GENERICMAP(参数映射);]PORTMAP(端口映射);例如:COMPONENTand_gateGENERIC(delay:time);PORT(a,b:instd_logic;c:outstd_logic);ENDCOMPONENT;U1:and_gateGENERICMAP(10ns);PORTMAP(in1=>a,in2=>b,out=>c);

什么是VHDL语言,有什么用?

VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点

VHDL中数组的定义和使用?

type a is array(3 downto 0) of std_logic;以上定义了一个8值逻辑的位宽为4的一维数组类型a。调用:signal b: in a;

Verilog HDL和VHDL的区别?

Verilog HDL和HDL都是用于逻辑设计的硬件描述语言,并且都已成为IEEE标准。VHDL是在1987年成为IEEE标准,Verilog HDL则在1995年才正式成为IEEE标准。之所以VHDL比Verilog HDL早成为IEEE标准,这是因为VHDL是美国军方组织开发的,而Verilog HDL 则是从一个普通的民间公司的私有财产转化而来,基于Verilog HDL的优越性,才成为的IEEE标准,因而有更强的生命力。 VHDL 其英文全名为VHSIC HARDWARE DESCRIPTION Language,而VHSIC则是Very High Speed Integerated CIRCUIT的缩写词,意为甚高速集成电路,故VHDL其准确的中文译名为甚高速集成电路的硬件描述语言。 Verilog HDL和VHDL作为描述硬件电路设计的语言,其共同的特点在于:能形式化地抽象表示电路的行为和结构、支持逻辑设计中层次与范围的描述、可借用高级语言的精巧结构来简化电路行为的描述、具有电路仿真与验证机制以保证设计的正确性、支持电路描述由高层到低层的综合转换、硬件描述与实现工艺无关(有关工艺参数可通过语言提供的属性包括进去)、便于文档管理、易于理解和设计重用。 但是Verilog HDL和VHDL又各有其自己的特点。由于Verilog HDL早在1983年就已推出,至今已有近二十年的应用历史,因而Verilog HDL拥有更广泛的设计群体,成熟的资源也远比VHDL丰富。与VHDL相比Verilog HDL的最大优点是:它是一种非常容易掌握的硬件描述语言,只要有C语言的编程基础,通过二十学时的学习,再加上一段实际操作,一般读者可在二至三个月内掌握这种设计技术。而掌握VHDL设计技术就比较困难。这是因为VHDL不很直观,需要有Ada编程基础,一般认为至少需要半年以上的专业培训,才能掌握VHDL的基本设计技术。目前版本的Verilog HDL和VHDL在行为级抽象建模的覆盖范围方面也有所不同。一般认为Verilog HDL在系统级抽象方面比VHDL略差一些,而在门级开关电路描述方面比VHDL强得多。

verilog普及率比较高,有必要学VHDL吗?两者的区别是什么

  VHDL 源于军方的ADA编程,而verilog则源于我们熟悉的C语言。  所以,学verilog入门较快,快的话几天就可以掌握全部语法。当然只是理解和懂得,灵活的运用还要依靠大量的实践。  而相对来说VHDL入门则比较难。  关于两者的好坏,谁也所不清。  有人说用VHDL才是技术所在,因为其具有ada编程模式,而ada又广泛应用在军方,科研场合,所以其优点和价值是巨大的。  但verilog用的人则比较多,有较为丰富的资源和积累,而且其系统级描述能力也在不断增强发展,以后也很难说在大型设计方面会逊色于vhdl

VHDL 里 clk‘event 是上跳沿的意思吗?

‘event是一种信号属性,表示信号跳变,clk"event and clk="1这个是判断上升沿

vhdl语言输入方式与原理图输入方式对比,有哪些优缺点

原理图方式更直观一点,但是在复杂系统中缺点就是比较乱,采用语言的方式比较适合复杂电路情况。VHDL 语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能。VHDL 语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。VHDL 语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法; 既支持模块化设计方法,也支持层次化设计方法。扩展资料:除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分)。既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。参考资料来源:百度百科-VHDL语言

VHDL语言的特点

软件编程语言是顺序执行的,而硬件描述语言(比如vhdl)描述的硬件却是并行工作的,所以硬件描述语言中的语句是并行语句,没有先后顺序问题。即使vhdl中有顺序语句,也必须包装成并行语句(例如process语句、过程、函数等)的形式。

Verilog HDL和VHDL是一个东西吗?

不是的,HDL代表硬件描述语言

vhdl编程问题

将SIGNAL Q1,Q2,Q3,Q4:STD_LOGIC_VECTOR(1 DOWNTO 0);改成SIGNAL Q1,Q2,Q3,Q4:STD_LOGIC_VECTOR(3 DOWNTO 0);吧,否则放不下4位逻辑向量。

用VHDL语言描述一个4选1数据选择器。

【答案】:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4 ISPORT(d0,d1,d2,d3: IN STD_LOGIC;sel: IN STD LOGIC_VECTOR(1 DOWNT0 0);mux out: OUT STD_LOGIC);END mux4;ARCHITECTURE structurel OF mux4 ISBEGINp0: PROCESS(d0,d1,d2,d3,sel)BEGINCASE sel ISWHEN "00"=>mux out<=d0;WHEN "01"=>mux out<=d1;WHEN "10"=>mux out<=d2;WHEN "11"=>mux out<=d3;WHEN others=>mux_out<="X";END CASE;END PROCESS p0;END structurel;

vhdl语言中取余符号rem如何用?举例说明。

rem是vhdl标准库numeric_std里面定义的函数mod(取模)/rem(取余)对于两个正的输入来说结果一致 否则有区别A rem B = A - ( A / B ) * B --余数运算符 利用操作数A决定结果的正负号A mod B = A - B * N --取模运算符 利用操作数B决定结果的正负号并且都是用于仿真而不可综合的5 mod 3 = 2(-5) mod 3 = 15 mod (-3) = -1(-5) mod (-3) = -25 rem 3 = 2(-5) rem 3 = -25 rem (-3) = 2(-5) rem (-3) = -2VHDL全名Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言 。自IEEE-1076(简称87版)之后,各EDA公司相继推出自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,简称93版。VHDL和Verilog作为IEEE的工业标准硬件描述语言,得到众多EDA公司支持,在电子工程领域,已成为事实上的通用硬件描述语言。VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。

在VHDL语言中如何表示同或,异或

vhdl语言里面好像没有这个运算,楼主可以把你想要的运算关系换算一下,用if else 语句,或者case 语句得到你想要的逻辑结果。

vhdl语言输入方式与原理图输入方式对比,有哪些优缺点

原理图方式更直观一点,但是在复杂系统中缺点就是比较乱,采用语言的方式比较适合复杂电路情况

什么是VHDL

一种硬件电路描述语言,全称Very-High-Speed Integrated Circuit HardwareDescription Language。

vhdl语言是什么

所以 VHDL 就是非常高速积体电路的硬体描述语言。这是一项原由美国国防部 ( DoD, Department of Defense) 所支持的研究计画。为了将电子电路的设计意涵以文件方式保存下来,以便其它人能轻易地了解电路的设计意义。这就是VHDL的由来。 在1985年,美国国防部取得委托研究的第一版语言。随后,VHDL语言就转移给IEEE,并在1987年成为IEEE1076---1987标准。1988年,英国国防部规定所有官方的ASIC设计均需以VHDL为设计描述语言。所以VHDL就逐渐地成为工业界的标准"1993年,IEEE将IEEE1076---1981标准经过一些增修(新增一些功能、去除模糊部份以及保留往前共容等等)之后,规范了另一个新的VHDL标准IEEE1164。1996年,IEEE将电路合成的程式标准与规格加入至VHDL电路设计语言中,称之为IEEE1076.3标准。 VHDL电路设计语言的规范目的,在於要提供一个高阶而且快电路设计工具,它涵盖电路描述(Description)电路合成与电路模拟(Simulation)等三个电路设计工作。 就像一些常用的程式设计语言(例如C、Pascal等高阶语言)用来描述计算数学函数或处理资料程序。程式的执行就是资料数值的计算。

在VHDL语言中常见的有几种库?库有哪些部分组成?

1.标准设计库:std,2.用户现行工作库:work,3.IEEE设计库:IEEE。设计库由若干程序包组成,每个程序包都有一个包声明和一个可选的包体声明。在设计库中,包声明和包体声明是分别编译的。

vhdl是什么

计算机语言的一种

vhdl语言设计中,信号和变量的区别

谈不上纠错,就是给归纳一下:信号可以是全局量,而变量只能是局部量;信号赋值有延迟,变量赋值没有延迟;信号除当前值外有许多信息,而变量只有当前值;Process对信号敏感,对变量不敏感;信号是硬件连线抽象描述,变量在硬件中不具有固定额对应关系。

vhdl 自定义库

LIBRARY WORK;USE WORK.STD_LOGIC_自定义的库的名字.1164.all这样就是自定义库

VHDL语言

学习VHDL,需要有数字电子技术基础,也就是学过数字电路。数字电路基础好的话,VHDL不难学。

VHDL语言翻译

rr

VHDL 程序 注释

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.std_logic_arith.all;USE IEEE.std_logic_unsigned.all; ---调用常用的库ENTITY add8b IS PORT( clk:IN STD_LOGIC; ---时钟信号 cin: IN STD_LOGIC; ---相加进位信号 a,b:IN STD_LOGIC_VECTOR(7 DOWNTO 0);-----两个8位的二进制数 s:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); ----输出 cout:OUT STD_LOGIC); END;ARCHITECTURE cheng OF add8b ISSIGNAL adda1,adda2,addb1,addb2,reg1a,reg1b,add1,add2:STD_LOGIC_VECTOR(4 DOWNTO 0);SIGNAL reg2:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL cin1:STD_LOGIC;BEGIN PROCESS(clk) BEGIN IF clk"EVENT AND clk="1" THEN adda1<="0"&a(3 DOWNTO 0); ----adda1是a的低4位 addb1<="0"&b(3 DOWNTO 0);-----addb1是b的低4位 adda2<="0"&a(7 DOWNTO 4);------adda2是a的高4位 addb2<="0"&b(7 DOWNTO 4);------addb2是b的高4位 cin1<=cin; END IF; END PROCESS; PROCESS(CLK) BEGIN IF clk"EVENT AND clk="1" THEN add1<=adda1+addb1+cin1; ---低4位相加放入add1 注意考虑是否有进位 reg1a<=adda2; reg1b<=addb2; END IF; END PROCESS; PROCESS(CLK) BEGIN IF clk"EVENT AND clk="1" THEN----高4位相加,考虑低4位相加的进位 add2<=reg1a+reg1b+add1(4); reg2<=add1(3 DOWNTO 0); END IF; END PROCESS; s<=add2(3 DOWNTO 0)&add1(3 DOWNTO 0);----结果是高四位与低四位并置 cout<=add2(4); ---是否有进位 END cheng ;第二个 只需要搞清 二进制数的乘法原理就可以了 两个4位二进制数相乘,如a=1010,b=1111 那么可以看成是1010*(1000+0100+0010+0001),结果等于 将1010左移三位加上1010左移两位,加上1010左移1位加上1010不移位 就是结果y<=("0000"& c0)+("000"& c1&"0")+("00"& c2&"00")+("0"&c3&"000"); 第一个是不移动 第二个是b低二位与a相乘左移1位 第三是b低3位 与a相乘左移两位,第四是b最高位与a相乘左移三位 结果相加

VHDL语言和AHDL语言有什么区别?

AHDL已经过时了这两种语言都是用于数字电子系统设计的硬件描述语言,而且都已经是 IEEE 的标准。 这两者有其共同的特点: 1. 能形式化地抽象表示电路的行为和结构; 2. 支持逻辑设计中层次与范围地描述; 3. 可借用高级语言地精巧结构来简化电路行为和结构;具有电路仿真与验证机制以保证设计的正确性; 4. 支持电路描述由高层到低层的综合转换; 5. 硬件描述和实现工艺无关; 6. 便于文档管理; 7. 易于理解和设计重用 但是两者也各有特点。 Verilog HDL 推出已经有 20 年了,拥有广泛的设计群体,成熟的资源也比 VHDL 丰富。 Verilog 更大的一个优势是:它非常容易掌握,只要有 C 语言的编程基础,通过比较短的时间,经过一些实际的操作,可以在 2 ~ 3 个月内掌握这种设计技术。而 VHDL 设计相对要难一点,这个是因为 VHDL 不是很直观,需要有 Ada 编程基础,一般认为至少要半年以上的专业培训才能掌握。 目前版本的 Verilog HDL 和 VHDL 在行为级抽象建模的覆盖面范围方面有所不同。一般认为 Verilog 在系统级抽象方面要比 VHDL 略差一些,而在门级开关电路描述方面要强的多。 近 10 年来, EDA 界一直在对数字逻辑设计中究竟用哪一种硬件描述语言争论不休,目前在美国,高层次数字系统设计领域中,应用 Verilog 和 VHDL 的比率是 80 %和 20 %;日本和台湾和美国差不多;而在欧洲 VHDL 发展的比较好。在中国很多集成电路设计公司都采用 Verilog 。它们都是硬件描述语言,Verilog HDL 和VHDL两者最大的区别就在语法上,Vreilog HDL是类c语言,而VHDL是类ADA语言。因为c语言应用比较广泛且比较简单,所以Vreilog HDL比较容易学习,相比之下,VHDL允许用户自己定义数据类型,这样可以减少错误,但却增加了类型转换的麻烦。

简述VHDL语言基本结构

VHDL语言的基本结构 VHDL语言通常包括库说明、实体说明、结构体说明3个部分。library ieee;use ieee.std_logic_1164.all; --库说明entity dff1 isport(clk,d:in std_logic; q:out std_logic);end dff1; --实体说明architecture rtl of dff1 isbegin process(clk) begin if(clk"event and clk="1")then q<=d; end if; end process;end rtl; --结构体说明 VHDL提供5个库,IEEE库,STD库,VITAL库,自定义库和WORK库IEEE库包含的常用程序包有: std_logic_1164:常用数据类型(其中有std_logic、std_logic_vector数据类型)和函数的定义、各种类型转换 函数及逻辑运算。 std_logic_arith:它在std_logic_1164的基础上定义了无符号数unsigned、有符号数signed数据类型并为其定义了相应的算术运算、比较,无符号数unsigned、有符号数signed及整数integer之间转换函数。 std_logic_unsigned和std_logic_signed:定义了integer数据类型和std_logic及std_logic_vector数据类型混合运算的运算符,并定义了一个由std_logic_vector型到integer型的转换函数。其中std_logic_signed中定义的运算符是有符号数运算符。 STD库是标准库,包含两个程序包: standard:定义了基本数据类型、子类型和函数及各种类型的转换函数等。 textio文本程序包:定义了支持文本文件操作的许多类型和子程序等。在使用textio程序包之前,需要先写上use语句use std.txtio.all。 VITAL库:使用VITAL可以提高门级时序仿真的精度,一般在VHDL语言程序进行仿真时使用。主要包含两个程序包。 VITAL_timing:时序仿真包 VITAL_primitives:基本单元程序包 WORK库,是现行的工作库,设计人员设计的VHDL语言程序的编译结果不需任何说明,都将存放在WORK库中。WORK库可以是设计者个人使用,也可提供给设计组多人使用。 库说明的语法结构library 库名;use 库名.程序包名.项目名;###########################################################################################实体说明实体的电路意义相当于器件,在电路原理图上相当于元件符号,他是完整的、独立的语言模块实体说明语句的语法:entity 实体名 is port(端口1: 端口方式1 端口类型1; 端口2: 端口方式2 端口类型2;......);end 实体名端口方式有五种:in 输入类型 信号从该端口进入实体out 输出类型 信号从实体内部经该端口输出inout 输入输出类型 信号既可以从该端口输入也可以输出buffer 缓冲型 与out类似但在结构体内部可以作反馈linkage 无制定方向,可以与任何方向的信号连接############################################################################################结构体说明结构体会给模块的具体实现,指定输入与输出之间的行为。结构体语法如下:architecture 结构体名称 of 实体名 is 结构体说明部分;begin 结构体并行语句部分;end 结构体名称;结构体说明:对结构体内部所使用的信号、常数、数据类型和函数进行定义。结构体并行语句:具体确定各个输入、输出之间的关系,描述了结构体的行为,是一组并行处理语句。结构体对实体的输入输出关系可以用3中方式进行描述,即行为描述(基本设计单元的数学模型描述)、寄存器传输描述(数据流描述)、和结构描述(逻辑元器件连接描述)。不同的描述方式,只体现在描述语句上,而框架是完全一样的

vhdl语言有哪几种类操作符?

通常人们用“运算符”而不用“操作符”一词。VHDL中,运算符分为算术运算、逻辑运算、关系运算和连接运算4大类。

VHDL运算优先级顺序是什么?

VHDL语言操作符优先级(由高到低):1、括弧()2、NOT,ABS,乘方**3、REM,MOD,/,*4、+,-5、关系运算符=, /=, <, >, <=, =>6、逻辑运算符XOR NOR NAND OR AND NXOR

VHDL有8个常数需要用到,怎么把他们放到一个数组里,赋值怎么弄?

TYPE matrix_index is array (7 downto 0) of std_logic_vector(7 downto 0);SIGNAL a: matrix_index;--定义了数组a[8],即数组元素为a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7]constant R : matrix_index:=( x"15", x"0F", x"0A", x"06", x"2F", x"3A", x"4E", x"50 );--定义了常数数组R[8]--使用时跟C语言中一样,加下标就可以了,上面是用downto定义了方向,故R[0]是最后一项,如在R数组中R[0]=X"50",R[3]=X"2F",R[7]= x"15"满意请及时采纳,谢谢!

VHDL语言结构体的三种描述风格是

三种风格即行为描述、结构体描述、数据流描述。下面给你举个例子,你就明白了。这是一个两位相等比较器的例子entity equ2 is port(a,b:in std_logic_vector(1 downto 0); equ:out std_logic);end equ2;--结构体结构描述:用元件例化,即网表形式来实现;architecture netlist of equ2 is component nor2 port(a,b :in std_logic; c :out std_logic); end component; component xor2 port(a,b :in std_logic; c :out std_logic); end component; signal x: std_logic_vector(1 downto 0);begin U1:xor2 port map(a(0),b(0),x(0)); U2:xor2 port map(a(1),b(1),x(1)); U3:nor2 port map(a(0),b(1),equ);end netlist;--结构体数据流描述:用布尔方程来实现:architecture equation of equ2 isbegin equ<=(a(0) xor b(0)) nor(a(1) xor b(1));end equation;--结构体行为描述:用顺序语句来实现:architecture con_behave of equ2 isbegin process(a,b) begin if a=b then equ<="1"; else equ<="0"; end if; end procerss;end con_behave;--结构体行为描述:用并行语句来实现:architecture seq_behave of equ2 isbegin equ<="1" when a=b else "0";end sqq_behave;

怎么用VHDL定义一个状态量?

variabletemp:integerrange0to255;整型变量定义。variabletemp:std_logic_vector(7downto0);8位无符号位组变量定义。我不知道你要这个8位无符号的变量做什么。vhdl属于强类型语言。他没有向c51那种unsignedchar这种。所以当你使用变量进行赋值的时,赋值符号的左边和右边的数据类型必须一致。

vhdl =>什么意思 跟

状态机中的case when st0=>中的‘=>"就是把当前状态引进来判断

二、简答题 1采用VHDL语言设计数字系统具有哪些特点? 2举例说明FPGA是如何通过查找表实习其逻辑功能的?

1、VHDL语言的特点:功能强大、设计灵活。VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言虽不能比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。支持广泛、易于修改。

如何用VHDL实现分频?

模N计数器的实现一般设计中用到计数器时,我们可以调用lpm库中的计数器模块,也可以采用VHDL语言自己设计一个模N计数器。本设计采用VHDL语言设计一个最大模值为16的计数器。输入端口为:使能信号en,复位信号clr和时钟信号clk;输出端口为:qa、qb、qc、qd。其VHDL语言描述略。带使能控制的异或门的实现输入端为:xor_en:异或使能,a和b:异或输入;输出端为:c:异或输出。当xor_en为高电平时,c输出a和b的异或值。当xor_en为低电平时,c输出信号b。其VHDL语言略。2分频(触发器)的实现输入端为:时钟信号clk,输入信号d;输出端为:q:输出信号a,q1:输出信号a反。其VHDL语言略。4.分频器的实现本设计采用层次化的设计方法,首先设计实现分频器电路中各组成电路元件,然后通过元件例化的方法,调用各元件,实现整个分频器。其VHDL语言略。

一个vhdl程序一般有五部分组成,它们分别是什么,都有什么作用。 大

实体,结构体,库,程序包,配置1、实体:用于描述所设计系统的外部接口特性;即该设计实体对外的输入、输出端口数量和端口特性。2、结构体:用于描述实体所代表的系统内部的结构和行为;它描述设计实体的结构、行为、元件及内部连接关系。3、库:存放已经编译的实体、构造体、程序包集合和配置。4、程序包:存放各设计模块可以共享的数据类型、常数、子程序库。5、配置;实体对应多个结构体时,从与某个实体对应的多个结构体中选定一个作为具体实现。

VHDL语言里的一些概念问题

理论上两种写法都可以 但是几乎都用downto 大家都比较习惯高位在左的写法不同的写法影响赋值语句和属性 x(1 downto 0) <= "10";和x(0 to 1) <= "01"是一样的"left得到左边那个值 不管你用downto还是to"high得到大的那个值 即msb"range就是声明的那个范围(7 downto 0) "reverse_range则是(0 to 7)这样赋值的结果就是x(7 downto 0) <= "11111111"; x(15 downto 8) <= "00000000"; 即x"00ff"x表示十六进制 x"10",对应的二进制码为: "00010000"

vhdl程序设计中常用的库有哪些

除了STD库之外,还有IEEE库。IEEE库中常用的程序包有:std_logic_1164;std_logic_arith;std_logic_signed;std_logic_unsigned;numeric_std;numeric_bit等等。

VHDL由哪四部分构成?

VHDL全名Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言 。自IEEE-1076(简称87版)之后,各EDA公司相继推出自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,简称93版。VHDL和Verilog作为IEEE的工业标准硬件描述语言,得到众多EDA公司支持,在电子工程领域,已成为事实上的通用硬件描述语言。

vhdl语言数据对象有哪几种?作用范围如何?对其赋初值作用有何不同

VHDL语言数据对象有哪几种?作用范围如何?对其赋初值作用有何不同?答:VHDL语言数据对象有信号,变量,常量。1、常量(CONSTANT)一般用来代表数字电路中的电源、地、恒等逻辑值等常数。常量的使用范围取决于它被定义的位置。即在程序包中定义可在整个程序包中使用,在实体中定义,有效范围为这个实体定义的所有结构体;定义在结构体中只能用于该结构体;定义在结构体中某一单元如一个进程则只能用在这个进程当中。2、变量常用在实现某些算法的赋值语句当中,只是个局部变量,只能在进程和子程序中使用。(是一种理想化的数据传输,不存在任何的延时行为)3、信号表示一条硬件连接线:如输入输出端口,描述硬件系统的基本数据对象。

学习VHDL有哪些比较好的书籍?

黄任老师的书非常适合入门,可惜这么好的书绝版了,反而是某些写的很烂的书成为了“经典”还在出。

vHdl是什么

VHDL的全称是Very-High-Speed Integrated Circuit Hardware Description Language,是一种用于设计硬件系统的描述语言。VHDL看起来与软件编程语言有些相似,但本质上有很大不同。软件编程语言是顺序结构的,而硬件描述语言却是并行的,即使VHDL设计了顺序语句,从设计思想上来讲,仍然是并行设计思维。这是因为实际上硬件电路中的各个模块确实是同时工作的。

vhdl中文是什么意思

VHDL是超高速集成电路硬件描述语言Very High Speed Integrated Circuit Hardware Description Language的英文缩写。HDL是硬件描述语言Hardware Description Language的英文缩写,而V是超高速集成电路Very High Speed Integrated Circuit的首字母,合在一起就是VHDL。

与软件描述语言相比,VHDL有什么特点?

软件是编程语言,编写出的代码叫程序,是按照一定的程式顺序执行的;而硬件则采用描述语言,描述的是硬件的结构或者信息的流向,编写出的代码不叫程序,因为一个系统中的硬件是同时工作的,是没有顺序的。因此,通常我们把用hdl编写的叫做“描述”或者直接就叫“源代码”。vhdl是一种硬件描述语言,是用于进行硬件描述的语言,在其结构体内的语句,都是并行语句,是没有书写顺序的。

vhdl语言是什么

VHDL 就是 VHSIC Hardware Description Language 的缩写,而 VHSIC 就是 Very High Speed Integrated Circuit 的缩写,其意义就是非常高速积体电路。所以 VHDL 就是非常高速积体电路的硬体描述语言。这是一项原由美国国防部 ( DoD, Department of Defense) 所支持的研究计画。为了将电子电路的设计意涵以文件方式保存下来,以便其它人能轻易地了解电路的设计意义。这就是VHDL的由来。 在1985年,美国国防部取得委托研究的第一版语言。随后,VHDL语言就转移给IEEE,并在1987年成为IEEE1076---1987标准。1988年,英国国防部规定所有官方的ASIC设计均需以VHDL为设计描述语言。所以VHDL就逐渐地成为工业界的标准"1993年,IEEE将IEEE1076---1981标准经过一些增修(新增一些功能、去除模糊部份以及保留往前共容等等)之后,规范了另一个新的VHDL标准IEEE1164。1996年,IEEE将电路合成的程式标准与规格加入至VHDL电路设计语言中,称之为IEEE1076.3标准。 VHDL电路设计语言的规范目的,在於要提供一个高阶而且快电路设计工具,它涵盖电路描述(Description)电路合成与电路模拟(Simulation)等三个电路设计工作。 就像一些常用的程式设计语言(例如C、Pascal等高阶语言)用来描述计算数学函数或处理资料程序。程式的执行就是资料数值的计算。同样地,VHDL是一种描述数位系统,而VHDL程式的执行就是数位系统的电路模拟与电路合成。

计算机硬件描述语言(VHDL)与编程语言(C语言)的区别及关系,

计算机硬件描述语言(VHDL)与编程语言(C语言)的区别及关系, 首先说VHDL:它是描述电路的计算机工具,早期的CPLD等器件是基于与-或阵列的,更容易说明这点,VHDL是描述电路行为的,当下载到器件后,它就是具体的电路,这个电路全由与-或阵列组成。后期的FPGA也一样,只是它是基于查找表的。再说C语言:我们可以认为它是用于控制特定电路的工作。我们都知道可以C编程的控制器都有程序存储器,它里面就存放了C编译后的二进制代码。而VHDL里下载后根本就不需要这个存放程序的地方。 硬件描述语言与高级编程语言有何区别? 用途不一样 VHDL等硬件描述语言主要用于CPLD、FPGA的大规模可编程逻辑器件 而C语言等高级编程语言主要用于计算机等方面 软件编程语言和硬件描述语言的差别? verilog hdl 的程序烧到芯片里会影响芯片里的电路结构吧~ C编译成机器码以后一般都是在通用计算机上跑~这个问题很大有点不知道从何说起,老衲尽力了 VHDL硬件描述语言和汇编语言有什么关系吗? 做单片机方面,汇编语言是必学的,虽然单片机编程所用的大部分是C语言! VhdL语言是针对FPGA和CPLD的硬件描述语言,两者没多大共同点,是针对两个不同领域的语言! 学习单片机后,你可以往ARM和DSP方向发展!现在电子的一个大方向 你也可以单独学习VHDL,将FPGA学懂,那么你就是兼顾电子两大类的最尖端人才了! VHDL代码是标准的硬件描述语言这句话怎样理解?何谓硬件描述语言? VHDL说简单点 就是你用你心里面想的话去描述电路 让CPLD /FPGA去实现 是用来描述电路的 所以说叫硬件描述语言 自己的理解 希望能帮到你 VHDL硬件描述语言的延迟语句是什么? VHDL每一条语句最终生成的是一堆电路,记得是一堆实实在在的电路,不是生成一堆来执行什么功能的程序 所以不存在什么延时问题,所谓的延时,只是输入到输出的延时,执行语句的耗时那是不存在这种说法的 现在学硬件描述语言,VHDL好还是Verilog好 初学者我感觉因为有C语言基础,Verilog的话比较容易上手,语法比较像。但是不要因此而轻视它,有些地方是初学者很难理解的比如阻塞式赋值和非阻塞式赋值等。 谁能介绍一下"硬件描述语言VHDL"? 硬件描述语言HDL是一种用形式化方法描述数字电路和系统的语言。利用这种语言,数字电路系统的设计可以从上层到下层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后,利用电子设计自动化(EDA)工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。接下去,再用专用集成电路ASIC或现场可编程门阵列FPGA自动布局布线工具,把网表转换为要实现的具体电路布线结构。 目前,这种高层次(high-level-design)的方法已被广泛采用。据统计,目前在美国硅谷约有90%以上的ASIC和FPGA采用硬件描述语言进行设计。 硬件描述语言HDL的发展至今已有20多年的历史,并成功地应用于设计的各个阶段:建模、仿真、验证和综合等。到20世纪80年代,已出现了上百种硬件描述语言,对设计自动化曾起到了极大的促进和推动作用。但是,这些语言一般各自面向特定的设计领域和层次,而且众多的语言使用户无所适从。因此,急需一种面向设计的多领域、多层次并得到普遍认同的标准硬件描述语言。20世纪80年代后期,VHDL和Verilog HDL语言适应了这种趋势的要求,先后成为IEEE标准。 现在,随着系统级FPGA以及系统芯片的出现,软硬件协调设计和系统设计变得越来越重要。传统意义上的硬件设计越来越倾向于与系统设计和软件设计结合。硬件描述语言为适应新的情况,迅速发展,出现了很多新的硬件描述语言,像Superlog、SystemC、Cynlib C++等等。究竟选择哪种语言进行设计,整个业界正在进行激烈的讨论。因此,完全有必要在这方面作一些比较研究,为EDA设计做一些有意义的工作,也为发展我们未来的芯片设计技术打好基础 可编程硬件描述语言主要包括哪俩种 VHDL和Verilog HDL VHDL: 功能强大、设计灵活 支持广泛、易于修改 强大的系统硬件描述能力 独立于器件的设计、与工艺无关 很强的移植能力 易于共享和复用 Verilog HDL:Verilog来自C 语言,易学易用,编程风格灵活、简洁,使用者众多,特别在ASIC领域流行; 在VHDL硬件描述语言中,architectures的功能是什么? architecture是定义的结构体,定义了实体后就需要定义结构体

VHDL语言的VHDL简介

VHDL 的英文全名是VHSIC Hardware Description Language(VHSIC硬件描述语言)。VHSIC是Very High Speed Integrated Circuit的缩写,是20世纪80年代在美国国防部的资助下始创的,并最终导致了VHDL语言的出现。1987 年底,VHDL被 IEEE 和美国国防部确认为标准硬件描述语言。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。(1) 描述 在这个语言首次开发出来时,其目标仅是一个使电路文本化的一种标准,为了使人们采用文本方式描述的设计能够被其他人没有二意性地所理解。因为用自然语言描述电路会产生二意性。 这个模型是让人来阅读的。(2 ) 模拟的模型 作为模型语言,用于采用模拟软件进行模拟。这个模型是让仿真软件来阅读的。(3) 综合的模型 在自动设计系统中,作为设计输入。这个模型是让综合软件来阅读的。

VHDL是什么?

http://baike.baidu.com/view/1201.htm

硬件描述语言vhdl的特点是什么

VHDL语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。归纳起来,VHDL 语言主要具有以下优点:  (1)VHDL语言功能强大,设计方式多样  VHDL 语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能。此外,VHDL 语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。VHDL 语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法; 既支持模块化设计方法,也支持层次化设计方法。  (2)VHDL语言具有强大的硬件描述能力  VHDL 语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。同时,VHDL 语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。VHDL 语言的强大描述能力还体现在它具有丰富的数据类型。VHDL 语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。  (3)VHDL语言具有很强的移植能力  VHDL 语言很强的移植能力主要体现在: 对于同一个硬件电路的 VHDL 语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。  (4)VHDL语言的设计描述与器件无关  采用 VHDL 语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。当硬件电路的设计描述完成以后,VHDL 语言允许采用多种不同的器件结构来实现。  (5) VHDL语言程序易于共享和复用  VHDL 语言采用基于库 ( library) 的设计方法。在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。

与软件语言相比,VHDL有什么特点

在行为级抽象建模的覆盖范围方面软语言比VHDL略差一些。FPGA的硬件描述语言VHDL,超高速集成电路硬件描述语言,符合美国电气和电子工程师协会标准,利用一种和数字电路基本知识结合较密切的语言来描述数字电路和设计数字电路系统。为适应实际数字电路的工作方式,VHDL以并行和顺序的多种语句方式来描述在同一时刻中所有可能发生的事件,因此VHDL程序执行方式与其他语言不同。它不是按顺序一条一条执行每一条语句,而是有并行执行的语句同时也有按顺序执行的语句;要求数字电路设计人员摆脱一维的思维模式,以多维并发的思路来完成VHDL的程序设计。扩展资料软件语言和VHDL的共同点1、能形象化地抽象表示电路的结构和行为。2、支持逻辑设计中层次与领域的描述。3、可借用高级语言的精巧结构来简化电路的描述。4、具有电路仿真与验证机制以保证设计的正确性。5、支持电路描述由高层到低层的综合转换。6、硬件描述与实现工艺无关。7、便于文档管理,易于理解和设计重用。参考资料来源:百度百科—vhdl

VHDL是什么

分类: 电脑/网络 问题描述: ゛﹎`&.老癙操猫м- "独领 *** ヽue7c8_, ※我.不高.不矮.不酷.不乖.不帅.有点坏 ※我.无銭.无涙.无忧.无虑.无爱.有点呆 ※她.又高.又靓.又美.又娇.又乖.惹人爱 ※她.有銭.有涙.有情.有义.有爱.我等待 解析: VHDL 就是 VHSIC Hardware Description Language 的缩写,而 VHSIC 就是 Very High Speed Integrated Circuit 的缩写,其意义就是非常高速积体电路。所以 VHDL 就是非常高速积体电路的硬体描述语言。这是一项原由美国国防部 ( DoD, Department of Defense) 所支持的研究计画。为了将电子电路的设计意涵以文件方式保存下来,以便其它人能轻易地了解电路的设计意义。这就是VHDL的由来。 在1985年,美国国防部取得委托研究的第一版语言。随后,VHDL语言就转移给IEEE,并在1987年成为IEEE1076---1987标准。1988年,英国国防部规定所有官方的ASIC设计均需以VHDL为设计描述语言。所以VHDL就逐渐地成为工业界的标准"1993年,IEEE将IEEE1076---1981标准经过一些增修(新增一些功能、去除模糊部份以及保留往前共容等等)之后,规范了另一个新的VHDL标准------IEEE1164。1996年,IEEE将电路合成的程式标准与规格加入至VHDL电路设计语言中,称之为IEEE1076.3标准。 VHDL电路设计语言的规范目的,在于要提供一个高阶而且快电路设计工具,它涵盖电路描述(Description)电路合成与电路模拟(Simulation)等三个电路设计工作。 就像一些常用的程式设计语言(例如C、Pascal等高阶语言)用来描述计算数学函数或处理资料程序。程式的执行就是资料数值的计算。同样地,VHDL是一种描述数位系统,而VHDL程式的执行就是数位系统的电路模拟与电路合成。

基于VHDL语言的多功能数字钟设计

毕业设计么?我可以帮你代做的.有兴趣可留言给我

用VHDL设计汽车尾灯控制器

can?

十字路口交通灯控制器的VHDL设计

我有,跟你这个除了显示时间不同外其他都一样了,是自己做的,你要是想看的话我直接发你邮箱里,有点长,我邮箱是252301479@qq.com

VHDL D触发器的原理

D触发器本来就是锁存数据的,每到一个时钟上跳沿,将输入锁存并作为输出。这样一个时钟内的输出都是一个值吧

quartus ii如何将VHDL源程序变成元件的样子

1、首先在运行中输入notepad,启动记事本程序。2、在记事本程序中输入需要在Quartus II中录入的汉字,然后选择复制。3、然后找到并打开Quartus II软件,找到并双击打开目标VHDL文件。4、将鼠标光标插入到需要录入汉字的位置。使用Ctrl+V,将刚刚复制的汉字粘贴到目标位置。5、最后注意汉字占用两个字节,删除一个汉字需要按两次删除键,就完成了。

quartusⅡ如何建vhdl程序包?

在Quartus II中创建VHDL程序包,可以按照以下步骤进行操作:1、打开Quartus II软件,点击File -> New Project,创建一个新项目。2、在弹出的窗口中选择一个合适的工作目录,为项目命名,并选择VHDL语言。3、在项目目录下,右键点击工程名,选择New -> VHDL file。4、在弹出的窗口中输入文件名,例如"package_name.vhd",并在Type中选择VHDL Package。5、在编辑窗口中编写VHDL程序包代码,并保存。6、在需要使用该程序包的文件中引用该包,例如:library work;use work.package_name.all;其中,work为默认工作库的名称,package_name为程序包的名称。7、进行编译和仿真等操作时,确保程序包文件和引用文件在同一工程目录下,并在项目设置中正确设置工作库。以上就是在Quartus II中创建VHDL程序包的基本步骤。

用VHDL编程时总是出现这样的错误

你的process()里面加的敏感词跟clk一样不一样?一个process里面只能有一个上升沿判断。我的跟你的问题一样,但是我的是一个achiture里面有好多个process,两个不一样的时钟也会出现这种问题,但是到现在也没有想到要怎么解决=。=还是在编程中尽量避免出现两个上升沿判断比较好。

vhdl模5计数器设计 用vhdl语言编写模5计数器

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity div5 isport( clkin: in std_logic; clkout: out std_logic);end div5;architecture rt1 of div5 issignal step1 :std_logic_vector(2 downto 0);signal step2 :std_logic_vector(2 downto 0);begin process (clkin,step1,step2) begin if clkin"event and clkin = "1" then case (step1) is when "000" => step1 <= "001" ; when "001" => step1 <= "011" ; when "011" => step1 <= "100" ; when "100" => step1 <= "010" ; when "010" => step1 <= "000" ; when others => step1 <= "000" ; end case; elsif clkin"event and clkin = "0" then case (step2) is when "000" => step2 <= "001" ; when "001" => step2 <= "011" ; when "011" => step2 <= "100" ; when "100" => step2 <= "010" ; when "010" => step2 <= "000" ; when others => step2 <= "000" ; end case; end if; clkout <=step1(0) or step2(0); end process ;end rt1;参考 http://zhidao.baidu.com/link?url=UNJLa6rd6WWUvSN6xv955RuBppenMN6QE-JhG1HACADqWbKaFwFPXcV3AELS2aurcVdrhkvb0L6GbN-tNYzqlK如果答案对您有帮助,真诚希望您的采纳和好评哦!!祝:学习进步哦!!*^_^* *^_^*
 首页 上一页  1 2