【五】pattern labels

在初始条件之后,接下来是实际的APG指令。所有APG指令都以百分号(%)开头。百分号后面可以跟随多达8行。这些行或语句构成了单个APG指令。这些语句的顺序并不重要,但尽量在所有指令中使用相同的顺序。

labels必须遵循以下规则:

标签:

  • 可以由大写字母、小写字母、数字和下划线字符组成,必须以字母开头(不能是数字或下划线)
  • 不区分大小写(为了与pattern语言的其余部分保持一致)
  • 总是以冒号(:)结尾
  • 不能是保留字(在使用的测试编程语言中预定义的词)
  • 在一个微指令处必须是唯一的(一个微指令处不允许有多个标签。)
  • 当标签与模式指令一起使用时,它需要是紧跟在百分号(%)之后的第一个助记符,百分号表示指令的开始

// write all zeros to the dut

%write loop:

xalu xmain, xcare , con, increment, dxmain, oxmain

yalu ymain, xcare, cmeqmax, increment , dymain, oymain

datgen mainmain

chipscslpt, cs2f, cs3pt, cs4pt

pinfunctsetl, psl, vihhl

countcount 1, decr, aon

marcjmpnz,write loop

APG指令的每一条语句或代码行都用于编程APG的不同部分。记住,尽管一个指令中可以有8行代码,但它只是一个单一的指令。APG指令的每一行语句都有默认值。如果你想在你的指令中使用这些默认值,你可以省略那些语句。

下面是默认值:

% Label 1 :/ * Sample Microinstruction * /

xalu xcare, xcare, coff, hold, nodes t, oxmain

yalu xcare, xcare, coffe hold, nodes t, oymain

datgen holddr , holdyn, mainmain, eqfdis bckfdis , not inv

chips noclks

pinfunc tsetl, psl, vihhl

count nocount, nocount, aoff

mar inc, 0, noread, noint, rsttmr, errsrcl

udata 0

如果一个APG指令使用了默认值,那么这个指令可以被重写时会覆盖默认值,而这两个指令将执行完全相同的操作。这意味着,如果某些参数不需要更改,就可以省略它们,从而简化指令的编写。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值