Fix the zero count.
This commit is contained in:
parent
1f5f7ae439
commit
5c6b9f03b5
|
|
@ -12,22 +12,22 @@ v2 2 0 DC 0.0
|
||||||
a1 1 clk1 d_osc1
|
a1 1 clk1 d_osc1
|
||||||
a2 2 clk2 d_osc1
|
a2 2 clk2 d_osc1
|
||||||
|
|
||||||
ap0_4 null clk1 null [q1 q2 q3 q4] proc0
|
ap0 null clk1 null [q1 q2 q3 q4] proc0
|
||||||
.model proc0 d_process (process_file="graycode" process_params=["none"])
|
.model proc0 d_process (process_file="graycode" process_params=["none"])
|
||||||
|
|
||||||
ap1_4 [clk2] clk1 null [o1 o2 o3 o4] proc1
|
ap1 [clk2] clk1 null [o1 o2 o3 o4] proc1
|
||||||
.model proc1 d_process (process_file="prog1in4out" process_params=["opt1", "qwerty"])
|
.model proc1 d_process (process_file="prog1in4out" process_params=["opt1", "qwerty"])
|
||||||
|
|
||||||
ap4_1 [o1 o2 o3 o4] clk1 null [zeros] proc2
|
ap2 [o1 o2 o3 o4] clk1 null [zeros] proc2
|
||||||
.model proc2 d_process (process_file="prog4in1out" process_params=["abc", "99"])
|
.model proc2 d_process (process_file="prog4in1out" process_params=["abc", "99"])
|
||||||
|
|
||||||
ap4_1a [q1 q2 q3 q4] clk1 null [qzeros] proc3
|
ap3 [q1 q2 q3 q4] clk1 null [qzeros] proc3
|
||||||
.model proc3 d_process (process_file="prog4in1out")
|
.model proc3 d_process (process_file="prog4in1out")
|
||||||
|
|
||||||
an1 [o1 ~o2 o3] reseto dand1
|
an1 [o1 ~o2 o3] reseto dand1
|
||||||
.model dand1 d_and(inertial_delay=true rise_delay=1ns fall_delay=50ns)
|
.model dand1 d_and(inertial_delay=true rise_delay=1ns fall_delay=50ns)
|
||||||
|
|
||||||
ap1_4a [clk2] clk1 reseto [b1 b2 b3 b4] proc4
|
ap4 [clk2] clk1 reseto [b1 b2 b3 b4] proc4
|
||||||
.model proc4 d_process (process_file="prog1in4out")
|
.model proc4 d_process (process_file="prog1in4out")
|
||||||
|
|
||||||
.control
|
.control
|
||||||
|
|
|
||||||
|
|
@ -91,21 +91,23 @@ static int compute(
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
uint8_t i0 = 0, zeros = 0;
|
uint8_t i0 = 0, zeros = 0;
|
||||||
uint8_t inbyte = datain[0];
|
uint8_t inbyte = datain[0] & 0x0F;
|
||||||
dataout[0] = 0;
|
dataout[0] = 0;
|
||||||
i0 = inbyte ^ 0x01;
|
i0 = inbyte & 0x01;
|
||||||
if (i0) zeros++;
|
if (i0 == 0) zeros++;
|
||||||
i0 = inbyte ^ 0x02;
|
i0 = inbyte & 0x02;
|
||||||
if (i0) zeros++;
|
if (i0 == 0) zeros++;
|
||||||
i0 = inbyte ^ 0x04;
|
i0 = inbyte & 0x04;
|
||||||
if (i0) zeros++;
|
if (i0 == 0) zeros++;
|
||||||
i0 = inbyte ^ 0x08;
|
i0 = inbyte & 0x08;
|
||||||
if (i0) zeros++;
|
if (i0 == 0) zeros++;
|
||||||
if (zeros == 2 || zeros == 4) {
|
if (zeros == 2 || zeros == 4) {
|
||||||
dataout[0] = 0x01;
|
dataout[0] = 0x01;
|
||||||
} else {
|
} else {
|
||||||
dataout[0] = 0x00;
|
dataout[0] = 0x00;
|
||||||
}
|
}
|
||||||
|
fprintf(stderr, "datain %X zeros %d dataout %X time %g\n",
|
||||||
|
datain[0], zeros, dataout[0], time);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue