- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.5用AHDL语言设计数字系统
AHDL语言是ALTERA公司开发的高效、易学的硬件描述语言,在max+plus2软件中使用它比VHDL语言更有效。
AHDL 简介
一个AHDL逻辑设计至少必须包含一个分设计段(Subdesign Section)和一个逻辑设计段(Logic Section),
其它段和语句是可选择的,AHDL的设计文件是用Max+PlusⅡ软件的文本编辑器编写的源程序(*.tdf)
下面介绍AHDL的一些语句。
常数叙述语句
该语句可以用一个字符串代表数字、算数表达式
例:
CONSTANT UPPER_LIMIT = 130;
CONSTANT BAR = 1 + 2 DIV 3 + LOG2(256);
CONSTANT FOO = 1;
CONSTANT FOO_PLUS_ONE = FOO + 1;
(2) 定义函数语句
该语句可以定义一个在分设计中使用函数,
例:
DEFINE MAX(a,b) = (a b) ? a : b;
SUBDESIGN
(
dataa[MAX(WIDTH,0)..0]: INPUT;
datab[MAX(WIDTH,0)..0]: OUTPUT;
)
BEGIN
datab[] = dataa[];
END;
此例中MAX函数保证最小的数据位宽度。
(3)参数叙述语句
该语句可以声明参数化巨功能模块和宏功能模块的一个或几个参数
例:
PARAMETERS
(
FILENAME = myfile.mif, -- optional default value follows = sign
WIDTH,
AD_WIDTH = 8,
NUMWORDS = 2^AD_WIDTH
);
(4)函数描述语句
共有4种形式的逻辑函数可以供用户调用,它们是:
Megafunction—具有复杂逻辑功能的巨功能模块,放在mega_LPM库中,可以供用户调用
Primitive—一些基本逻辑功能函数,可以直接调用
Macrofunction—具有高水平的逻辑宏功能模块,共有300多种,放在max2lib子目录中
State Machine—一种具有多个状态的时序电路,可以形成符号图形,用户可以调用
以上几种逻辑功能函数都可以以逻辑函数名和符号图形的方式被调用,在AHDL源文件中调用时要首先进行声明,见如下例子。
1)参数化函数:
FUNCTION lpm_add_sub (cin, dataa[LPM_WIDTH-1..0], datab[LPM_WIDTH-1..0], add_sub)
WITH (LPM_WIDTH, LPM_REPRESENTATION, LPM_DIRECTION, ADDERTYPE,
ONE_INPUT_IS_CONSTANT)
RETURNS (result[LPM_WIDTH-1..0], cout, overflow);
该函数名为lpm_add_sub,输入端口为 cin, dataa[LPM_WIDTH-1..0], and datab[LPM_WIDTH-1..0];
关键字WITH后是参数表,
关键字RETURN后是输出口result[LPM_WIDTH-1..0], cout, and overflow
2)非参数化函数:
FUNCTION compare (a[3..0], b[3..0])
RETURNS (less, equal, greater);
该函数名为compare,输入端口为a3, a2, a1, a0, b3, b2, b1, and b0.
关键字RETURN后是输出口less, equal, greater
3)状态机函数:
当输入和输出是状态机时,应该按照如下例子定义函数,在返回结果语句中加MACHINE关键字
FUNCTION ss_def (clock, reset, count)
RETURNS (MACHINE ss_out);
(5) 最小位数选择语句
定义一组数据中的最小数位是否是MSB(most significant bit)或LSB(least significant bit)
例:
OPTIONS BIT0 = MSB;
(6)断言语句
该语句可以检验表达式、参数、数据、计算函数有效性和端口的使用情况。
例:
ASSERT (WIDTH 0)
REPORT Width (%) must be a positive integer WIDTH
SEVERITY ERROR
HELP_ID INTVALUE; -- for internal Altera use on
您可能关注的文档
最近下载
- Hisense海信中央空调 Hi-Multi M 系列HVR-560W SM2FZBpa,HVR-615W SM2FZBpa,HVR-680W SM2FZBpa,HVR-400W SM2FZBpa,H.pdf
- 转移性结直肠癌中医诊疗指南_张彤.pdf VIP
- 污水处理设施运维服务投标方案(技术标).doc
- 企业应急管理培训.pptx VIP
- 物流工程专业职称考试试题及答案.pdf VIP
- 急性肺栓塞诊断和治疗指南2025.pdf
- 迅达电梯3300|3600故障代码.doc
- 2025广西公需科目培训考试答案(90分)——“一区两地一园一通道”建设;人工智能时代的机遇与挑战(1).pdf VIP
- 预报员竞赛-雷暴与强对流临近预报-黄金考点6.docx VIP
- 砌筑工培训完整版.ppt VIP
文档评论(0)