ABEL HDL计数器4bit

时间:2015-12-20 11:51:05

标签: hdl

我想创建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 

>*

0 个答案:

没有答案