进程中的信号赋值语句,其信号更新是在进程的最后完成;CPLD和FPGA有什么差异?在实际应用中各有什么特点?差异:(1)CPLD:复杂可编程逻辑器件,FPGA:现场可变成门阵列;(2)CPLD:基于乘积项技术的确定型结构,FPGA:基于查找表技术的统计型结构;(3)CPLD:5500~50000门,FPGA:1K~10M门。实际应用中各自的特点:CPLD适用于逻辑密集型中小规模电路,编程数据不丢失,延迟固定,时序稳定;FPGA适用于数据密集型大规模电路,需用专用的ROM进行数据配置,布线灵活,但时序特性不稳定端口模式IN,OUT,BUFFER和INOUT各自的特点及OUT,BUFFER与INOUT的主要区别(p11)VHDL语言是一种结构化设计语言;一个设计实体(电路模块)包括实体与结构体两部分,结构体描述器件的内部功能;3种数据对象为:常量、信号、变量。各自的功能特点和使用场所:常量:代表电路中一个确定的数,如电源、地等。全局量,信号变量使用的地方都可用信号:代表电路中的某一条硬件连接线,包括输入、输出端口,信号赋值存在延迟。全局量,使用场所:architecture、package、entitiy。变量:代表电路中暂存某些值的载体。变量赋值不存在延迟。局部量,使用场所:process、function、procedure。用VHDL编写的代码,variable和signal可以在同处声明,但作用不同的说法是错误的。VHDL代码中是不区分大小写。对于状态机,状态机必须有复位信号输入,但可以没有时钟信号输入说法是不正确的。也即是说状态机可以没有复位信号,但必须有时钟信号。已知A和Q均为BIT类型的信号,下面的代码片断:ARCHITECTUREtestOFtestISBEGINCASEAISWHEN'0'=>Q<='1';WHEN'1'=>Q<='0';ENDCASE;ENDtest;CASE语句属于顺序代码,因此应当存在于进程PROCESS内,而不应当这样。下面的代码中,start为STD_LOGIC类型的信号,sum是INTEGER类型的信号:PROCESS(start)BEGINFORiIN1TO9LOOPsum:=sum+I;ENDLOOP;ENDPROCESS;因为sum是信号,其赋值符号应该由“:=”改为“<=”。已知Q为STD_LOGIC类型的输出端口,下面的程序片断:ARCHITECTUREtestOFtestISBEGINSIGNALB:STD_LOGIC;Q<=B;ENDtest;信号SIGNAL的声明语句应该放在ARCHITECTURE和BEGIN语句之间。已知A和B均为STD_LOGIC类型的信号,请判断下面的语句:A<='0';B<='x';不定态符号应该由小写的‘x’改为大写的‘X’。已知A为INTEGER类型的信号,B为STD_LOGIC类型的信号,下面的程序片断:ARCHITECTUREtestOFtestISBEGINB<=A;ENDtest;A和B的数据类型不一致,不能相互赋值。已知sel是STD_LOGIC_VECTOR(1DOWNTO0)类型信号,而a、b、c、d、q均为STD_LOGIC类型信号,请判断下面给出的CASE语句:CASEselISWHEN“00”=>q<=a;WHEN“01”=>q<=b;WHEN
EDA复习资料 来自淘豆网m.daumloan.com转载请标明出处.