Browse Source

Fix the zero count.

pre-master-46
Brian Taylor 2 years ago
committed by Holger Vogt
parent
commit
5c6b9f03b5
  1. 10
      examples/xspice/d_process/prog1-4.cir
  2. 20
      examples/xspice/d_process/prog4in1out.c

10
examples/xspice/d_process/prog1-4.cir

@ -12,22 +12,22 @@ v2 2 0 DC 0.0
a1 1 clk1 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"])
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"])
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"])
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")
an1 [o1 ~o2 o3] reseto dand1
.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")
.control

20
examples/xspice/d_process/prog4in1out.c

@ -91,21 +91,23 @@ static int compute(
)
{
uint8_t i0 = 0, zeros = 0;
uint8_t inbyte = datain[0];
uint8_t inbyte = datain[0] & 0x0F;
dataout[0] = 0;
i0 = inbyte ^ 0x01;
if (i0) zeros++;
i0 = inbyte ^ 0x02;
if (i0) zeros++;
i0 = inbyte ^ 0x04;
if (i0) zeros++;
i0 = inbyte ^ 0x08;
if (i0) zeros++;
i0 = inbyte & 0x01;
if (i0 == 0) zeros++;
i0 = inbyte & 0x02;
if (i0 == 0) zeros++;
i0 = inbyte & 0x04;
if (i0 == 0) zeros++;
i0 = inbyte & 0x08;
if (i0 == 0) zeros++;
if (zeros == 2 || zeros == 4) {
dataout[0] = 0x01;
} else {
dataout[0] = 0x00;
}
fprintf(stderr, "datain %X zeros %d dataout %X time %g\n",
datain[0], zeros, dataout[0], time);
return 1;
}

Loading…
Cancel
Save