我想创建counte 4bit生成这个序列:1,3,5,7,9,8,6,4,2,0,1 ...在ABEL HDL中。对于奇数我做,但偶数失败。任何人都可以解雇我,我的错误在哪里。 我想在vhdl中做出类似的想法。
contor=1;
if contor >9 contor = contor + 2; else contor = 8;
if contor >0 contor -2 ;
但我不明白如何使用@if。 这是我做的代码:
*<MODULE CounterV2
declarations
"pin declaration
X = .x.;
x = .X.;
"pin of clock , load "
clock pin 1;
ld pin 7;
i_d pin 8;
"output pin"
q3, q2, q1, q0 pin 19, 18, 17, 16 istype 'reg';
contor = [q3,q2,q1,q0];
MOD = [ld, i_d];
STOP =(MOD == [0, X]);
PAR =(MOD == [0, 1]);
IMPAR =(MOD == [0, 0]);
equations
[q3,q2,q1,q0].clk = clock;
"there is the core of code :D "
when IMPAR then contor :=1#(contor + 2);
when PAR then {
contor := 8;
when contor == 8 then contor :=contor -2;
}
" there a made test vector
test_vectors 'test'
([i_d,clock]->[q3,q2,q1,q0])
[0,.c.]->[x,x,x,x];
[0,.c.]->[x,x,x,x];
[0,.c.]->[x,x,x,x];
[0,.c.]->[x,x,x,x];
[0,.c.]->[x,x,x,x];
[1,.c.]->[x,x,x,x];
[1,.c.]->[x,x,x,x];
[1,.c.]->[x,x,x,x];
[1,.c.]->[x,x,x,x];
[1,.c.]->[x,x,x,x];
[1,.c.]->[x,x,x,x];
END
>*