资源描述:
《ahdl语言是altera公司开发的高效》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、AHDL语言WhatisAHDLAlteraHardwareDescriptionLanguageAHDL语言是ALTERA公司开发的高效、易学的硬件描述语言,在Max+plusⅡ软件中使用,它比VHDL语言更有效SUBDESIGNExample(A,B,C,D:INPUT;Ena:OUTPUT;)BEGINEna=A&B&C&!DEND;分设计段变量段一个AHDL逻辑设计至少必须包含一个分设计段(SubdesignSection)和一个逻辑设计段(LogicSection),其它段和语句是可选择的,AHDL的设计文件是用Max+Plus
2、Ⅱ软件的文本编辑器编写的源程序(*.tdf)逻辑段AHDL一般语言结构AHDL应用举例前面路灯的例子对应AHDL语言逻辑段-布尔方程逻辑段中布尔方程用于表达节点之间的逻辑关系,该关系必须遵从逻辑规则。表达式的左边可以是一个字符变量、端口和组,右边是布尔方程表达式。a[]=((c[]&-B"001101")+e[6..1])#(p,q,r,s,t,v);逻辑段-布尔控制方程该控制方程用于建立状态机的时钟、复位和时钟使能信号。该控制方程的格式为<状态机名>.<端口名>,所以该例中状态机名是ss,三个端口:时钟、复位和使能。ss.clk=clk
3、1;ss.reset=a&b;ss.ena=clk1ena;逻辑段-CASE语句CASEf[].qISWHENH"00"=>addr[]=0;s=a&b;WHENH"01"=>count[].d=count[].q+1;WHENH"02",H"03",H"04"=>f[3..0].d=addr[4..1];WHENOTHERS=>f[].d=f[].q;ENDCASE;逻辑段-缺省叙述语句BEGINDEFAULTSa=VCC;ENDDEFAULTS;IFy&zTHENa=GND;ENDIF;END;该语句指定真值表中变量的缺省值逻辑段-I
4、FTHEN语句IFa[]==b[]THENc[8..1]=H"77";addr[3..1]=f[3..1].q;f[].d=addr[]+1;ELSIFg3$g4THENf[].d=addr[];ELSEd=VCC;ENDIF;逻辑段-FORGENERATE语句CONSTANTNUM_OF_ADDERS=8;SUBDESIGN4gentst(a[NUM_OF_ADDERS..1],b[NUM_OF_ADDERS..1],cin:INPUT;c[NUM_OF_ADDERS..1],cout:OUTPUT;)VARIABLEcarry_out
5、[(NUM_OF_ADDERS+1)..1]:NODE;BEGINcarry_out[1]=cin;FORiIN1TONUM_OF_ADDERSGENERATEc[i]=a[i]$b[i]$carry_out[i];%FullAdder%carry_out[i+1]=a[i]&b[i]#carry_out[i]&(a[i]$b[i]);ENDGENERATE;cout=carry_out[NUM_OF_ADDERS+1];END;逻辑段-真值表语句TABLEa0,f[4..1].q=>f[4..1].d,control;0,B"0000"
6、=>B"0001",1;0,B"0100"=>B"0010",0;1,B"0XXX“=>B"0100",0;X,B"1111"=>B"0101",1;ENDTABLE;该语句用于指定组合逻辑和状态机的输入和输出行为小结AHDL语言易学好用,是学习硬件描述语言的基础语言系统学习硬件语言应该向VHDL发展AHDLVHDLBASICC语言DoItYourself