
ahdl语言是altera公司开发的高效实用教案.ppt
14页WhatisAHDLpAlteraHardwareDescriptionLanguagepAHDL语言是ALTERA公司开发的高效(ɡāoxiào)、易学的硬件描述语言,在Max+plusⅡ软件中使用,它比VHDL语言更有效SUBDESIGN Example( A,B,C,D : INPUT; Ena : OUTPUT; )BEGINEna = A & B & C & !DEND;第1页/共13页第一页,共14页分设计(shèjì)段变量(biànliàng)段p一个AHDL逻辑设计(shèjì)至少必须包含一个分设计(shèjì)段(Subdesign Section)和一个逻辑设计(shèjì)段(Logic Section),其它段和语句是可选择的,AHDL的设计(shèjì)文件是用Max+PlusⅡ软件的文本编辑器编写的源程序(*.tdf)逻辑段AHDLAHDL一般语言结构一般语言结构第2页/共13页第二页,共14页AHDLAHDL应用应用(yìngyòng)(yìngyòng)举例举例前面路灯的例子(lì zi)对应AHDL语言第3页/共13页第三页,共14页。
逻辑逻辑(luójí)段-布尔方程段-布尔方程•逻辑段中布尔方程用于表达节点之间的逻辑关系,该关系必须遵从逻辑规则•表达式的左边可以是一个字符(zìfú)变量、端口和组,右边是布尔方程表达式a[] = ((c[ ] & -B"001101") + e[6..1]) # (p, q, r, s, t, v);第4页/共13页第四页,共14页逻辑逻辑(luójí)段-布尔控制方程段-布尔控制方程•该控制方程(fāngchéng)用于建立状态机的时钟、复位和时钟使能信号•该控制方程(fāngchéng)的格式为<状态机名>.<端口名>,所以该例中状态机名是ss,三个端口:时钟、复位和使能ss.clk = clk1;ss.reset = a & b;ss.ena = clk1ena;第5页/共13页第五页,共14页逻辑逻辑(luójí)段-段-CASE语句语句CASE f[].q ISWHEN H"00" =>addr[] = 0;s = a & b;WHEN H"01" =>count[].d = count[].q + 1;WHEN H"02", H"03", H"04" =>f[3..0].d = addr[4..1];WHEN OTHERS =>f[].d = f[].q;END CASE;第6页/共13页第六页,共14页。
逻辑段-缺省叙述逻辑段-缺省叙述(xùshù)语句语句BEGINDEFAULTSa = VCC;END DEFAULTS;IF y & z THENa = GND; END IF;END;•该语句指定(zhǐdìng)真值表中变量的缺省值第7页/共13页第七页,共14页逻辑逻辑(luójí)段-段-IFTHEN语句语句IF a[] == b[] THENc[8..1] = H "77";addr[3..1] = f[3..1].q;f[].d = addr[] + 1;ELSIF g3 $ g4 THENf[].d = addr[];ELSE d = VCC;END IF;第8页/共13页第八页,共14页逻辑逻辑(luójí)段-段-FORGENERATE语句语句CONSTANT NUM_OF_ADDERS = 8;SUBDESIGN 4gentst( a[NUM_OF_ADDERS..1], b[NUM_OF_ADDERS..1], cin : INPUT; c[NUM_OF_ADDERS..1], cout : OUTPUT;)VARIABLEcarry_out[(NUM_OF_ADDERS+1)..1] : NODE;BEGINcarry_out[1] = cin;FOR i IN 1 TO NUM_OF_ADDERS GENERATEc[i] = a[i] $ b[i] $ carry_out[i]; % Full Adder %carry_out[i+1] = a[i] & b[i] # carry_out[i] & (a[i] $ b[i]);END GENERATE;cout = carry_out[NUM_OF_ADDERS+1];END;第9页/共13页第九页,共14页。
逻辑逻辑(luójí)段-真值表语句段-真值表语句TABLE a0, f[4..1].q => f[4..1].d, control;0,B"0000" =>B"0001", 1;0,B"0100" =>B"0010", 0;1,B"0XXX“ =>B"0100", 0;X,B"1111"=>B"0101", 1;END TABLE;•该语句用于指定组合逻辑(luójí)和状态机的输入和输出行为第10页/共13页第十页,共14页小结小结(xiǎojié)•AHDL语言易学好用,是学习(xuéxí)硬件描述语言的基础语言•系统学习(xuéxí)硬件语言应该向VHDL发展AHDLVHDLBASICC语言第11页/共13页第十一页,共14页Do It Yourself第12页/共13页第十二页,共14页感谢您的观看(guānkàn)!第13页/共13页第十三页,共14页内容(nèiróng)总结What is AHDLWhat is AHDLEna : OUTPUTss.reset = a & b。
s = a & bWHEN OTHERS =>IF y & z THENa = GNDELSIF g3 $ g4 THENd = VCC Full Adder %第十四页,共14页。












