EDA3_2硬件执行:并发执行(VHDL本质)仿真执行:顺序执行、并发执行分为两大类:顺序(Sequential)描述语句并发(Concurrent)ponent§(Sequential)1顺序描述语句:执行顺序与书写顺序一致,与传统软件设计语言的特点相似。顺序语句只能用在进程与子程序中。可描述组合逻辑、时序逻辑。常用的顺序描述语句:赋值语句;if语句;case语句;loop语句;next语句;exit语句;子程序;return语句;wait语句;null语句。2一对象与赋值语句1、VHDL中常用的5种对象:1)简单名称,如my_var;2)索引名称,如my_array_var(3);3)片断名称,如my_array_var(3to6);4)记录域名,;5)集合,如(my_var1,my_var2)。所有对象均分为:变量和信号对象:=表达式;--变量赋值对象<=表达式;--信号赋值要求:表达式的值必须与对象的类型、宽度一致。32、变量赋值与信号赋值变量与信号的差异:1)赋值方式的不同:变量:=表达式;信号<=表达式;2)硬件实现的功能不同:信号代表电路单元、功能模块间的互联,代表实际的硬件连线;变量代表电路单元内部的操作,代表暂存的临时数据。43)有效范围的不同:信号:程序包、实体、结构体;全局量。变量:进程、子程序;局部量。ARCHITECTURE{SIGNALDeclarations}label1:PROCESS{VARIABLEDeclarations}label2:PROCESS{VARIABLEDeclarations}┇54)赋值行为的不同:信号赋值延迟更新数值、时序电路;变量赋值立即更新数值、组合电路。5)::多源驱动线与、线或、三态6例:信号的多次赋值architecturertlofexissignala:std_logic;beginprocess(…)begina<=b;…a<=c;endprocess;endrtl;architecturertlofexissignala:std_logic;beginprocess(…)begina<=b;…endprocess;process(…)begina<=c;...endprocess;endex;7例:信号赋值与变量赋值的比较信号赋值:architecturertlofsigissignala,b:std_logic;--定义信号beginprocess(a,b)begina<=b;b<=a;endprocess;endrtl;--结果是a和b的值互换8变量赋值:architecturertlofvarisbeginprocessvariablea,b:std_logic;--定义变量begina:=b;b:=a;endprocess;endrtl;--结果是a和b的值都等于b的初值9例:变量赋值实现循环语句功能process(indicator,sig)variabletemp:std_logic;begintemp:=‘0’;foriin0to3looptemp:=tempxor(sig(i)andindicator(i));endloop;output<=temp;endprocess;10
EDA3 2 来自淘豆网m.daumloan.com转载请标明出处.