VTOC Example: Prime Generator.

Compilation

The following compilation steps were taken in this example:

These compilations can be repeated using the following makefile .

When VTOC compiled the Verilog netlist, it needed behavioural models of the gates and SRAM:

The same models were also used for simulation of the gate-level Verilog version. In the C version of the gate-level version, the models have been pulled in and flattened using (the default) args to VTOC, so were not needed in any form at runtime.

Execution

All of these versions can be executed. Test wrappers were written by hand in Verilog and C.

Note that VTOC was given the flag -mode1 clk both times it was used, so it is not necessary to exercise the clock net in the C version.

These following file was used to demonstrate debugging information from the C versions ttvinc.c .

Results

The results from each run were identical, and are as expected: results .

However, the run times are vastly different. Here are the run times on an UltraSparc II at 400 MHz.

(C) 1999 TenisonTech


Prime.cv

Here is the source file.

//
// primes.cv
//
// DJ Greaves. 1999.  
// University of Cambridge.
//
module PRIMEGEN(clk, reset, out, guard, hs);

  parameter topbit = 17;

  input clk, reset;
  output [topbit:0] out;
  output guard;
  input hs;




  reg [7:0] mem [32767:0];	// synthesis map_to SSRAM/SSRAM32x8

  reg [topbit:0] p, q;

  reg [1:0] phase;
  reg guard;
  reg [topbit:0] out;
  reg pc;
  reg [7:0] hold;

    always @(posedge clk) begin

	if (reset) begin
		pc <= 0;
		phase = 0;
		p = 0;
	 	q = 0;
		guard <= 0;
		end

	// Clear the array
	else if (phase == 0) begin
		mem [p[topbit:3]] <= 0;
		p <= p + 8;
		if (p[topbit]) begin
			phase <= phase + 1;
			p <= 4;
			q <= 2;
			end
		end

	// Cross out multiples
	else if (phase == 1) begin
		pc <= ~pc;
		if (~pc) hold <=  mem[p[topbit:3]]; 
		else begin
			mem[p[topbit:3]] <= hold | (1 << p[2:0]);
			if (q[topbit]) begin
				phase <= phase + 1;
				p <= 0;
				end

			else if (p[topbit]) begin
				q <= q + 1;
				p <= 2 * (q+1);
				// $display("Phase %d %d\n", phase, q);
				end
			else p <= p + q;		  
			end	
		end

	// Print out results
	else if (phase == 2) begin
		if (p[topbit]) begin
			$display("All done at %t\n", $time);
			$finish;
			end

 		if (hs) begin
			guard <= 0;
			p <= p + 1;
			end
		else begin
			if ((mem[p[topbit:3]] & (1 << p[2:0])) == 0) begin
				guard <= 1;
				out <= p;
				end
			else p <= p + 1;
		 	end
		end
	end



endmodule

Note that the variables `pc' and `hold' were written into the source code to avoid the need for read-modify write cycles on the array, since these are not supported by the cv2 algorithm. If we had used cv3 as a front end then they would not be necessary since the compiler would introduce equivalent extra registers.


Sys.cv

Here is a test wrapper which enables simulation of the Verilog versions using a Verilog behavioural simulator.


`define TOPBIT 17

module SIMSYS();


  parameter topbit = `TOPBIT;

  reg clk, reset;
  wire [topbit:0] out;
  wire guard;
  wire hs;

  integer printed;


  initial begin 
	printed = 0;
	clk = 0;
	reset = 1;
	#1000
	reset = 0;
	end

  always #50 clk = !clk;

  always @(posedge clk) if (guard) begin
	if (printed < 22) $display("Prime %d\n", out);
	printed = printed + 1;
	end

  assign #10 hs = guard; 



  PRIMEGEN primegen(clk, reset, out, guard, hs);

endmodule




Prime.c

Here is the output from VTOC when prime.cv is compiled to C.

/* vtoc -mode1 clk -mlt fl_newnet_copy primes.cv -root PRIMEGEN -o primes.c  */
/* User=djg  */

/* Output from CBG vtoc V0.1 alpha. CBG/TT CVA EDA CORE (Core release 1.3e zent 8 July 99). */

#include stdio.h 

#include "ttvtoc.h" 



/* start of tt generated C code */



static int ttvtoc_ticks = 0; /*used for $time */ 



void ttv(  unsigned int *clk,   unsigned int *reset,   unsigned int *out,   unsigned int *guard,   unsigned int *hs)
{
    unsigned static int  pc_t100;
  unsigned static int  q_t101;
  unsigned static int  p_t102;
  unsigned static int  phase_t103;
  unsigned static int  mem_subscript105;
  unsigned static int  mem_t104;
  unsigned static int  mem [32768];
  unsigned static int  ptr;
  unsigned static int  p;
  unsigned static int  q;
  unsigned static int  phase;
  unsigned static int  pc;
  unsigned static int  hold;
#include "ttvinc.c"
/* synch */
  if (1) {   *guard = 1 & (((*reset) ? 0:((phase==0 || phase==1) ? *guard:((phase==2) ? ((*hs) ? 0:(((*((32767 & p>>3) + mem) & 1<<(7 & p))==0) ? 1:*guard)):*guard))));
  *out = 262143 & (((*reset || (phase==0 || phase==1)) ? *out:((phase==2) ? ((*hs) ? *out:(((*((32767 & p>>3) + mem) & 1<<(7 & p))==0) ? p:*out)):*out)));
  pc_t100 = 1 & (((*reset) ? 0:((phase==0) ? pc:((phase==1) ? 1 & ~pc:pc))));
  q_t101 = 262143 & (((*reset) ? q:((phase==0) ? ((1 & p>>17) ? 2:q):((phase==1) ? ((1 & ~pc || 1 & q>>17) ? q:((1 & p>>17) ? q + 1:q)):q))));
  p_t102 = 262143 & (((*reset) ? p:((phase==0) ? ((1 & p>>17) ? 4:p + 8):((phase==1) ? ((1 & ~pc) ? p:((1 & q>>17) ? 0:((1 & p>>17) ? 2*(q + 1):p + q))):((phase==2) ? ((*hs) ? p + 1:(((*((32767 & p>>3) + mem) & 1<<(7 & p))==0) ? p:p + 1)):p)))));
  phase_t103 = 3 & (((*reset) ? phase:((phase==0) ? ((1 & p>>17) ? phase + 1:phase):((phase==1) ? ((1 & ~pc) ? phase:((1 & q>>17) ? phase + 1:phase)):phase))));
  mem_subscript105 = 32767 & p>>3;
  mem_t104 = 255 & (((*reset) ? *((32767 & p>>3) + mem):((phase==0) ? 0:((phase==1) ? ((1 & ~pc) ? *((32767 & p>>3) + mem):hold | 1<<(7 & p)):*((32767 & p>>3) + mem)))));
  hold = 255 & (((*reset || phase==0) ? hold:((phase==1 && 1 & ~pc) ? *((32767 & p>>3) + mem):hold)));
  if ((((((1 & p>>17 && 1 & ~((*((32767 & p>>3) + mem) & 1<<(7 & p))==0)) && 1 & ~*hs) && phase==2) && 1 & ~(phase==1)) && 1 & ~(phase==0)) && 1 & ~*reset)   ttvtoc_display("All done at %t\n", ttvtoc_ticks);
  if ((((((1 & p>>17 && 1 & ~((*((32767 & p>>3) + mem) & 1<<(7 & p))==0)) && 1 & ~*hs) && phase==2) && 1 & ~(phase==1)) && 1 & ~(phase==0)) && 1 & ~*reset)   ttvtoc_finish();
  if ((((((1 & p>>17 && (*((32767 & p>>3) + mem) & 1<<(7 & p))==0) && 1 & ~*hs) && phase==2) && 1 & ~(phase==1)) && 1 & ~(phase==0)) && 1 & ~*reset)   ttvtoc_display("All done at %t\n", ttvtoc_ticks);
  if ((((((1 & p>>17 && (*((32767 & p>>3) + mem) & 1<<(7 & p))==0) && 1 & ~*hs) && phase==2) && 1 & ~(phase==1)) && 1 & ~(phase==0)) && 1 & ~*reset)   ttvtoc_finish();
  if (((((1 & p>>17 && *hs) && phase==2) && 1 & ~(phase==1)) && 1 & ~(phase==0)) && 1 & ~*reset)   ttvtoc_display("All done at %t\n", ttvtoc_ticks);
  if (((((1 & p>>17 && *hs) && phase==2) && 1 & ~(phase==1)) && 1 & ~(phase==0)) && 1 & ~*reset)   ttvtoc_finish();

      }
  (ttvtoc_ticks++);
  pc = pc_t100;
  q = q_t101;
  p = p_t102;
  phase = phase_t103;
  *(mem + mem_subscript105) = mem_t104;
/* post cont */

}


/* End of tt generated C routine */



Main.c

Here is a C version of the test wrapper. This is needed to run the C version of the prime generator: either at behavioural or gate level.

/*
 * main.c for primes example
 */
#define CALL  ttv(  &clk,   &reset,   &out,   &guard,   &hs)

unsigned int clk;   
unsigned int reset;   
unsigned int out;  
unsigned int guard;   
unsigned int hs;

int main()
{
  int count = 0;
  reset = 1;
  CALL;
  reset = 0;
  while(1)
    {
      
      CALL;

      hs = guard;
      if (guard && count++ < 20) printf("Prime %i\n", out);
    }
  return 0;


}



Ttvinc.c

Here is typical debugging C code that can be placed in the ttvinc.c file to print output. Note that the array has different names in the primesvnl.c and primes.c versions, so the hash define must be modified.

{
#define xmem array_mem_mem_mem
  static int oldmem0;
  if (xmem[0] != oldmem0) 
  {
     printf("Phase = %i, p=%i q=%i %x %x    ticks =%i\n", phase, p, q, xmem[0], xmem[1], ttvtoc_ticks);
     oldmem0 = xmem[0];
  }
}

Primes.vnl

Here is the gate-level version of the prime generator, compiled using a normal Verilog compiler. Note that the array has been mapped to a synchronous SRAM instance.

/* cv3core cv2.100 /homes/djg/codesign/examples/primes/primes.cv -root PRIMEGEN -o /homes/djg/codesign/examples/primes/primes.vnl  */
/* User=/home/djg  */
/* output from CBG CV2/100  */


module PRIMEGEN (clk, reset, out, guard, hs);
  supply0 LGND; supply1 LVCC;
  input clk;
  input reset;
  output [17:0] out;
  output guard;
  input hs;
  wire /* lid */ g631;
  wire /* lid */ g630;
  wire /* lid */ g628;
  wire /* lid */ g627;
  wire /* lid */ g625;
  wire /* lid */ g624;
  wire /* lid */ g622;
  wire /* lid */ g621;
  wire /* lid */ g619;
  wire /* lid */ g618;
  wire /* lid */ g616;
  wire /* lid */ g615;
  wire /* lid */ g613;
  wire /* lid */ g612;
  wire /* lid */ g610;
  wire /* lid */ g609;
  wire /* lid */ g593;
  wire /* lid */ g592;
  wire /* lid */ g591;
  wire /* lid */ g590;
  wire /* lid */ mq589;
  wire /* lid */ g588;
  wire /* lid */ g587;
  wire /* lid */ I586;
  wire /* lid */ I585;
  wire /* lid */ g584;
  wire /* lid */ g583;
  wire /* lid */ mq582;
  wire /* lid */ mq581;
  wire /* lid */ mq579;
  wire /* lid */ g578;
  wire /* lid */ g577;
  wire /* lid */ g576;
  wire /* lid */ mq574;
  wire /* lid */ g573;
  wire /* lid */ mq571;
  wire /* lid */ g570;
  wire /* lid */ mq568;
  wire /* lid */ g567;
  wire /* lid */ mq565;
  wire /* lid */ g564;
  wire /* lid */ mq562;
  wire /* lid */ g561;
  wire /* lid */ mq559;
  wire /* lid */ g558;
  wire /* lid */ mq556;
  wire /* lid */ g555;
  wire /* lid */ mq553;
  wire /* lid */ g552;
  wire /* lid */ mq550;
  wire /* lid */ g549;
  wire /* lid */ mq547;
  wire /* lid */ g546;
  wire /* lid */ mq544;
  wire /* lid */ g543;
  wire /* lid */ mq541;
  wire /* lid */ g540;
  wire /* lid */ mq538;
  wire /* lid */ g537;
  wire /* lid */ mq535;
  wire /* lid */ g534;
  wire /* lid */ mq532;
  wire /* lid */ g531;
  wire /* lid */ mq529;
  wire /* lid */ g528;
  wire /* lid */ g526;
  wire /* lid */ g525;
  wire /* lid */ g524;
  wire /* lid */ g523;
  wire /* lid */ I522;
  wire /* lid */ g521;
  wire /* lid */ g520;
  wire /* lid */ mq519;
  wire /* lid */ g518;
  wire /* lid */ mq516;
  wire /* lid */ g515;
  wire /* lid */ g514;
  wire /* lid */ g513;
  wire /* lid */ mq512;
  wire /* lid */ g511;
  wire /* lid */ mq510;
  wire /* lid */ g509;
  wire /* lid */ g508;
  wire /* lid */ g507;
  wire /* lid */ g506;
  wire /* lid */ g505;
  wire /* lid */ g504;
  wire /* lid */ g503;
  wire /* lid */ g502;
  wire /* lid */ g501;
  wire /* lid */ mq499;
  wire /* lid */ g498;
  wire /* lid */ g497;
  wire /* lid */ g496;
  wire /* lid */ mq495;
  wire /* lid */ g494;
  wire /* lid */ mq493;
  wire /* lid */ g492;
  wire /* lid */ g491;
  wire /* lid */ g490;
  wire /* lid */ g489;
  wire /* lid */ g488;
  wire /* lid */ g487;
  wire /* lid */ g486;
  wire /* lid */ g485;
  wire /* lid */ g484;
  wire /* lid */ mq482;
  wire /* lid */ g481;
  wire /* lid */ g480;
  wire /* lid */ g479;
  wire /* lid */ mq478;
  wire /* lid */ g477;
  wire /* lid */ mq476;
  wire /* lid */ g475;
  wire /* lid */ g474;
  wire /* lid */ g473;
  wire /* lid */ g472;
  wire /* lid */ g471;
  wire /* lid */ g470;
  wire /* lid */ g469;
  wire /* lid */ g468;
  wire /* lid */ g467;
  wire /* lid */ mq465;
  wire /* lid */ g464;
  wire /* lid */ g463;
  wire /* lid */ g462;
  wire /* lid */ mq461;
  wire /* lid */ g460;
  wire /* lid */ mq459;
  wire /* lid */ g458;
  wire /* lid */ g457;
  wire /* lid */ g456;
  wire /* lid */ g455;
  wire /* lid */ g454;
  wire /* lid */ g453;
  wire /* lid */ g452;
  wire /* lid */ g451;
  wire /* lid */ g450;
  wire /* lid */ mq448;
  wire /* lid */ g447;
  wire /* lid */ g446;
  wire /* lid */ g445;
  wire /* lid */ mq444;
  wire /* lid */ g443;
  wire /* lid */ mq442;
  wire /* lid */ g441;
  wire /* lid */ g440;
  wire /* lid */ g439;
  wire /* lid */ g438;
  wire /* lid */ g437;
  wire /* lid */ g436;
  wire /* lid */ g435;
  wire /* lid */ g434;
  wire /* lid */ g433;
  wire /* lid */ mq431;
  wire /* lid */ g430;
  wire /* lid */ g429;
  wire /* lid */ g428;
  wire /* lid */ mq427;
  wire /* lid */ g426;
  wire /* lid */ mq425;
  wire /* lid */ g424;
  wire /* lid */ g423;
  wire /* lid */ g422;
  wire /* lid */ g421;
  wire /* lid */ g420;
  wire /* lid */ g419;
  wire /* lid */ g418;
  wire /* lid */ g417;
  wire /* lid */ g416;
  wire /* lid */ mq414;
  wire /* lid */ g413;
  wire /* lid */ g412;
  wire /* lid */ g411;
  wire /* lid */ mq410;
  wire /* lid */ g409;
  wire /* lid */ mq408;
  wire /* lid */ g407;
  wire /* lid */ g406;
  wire /* lid */ g405;
  wire /* lid */ g404;
  wire /* lid */ g403;
  wire /* lid */ g402;
  wire /* lid */ g401;
  wire /* lid */ g400;
  wire /* lid */ g399;
  wire /* lid */ mq397;
  wire /* lid */ g396;
  wire /* lid */ g395;
  wire /* lid */ g394;
  wire /* lid */ mq393;
  wire /* lid */ g392;
  wire /* lid */ mq391;
  wire /* lid */ g390;
  wire /* lid */ g389;
  wire /* lid */ g388;
  wire /* lid */ g387;
  wire /* lid */ g386;
  wire /* lid */ g385;
  wire /* lid */ g384;
  wire /* lid */ g383;
  wire /* lid */ g382;
  wire /* lid */ mq380;
  wire /* lid */ g379;
  wire /* lid */ g378;
  wire /* lid */ g377;
  wire /* lid */ mq376;
  wire /* lid */ g375;
  wire /* lid */ mq374;
  wire /* lid */ g373;
  wire /* lid */ g372;
  wire /* lid */ g371;
  wire /* lid */ g370;
  wire /* lid */ g369;
  wire /* lid */ g368;
  wire /* lid */ g367;
  wire /* lid */ g366;
  wire /* lid */ g365;
  wire /* lid */ mq363;
  wire /* lid */ g362;
  wire /* lid */ g361;
  wire /* lid */ g360;
  wire /* lid */ mq359;
  wire /* lid */ g358;
  wire /* lid */ mq357;
  wire /* lid */ g356;
  wire /* lid */ g355;
  wire /* lid */ g354;
  wire /* lid */ g353;
  wire /* lid */ g352;
  wire /* lid */ g351;
  wire /* lid */ g350;
  wire /* lid */ g349;
  wire /* lid */ g348;
  wire /* lid */ mq346;
  wire /* lid */ g345;
  wire /* lid */ g344;
  wire /* lid */ g343;
  wire /* lid */ mq342;
  wire /* lid */ g341;
  wire /* lid */ mq340;
  wire /* lid */ g339;
  wire /* lid */ g338;
  wire /* lid */ g337;
  wire /* lid */ g336;
  wire /* lid */ g335;
  wire /* lid */ g334;
  wire /* lid */ g333;
  wire /* lid */ g332;
  wire /* lid */ g331;
  wire /* lid */ mq329;
  wire /* lid */ g328;
  wire /* lid */ g327;
  wire /* lid */ g326;
  wire /* lid */ mq325;
  wire /* lid */ g324;
  wire /* lid */ mq323;
  wire /* lid */ g322;
  wire /* lid */ g321;
  wire /* lid */ g320;
  wire /* lid */ g319;
  wire /* lid */ g318;
  wire /* lid */ g317;
  wire /* lid */ g316;
  wire /* lid */ g315;
  wire /* lid */ g314;
  wire /* lid */ mq312;
  wire /* lid */ g311;
  wire /* lid */ g310;
  wire /* lid */ g309;
  wire /* lid */ mq308;
  wire /* lid */ g307;
  wire /* lid */ mq306;
  wire /* lid */ g305;
  wire /* lid */ g304;
  wire /* lid */ g303;
  wire /* lid */ g302;
  wire /* lid */ g301;
  wire /* lid */ g300;
  wire /* lid */ g299;
  wire /* lid */ g298;
  wire /* lid */ g297;
  wire /* lid */ mq295;
  wire /* lid */ g294;
  wire /* lid */ g293;
  wire /* lid */ mq292;
  wire /* lid */ g291;
  wire /* lid */ mq290;
  wire /* lid */ g289;
  wire /* lid */ g288;
  wire /* lid */ g287;
  wire /* lid */ g286;
  wire /* lid */ g285;
  wire /* lid */ g284;
  wire /* lid */ g283;
  wire /* lid */ g282;
  wire /* lid */ g281;
  wire /* lid */ mq279;
  wire /* lid */ g278;
  wire /* lid */ I277;
  wire /* lid */ mq276;
  wire /* lid */ g275;
  wire /* lid */ mq274;
  wire /* lid */ g273;
  wire /* lid */ g272;
  wire /* lid */ g271;
  wire /* lid */ g270;
  wire /* lid */ g269;
  wire /* lid */ g268;
  wire /* lid */ g267;
  wire /* lid */ g266;
  wire /* lid */ g265;
  wire /* lid */ mq263;
  wire /* lid */ g262;
  wire /* lid */ mq261;
  wire /* lid */ g260;
  wire /* lid */ mq259;
  wire /* lid */ g258;
  wire /* lid */ g257;
  wire /* lid */ g256;
  wire /* lid */ g255;
  wire /* lid */ g254;
  wire /* lid */ g253;
  wire /* lid */ g252;
  wire /* lid */ g251;
  wire /* lid */ mq249;
  wire /* lid */ g248;
  wire /* lid */ mq247;
  wire /* lid */ g246;
  wire /* lid */ mq245;
  wire /* lid */ g244;
  wire /* lid */ g243;
  wire /* lid */ g242;
  wire /* lid */ I241;
  wire /* lid */ g240;
  wire /* lid */ g238;
  wire /* lid */ g237;
  wire /* lid */ g236;
  wire /* lid */ g235;
  wire /* lid */ g234;
  wire /* lid */ g233;
  wire /* lid */ g232;
  wire /* lid */ I231;
  wire /* lid */ mq230;
  wire /* lid */ g229;
  wire /* lid */ mq228;
  wire /* lid */ g227;
  wire /* lid */ g226;
  wire /* lid */ g225;
  wire /* lid */ I224;
  wire /* lid */ I223;
  wire /* lid */ g221;
  wire /* lid */ g219;
  wire /* lid */ g218;
  wire /* lid */ g217;
  wire /* lid */ g216;
  wire /* lid */ g215;
  wire /* lid */ g214;
  wire /* lid */ I213;
  wire /* lid */ g204;
  wire /* lid */ g203;
  wire /* lid */ I202;
  wire /* lid */ I201;
  wire /* lid */ g200;
  wire /* lid */ I181;
  wire /* lid */ g180;
  wire /* lid */ g179;
  wire /* lid */ g178;
  wire /* lid */ g177;
  wire /* lid */ g176;
  wire /* lid */ g175;
  wire /* lid */ g174;
  wire /* lid */ g173;
  wire /* lid */ g172;
  wire /* lid */ g171;
  wire /* lid */ g170;
  wire /* lid */ I169;
  wire /* lid */ g168;
  wire /* lid */ g167;
  wire /* lid */ I166;
  wire /* lid */ g165;
  wire /* lid */ g164;
  wire /* lid */ g163;
  wire /* lid */ I162;
  wire /* lid */ g161;
  wire /* lid */ g160;
  wire /* lid */ g159;
  wire /* lid */ g158;
  wire /* lid */ I157;
  wire /* lid */ g156;
  wire /* lid */ g155;
  wire /* lid */ g154;
  wire /* lid */ g153;
  wire /* lid */ g152;
  wire /* lid */ I151;
  wire /* lid */ g150;
  wire /* lid */ g149;
  wire /* lid */ g148;
  wire /* lid */ g147;
  wire /* lid */ g146;
  wire /* lid */ g145;
  wire /* lid */ I144;
  wire /* lid */ g143;
  wire /* lid */ g142;
  wire /* lid */ g141;
  wire /* lid */ g140;
  wire /* lid */ g139;
  wire /* lid */ g138;
  wire /* lid */ g137;
  wire /* lid */ I136;
  wire /* lid */ g135;
  wire /* lid */ g134;
  wire /* lid */ g133;
  wire /* lid */ g132;
  wire /* lid */ g131;
  wire /* lid */ g130;
  wire /* lid */ g129;
  wire /* lid */ g128;
  wire /* lid */ I127;
  wire /* lid */ g126;
  wire /* lid */ g125;
  wire /* lid */ g124;
  wire /* lid */ g123;
  wire /* lid */ I122;
  wire /* lid */ g121;
  wire /* lid */ g120;
  wire /* lid */ g119;
  wire /* lid */ g118;
  wire /* lid */ I117;
  wire /* lid */ g116;
  wire /* lid */ g115;
  wire /* lid */ I114;
  wire /* lid */ g113;
  wire /* lid */ g112;
  wire /* lid */ g111;
  wire /* lid */ I110;
  wire /* lid */ g109;
  wire /* lid */ g108;
  wire /* lid */ I107;
  wire /* lid */ g106;
  wire /* lid */ I105;
  wire /* lid */ I104;
  wire /* lid */ g103;
  wire memcen102;
  wire [7:0] mem_write101;
  wire [14:0] memaddr100;
  wire [7:0] cv_mem_read;
  reg [7:0] hold;
  reg pc;
  reg [1:0] phase;
  reg [17:0] q;
  reg [17:0] p;
  SSRAM32768x8  array_mem_mem(.y(cv_mem_read), .clk(clk), .cen(memcen102), .a(memaddr100), .d(mem_write101));
  BUF  i7mem_write101632(mem_write101[7], g631);
  AND2  g631(g631, g103, g630);
  OR2  g630(g630, hold[7], g134);
  BUF  i6mem_write101629(mem_write101[6], g628);
  AND2  g628(g628, g627, g103);
  OR2  g627(g627, hold[6], g142);
  BUF  i5mem_write101626(mem_write101[5], g625);
  AND2  g625(g625, g624, g103);
  OR2  g624(g624, hold[5], g149);
  BUF  i4mem_write101623(mem_write101[4], g622);
  AND2  g622(g622, g103, g621);
  OR2  g621(g621, g155, hold[4]);
  BUF  i3mem_write101620(mem_write101[3], g619);
  AND2  g619(g619, g618, g103);
  OR2  g618(g618, hold[3], g160);
  BUF  i2mem_write101617(mem_write101[2], g616);
  AND2  g616(g616, g615, g103);
  OR2  g615(g615, hold[2], g164);
  BUF  i1mem_write101614(mem_write101[1], g613);
  AND2  g613(g613, g103, g612);
  OR2  g612(g612, hold[1], g167);
  BUF  i0mem_write101611(mem_write101[0], g610);
  AND2  g610(g610, g609, g103);
  OR2  g609(g609, hold[0], I169);
  BUF  i14memaddr100608(memaddr100[14], p[17]);
  BUF  i13memaddr100607(memaddr100[13], p[16]);
  BUF  i12memaddr100606(memaddr100[12], p[15]);
  BUF  i11memaddr100605(memaddr100[11], p[14]);
  BUF  i10memaddr100604(memaddr100[10], p[13]);
  BUF  i9memaddr100603(memaddr100[9], p[12]);
  BUF  i8memaddr100602(memaddr100[8], p[11]);
  BUF  i7memaddr100601(memaddr100[7], p[10]);
  BUF  i6memaddr100600(memaddr100[6], p[9]);
  BUF  i5memaddr100599(memaddr100[5], p[8]);
  BUF  i4memaddr100598(memaddr100[4], p[7]);
  BUF  i3memaddr100597(memaddr100[3], p[6]);
  BUF  i2memaddr100596(memaddr100[2], p[5]);
  BUF  i1memaddr100595(memaddr100[1], p[4]);
  BUF  i0memaddr100594(memaddr100[0], p[3]);
  BUF  memcen102(memcen102, g593);
  AND2  g593(g593, g592, I213);
  OR2  g592(g592, I104, g591);
  AND2  g591(g591, g234, g103);
  DFF  guard(guard, g590, clk, LVCC, LGND, LGND);
  AND2  g590(g590, mq589, I213);
  MUX2  mq589(mq589, g584, guard, g588);
  AND2  g588(g588, g587, I585);
  OR2  g587(g587, guard, I586);
  INV  I586(I586, g177);
  INV  I585(I585, hs);
  OR2  g584(g584, g108, g111);
  DFF  pc(pc, g583, clk, LVCC, LGND, LGND);
  AND2  g583(g583, mq582, I213);
  MUX2  mq582(mq582, g103, mq581, pc);
  MUX2  mq581(mq581, g106, pc, I202);
  DFF  i17q580(q[17], mq579, clk, g526, LGND, LGND);
  MUX2  mq579(mq579, g103, g577, g578);
  AND2  g578(g578, I224, q[17]);
  XOR2  g577(g577, g576, q[17]);
  AND2  g576(g576, g503, q[16]);
  DFF  i16q575(q[16], mq574, clk, g526, LGND, LGND);
  MUX2  mq574(mq574, g103, g504, g573);
  AND2  g573(g573, I224, q[16]);
  DFF  i15q572(q[15], mq571, clk, g526, LGND, LGND);
  MUX2  mq571(mq571, g103, g487, g570);
  AND2  g570(g570, I224, q[15]);
  DFF  i14q569(q[14], mq568, clk, g526, LGND, LGND);
  MUX2  mq568(mq568, g103, g470, g567);
  AND2  g567(g567, I224, q[14]);
  DFF  i13q566(q[13], mq565, clk, g526, LGND, LGND);
  MUX2  mq565(mq565, g103, g453, g564);
  AND2  g564(g564, I224, q[13]);
  DFF  i12q563(q[12], mq562, clk, g526, LGND, LGND);
  MUX2  mq562(mq562, g103, g436, g561);
  AND2  g561(g561, I224, q[12]);
  DFF  i11q560(q[11], mq559, clk, g526, LGND, LGND);
  MUX2  mq559(mq559, g103, g419, g558);
  AND2  g558(g558, I224, q[11]);
  DFF  i10q557(q[10], mq556, clk, g526, LGND, LGND);
  MUX2  mq556(mq556, g103, g402, g555);
  AND2  g555(g555, I224, q[10]);
  DFF  i9q554(q[9], mq553, clk, g526, LGND, LGND);
  MUX2  mq553(mq553, g103, g385, g552);
  AND2  g552(g552, I224, q[9]);
  DFF  i8q551(q[8], mq550, clk, g526, LGND, LGND);
  MUX2  mq550(mq550, g103, g368, g549);
  AND2  g549(g549, I224, q[8]);
  DFF  i7q548(q[7], mq547, clk, g526, LGND, LGND);
  MUX2  mq547(mq547, g103, g351, g546);
  AND2  g546(g546, I224, q[7]);
  DFF  i6q545(q[6], mq544, clk, g526, LGND, LGND);
  MUX2  mq544(mq544, g103, g334, g543);
  AND2  g543(g543, I224, q[6]);
  DFF  i5q542(q[5], mq541, clk, g526, LGND, LGND);
  MUX2  mq541(mq541, g103, g317, g540);
  AND2  g540(g540, I224, q[5]);
  DFF  i4q539(q[4], mq538, clk, g526, LGND, LGND);
  MUX2  mq538(mq538, g103, g300, g537);
  AND2  g537(g537, I224, q[4]);
  DFF  i3q536(q[3], mq535, clk, g526, LGND, LGND);
  MUX2  mq535(mq535, g103, g284, g534);
  AND2  g534(g534, I224, q[3]);
  DFF  i2q533(q[2], mq532, clk, g526, LGND, LGND);
  MUX2  mq532(mq532, g103, g268, g531);
  AND2  g531(g531, I224, q[2]);
  DFF  i1q530(q[1], mq529, clk, g526, LGND, LGND);
  MUX2  mq529(mq529, g103, g253, g528);
  OR2  g528(g528, p[17], q[1]);
  DFF  i0q527(q[0], mq519, clk, g526, LGND, LGND);
  AND2  g526(g526, g525, I213);
  OR2  g525(g525, g524, I104);
  AND2  g524(g524, g523, g103);
  AND2  g523(g523, I522, p[17]);
  INV  I522(I522, g521);
  OR2  g521(g521, g106, g520);
  OR2  g520(g520, I202, q[17]);
  MUX2  mq519(mq519, g103, I241, g518);
  AND2  g518(g518, I224, q[0]);
  DFF  i17p517(p[17], mq516, clk, g238, LGND, LGND);
  MUX2  mq516(mq516, g103, mq512, g515);
  AND2  g515(g515, g514, I224);
  XOR2  g514(g514, g513, p[17]);
  AND2  g513(g513, g496, p[16]);
  MUX2  mq512(mq512, g106, g502, g511);
  AND2  g511(g511, mq510, I223);
  MUX2  mq510(mq510, p[17], g504, g509);
  XOR2  g509(g509, g508, g507);
  XOR2  g508(g508, q[17], p[17]);
  OR2  g507(g507, g506, g505);
  AND2  g506(g506, g491, g490);
  AND2  g505(g505, q[16], p[16]);
  XOR2  g504(g504, g503, q[16]);
  AND2  g503(g503, g486, q[15]);
  XOR2  g502(g502, g501, p[17]);
  AND2  g501(g501, g484, p[16]);
  DFF  i16p500(p[16], mq499, clk, g238, LGND, LGND);
  MUX2  mq499(mq499, g103, mq495, g498);
  AND2  g498(g498, g497, I224);
  XOR2  g497(g497, g496, p[16]);
  AND2  g496(g496, g479, p[15]);
  MUX2  mq495(mq495, g106, g485, g494);
  AND2  g494(g494, mq493, I223);
  MUX2  mq493(mq493, p[17], g487, g492);
  XOR2  g492(g492, g491, g490);
  XOR2  g491(g491, q[16], p[16]);
  OR2  g490(g490, g489, g488);
  AND2  g489(g489, g474, g473);
  AND2  g488(g488, q[15], p[15]);
  XOR2  g487(g487, g486, q[15]);
  AND2  g486(g486, g469, q[14]);
  XOR2  g485(g485, g484, p[16]);
  AND2  g484(g484, g467, p[15]);
  DFF  i15p483(p[15], mq482, clk, g238, LGND, LGND);
  MUX2  mq482(mq482, g103, mq478, g481);
  AND2  g481(g481, I224, g480);
  XOR2  g480(g480, g479, p[15]);
  AND2  g479(g479, g462, p[14]);
  MUX2  mq478(mq478, g106, g468, g477);
  AND2  g477(g477, mq476, I223);
  MUX2  mq476(mq476, p[17], g470, g475);
  XOR2  g475(g475, g474, g473);
  XOR2  g474(g474, q[15], p[15]);
  OR2  g473(g473, g472, g471);
  AND2  g472(g472, g457, g456);
  AND2  g471(g471, q[14], p[14]);
  XOR2  g470(g470, g469, q[14]);
  AND2  g469(g469, g452, q[13]);
  XOR2  g468(g468, g467, p[15]);
  AND2  g467(g467, g450, p[14]);
  DFF  i14p466(p[14], mq465, clk, g238, LGND, LGND);
  MUX2  mq465(mq465, g103, mq461, g464);
  AND2  g464(g464, I224, g463);
  XOR2  g463(g463, g462, p[14]);
  AND2  g462(g462, g445, p[13]);
  MUX2  mq461(mq461, g106, g451, g460);
  AND2  g460(g460, mq459, I223);
  MUX2  mq459(mq459, p[17], g453, g458);
  XOR2  g458(g458, g457, g456);
  XOR2  g457(g457, q[14], p[14]);
  OR2  g456(g456, g455, g454);
  AND2  g455(g455, g439, g440);
  AND2  g454(g454, q[13], p[13]);
  XOR2  g453(g453, g452, q[13]);
  AND2  g452(g452, g435, q[12]);
  XOR2  g451(g451, g450, p[14]);
  AND2  g450(g450, g433, p[13]);
  DFF  i13p449(p[13], mq448, clk, g238, LGND, LGND);
  MUX2  mq448(mq448, g103, mq444, g447);
  AND2  g447(g447, g446, I224);
  XOR2  g446(g446, g445, p[13]);
  AND2  g445(g445, g428, p[12]);
  MUX2  mq444(mq444, g106, g434, g443);
  AND2  g443(g443, mq442, I223);
  MUX2  mq442(mq442, p[17], g436, g441);
  XOR2  g441(g441, g439, g440);
  XOR2  g440(g440, q[13], p[13]);
  OR2  g439(g439, g438, g437);
  AND2  g438(g438, g423, g422);
  AND2  g437(g437, q[12], p[12]);
  XOR2  g436(g436, g435, q[12]);
  AND2  g435(g435, g418, q[11]);
  XOR2  g434(g434, g433, p[13]);
  AND2  g433(g433, g416, p[12]);
  DFF  i12p432(p[12], mq431, clk, g238, LGND, LGND);
  MUX2  mq431(mq431, g103, mq427, g430);
  AND2  g430(g430, g429, I224);
  XOR2  g429(g429, g428, p[12]);
  AND2  g428(g428, g411, p[11]);
  MUX2  mq427(mq427, g106, g417, g426);
  AND2  g426(g426, mq425, I223);
  MUX2  mq425(mq425, p[17], g419, g424);
  XOR2  g424(g424, g423, g422);
  XOR2  g423(g423, q[12], p[12]);
  OR2  g422(g422, g421, g420);
  AND2  g421(g421, g406, g405);
  AND2  g420(g420, q[11], p[11]);
  XOR2  g419(g419, g418, q[11]);
  AND2  g418(g418, g401, q[10]);
  XOR2  g417(g417, g416, p[12]);
  AND2  g416(g416, g399, p[11]);
  DFF  i11p415(p[11], mq414, clk, g238, LGND, LGND);
  MUX2  mq414(mq414, g103, mq410, g413);
  AND2  g413(g413, I224, g412);
  XOR2  g412(g412, g411, p[11]);
  AND2  g411(g411, g394, p[10]);
  MUX2  mq410(mq410, g106, g400, g409);
  AND2  g409(g409, mq408, I223);
  MUX2  mq408(mq408, p[17], g402, g407);
  XOR2  g407(g407, g406, g405);
  XOR2  g406(g406, q[11], p[11]);
  OR2  g405(g405, g404, g403);
  AND2  g404(g404, g389, g388);
  AND2  g403(g403, q[10], p[10]);
  XOR2  g402(g402, g401, q[10]);
  AND2  g401(g401, g384, q[9]);
  XOR2  g400(g400, g399, p[11]);
  AND2  g399(g399, g382, p[10]);
  DFF  i10p398(p[10], mq397, clk, g238, LGND, LGND);
  MUX2  mq397(mq397, g103, mq393, g396);
  AND2  g396(g396, g395, I224);
  XOR2  g395(g395, g394, p[10]);
  AND2  g394(g394, g377, p[9]);
  MUX2  mq393(mq393, g106, g383, g392);
  AND2  g392(g392, mq391, I223);
  MUX2  mq391(mq391, p[17], g385, g390);
  XOR2  g390(g390, g389, g388);
  XOR2  g389(g389, q[10], p[10]);
  OR2  g388(g388, g387, g386);
  AND2  g387(g387, g372, g371);
  AND2  g386(g386, q[9], p[9]);
  XOR2  g385(g385, g384, q[9]);
  AND2  g384(g384, g367, q[8]);
  XOR2  g383(g383, g382, p[10]);
  AND2  g382(g382, g365, p[9]);
  DFF  i9p381(p[9], mq380, clk, g238, LGND, LGND);
  MUX2  mq380(mq380, g103, mq376, g379);
  AND2  g379(g379, g378, I224);
  XOR2  g378(g378, g377, p[9]);
  AND2  g377(g377, g360, p[8]);
  MUX2  mq376(mq376, g106, g366, g375);
  AND2  g375(g375, mq374, I223);
  MUX2  mq374(mq374, p[17], g368, g373);
  XOR2  g373(g373, g372, g371);
  XOR2  g372(g372, q[9], p[9]);
  OR2  g371(g371, g369, g370);
  AND2  g370(g370, g355, g354);
  AND2  g369(g369, q[8], p[8]);
  XOR2  g368(g368, g367, q[8]);
  AND2  g367(g367, g350, q[7]);
  XOR2  g366(g366, g365, p[9]);
  AND2  g365(g365, g348, p[8]);
  DFF  i8p364(p[8], mq363, clk, g238, LGND, LGND);
  MUX2  mq363(mq363, g103, mq359, g362);
  AND2  g362(g362, I224, g361);
  XOR2  g361(g361, g360, p[8]);
  AND2  g360(g360, g343, p[7]);
  MUX2  mq359(mq359, g106, g349, g358);
  AND2  g358(g358, mq357, I223);
  MUX2  mq357(mq357, p[17], g351, g356);
  XOR2  g356(g356, g355, g354);
  XOR2  g355(g355, q[8], p[8]);
  OR2  g354(g354, g353, g352);
  AND2  g353(g353, g338, g337);
  AND2  g352(g352, q[7], p[7]);
  XOR2  g351(g351, g350, q[7]);
  AND2  g350(g350, g333, q[6]);
  XOR2  g349(g349, g348, p[8]);
  AND2  g348(g348, g331, p[7]);
  DFF  i7p347(p[7], mq346, clk, g238, LGND, LGND);
  MUX2  mq346(mq346, g103, mq342, g345);
  AND2  g345(g345, g344, I224);
  XOR2  g344(g344, g343, p[7]);
  AND2  g343(g343, g326, p[6]);
  MUX2  mq342(mq342, g106, g332, g341);
  AND2  g341(g341, mq340, I223);
  MUX2  mq340(mq340, p[17], g334, g339);
  XOR2  g339(g339, g338, g337);
  XOR2  g338(g338, q[7], p[7]);
  OR2  g337(g337, g336, g335);
  AND2  g336(g336, g321, g320);
  AND2  g335(g335, q[6], p[6]);
  XOR2  g334(g334, g333, q[6]);
  AND2  g333(g333, g316, q[5]);
  XOR2  g332(g332, g331, p[7]);
  AND2  g331(g331, g314, p[6]);
  DFF  i6p330(p[6], mq329, clk, g238, LGND, LGND);
  MUX2  mq329(mq329, g103, mq325, g328);
  AND2  g328(g328, g327, I224);
  XOR2  g327(g327, g326, p[6]);
  AND2  g326(g326, g309, p[5]);
  MUX2  mq325(mq325, g106, g315, g324);
  AND2  g324(g324, mq323, I223);
  MUX2  mq323(mq323, p[17], g317, g322);
  XOR2  g322(g322, g321, g320);
  XOR2  g321(g321, q[6], p[6]);
  OR2  g320(g320, g319, g318);
  AND2  g319(g319, g304, g303);
  AND2  g318(g318, q[5], p[5]);
  XOR2  g317(g317, g316, q[5]);
  AND2  g316(g316, g299, q[4]);
  XOR2  g315(g315, g314, p[6]);
  AND2  g314(g314, g297, p[5]);
  DFF  i5p313(p[5], mq312, clk, g238, LGND, LGND);
  MUX2  mq312(mq312, g103, mq308, g311);
  AND2  g311(g311, I224, g310);
  XOR2  g310(g310, g309, p[5]);
  AND2  g309(g309, p[4], p[3]);
  MUX2  mq308(mq308, g106, g298, g307);
  AND2  g307(g307, mq306, I223);
  MUX2  mq306(mq306, p[17], g300, g305);
  XOR2  g305(g305, g304, g303);
  XOR2  g304(g304, q[5], p[5]);
  OR2  g303(g303, g302, g301);
  AND2  g302(g302, g288, g287);
  AND2  g301(g301, q[4], p[4]);
  XOR2  g300(g300, g299, q[4]);
  AND2  g299(g299, g283, q[3]);
  XOR2  g298(g298, g297, p[5]);
  AND2  g297(g297, g281, p[4]);
  DFF  i4p296(p[4], mq295, clk, g238, LGND, LGND);
  MUX2  mq295(mq295, g103, mq292, g294);
  AND2  g294(g294, g293, I224);
  XOR2  g293(g293, p[4], p[3]);
  MUX2  mq292(mq292, g106, g282, g291);
  AND2  g291(g291, mq290, I223);
  MUX2  mq290(mq290, p[17], g284, g289);
  XOR2  g289(g289, g288, g287);
  XOR2  g288(g288, q[4], p[4]);
  OR2  g287(g287, g286, g285);
  AND2  g286(g286, g272, g271);
  AND2  g285(g285, q[3], p[3]);
  XOR2  g284(g284, g283, q[3]);
  AND2  g283(g283, g267, q[2]);
  XOR2  g282(g282, g281, p[4]);
  AND2  g281(g281, g265, p[3]);
  DFF  i3p280(p[3], mq279, clk, g238, LGND, LGND);
  MUX2  mq279(mq279, g103, mq276, g278);
  AND2  g278(g278, I277, I224);
  INV  I277(I277, p[3]);
  MUX2  mq276(mq276, g106, g266, g275);
  AND2  g275(g275, mq274, I223);
  MUX2  mq274(mq274, p[17], g268, g273);
  XOR2  g273(g273, g272, g271);
  XOR2  g272(g272, q[3], p[3]);
  OR2  g271(g271, g269, g270);
  AND2  g270(g270, g257, g256);
  AND2  g269(g269, q[2], p[2]);
  XOR2  g268(g268, g267, q[2]);
  AND2  g267(g267, q[1], q[0]);
  XOR2  g266(g266, g265, p[3]);
  AND2  g265(g265, g251, p[2]);
  DFF  i2p264(p[2], mq263, clk, g238, LGND, LGND);
  MUX2  mq263(mq263, g103, mq261, g262);
  OR2  g262(g262, p[17], p[2]);
  MUX2  mq261(mq261, g106, g252, g260);
  AND2  g260(g260, mq259, I223);
  MUX2  mq259(mq259, p[17], g253, g258);
  XOR2  g258(g258, g257, g256);
  XOR2  g257(g257, q[2], p[2]);
  OR2  g256(g256, g255, g254);
  AND2  g255(g255, g243, g242);
  AND2  g254(g254, q[1], p[1]);
  XOR2  g253(g253, q[1], q[0]);
  XOR2  g252(g252, g251, p[2]);
  AND2  g251(g251, p[1], p[0]);
  DFF  i1p250(p[1], mq249, clk, g238, LGND, LGND);
  MUX2  mq249(mq249, g103, mq247, g248);
  AND2  g248(g248, I224, p[1]);
  MUX2  mq247(mq247, g106, g240, g246);
  AND2  g246(g246, mq245, I223);
  MUX2  mq245(mq245, p[17], I241, g244);
  XOR2  g244(g244, g243, g242);
  XOR2  g243(g243, q[1], p[1]);
  AND2  g242(g242, q[0], p[0]);
  INV  I241(I241, q[0]);
  XOR2  g240(g240, p[1], p[0]);
  DFF  i0p239(p[0], mq230, clk, g238, LGND, LGND);
  AND2  g238(g238, g237, I213);
  OR2  g237(g237, g236, I104);
  AND2  g236(g236, g235, g103);
  OR2  g235(g235, g234, g233);
  AND2  g234(g234, I107, pc);
  AND2  g233(g233, g106, g232);
  AND2  g232(g232, g178, I231);
  INV  I231(I231, g111);
  MUX2  mq230(mq230, g103, mq228, g229);
  AND2  g229(g229, I224, p[0]);
  MUX2  mq228(mq228, g106, I114, g227);
  AND2  g227(g227, g226, I223);
  AND2  g226(g226, g225, I224);
  XOR2  g225(g225, q[0], p[0]);
  INV  I224(I224, p[17]);
  INV  I223(I223, q[17]);
  DFF  i1phase222(phase[1], g221, clk, g219, LGND, LGND);
  XOR2  g221(g221, phase[0], phase[1]);
  DFF  i0phase220(phase[0], I105, clk, g219, LGND, LGND);
  AND2  g219(g219, g218, I213);
  OR2  g218(g218, g217, g216);
  AND2  g217(g217, I104, p[17]);
  AND2  g216(g216, g215, g103);
  AND2  g215(g215, I107, g214);
  AND2  g214(g214, q[17], pc);
  INV  I213(I213, reset);
  DFF  i7hold212(hold[7], cv_mem_read[7], clk, g204, LGND, LGND);
  DFF  i6hold211(hold[6], cv_mem_read[6], clk, g204, LGND, LGND);
  DFF  i5hold210(hold[5], cv_mem_read[5], clk, g204, LGND, LGND);
  DFF  i4hold209(hold[4], cv_mem_read[4], clk, g204, LGND, LGND);
  DFF  i3hold208(hold[3], cv_mem_read[3], clk, g204, LGND, LGND);
  DFF  i2hold207(hold[2], cv_mem_read[2], clk, g204, LGND, LGND);
  DFF  i1hold206(hold[1], cv_mem_read[1], clk, g204, LGND, LGND);
  DFF  i0hold205(hold[0], cv_mem_read[0], clk, g204, LGND, LGND);
  AND2  g204(g204, g203, I201);
  AND2  g203(g203, I107, I202);
  INV  I202(I202, pc);
  INV  I201(I201, g200);
  OR2  g200(g200, reset, I104);
  DFF  i17out199(out[17], p[17], clk, I181, LGND, LGND);
  DFF  i16out198(out[16], p[16], clk, I181, LGND, LGND);
  DFF  i15out197(out[15], p[15], clk, I181, LGND, LGND);
  DFF  i14out196(out[14], p[14], clk, I181, LGND, LGND);
  DFF  i13out195(out[13], p[13], clk, I181, LGND, LGND);
  DFF  i12out194(out[12], p[12], clk, I181, LGND, LGND);
  DFF  i11out193(out[11], p[11], clk, I181, LGND, LGND);
  DFF  i10out192(out[10], p[10], clk, I181, LGND, LGND);
  DFF  i9out191(out[9], p[9], clk, I181, LGND, LGND);
  DFF  i8out190(out[8], p[8], clk, I181, LGND, LGND);
  DFF  i7out189(out[7], p[7], clk, I181, LGND, LGND);
  DFF  i6out188(out[6], p[6], clk, I181, LGND, LGND);
  DFF  i5out187(out[5], p[5], clk, I181, LGND, LGND);
  DFF  i4out186(out[4], p[4], clk, I181, LGND, LGND);
  DFF  i3out185(out[3], p[3], clk, I181, LGND, LGND);
  DFF  i2out184(out[2], p[2], clk, I181, LGND, LGND);
  DFF  i1out183(out[1], p[1], clk, I181, LGND, LGND);
  DFF  i0out182(out[0], p[0], clk, I181, LGND, LGND);
  INV  I181(I181, g180);
  OR2  g180(g180, g179, g109);
  OR2  g179(g179, g178, g111);
  OR2  g178(g178, g177, hs);
  OR2  g177(g177, g176, g135);
  OR2  g176(g176, g175, g143);
  OR2  g175(g175, g174, g150);
  OR2  g174(g174, g156, g173);
  OR2  g173(g173, g172, g161);
  OR2  g172(g172, g165, g171);
  OR2  g171(g171, g168, g170);
  AND2  g170(g170, cv_mem_read[0], I169);
  INV  I169(I169, g113);
  AND2  g168(g168, cv_mem_read[1], g167);
  AND2  g167(g167, I166, g113);
  INV  I166(I166, g116);
  AND2  g165(g165, cv_mem_read[2], g164);
  AND2  g164(g164, g163, g113);
  AND2  g163(g163, g116, I162);
  INV  I162(I162, g119);
  AND2  g161(g161, cv_mem_read[3], g160);
  AND2  g160(g160, g159, g113);
  AND2  g159(g159, g158, g116);
  AND2  g158(g158, g119, I157);
  INV  I157(I157, g121);
  AND2  g156(g156, cv_mem_read[4], g155);
  AND2  g155(g155, g154, g113);
  AND2  g154(g154, g116, g153);
  AND2  g153(g153, g119, g152);
  AND2  g152(g152, I151, g121);
  INV  I151(I151, g123);
  AND2  g150(g150, g149, cv_mem_read[5]);
  AND2  g149(g149, g148, g113);
  AND2  g148(g148, g147, g116);
  AND2  g147(g147, g119, g146);
  AND2  g146(g146, g145, g121);
  AND2  g145(g145, I144, g123);
  INV  I144(I144, g124);
  AND2  g143(g143, g142, cv_mem_read[6]);
  AND2  g142(g142, g113, g141);
  AND2  g141(g141, g116, g140);
  AND2  g140(g140, g139, g119);
  AND2  g139(g139, g138, g121);
  AND2  g138(g138, g137, g123);
  AND2  g137(g137, I136, g124);
  INV  I136(I136, g125);
  AND2  g135(g135, cv_mem_read[7], g134);
  AND2  g134(g134, g133, g113);
  AND2  g133(g133, g116, g132);
  AND2  g132(g132, g119, g131);
  AND2  g131(g131, g121, g130);
  AND2  g130(g130, g129, g123);
  AND2  g129(g129, g128, g124);
  AND2  g128(g128, I127, g125);
  INV  I127(I127, g126);
  OR2  g126(g126, I122, g120);
  OR2  g125(g125, g118, I122);
  OR2  g124(g124, g115, I122);
  OR2  g123(g123, I122, g112);
  INV  I122(I122, p[2]);
  OR2  g121(g121, g120, p[2]);
  OR2  g120(g120, I117, I114);
  OR2  g119(g119, g118, p[2]);
  OR2  g118(g118, I117, p[0]);
  INV  I117(I117, p[1]);
  OR2  g116(g116, g115, p[2]);
  OR2  g115(g115, I114, p[1]);
  INV  I114(I114, p[0]);
  OR2  g113(g113, g112, p[2]);
  OR2  g112(g112, p[1], p[0]);
  OR2  g111(g111, phase[0], I110);
  INV  I110(I110, phase[1]);
  OR2  g109(g109, reset, g108);
  OR2  g108(g108, I107, I104);
  INV  I107(I107, g106);
  OR2  g106(g106, phase[1], I105);
  INV  I105(I105, phase[0]);
  INV  I104(I104, g103);
  OR2  g103(g103, phase[0], phase[1]);

  // Next line manually reinserted since removed in compilation 
  always @(posedge clk)  if (phase == 2 &&  p[17]) $finish;

endmodule


/* eof */ 


Primesvnl.c

Here is the C version of the gate-level version of the prime generator which has been compiled by VTOC from the .vnl file.

/* cv3core vtoc /homes/djg/codesign/examples/primes/primes.vnl /homes/djg/codesign/examples/primes/sys.cv cv100gates.cv -root PRIMEGEN -mode1 clk -o /homes/djg/codesign/examples/primes/primesvnl.c  */
/* User=/home/djg  */

/* Output from CBG vtoc V0.1 alpha. CBG/TT CVA EDA CORE (Core release 1.3f zent/arports 13 July 99). */

#include stdio.h 

#include "ttvtoc.h" 



/* start of tt generated C code */



static int ttvtoc_ticks = 0; /*used for $time */ 



void ttv(  unsigned int *clk,   unsigned int *reset,   unsigned int *out,   unsigned int *guard,   unsigned int *hs)
{
    unsigned static int  array_mem_mem_mem [32768];
  unsigned static int  guard_last_d;
  unsigned static int  guard_last_clk;
  unsigned static int  pc_last_d;
  unsigned static int  pc_last_clk;
  unsigned static int  i17q580_last_d;
  unsigned static int  i17q580_last_clk;
  unsigned static int  i16q575_last_d;
  unsigned static int  i16q575_last_clk;
  unsigned static int  i15q572_last_d;
  unsigned static int  i15q572_last_clk;
  unsigned static int  i14q569_last_d;
  unsigned static int  i14q569_last_clk;
  unsigned static int  i13q566_last_d;
  unsigned static int  i13q566_last_clk;
  unsigned static int  i12q563_last_d;
  unsigned static int  i12q563_last_clk;
  unsigned static int  i11q560_last_d;
  unsigned static int  i11q560_last_clk;
  unsigned static int  i10q557_last_d;
  unsigned static int  i10q557_last_clk;
  unsigned static int  i9q554_last_d;
  unsigned static int  i9q554_last_clk;
  unsigned static int  i8q551_last_d;
  unsigned static int  i8q551_last_clk;
  unsigned static int  i7q548_last_d;
  unsigned static int  i7q548_last_clk;
  unsigned static int  i6q545_last_d;
  unsigned static int  i6q545_last_clk;
  unsigned static int  i5q542_last_d;
  unsigned static int  i5q542_last_clk;
  unsigned static int  i4q539_last_d;
  unsigned static int  i4q539_last_clk;
  unsigned static int  i3q536_last_d;
  unsigned static int  i3q536_last_clk;
  unsigned static int  i2q533_last_d;
  unsigned static int  i2q533_last_clk;
  unsigned static int  i1q530_last_d;
  unsigned static int  i1q530_last_clk;
  unsigned static int  i0q527_last_d;
  unsigned static int  i0q527_last_clk;
  unsigned static int  i17p517_last_d;
  unsigned static int  i17p517_last_clk;
  unsigned static int  i16p500_last_d;
  unsigned static int  i16p500_last_clk;
  unsigned static int  i15p483_last_d;
  unsigned static int  i15p483_last_clk;
  unsigned static int  i14p466_last_d;
  unsigned static int  i14p466_last_clk;
  unsigned static int  i13p449_last_d;
  unsigned static int  i13p449_last_clk;
  unsigned static int  i12p432_last_d;
  unsigned static int  i12p432_last_clk;
  unsigned static int  i11p415_last_d;
  unsigned static int  i11p415_last_clk;
  unsigned static int  i10p398_last_d;
  unsigned static int  i10p398_last_clk;
  unsigned static int  i9p381_last_d;
  unsigned static int  i9p381_last_clk;
  unsigned static int  i8p364_last_d;
  unsigned static int  i8p364_last_clk;
  unsigned static int  i7p347_last_d;
  unsigned static int  i7p347_last_clk;
  unsigned static int  i6p330_last_d;
  unsigned static int  i6p330_last_clk;
  unsigned static int  i5p313_last_d;
  unsigned static int  i5p313_last_clk;
  unsigned static int  i4p296_last_d;
  unsigned static int  i4p296_last_clk;
  unsigned static int  i3p280_last_d;
  unsigned static int  i3p280_last_clk;
  unsigned static int  i2p264_last_d;
  unsigned static int  i2p264_last_clk;
  unsigned static int  i1p250_last_d;
  unsigned static int  i1p250_last_clk;
  unsigned static int  i0p239_last_d;
  unsigned static int  i0p239_last_clk;
  unsigned static int  i1phase222_last_d;
  unsigned static int  i1phase222_last_clk;
  unsigned static int  i0phase220_last_d;
  unsigned static int  i0phase220_last_clk;
  unsigned static int  i7hold212_last_d;
  unsigned static int  i7hold212_last_clk;
  unsigned static int  i6hold211_last_d;
  unsigned static int  i6hold211_last_clk;
  unsigned static int  i5hold210_last_d;
  unsigned static int  i5hold210_last_clk;
  unsigned static int  i4hold209_last_d;
  unsigned static int  i4hold209_last_clk;
  unsigned static int  i3hold208_last_d;
  unsigned static int  i3hold208_last_clk;
  unsigned static int  i2hold207_last_d;
  unsigned static int  i2hold207_last_clk;
  unsigned static int  i1hold206_last_d;
  unsigned static int  i1hold206_last_clk;
  unsigned static int  i0hold205_last_d;
  unsigned static int  i0hold205_last_clk;
  unsigned static int  i17out199_last_d;
  unsigned static int  i17out199_last_clk;
  unsigned static int  i16out198_last_d;
  unsigned static int  i16out198_last_clk;
  unsigned static int  i15out197_last_d;
  unsigned static int  i15out197_last_clk;
  unsigned static int  i14out196_last_d;
  unsigned static int  i14out196_last_clk;
  unsigned static int  i13out195_last_d;
  unsigned static int  i13out195_last_clk;
  unsigned static int  i12out194_last_d;
  unsigned static int  i12out194_last_clk;
  unsigned static int  i11out193_last_d;
  unsigned static int  i11out193_last_clk;
  unsigned static int  i10out192_last_d;
  unsigned static int  i10out192_last_clk;
  unsigned static int  i9out191_last_d;
  unsigned static int  i9out191_last_clk;
  unsigned static int  i8out190_last_d;
  unsigned static int  i8out190_last_clk;
  unsigned static int  i7out189_last_d;
  unsigned static int  i7out189_last_clk;
  unsigned static int  i6out188_last_d;
  unsigned static int  i6out188_last_clk;
  unsigned static int  i5out187_last_d;
  unsigned static int  i5out187_last_clk;
  unsigned static int  i4out186_last_d;
  unsigned static int  i4out186_last_clk;
  unsigned static int  i3out185_last_d;
  unsigned static int  i3out185_last_clk;
  unsigned static int  i2out184_last_d;
  unsigned static int  i2out184_last_clk;
  unsigned static int  i1out183_last_d;
  unsigned static int  i1out183_last_clk;
  unsigned static int  i0out182_last_d;
  unsigned static int  i0out182_last_clk;
  unsigned static int  g631;
  unsigned static int  g630;
  unsigned static int  g628;
  unsigned static int  g627;
  unsigned static int  g625;
  unsigned static int  g624;
  unsigned static int  g622;
  unsigned static int  g621;
  unsigned static int  g619;
  unsigned static int  g618;
  unsigned static int  g616;
  unsigned static int  g615;
  unsigned static int  g613;
  unsigned static int  g612;
  unsigned static int  g610;
  unsigned static int  g609;
  unsigned static int  g593;
  unsigned static int  g592;
  unsigned static int  g591;
  unsigned static int  g590;
  unsigned static int  mq589;
  unsigned static int  g588;
  unsigned static int  g587;
  unsigned static int  I586;
  unsigned static int  I585;
  unsigned static int  g584;
  unsigned static int  g583;
  unsigned static int  mq582;
  unsigned static int  mq581;
  unsigned static int  mq579;
  unsigned static int  g578;
  unsigned static int  g577;
  unsigned static int  g576;
  unsigned static int  mq574;
  unsigned static int  g573;
  unsigned static int  mq571;
  unsigned static int  g570;
  unsigned static int  mq568;
  unsigned static int  g567;
  unsigned static int  mq565;
  unsigned static int  g564;
  unsigned static int  mq562;
  unsigned static int  g561;
  unsigned static int  mq559;
  unsigned static int  g558;
  unsigned static int  mq556;
  unsigned static int  g555;
  unsigned static int  mq553;
  unsigned static int  g552;
  unsigned static int  mq550;
  unsigned static int  g549;
  unsigned static int  mq547;
  unsigned static int  g546;
  unsigned static int  mq544;
  unsigned static int  g543;
  unsigned static int  mq541;
  unsigned static int  g540;
  unsigned static int  mq538;
  unsigned static int  g537;
  unsigned static int  mq535;
  unsigned static int  g534;
  unsigned static int  mq532;
  unsigned static int  g531;
  unsigned static int  mq529;
  unsigned static int  g528;
  unsigned static int  g526;
  unsigned static int  g525;
  unsigned static int  g524;
  unsigned static int  g523;
  unsigned static int  I522;
  unsigned static int  g521;
  unsigned static int  g520;
  unsigned static int  mq519;
  unsigned static int  g518;
  unsigned static int  mq516;
  unsigned static int  g515;
  unsigned static int  g514;
  unsigned static int  g513;
  unsigned static int  mq512;
  unsigned static int  g511;
  unsigned static int  mq510;
  unsigned static int  g509;
  unsigned static int  g508;
  unsigned static int  g507;
  unsigned static int  g506;
  unsigned static int  g505;
  unsigned static int  g504;
  unsigned static int  g503;
  unsigned static int  g502;
  unsigned static int  g501;
  unsigned static int  mq499;
  unsigned static int  g498;
  unsigned static int  g497;
  unsigned static int  g496;
  unsigned static int  mq495;
  unsigned static int  g494;
  unsigned static int  mq493;
  unsigned static int  g492;
  unsigned static int  g491;
  unsigned static int  g490;
  unsigned static int  g489;
  unsigned static int  g488;
  unsigned static int  g487;
  unsigned static int  g486;
  unsigned static int  g485;
  unsigned static int  g484;
  unsigned static int  mq482;
  unsigned static int  g481;
  unsigned static int  g480;
  unsigned static int  g479;
  unsigned static int  mq478;
  unsigned static int  g477;
  unsigned static int  mq476;
  unsigned static int  g475;
  unsigned static int  g474;
  unsigned static int  g473;
  unsigned static int  g472;
  unsigned static int  g471;
  unsigned static int  g470;
  unsigned static int  g469;
  unsigned static int  g468;
  unsigned static int  g467;
  unsigned static int  mq465;
  unsigned static int  g464;
  unsigned static int  g463;
  unsigned static int  g462;
  unsigned static int  mq461;
  unsigned static int  g460;
  unsigned static int  mq459;
  unsigned static int  g458;
  unsigned static int  g457;
  unsigned static int  g456;
  unsigned static int  g455;
  unsigned static int  g454;
  unsigned static int  g453;
  unsigned static int  g452;
  unsigned static int  g451;
  unsigned static int  g450;
  unsigned static int  mq448;
  unsigned static int  g447;
  unsigned static int  g446;
  unsigned static int  g445;
  unsigned static int  mq444;
  unsigned static int  g443;
  unsigned static int  mq442;
  unsigned static int  g441;
  unsigned static int  g440;
  unsigned static int  g439;
  unsigned static int  g438;
  unsigned static int  g437;
  unsigned static int  g436;
  unsigned static int  g435;
  unsigned static int  g434;
  unsigned static int  g433;
  unsigned static int  mq431;
  unsigned static int  g430;
  unsigned static int  g429;
  unsigned static int  g428;
  unsigned static int  mq427;
  unsigned static int  g426;
  unsigned static int  mq425;
  unsigned static int  g424;
  unsigned static int  g423;
  unsigned static int  g422;
  unsigned static int  g421;
  unsigned static int  g420;
  unsigned static int  g419;
  unsigned static int  g418;
  unsigned static int  g417;
  unsigned static int  g416;
  unsigned static int  mq414;
  unsigned static int  g413;
  unsigned static int  g412;
  unsigned static int  g411;
  unsigned static int  mq410;
  unsigned static int  g409;
  unsigned static int  mq408;
  unsigned static int  g407;
  unsigned static int  g406;
  unsigned static int  g405;
  unsigned static int  g404;
  unsigned static int  g403;
  unsigned static int  g402;
  unsigned static int  g401;
  unsigned static int  g400;
  unsigned static int  g399;
  unsigned static int  mq397;
  unsigned static int  g396;
  unsigned static int  g395;
  unsigned static int  g394;
  unsigned static int  mq393;
  unsigned static int  g392;
  unsigned static int  mq391;
  unsigned static int  g390;
  unsigned static int  g389;
  unsigned static int  g388;
  unsigned static int  g387;
  unsigned static int  g386;
  unsigned static int  g385;
  unsigned static int  g384;
  unsigned static int  g383;
  unsigned static int  g382;
  unsigned static int  mq380;
  unsigned static int  g379;
  unsigned static int  g378;
  unsigned static int  g377;
  unsigned static int  mq376;
  unsigned static int  g375;
  unsigned static int  mq374;
  unsigned static int  g373;
  unsigned static int  g372;
  unsigned static int  g371;
  unsigned static int  g370;
  unsigned static int  g369;
  unsigned static int  g368;
  unsigned static int  g367;
  unsigned static int  g366;
  unsigned static int  g365;
  unsigned static int  mq363;
  unsigned static int  g362;
  unsigned static int  g361;
  unsigned static int  g360;
  unsigned static int  mq359;
  unsigned static int  g358;
  unsigned static int  mq357;
  unsigned static int  g356;
  unsigned static int  g355;
  unsigned static int  g354;
  unsigned static int  g353;
  unsigned static int  g352;
  unsigned static int  g351;
  unsigned static int  g350;
  unsigned static int  g349;
  unsigned static int  g348;
  unsigned static int  mq346;
  unsigned static int  g345;
  unsigned static int  g344;
  unsigned static int  g343;
  unsigned static int  mq342;
  unsigned static int  g341;
  unsigned static int  mq340;
  unsigned static int  g339;
  unsigned static int  g338;
  unsigned static int  g337;
  unsigned static int  g336;
  unsigned static int  g335;
  unsigned static int  g334;
  unsigned static int  g333;
  unsigned static int  g332;
  unsigned static int  g331;
  unsigned static int  mq329;
  unsigned static int  g328;
  unsigned static int  g327;
  unsigned static int  g326;
  unsigned static int  mq325;
  unsigned static int  g324;
  unsigned static int  mq323;
  unsigned static int  g322;
  unsigned static int  g321;
  unsigned static int  g320;
  unsigned static int  g319;
  unsigned static int  g318;
  unsigned static int  g317;
  unsigned static int  g316;
  unsigned static int  g315;
  unsigned static int  g314;
  unsigned static int  mq312;
  unsigned static int  g311;
  unsigned static int  g310;
  unsigned static int  g309;
  unsigned static int  mq308;
  unsigned static int  g307;
  unsigned static int  mq306;
  unsigned static int  g305;
  unsigned static int  g304;
  unsigned static int  g303;
  unsigned static int  g302;
  unsigned static int  g301;
  unsigned static int  g300;
  unsigned static int  g299;
  unsigned static int  g298;
  unsigned static int  g297;
  unsigned static int  mq295;
  unsigned static int  g294;
  unsigned static int  g293;
  unsigned static int  mq292;
  unsigned static int  g291;
  unsigned static int  mq290;
  unsigned static int  g289;
  unsigned static int  g288;
  unsigned static int  g287;
  unsigned static int  g286;
  unsigned static int  g285;
  unsigned static int  g284;
  unsigned static int  g283;
  unsigned static int  g282;
  unsigned static int  g281;
  unsigned static int  mq279;
  unsigned static int  g278;
  unsigned static int  I277;
  unsigned static int  mq276;
  unsigned static int  g275;
  unsigned static int  mq274;
  unsigned static int  g273;
  unsigned static int  g272;
  unsigned static int  g271;
  unsigned static int  g270;
  unsigned static int  g269;
  unsigned static int  g268;
  unsigned static int  g267;
  unsigned static int  g266;
  unsigned static int  g265;
  unsigned static int  mq263;
  unsigned static int  g262;
  unsigned static int  mq261;
  unsigned static int  g260;
  unsigned static int  mq259;
  unsigned static int  g258;
  unsigned static int  g257;
  unsigned static int  g256;
  unsigned static int  g255;
  unsigned static int  g254;
  unsigned static int  g253;
  unsigned static int  g252;
  unsigned static int  g251;
  unsigned static int  mq249;
  unsigned static int  g248;
  unsigned static int  mq247;
  unsigned static int  g246;
  unsigned static int  mq245;
  unsigned static int  g244;
  unsigned static int  g243;
  unsigned static int  g242;
  unsigned static int  I241;
  unsigned static int  g240;
  unsigned static int  g238;
  unsigned static int  g237;
  unsigned static int  g236;
  unsigned static int  g235;
  unsigned static int  g234;
  unsigned static int  g233;
  unsigned static int  g232;
  unsigned static int  I231;
  unsigned static int  mq230;
  unsigned static int  g229;
  unsigned static int  mq228;
  unsigned static int  g227;
  unsigned static int  g226;
  unsigned static int  g225;
  unsigned static int  I224;
  unsigned static int  I223;
  unsigned static int  g221;
  unsigned static int  g219;
  unsigned static int  g218;
  unsigned static int  g217;
  unsigned static int  g216;
  unsigned static int  g215;
  unsigned static int  g214;
  unsigned static int  I213;
  unsigned static int  g204;
  unsigned static int  g203;
  unsigned static int  I202;
  unsigned static int  I201;
  unsigned static int  g200;
  unsigned static int  I181;
  unsigned static int  g180;
  unsigned static int  g179;
  unsigned static int  g178;
  unsigned static int  g177;
  unsigned static int  g176;
  unsigned static int  g175;
  unsigned static int  g174;
  unsigned static int  g173;
  unsigned static int  g172;
  unsigned static int  g171;
  unsigned static int  g170;
  unsigned static int  I169;
  unsigned static int  g168;
  unsigned static int  g167;
  unsigned static int  I166;
  unsigned static int  g165;
  unsigned static int  g164;
  unsigned static int  g163;
  unsigned static int  I162;
  unsigned static int  g161;
  unsigned static int  g160;
  unsigned static int  g159;
  unsigned static int  g158;
  unsigned static int  I157;
  unsigned static int  g156;
  unsigned static int  g155;
  unsigned static int  g154;
  unsigned static int  g153;
  unsigned static int  g152;
  unsigned static int  I151;
  unsigned static int  g150;
  unsigned static int  g149;
  unsigned static int  g148;
  unsigned static int  g147;
  unsigned static int  g146;
  unsigned static int  g145;
  unsigned static int  I144;
  unsigned static int  g143;
  unsigned static int  g142;
  unsigned static int  g141;
  unsigned static int  g140;
  unsigned static int  g139;
  unsigned static int  g138;
  unsigned static int  g137;
  unsigned static int  I136;
  unsigned static int  g135;
  unsigned static int  g134;
  unsigned static int  g133;
  unsigned static int  g132;
  unsigned static int  g131;
  unsigned static int  g130;
  unsigned static int  g129;
  unsigned static int  g128;
  unsigned static int  I127;
  unsigned static int  g126;
  unsigned static int  g125;
  unsigned static int  g124;
  unsigned static int  g123;
  unsigned static int  I122;
  unsigned static int  g121;
  unsigned static int  g120;
  unsigned static int  g119;
  unsigned static int  g118;
  unsigned static int  I117;
  unsigned static int  g116;
  unsigned static int  g115;
  unsigned static int  I114;
  unsigned static int  g113;
  unsigned static int  g112;
  unsigned static int  g111;
  unsigned static int  I110;
  unsigned static int  g109;
  unsigned static int  g108;
  unsigned static int  I107;
  unsigned static int  g106;
  unsigned static int  I105;
  unsigned static int  I104;
  unsigned static int  g103;
  unsigned static int  memcen102;
  unsigned static int  mem_write101;
  unsigned static int  memaddr100;
  unsigned static int  cv_mem_read;
  unsigned static int  hold;
  unsigned static int  pc;
  unsigned static int  phase;
  unsigned static int  q;
  unsigned static int  p;
  i0out182_last_d = 1 & ttvtoc_ticks;
  i1out183_last_d = 1 & ttvtoc_ticks;
  i2out184_last_d = 1 & ttvtoc_ticks;
  i3out185_last_d = 1 & ttvtoc_ticks;
  i4out186_last_d = 1 & ttvtoc_ticks;
  i5out187_last_d = 1 & ttvtoc_ticks;
  i6out188_last_d = 1 & ttvtoc_ticks;
  i7out189_last_d = 1 & ttvtoc_ticks;
  i8out190_last_d = 1 & ttvtoc_ticks;
  i9out191_last_d = 1 & ttvtoc_ticks;
  i10out192_last_d = 1 & ttvtoc_ticks;
  i11out193_last_d = 1 & ttvtoc_ticks;
  i12out194_last_d = 1 & ttvtoc_ticks;
  i13out195_last_d = 1 & ttvtoc_ticks;
  i14out196_last_d = 1 & ttvtoc_ticks;
  i15out197_last_d = 1 & ttvtoc_ticks;
  i16out198_last_d = 1 & ttvtoc_ticks;
  i17out199_last_d = 1 & ttvtoc_ticks;
  i0hold205_last_d = 1 & ttvtoc_ticks;
  i1hold206_last_d = 1 & ttvtoc_ticks;
  i2hold207_last_d = 1 & ttvtoc_ticks;
  i3hold208_last_d = 1 & ttvtoc_ticks;
  i4hold209_last_d = 1 & ttvtoc_ticks;
  i5hold210_last_d = 1 & ttvtoc_ticks;
  i6hold211_last_d = 1 & ttvtoc_ticks;
  i7hold212_last_d = 1 & ttvtoc_ticks;
  i0phase220_last_d = 1 & ttvtoc_ticks;
  i1phase222_last_d = 1 & ttvtoc_ticks;
  i0p239_last_d = 1 & ttvtoc_ticks;
  i1p250_last_d = 1 & ttvtoc_ticks;
  i2p264_last_d = 1 & ttvtoc_ticks;
  i3p280_last_d = 1 & ttvtoc_ticks;
  i4p296_last_d = 1 & ttvtoc_ticks;
  i5p313_last_d = 1 & ttvtoc_ticks;
  i6p330_last_d = 1 & ttvtoc_ticks;
  i7p347_last_d = 1 & ttvtoc_ticks;
  i8p364_last_d = 1 & ttvtoc_ticks;
  i9p381_last_d = 1 & ttvtoc_ticks;
  i10p398_last_d = 1 & ttvtoc_ticks;
  i11p415_last_d = 1 & ttvtoc_ticks;
  i12p432_last_d = 1 & ttvtoc_ticks;
  i13p449_last_d = 1 & ttvtoc_ticks;
  i14p466_last_d = 1 & ttvtoc_ticks;
  i15p483_last_d = 1 & ttvtoc_ticks;
  i16p500_last_d = 1 & ttvtoc_ticks;
  i17p517_last_d = 1 & ttvtoc_ticks;
  i0q527_last_d = 1 & ttvtoc_ticks;
  i1q530_last_d = 1 & ttvtoc_ticks;
  i2q533_last_d = 1 & ttvtoc_ticks;
  i3q536_last_d = 1 & ttvtoc_ticks;
  i4q539_last_d = 1 & ttvtoc_ticks;
  i5q542_last_d = 1 & ttvtoc_ticks;
  i6q545_last_d = 1 & ttvtoc_ticks;
  i7q548_last_d = 1 & ttvtoc_ticks;
  i8q551_last_d = 1 & ttvtoc_ticks;
  i9q554_last_d = 1 & ttvtoc_ticks;
  i10q557_last_d = 1 & ttvtoc_ticks;
  i11q560_last_d = 1 & ttvtoc_ticks;
  i12q563_last_d = 1 & ttvtoc_ticks;
  i13q566_last_d = 1 & ttvtoc_ticks;
  i14q569_last_d = 1 & ttvtoc_ticks;
  i15q572_last_d = 1 & ttvtoc_ticks;
  i16q575_last_d = 1 & ttvtoc_ticks;
  i17q580_last_d = 1 & ttvtoc_ticks;
  pc_last_d = 1 & ttvtoc_ticks;
  guard_last_d = 1 & ttvtoc_ticks;
  memaddr100 = 16383 & memaddr100 | (1 & p>>17)<<14 & 32767;
  memaddr100 = 24575 & memaddr100 | (1 & p>>16)<<13 & 32767;
  memaddr100 = 28671 & memaddr100 | (1 & p>>15)<<12 & 32767;
  memaddr100 = 30719 & memaddr100 | (1 & p>>14)<<11 & 32767;
  memaddr100 = 31743 & memaddr100 | (1 & p>>13)<<10 & 32767;
  memaddr100 = 32255 & memaddr100 | (1 & p>>12)<<9 & 32767;
  memaddr100 = 32511 & memaddr100 | (1 & p>>11)<<8 & 32767;
  memaddr100 = 32639 & memaddr100 | (1 & p>>10)<<7 & 32767;
  memaddr100 = 32703 & memaddr100 | (1 & p>>9)<<6 & 32767;
  memaddr100 = 32735 & memaddr100 | (1 & p>>8)<<5 & 32767;
  memaddr100 = 32751 & memaddr100 | (1 & p>>7)<<4 & 32767;
  memaddr100 = 32759 & memaddr100 | (1 & p>>6)<<3 & 32767;
  memaddr100 = 32763 & memaddr100 | (1 & p>>5)<<2 & 32767;
  memaddr100 = 32765 & memaddr100 | (1 & p>>4)<<1 & 32767;
  memaddr100 = 32766 & memaddr100 | 1 & p>>3;
  cv_mem_read = 255 & *(memaddr100 + array_mem_mem_mem);
  I122 = 1 & ~(1 & p>>2);
  I117 = 1 & ~(1 & p>>1);
  I114 = 1 & ~(1 & p);
  g120 = I117 & 1 | I114 & 1;
  g126 = I122 & 1 | g120 & 1;
  I127 = 1 & ~g126;
  g118 = I117 & 1 | (1 & p) & 1;
  g125 = g118 & 1 | I122 & 1;
  g128 = 1 & (I127 & g125);
  g115 = I114 & 1 | (1 & p>>1) & 1;
  g124 = g115 & 1 | I122 & 1;
  g129 = 1 & (g128 & g124);
  g112 = (1 & p>>1) & 1 | (1 & p) & 1;
  g123 = I122 & 1 | g112 & 1;
  g130 = 1 & (g129 & g123);
  g121 = g120 & 1 | (1 & p>>2) & 1;
  g131 = 1 & (g121 & g130);
  g119 = g118 & 1 | (1 & p>>2) & 1;
  g132 = 1 & (g119 & g131);
  g116 = g115 & 1 | (1 & p>>2) & 1;
  g133 = 1 & (g116 & g132);
  g113 = g112 & 1 | (1 & p>>2) & 1;
  g134 = 1 & (g133 & g113);
  g630 = (1 & hold>>7) & 1 | g134 & 1;
  g103 = (1 & phase) & 1 | (1 & phase>>1) & 1;
  g631 = 1 & (g103 & g630);
  mem_write101 = 127 & mem_write101 | (1 & g631)<<7 & 255;
  I136 = 1 & ~g125;
  g137 = 1 & (I136 & g124);
  g138 = 1 & (g137 & g123);
  g139 = 1 & (g138 & g121);
  g140 = 1 & (g139 & g119);
  g141 = 1 & (g116 & g140);
  g142 = 1 & (g113 & g141);
  g627 = (1 & hold>>6) & 1 | g142 & 1;
  g628 = 1 & (g627 & g103);
  mem_write101 = 191 & mem_write101 | (1 & g628)<<6 & 255;
  I144 = 1 & ~g124;
  g145 = 1 & (I144 & g123);
  g146 = 1 & (g145 & g121);
  g147 = 1 & (g119 & g146);
  g148 = 1 & (g147 & g116);
  g149 = 1 & (g148 & g113);
  g624 = (1 & hold>>5) & 1 | g149 & 1;
  g625 = 1 & (g624 & g103);
  mem_write101 = 223 & mem_write101 | (1 & g625)<<5 & 255;
  I151 = 1 & ~g123;
  g152 = 1 & (I151 & g121);
  g153 = 1 & (g119 & g152);
  g154 = 1 & (g116 & g153);
  g155 = 1 & (g154 & g113);
  g621 = g155 & 1 | (1 & hold>>4) & 1;
  g622 = 1 & (g103 & g621);
  mem_write101 = 239 & mem_write101 | (1 & g622)<<4 & 255;
  I157 = 1 & ~g121;
  g158 = 1 & (g119 & I157);
  g159 = 1 & (g158 & g116);
  g160 = 1 & (g159 & g113);
  g618 = (1 & hold>>3) & 1 | g160 & 1;
  g619 = 1 & (g618 & g103);
  mem_write101 = 247 & mem_write101 | (1 & g619)<<3 & 255;
  I162 = 1 & ~g119;
  g163 = 1 & (g116 & I162);
  g164 = 1 & (g163 & g113);
  g615 = (1 & hold>>2) & 1 | g164 & 1;
  g616 = 1 & (g615 & g103);
  mem_write101 = 251 & mem_write101 | (1 & g616)<<2 & 255;
  I166 = 1 & ~g116;
  g167 = 1 & (I166 & g113);
  g612 = (1 & hold>>1) & 1 | g167 & 1;
  g613 = 1 & (g103 & g612);
  mem_write101 = 253 & mem_write101 | (1 & g613)<<1 & 255;
  I169 = 1 & ~g113;
  g609 = (1 & hold) & 1 | I169 & 1;
  g610 = 1 & (g609 & g103);
  mem_write101 = 254 & mem_write101 | 1 & g610;
  I105 = 1 & ~(1 & phase);
  g106 = (1 & phase>>1) & 1 | I105 & 1;
  I107 = 1 & ~g106;
  g234 = 1 & (I107 & pc);
  g591 = 1 & (g234 & g103);
  I104 = 1 & ~g103;
  g592 = I104 & 1 | g591 & 1;
  I213 = 1 & ~*reset;
  g593 = 1 & (g592 & I213);
  memcen102 = 1 & g593;
  g170 = 1 & ((1 & cv_mem_read) & I169);
  g168 = 1 & ((1 & cv_mem_read>>1) & g167);
  g171 = g168 & 1 | g170 & 1;
  g165 = 1 & ((1 & cv_mem_read>>2) & g164);
  g172 = g165 & 1 | g171 & 1;
  g161 = 1 & ((1 & cv_mem_read>>3) & g160);
  g173 = g172 & 1 | g161 & 1;
  g156 = 1 & ((1 & cv_mem_read>>4) & g155);
  g174 = g156 & 1 | g173 & 1;
  g150 = 1 & (g149 & (1 & cv_mem_read>>5));
  g175 = g174 & 1 | g150 & 1;
  g143 = 1 & (g142 & (1 & cv_mem_read>>6));
  g176 = g175 & 1 | g143 & 1;
  g135 = 1 & ((1 & cv_mem_read>>7) & g134);
  g177 = g176 & 1 | g135 & 1;
  I586 = 1 & ~g177;
  g587 = *guard & 1 | I586 & 1;
  I585 = 1 & ~*hs;
  g588 = 1 & (g587 & I585);
  I110 = 1 & ~(1 & phase>>1);
  g111 = (1 & phase) & 1 | I110 & 1;
  g108 = I107 & 1 | I104 & 1;
  g584 = g108 & 1 | g111 & 1;
  mq589 = 1 & (((g584) ? *guard:g588));
  g590 = 1 & (mq589 & I213);
  I202 = 1 & ~pc;
  mq581 = 1 & (((g106) ? pc:I202));
  mq582 = 1 & (((g103) ? mq581:pc));
  g583 = 1 & (mq582 & I213);
  I224 = 1 & ~(1 & p>>17);
  g578 = 1 & (I224 & (1 & q>>17));
  g267 = 1 & (1 & q>>1 & 1 & q);
  g283 = 1 & (g267 & (1 & q>>2));
  g299 = 1 & (g283 & (1 & q>>3));
  g316 = 1 & (g299 & (1 & q>>4));
  g333 = 1 & (g316 & (1 & q>>5));
  g350 = 1 & (g333 & (1 & q>>6));
  g367 = 1 & (g350 & (1 & q>>7));
  g384 = 1 & (g367 & (1 & q>>8));
  g401 = 1 & (g384 & (1 & q>>9));
  g418 = 1 & (g401 & (1 & q>>10));
  g435 = 1 & (g418 & (1 & q>>11));
  g452 = 1 & (g435 & (1 & q>>12));
  g469 = 1 & (g452 & (1 & q>>13));
  g486 = 1 & (g469 & (1 & q>>14));
  g503 = 1 & (g486 & (1 & q>>15));
  g576 = 1 & (g503 & (1 & q>>16));
  g577 = 1 & (g576 ^ 1 & q>>17);
  mq579 = 1 & (((g103) ? g577:g578));
  g573 = 1 & (I224 & (1 & q>>16));
  g504 = 1 & (g503 ^ 1 & q>>16);
  mq574 = 1 & (((g103) ? g504:g573));
  g570 = 1 & (I224 & (1 & q>>15));
  g487 = 1 & (g486 ^ 1 & q>>15);
  mq571 = 1 & (((g103) ? g487:g570));
  g567 = 1 & (I224 & (1 & q>>14));
  g470 = 1 & (g469 ^ 1 & q>>14);
  mq568 = 1 & (((g103) ? g470:g567));
  g564 = 1 & (I224 & (1 & q>>13));
  g453 = 1 & (g452 ^ 1 & q>>13);
  mq565 = 1 & (((g103) ? g453:g564));
  g561 = 1 & (I224 & (1 & q>>12));
  g436 = 1 & (g435 ^ 1 & q>>12);
  mq562 = 1 & (((g103) ? g436:g561));
  g558 = 1 & (I224 & (1 & q>>11));
  g419 = 1 & (g418 ^ 1 & q>>11);
  mq559 = 1 & (((g103) ? g419:g558));
  g555 = 1 & (I224 & (1 & q>>10));
  g402 = 1 & (g401 ^ 1 & q>>10);
  mq556 = 1 & (((g103) ? g402:g555));
  g552 = 1 & (I224 & (1 & q>>9));
  g385 = 1 & (g384 ^ 1 & q>>9);
  mq553 = 1 & (((g103) ? g385:g552));
  g549 = 1 & (I224 & (1 & q>>8));
  g368 = 1 & (g367 ^ 1 & q>>8);
  mq550 = 1 & (((g103) ? g368:g549));
  g546 = 1 & (I224 & (1 & q>>7));
  g351 = 1 & (g350 ^ 1 & q>>7);
  mq547 = 1 & (((g103) ? g351:g546));
  g543 = 1 & (I224 & (1 & q>>6));
  g334 = 1 & (g333 ^ 1 & q>>6);
  mq544 = 1 & (((g103) ? g334:g543));
  g540 = 1 & (I224 & (1 & q>>5));
  g317 = 1 & (g316 ^ 1 & q>>5);
  mq541 = 1 & (((g103) ? g317:g540));
  g537 = 1 & (I224 & (1 & q>>4));
  g300 = 1 & (g299 ^ 1 & q>>4);
  mq538 = 1 & (((g103) ? g300:g537));
  g534 = 1 & (I224 & (1 & q>>3));
  g284 = 1 & (g283 ^ 1 & q>>3);
  mq535 = 1 & (((g103) ? g284:g534));
  g531 = 1 & (I224 & (1 & q>>2));
  g268 = 1 & (g267 ^ 1 & q>>2);
  mq532 = 1 & (((g103) ? g268:g531));
  g528 = (1 & p>>17) & 1 | (1 & q>>1) & 1;
  g253 = 1 & (1 & q>>1 ^ 1 & q);
  mq529 = 1 & (((g103) ? g253:g528));
  g520 = I202 & 1 | (1 & q>>17) & 1;
  g521 = g106 & 1 | g520 & 1;
  I522 = 1 & ~g521;
  g523 = 1 & (I522 & (1 & p>>17));
  g524 = 1 & (g523 & g103);
  g525 = g524 & 1 | I104 & 1;
  g526 = 1 & (g525 & I213);
  g518 = 1 & (I224 & (1 & q));
  I241 = 1 & ~(1 & q);
  mq519 = 1 & (((g103) ? I241:g518));
  g309 = 1 & (1 & p>>4 & 1 & p>>3);
  g326 = 1 & (g309 & (1 & p>>5));
  g343 = 1 & (g326 & (1 & p>>6));
  g360 = 1 & (g343 & (1 & p>>7));
  g377 = 1 & (g360 & (1 & p>>8));
  g394 = 1 & (g377 & (1 & p>>9));
  g411 = 1 & (g394 & (1 & p>>10));
  g428 = 1 & (g411 & (1 & p>>11));
  g445 = 1 & (g428 & (1 & p>>12));
  g462 = 1 & (g445 & (1 & p>>13));
  g479 = 1 & (g462 & (1 & p>>14));
  g496 = 1 & (g479 & (1 & p>>15));
  g513 = 1 & (g496 & (1 & p>>16));
  g514 = 1 & (g513 ^ 1 & p>>17);
  g515 = 1 & (g514 & I224);
  g508 = 1 & (1 & q>>17 ^ 1 & p>>17);
  g491 = 1 & (1 & q>>16 ^ 1 & p>>16);
  g474 = 1 & (1 & q>>15 ^ 1 & p>>15);
  g457 = 1 & (1 & q>>14 ^ 1 & p>>14);
  g440 = 1 & (1 & q>>13 ^ 1 & p>>13);
  g423 = 1 & (1 & q>>12 ^ 1 & p>>12);
  g406 = 1 & (1 & q>>11 ^ 1 & p>>11);
  g389 = 1 & (1 & q>>10 ^ 1 & p>>10);
  g372 = 1 & (1 & q>>9 ^ 1 & p>>9);
  g355 = 1 & (1 & q>>8 ^ 1 & p>>8);
  g338 = 1 & (1 & q>>7 ^ 1 & p>>7);
  g321 = 1 & (1 & q>>6 ^ 1 & p>>6);
  g304 = 1 & (1 & q>>5 ^ 1 & p>>5);
  g288 = 1 & (1 & q>>4 ^ 1 & p>>4);
  g272 = 1 & (1 & q>>3 ^ 1 & p>>3);
  g257 = 1 & (1 & q>>2 ^ 1 & p>>2);
  g243 = 1 & (1 & q>>1 ^ 1 & p>>1);
  g242 = 1 & (1 & q & 1 & p);
  g255 = 1 & (g243 & g242);
  g254 = 1 & (1 & q>>1 & 1 & p>>1);
  g256 = g255 & 1 | g254 & 1;
  g270 = 1 & (g257 & g256);
  g269 = 1 & (1 & q>>2 & 1 & p>>2);
  g271 = g269 & 1 | g270 & 1;
  g286 = 1 & (g272 & g271);
  g285 = 1 & (1 & q>>3 & 1 & p>>3);
  g287 = g286 & 1 | g285 & 1;
  g302 = 1 & (g288 & g287);
  g301 = 1 & (1 & q>>4 & 1 & p>>4);
  g303 = g302 & 1 | g301 & 1;
  g319 = 1 & (g304 & g303);
  g318 = 1 & (1 & q>>5 & 1 & p>>5);
  g320 = g319 & 1 | g318 & 1;
  g336 = 1 & (g321 & g320);
  g335 = 1 & (1 & q>>6 & 1 & p>>6);
  g337 = g336 & 1 | g335 & 1;
  g353 = 1 & (g338 & g337);
  g352 = 1 & (1 & q>>7 & 1 & p>>7);
  g354 = g353 & 1 | g352 & 1;
  g370 = 1 & (g355 & g354);
  g369 = 1 & (1 & q>>8 & 1 & p>>8);
  g371 = g369 & 1 | g370 & 1;
  g387 = 1 & (g372 & g371);
  g386 = 1 & (1 & q>>9 & 1 & p>>9);
  g388 = g387 & 1 | g386 & 1;
  g404 = 1 & (g389 & g388);
  g403 = 1 & (1 & q>>10 & 1 & p>>10);
  g405 = g404 & 1 | g403 & 1;
  g421 = 1 & (g406 & g405);
  g420 = 1 & (1 & q>>11 & 1 & p>>11);
  g422 = g421 & 1 | g420 & 1;
  g438 = 1 & (g423 & g422);
  g437 = 1 & (1 & q>>12 & 1 & p>>12);
  g439 = g438 & 1 | g437 & 1;
  g455 = 1 & (g439 & g440);
  g454 = 1 & (1 & q>>13 & 1 & p>>13);
  g456 = g455 & 1 | g454 & 1;
  g472 = 1 & (g457 & g456);
  g471 = 1 & (1 & q>>14 & 1 & p>>14);
  g473 = g472 & 1 | g471 & 1;
  g489 = 1 & (g474 & g473);
  g488 = 1 & (1 & q>>15 & 1 & p>>15);
  g490 = g489 & 1 | g488 & 1;
  g506 = 1 & (g491 & g490);
  g505 = 1 & (1 & q>>16 & 1 & p>>16);
  g507 = g506 & 1 | g505 & 1;
  g509 = 1 & (g508 ^ g507);
  mq510 = 1 & (((1 & p>>17) ? g504:g509));
  I223 = 1 & ~(1 & q>>17);
  g511 = 1 & (mq510 & I223);
  g251 = 1 & (1 & p>>1 & 1 & p);
  g265 = 1 & (g251 & (1 & p>>2));
  g281 = 1 & (g265 & (1 & p>>3));
  g297 = 1 & (g281 & (1 & p>>4));
  g314 = 1 & (g297 & (1 & p>>5));
  g331 = 1 & (g314 & (1 & p>>6));
  g348 = 1 & (g331 & (1 & p>>7));
  g365 = 1 & (g348 & (1 & p>>8));
  g382 = 1 & (g365 & (1 & p>>9));
  g399 = 1 & (g382 & (1 & p>>10));
  g416 = 1 & (g399 & (1 & p>>11));
  g433 = 1 & (g416 & (1 & p>>12));
  g450 = 1 & (g433 & (1 & p>>13));
  g467 = 1 & (g450 & (1 & p>>14));
  g484 = 1 & (g467 & (1 & p>>15));
  g501 = 1 & (g484 & (1 & p>>16));
  g502 = 1 & (g501 ^ 1 & p>>17);
  mq512 = 1 & (((g106) ? g502:g511));
  mq516 = 1 & (((g103) ? mq512:g515));
  g497 = 1 & (g496 ^ 1 & p>>16);
  g498 = 1 & (g497 & I224);
  g492 = 1 & (g491 ^ g490);
  mq493 = 1 & (((1 & p>>17) ? g487:g492));
  g494 = 1 & (mq493 & I223);
  g485 = 1 & (g484 ^ 1 & p>>16);
  mq495 = 1 & (((g106) ? g485:g494));
  mq499 = 1 & (((g103) ? mq495:g498));
  g480 = 1 & (g479 ^ 1 & p>>15);
  g481 = 1 & (I224 & g480);
  g475 = 1 & (g474 ^ g473);
  mq476 = 1 & (((1 & p>>17) ? g470:g475));
  g477 = 1 & (mq476 & I223);
  g468 = 1 & (g467 ^ 1 & p>>15);
  mq478 = 1 & (((g106) ? g468:g477));
  mq482 = 1 & (((g103) ? mq478:g481));
  g463 = 1 & (g462 ^ 1 & p>>14);
  g464 = 1 & (I224 & g463);
  g458 = 1 & (g457 ^ g456);
  mq459 = 1 & (((1 & p>>17) ? g453:g458));
  g460 = 1 & (mq459 & I223);
  g451 = 1 & (g450 ^ 1 & p>>14);
  mq461 = 1 & (((g106) ? g451:g460));
  mq465 = 1 & (((g103) ? mq461:g464));
  g446 = 1 & (g445 ^ 1 & p>>13);
  g447 = 1 & (g446 & I224);
  g441 = 1 & (g439 ^ g440);
  mq442 = 1 & (((1 & p>>17) ? g436:g441));
  g443 = 1 & (mq442 & I223);
  g434 = 1 & (g433 ^ 1 & p>>13);
  mq444 = 1 & (((g106) ? g434:g443));
  mq448 = 1 & (((g103) ? mq444:g447));
  g429 = 1 & (g428 ^ 1 & p>>12);
  g430 = 1 & (g429 & I224);
  g424 = 1 & (g423 ^ g422);
  mq425 = 1 & (((1 & p>>17) ? g419:g424));
  g426 = 1 & (mq425 & I223);
  g417 = 1 & (g416 ^ 1 & p>>12);
  mq427 = 1 & (((g106) ? g417:g426));
  mq431 = 1 & (((g103) ? mq427:g430));
  g412 = 1 & (g411 ^ 1 & p>>11);
  g413 = 1 & (I224 & g412);
  g407 = 1 & (g406 ^ g405);
  mq408 = 1 & (((1 & p>>17) ? g402:g407));
  g409 = 1 & (mq408 & I223);
  g400 = 1 & (g399 ^ 1 & p>>11);
  mq410 = 1 & (((g106) ? g400:g409));
  mq414 = 1 & (((g103) ? mq410:g413));
  g395 = 1 & (g394 ^ 1 & p>>10);
  g396 = 1 & (g395 & I224);
  g390 = 1 & (g389 ^ g388);
  mq391 = 1 & (((1 & p>>17) ? g385:g390));
  g392 = 1 & (mq391 & I223);
  g383 = 1 & (g382 ^ 1 & p>>10);
  mq393 = 1 & (((g106) ? g383:g392));
  mq397 = 1 & (((g103) ? mq393:g396));
  g378 = 1 & (g377 ^ 1 & p>>9);
  g379 = 1 & (g378 & I224);
  g373 = 1 & (g372 ^ g371);
  mq374 = 1 & (((1 & p>>17) ? g368:g373));
  g375 = 1 & (mq374 & I223);
  g366 = 1 & (g365 ^ 1 & p>>9);
  mq376 = 1 & (((g106) ? g366:g375));
  mq380 = 1 & (((g103) ? mq376:g379));
  g361 = 1 & (g360 ^ 1 & p>>8);
  g362 = 1 & (I224 & g361);
  g356 = 1 & (g355 ^ g354);
  mq357 = 1 & (((1 & p>>17) ? g351:g356));
  g358 = 1 & (mq357 & I223);
  g349 = 1 & (g348 ^ 1 & p>>8);
  mq359 = 1 & (((g106) ? g349:g358));
  mq363 = 1 & (((g103) ? mq359:g362));
  g344 = 1 & (g343 ^ 1 & p>>7);
  g345 = 1 & (g344 & I224);
  g339 = 1 & (g338 ^ g337);
  mq340 = 1 & (((1 & p>>17) ? g334:g339));
  g341 = 1 & (mq340 & I223);
  g332 = 1 & (g331 ^ 1 & p>>7);
  mq342 = 1 & (((g106) ? g332:g341));
  mq346 = 1 & (((g103) ? mq342:g345));
  g327 = 1 & (g326 ^ 1 & p>>6);
  g328 = 1 & (g327 & I224);
  g322 = 1 & (g321 ^ g320);
  mq323 = 1 & (((1 & p>>17) ? g317:g322));
  g324 = 1 & (mq323 & I223);
  g315 = 1 & (g314 ^ 1 & p>>6);
  mq325 = 1 & (((g106) ? g315:g324));
  mq329 = 1 & (((g103) ? mq325:g328));
  g310 = 1 & (g309 ^ 1 & p>>5);
  g311 = 1 & (I224 & g310);
  g305 = 1 & (g304 ^ g303);
  mq306 = 1 & (((1 & p>>17) ? g300:g305));
  g307 = 1 & (mq306 & I223);
  g298 = 1 & (g297 ^ 1 & p>>5);
  mq308 = 1 & (((g106) ? g298:g307));
  mq312 = 1 & (((g103) ? mq308:g311));
  g293 = 1 & (1 & p>>4 ^ 1 & p>>3);
  g294 = 1 & (g293 & I224);
  g289 = 1 & (g288 ^ g287);
  mq290 = 1 & (((1 & p>>17) ? g284:g289));
  g291 = 1 & (mq290 & I223);
  g282 = 1 & (g281 ^ 1 & p>>4);
  mq292 = 1 & (((g106) ? g282:g291));
  mq295 = 1 & (((g103) ? mq292:g294));
  I277 = 1 & ~(1 & p>>3);
  g278 = 1 & (I277 & I224);
  g273 = 1 & (g272 ^ g271);
  mq274 = 1 & (((1 & p>>17) ? g268:g273));
  g275 = 1 & (mq274 & I223);
  g266 = 1 & (g265 ^ 1 & p>>3);
  mq276 = 1 & (((g106) ? g266:g275));
  mq279 = 1 & (((g103) ? mq276:g278));
  g262 = (1 & p>>17) & 1 | (1 & p>>2) & 1;
  g258 = 1 & (g257 ^ g256);
  mq259 = 1 & (((1 & p>>17) ? g253:g258));
  g260 = 1 & (mq259 & I223);
  g252 = 1 & (g251 ^ 1 & p>>2);
  mq261 = 1 & (((g106) ? g252:g260));
  mq263 = 1 & (((g103) ? mq261:g262));
  g248 = 1 & (I224 & (1 & p>>1));
  g244 = 1 & (g243 ^ g242);
  mq245 = 1 & (((1 & p>>17) ? I241:g244));
  g246 = 1 & (mq245 & I223);
  g240 = 1 & (1 & p>>1 ^ 1 & p);
  mq247 = 1 & (((g106) ? g240:g246));
  mq249 = 1 & (((g103) ? mq247:g248));
  I231 = 1 & ~g111;
  g178 = g177 & 1 | *hs & 1;
  g232 = 1 & (g178 & I231);
  g233 = 1 & (g106 & g232);
  g235 = g234 & 1 | g233 & 1;
  g236 = 1 & (g235 & g103);
  g237 = g236 & 1 | I104 & 1;
  g238 = 1 & (g237 & I213);
  g229 = 1 & (I224 & (1 & p));
  g225 = 1 & (1 & q ^ 1 & p);
  g226 = 1 & (g225 & I224);
  g227 = 1 & (g226 & I223);
  mq228 = 1 & (((g106) ? I114:g227));
  mq230 = 1 & (((g103) ? mq228:g229));
  g221 = 1 & (1 & phase ^ 1 & phase>>1);
  g217 = 1 & (I104 & (1 & p>>17));
  g214 = 1 & ((1 & q>>17) & pc);
  g215 = 1 & (I107 & g214);
  g216 = 1 & (g215 & g103);
  g218 = g217 & 1 | g216 & 1;
  g219 = 1 & (g218 & I213);
  g203 = 1 & (I107 & I202);
  g200 = *reset & 1 | I104 & 1;
  I201 = 1 & ~g200;
  g204 = 1 & (g203 & I201);
  g179 = g178 & 1 | g111 & 1;
  g109 = *reset & 1 | g108 & 1;
  g180 = g179 & 1 | g109 & 1;
  I181 = 1 & ~g180;
#include "ttvinc.c"
/* synch */
  if (1) {   if (phase==2 && 1 & p>>17)   ttvtoc_finish();

      }
  if (1) {   i0out182_last_clk = 1 & (((I181) ? ttvtoc_ticks:i0out182_last_clk));
  *out = 262143 & (((I181) ? 262142 & *out | 1 & p:*out));
  if ((5>ttvtoc_ticks - i0out182_last_d && I181) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i1out183_last_clk = 1 & (((I181) ? ttvtoc_ticks:i1out183_last_clk));
  *out = 262143 & (((I181) ? 262141 & *out | (1 & p>>1)<<1:*out));
  if ((5>ttvtoc_ticks - i1out183_last_d && I181) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i2out184_last_clk = 1 & (((I181) ? ttvtoc_ticks:i2out184_last_clk));
  *out = 262143 & (((I181) ? 262139 & *out | (1 & p>>2)<<2:*out));
  if ((5>ttvtoc_ticks - i2out184_last_d && I181) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i3out185_last_clk = 1 & (((I181) ? ttvtoc_ticks:i3out185_last_clk));
  *out = 262143 & (((I181) ? 262135 & *out | (1 & p>>3)<<3:*out));
  if ((5>ttvtoc_ticks - i3out185_last_d && I181) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i4out186_last_clk = 1 & (((I181) ? ttvtoc_ticks:i4out186_last_clk));
  *out = 262143 & (((I181) ? 262127 & *out | (1 & p>>4)<<4:*out));
  if ((5>ttvtoc_ticks - i4out186_last_d && I181) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i5out187_last_clk = 1 & (((I181) ? ttvtoc_ticks:i5out187_last_clk));
  *out = 262143 & (((I181) ? 262111 & *out | (1 & p>>5)<<5:*out));
  if ((5>ttvtoc_ticks - i5out187_last_d && I181) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i6out188_last_clk = 1 & (((I181) ? ttvtoc_ticks:i6out188_last_clk));
  *out = 262143 & (((I181) ? 262079 & *out | (1 & p>>6)<<6:*out));
  if ((5>ttvtoc_ticks - i6out188_last_d && I181) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i7out189_last_clk = 1 & (((I181) ? ttvtoc_ticks:i7out189_last_clk));
  *out = 262143 & (((I181) ? 262015 & *out | (1 & p>>7)<<7:*out));
  if ((5>ttvtoc_ticks - i7out189_last_d && I181) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i8out190_last_clk = 1 & (((I181) ? ttvtoc_ticks:i8out190_last_clk));
  *out = 262143 & (((I181) ? 261887 & *out | (1 & p>>8)<<8:*out));
  if ((5>ttvtoc_ticks - i8out190_last_d && I181) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i9out191_last_clk = 1 & (((I181) ? ttvtoc_ticks:i9out191_last_clk));
  *out = 262143 & (((I181) ? 261631 & *out | (1 & p>>9)<<9:*out));
  if ((5>ttvtoc_ticks - i9out191_last_d && I181) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i10out192_last_clk = 1 & (((I181) ? ttvtoc_ticks:i10out192_last_clk));
  *out = 262143 & (((I181) ? 261119 & *out | (1 & p>>10)<<10:*out));
  if ((5>ttvtoc_ticks - i10out192_last_d && I181) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i11out193_last_clk = 1 & (((I181) ? ttvtoc_ticks:i11out193_last_clk));
  *out = 262143 & (((I181) ? 260095 & *out | (1 & p>>11)<<11:*out));
  if ((5>ttvtoc_ticks - i11out193_last_d && I181) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i12out194_last_clk = 1 & (((I181) ? ttvtoc_ticks:i12out194_last_clk));
  *out = 262143 & (((I181) ? 258047 & *out | (1 & p>>12)<<12:*out));
  if ((5>ttvtoc_ticks - i12out194_last_d && I181) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i13out195_last_clk = 1 & (((I181) ? ttvtoc_ticks:i13out195_last_clk));
  *out = 262143 & (((I181) ? 253951 & *out | (1 & p>>13)<<13:*out));
  if ((5>ttvtoc_ticks - i13out195_last_d && I181) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i14out196_last_clk = 1 & (((I181) ? ttvtoc_ticks:i14out196_last_clk));
  *out = 262143 & (((I181) ? 245759 & *out | (1 & p>>14)<<14:*out));
  if ((5>ttvtoc_ticks - i14out196_last_d && I181) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i15out197_last_clk = 1 & (((I181) ? ttvtoc_ticks:i15out197_last_clk));
  *out = 262143 & (((I181) ? 229375 & *out | (1 & p>>15)<<15:*out));
  if ((5>ttvtoc_ticks - i15out197_last_d && I181) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i16out198_last_clk = 1 & (((I181) ? ttvtoc_ticks:i16out198_last_clk));
  *out = 262143 & (((I181) ? 196607 & *out | (1 & p>>16)<<16:*out));
  if ((5>ttvtoc_ticks - i16out198_last_d && I181) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i17out199_last_clk = 1 & (((I181) ? ttvtoc_ticks:i17out199_last_clk));
  *out = 262143 & (((I181) ? 131071 & *out | (1 & p>>17)<<17:*out));
  if ((5>ttvtoc_ticks - i17out199_last_d && I181) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i0hold205_last_clk = 1 & (((g204) ? ttvtoc_ticks:i0hold205_last_clk));
  hold = 255 & (((g204) ? 254 & hold | 1 & cv_mem_read:hold));
  if ((5>ttvtoc_ticks - i0hold205_last_d && g204) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i1hold206_last_clk = 1 & (((g204) ? ttvtoc_ticks:i1hold206_last_clk));
  hold = 255 & (((g204) ? 253 & hold | (1 & cv_mem_read>>1)<<1:hold));
  if ((5>ttvtoc_ticks - i1hold206_last_d && g204) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i2hold207_last_clk = 1 & (((g204) ? ttvtoc_ticks:i2hold207_last_clk));
  hold = 255 & (((g204) ? 251 & hold | (1 & cv_mem_read>>2)<<2:hold));
  if ((5>ttvtoc_ticks - i2hold207_last_d && g204) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i3hold208_last_clk = 1 & (((g204) ? ttvtoc_ticks:i3hold208_last_clk));
  hold = 255 & (((g204) ? 247 & hold | (1 & cv_mem_read>>3)<<3:hold));
  if ((5>ttvtoc_ticks - i3hold208_last_d && g204) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i4hold209_last_clk = 1 & (((g204) ? ttvtoc_ticks:i4hold209_last_clk));
  hold = 255 & (((g204) ? 239 & hold | (1 & cv_mem_read>>4)<<4:hold));
  if ((5>ttvtoc_ticks - i4hold209_last_d && g204) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i5hold210_last_clk = 1 & (((g204) ? ttvtoc_ticks:i5hold210_last_clk));
  hold = 255 & (((g204) ? 223 & hold | (1 & cv_mem_read>>5)<<5:hold));
  if ((5>ttvtoc_ticks - i5hold210_last_d && g204) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i6hold211_last_clk = 1 & (((g204) ? ttvtoc_ticks:i6hold211_last_clk));
  hold = 255 & (((g204) ? 191 & hold | (1 & cv_mem_read>>6)<<6:hold));
  if ((5>ttvtoc_ticks - i6hold211_last_d && g204) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i7hold212_last_clk = 1 & (((g204) ? ttvtoc_ticks:i7hold212_last_clk));
  hold = 255 & (((g204) ? 127 & hold | (1 & cv_mem_read>>7)<<7:hold));
  if ((5>ttvtoc_ticks - i7hold212_last_d && g204) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i0phase220_last_clk = 1 & (((g219) ? ttvtoc_ticks:i0phase220_last_clk));
  phase = 3 & (((g219) ? 2 & phase | 1 & I105:phase));
  if ((5>ttvtoc_ticks - i0phase220_last_d && g219) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i1phase222_last_clk = 1 & (((g219) ? ttvtoc_ticks:i1phase222_last_clk));
  phase = 3 & (((g219) ? 1 & phase | (1 & g221)<<1:phase));
  if ((5>ttvtoc_ticks - i1phase222_last_d && g219) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i0p239_last_clk = 1 & (((g238) ? ttvtoc_ticks:i0p239_last_clk));
  p = 262143 & (((g238) ? 262142 & p | 1 & mq230:p));
  if ((5>ttvtoc_ticks - i0p239_last_d && g238) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i1p250_last_clk = 1 & (((g238) ? ttvtoc_ticks:i1p250_last_clk));
  p = 262143 & (((g238) ? 262141 & p | (1 & mq249)<<1:p));
  if ((5>ttvtoc_ticks - i1p250_last_d && g238) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i2p264_last_clk = 1 & (((g238) ? ttvtoc_ticks:i2p264_last_clk));
  p = 262143 & (((g238) ? 262139 & p | (1 & mq263)<<2:p));
  if ((5>ttvtoc_ticks - i2p264_last_d && g238) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i3p280_last_clk = 1 & (((g238) ? ttvtoc_ticks:i3p280_last_clk));
  p = 262143 & (((g238) ? 262135 & p | (1 & mq279)<<3:p));
  if ((5>ttvtoc_ticks - i3p280_last_d && g238) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i4p296_last_clk = 1 & (((g238) ? ttvtoc_ticks:i4p296_last_clk));
  p = 262143 & (((g238) ? 262127 & p | (1 & mq295)<<4:p));
  if ((5>ttvtoc_ticks - i4p296_last_d && g238) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i5p313_last_clk = 1 & (((g238) ? ttvtoc_ticks:i5p313_last_clk));
  p = 262143 & (((g238) ? 262111 & p | (1 & mq312)<<5:p));
  if ((5>ttvtoc_ticks - i5p313_last_d && g238) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i6p330_last_clk = 1 & (((g238) ? ttvtoc_ticks:i6p330_last_clk));
  p = 262143 & (((g238) ? 262079 & p | (1 & mq329)<<6:p));
  if ((5>ttvtoc_ticks - i6p330_last_d && g238) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i7p347_last_clk = 1 & (((g238) ? ttvtoc_ticks:i7p347_last_clk));
  p = 262143 & (((g238) ? 262015 & p | (1 & mq346)<<7:p));
  if ((5>ttvtoc_ticks - i7p347_last_d && g238) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i8p364_last_clk = 1 & (((g238) ? ttvtoc_ticks:i8p364_last_clk));
  p = 262143 & (((g238) ? 261887 & p | (1 & mq363)<<8:p));
  if ((5>ttvtoc_ticks - i8p364_last_d && g238) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i9p381_last_clk = 1 & (((g238) ? ttvtoc_ticks:i9p381_last_clk));
  p = 262143 & (((g238) ? 261631 & p | (1 & mq380)<<9:p));
  if ((5>ttvtoc_ticks - i9p381_last_d && g238) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i10p398_last_clk = 1 & (((g238) ? ttvtoc_ticks:i10p398_last_clk));
  p = 262143 & (((g238) ? 261119 & p | (1 & mq397)<<10:p));
  if ((5>ttvtoc_ticks - i10p398_last_d && g238) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i11p415_last_clk = 1 & (((g238) ? ttvtoc_ticks:i11p415_last_clk));
  p = 262143 & (((g238) ? 260095 & p | (1 & mq414)<<11:p));
  if ((5>ttvtoc_ticks - i11p415_last_d && g238) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i12p432_last_clk = 1 & (((g238) ? ttvtoc_ticks:i12p432_last_clk));
  p = 262143 & (((g238) ? 258047 & p | (1 & mq431)<<12:p));
  if ((5>ttvtoc_ticks - i12p432_last_d && g238) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i13p449_last_clk = 1 & (((g238) ? ttvtoc_ticks:i13p449_last_clk));
  p = 262143 & (((g238) ? 253951 & p | (1 & mq448)<<13:p));
  if ((5>ttvtoc_ticks - i13p449_last_d && g238) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i14p466_last_clk = 1 & (((g238) ? ttvtoc_ticks:i14p466_last_clk));
  p = 262143 & (((g238) ? 245759 & p | (1 & mq465)<<14:p));
  if ((5>ttvtoc_ticks - i14p466_last_d && g238) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i15p483_last_clk = 1 & (((g238) ? ttvtoc_ticks:i15p483_last_clk));
  p = 262143 & (((g238) ? 229375 & p | (1 & mq482)<<15:p));
  if ((5>ttvtoc_ticks - i15p483_last_d && g238) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i16p500_last_clk = 1 & (((g238) ? ttvtoc_ticks:i16p500_last_clk));
  p = 262143 & (((g238) ? 196607 & p | (1 & mq499)<<16:p));
  if ((5>ttvtoc_ticks - i16p500_last_d && g238) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i17p517_last_clk = 1 & (((g238) ? ttvtoc_ticks:i17p517_last_clk));
  p = 262143 & (((g238) ? 131071 & p | (1 & mq516)<<17:p));
  if ((5>ttvtoc_ticks - i17p517_last_d && g238) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i0q527_last_clk = 1 & (((g526) ? ttvtoc_ticks:i0q527_last_clk));
  q = 262143 & (((g526) ? 262142 & q | 1 & mq519:q));
  if ((5>ttvtoc_ticks - i0q527_last_d && g526) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i1q530_last_clk = 1 & (((g526) ? ttvtoc_ticks:i1q530_last_clk));
  q = 262143 & (((g526) ? 262141 & q | (1 & mq529)<<1:q));
  if ((5>ttvtoc_ticks - i1q530_last_d && g526) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i2q533_last_clk = 1 & (((g526) ? ttvtoc_ticks:i2q533_last_clk));
  q = 262143 & (((g526) ? 262139 & q | (1 & mq532)<<2:q));
  if ((5>ttvtoc_ticks - i2q533_last_d && g526) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i3q536_last_clk = 1 & (((g526) ? ttvtoc_ticks:i3q536_last_clk));
  q = 262143 & (((g526) ? 262135 & q | (1 & mq535)<<3:q));
  if ((5>ttvtoc_ticks - i3q536_last_d && g526) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i4q539_last_clk = 1 & (((g526) ? ttvtoc_ticks:i4q539_last_clk));
  q = 262143 & (((g526) ? 262127 & q | (1 & mq538)<<4:q));
  if ((5>ttvtoc_ticks - i4q539_last_d && g526) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i5q542_last_clk = 1 & (((g526) ? ttvtoc_ticks:i5q542_last_clk));
  q = 262143 & (((g526) ? 262111 & q | (1 & mq541)<<5:q));
  if ((5>ttvtoc_ticks - i5q542_last_d && g526) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i6q545_last_clk = 1 & (((g526) ? ttvtoc_ticks:i6q545_last_clk));
  q = 262143 & (((g526) ? 262079 & q | (1 & mq544)<<6:q));
  if ((5>ttvtoc_ticks - i6q545_last_d && g526) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i7q548_last_clk = 1 & (((g526) ? ttvtoc_ticks:i7q548_last_clk));
  q = 262143 & (((g526) ? 262015 & q | (1 & mq547)<<7:q));
  if ((5>ttvtoc_ticks - i7q548_last_d && g526) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i8q551_last_clk = 1 & (((g526) ? ttvtoc_ticks:i8q551_last_clk));
  q = 262143 & (((g526) ? 261887 & q | (1 & mq550)<<8:q));
  if ((5>ttvtoc_ticks - i8q551_last_d && g526) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i9q554_last_clk = 1 & (((g526) ? ttvtoc_ticks:i9q554_last_clk));
  q = 262143 & (((g526) ? 261631 & q | (1 & mq553)<<9:q));
  if ((5>ttvtoc_ticks - i9q554_last_d && g526) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i10q557_last_clk = 1 & (((g526) ? ttvtoc_ticks:i10q557_last_clk));
  q = 262143 & (((g526) ? 261119 & q | (1 & mq556)<<10:q));
  if ((5>ttvtoc_ticks - i10q557_last_d && g526) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i11q560_last_clk = 1 & (((g526) ? ttvtoc_ticks:i11q560_last_clk));
  q = 262143 & (((g526) ? 260095 & q | (1 & mq559)<<11:q));
  if ((5>ttvtoc_ticks - i11q560_last_d && g526) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i12q563_last_clk = 1 & (((g526) ? ttvtoc_ticks:i12q563_last_clk));
  q = 262143 & (((g526) ? 258047 & q | (1 & mq562)<<12:q));
  if ((5>ttvtoc_ticks - i12q563_last_d && g526) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i13q566_last_clk = 1 & (((g526) ? ttvtoc_ticks:i13q566_last_clk));
  q = 262143 & (((g526) ? 253951 & q | (1 & mq565)<<13:q));
  if ((5>ttvtoc_ticks - i13q566_last_d && g526) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i14q569_last_clk = 1 & (((g526) ? ttvtoc_ticks:i14q569_last_clk));
  q = 262143 & (((g526) ? 245759 & q | (1 & mq568)<<14:q));
  if ((5>ttvtoc_ticks - i14q569_last_d && g526) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i15q572_last_clk = 1 & (((g526) ? ttvtoc_ticks:i15q572_last_clk));
  q = 262143 & (((g526) ? 229375 & q | (1 & mq571)<<15:q));
  if ((5>ttvtoc_ticks - i15q572_last_d && g526) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i16q575_last_clk = 1 & (((g526) ? ttvtoc_ticks:i16q575_last_clk));
  q = 262143 & (((g526) ? 196607 & q | (1 & mq574)<<16:q));
  if ((5>ttvtoc_ticks - i16q575_last_d && g526) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   i17q580_last_clk = 1 & (((g526) ? ttvtoc_ticks:i17q580_last_clk));
  q = 262143 & (((g526) ? 131071 & q | (1 & mq579)<<17:q));
  if ((5>ttvtoc_ticks - i17q580_last_d && g526) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   pc_last_clk = 1 & ttvtoc_ticks;
  pc = 1 & (g583 & 1);
  if ((5>ttvtoc_ticks - pc_last_d && 1) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   guard_last_clk = 1 & ttvtoc_ticks;
  *guard = 1 & (g590 & 1);
  if ((5>ttvtoc_ticks - guard_last_d && 1) && 1 & ~0)   ttvtoc_display("Time %t, DFF %m violated set-up time", ttvtoc_ticks);

      }
  if (1) {   *(memaddr100 + array_mem_mem_mem) = 255 & (((memcen102) ? mem_write101:*(memaddr100 + array_mem_mem_mem)));

      }
  (ttvtoc_ticks++);
/* post cont */
  i0out182_last_d = 1 & ttvtoc_ticks;
  i1out183_last_d = 1 & ttvtoc_ticks;
  i2out184_last_d = 1 & ttvtoc_ticks;
  i3out185_last_d = 1 & ttvtoc_ticks;
  i4out186_last_d = 1 & ttvtoc_ticks;
  i5out187_last_d = 1 & ttvtoc_ticks;
  i6out188_last_d = 1 & ttvtoc_ticks;
  i7out189_last_d = 1 & ttvtoc_ticks;
  i8out190_last_d = 1 & ttvtoc_ticks;
  i9out191_last_d = 1 & ttvtoc_ticks;
  i10out192_last_d = 1 & ttvtoc_ticks;
  i11out193_last_d = 1 & ttvtoc_ticks;
  i12out194_last_d = 1 & ttvtoc_ticks;
  i13out195_last_d = 1 & ttvtoc_ticks;
  i14out196_last_d = 1 & ttvtoc_ticks;
  i15out197_last_d = 1 & ttvtoc_ticks;
  i16out198_last_d = 1 & ttvtoc_ticks;
  i17out199_last_d = 1 & ttvtoc_ticks;
  i0hold205_last_d = 1 & ttvtoc_ticks;
  i1hold206_last_d = 1 & ttvtoc_ticks;
  i2hold207_last_d = 1 & ttvtoc_ticks;
  i3hold208_last_d = 1 & ttvtoc_ticks;
  i4hold209_last_d = 1 & ttvtoc_ticks;
  i5hold210_last_d = 1 & ttvtoc_ticks;
  i6hold211_last_d = 1 & ttvtoc_ticks;
  i7hold212_last_d = 1 & ttvtoc_ticks;
  i0phase220_last_d = 1 & ttvtoc_ticks;
  i1phase222_last_d = 1 & ttvtoc_ticks;
  i0p239_last_d = 1 & ttvtoc_ticks;
  i1p250_last_d = 1 & ttvtoc_ticks;
  i2p264_last_d = 1 & ttvtoc_ticks;
  i3p280_last_d = 1 & ttvtoc_ticks;
  i4p296_last_d = 1 & ttvtoc_ticks;
  i5p313_last_d = 1 & ttvtoc_ticks;
  i6p330_last_d = 1 & ttvtoc_ticks;
  i7p347_last_d = 1 & ttvtoc_ticks;
  i8p364_last_d = 1 & ttvtoc_ticks;
  i9p381_last_d = 1 & ttvtoc_ticks;
  i10p398_last_d = 1 & ttvtoc_ticks;
  i11p415_last_d = 1 & ttvtoc_ticks;
  i12p432_last_d = 1 & ttvtoc_ticks;
  i13p449_last_d = 1 & ttvtoc_ticks;
  i14p466_last_d = 1 & ttvtoc_ticks;
  i15p483_last_d = 1 & ttvtoc_ticks;
  i16p500_last_d = 1 & ttvtoc_ticks;
  i17p517_last_d = 1 & ttvtoc_ticks;
  i0q527_last_d = 1 & ttvtoc_ticks;
  i1q530_last_d = 1 & ttvtoc_ticks;
  i2q533_last_d = 1 & ttvtoc_ticks;
  i3q536_last_d = 1 & ttvtoc_ticks;
  i4q539_last_d = 1 & ttvtoc_ticks;
  i5q542_last_d = 1 & ttvtoc_ticks;
  i6q545_last_d = 1 & ttvtoc_ticks;
  i7q548_last_d = 1 & ttvtoc_ticks;
  i8q551_last_d = 1 & ttvtoc_ticks;
  i9q554_last_d = 1 & ttvtoc_ticks;
  i10q557_last_d = 1 & ttvtoc_ticks;
  i11q560_last_d = 1 & ttvtoc_ticks;
  i12q563_last_d = 1 & ttvtoc_ticks;
  i13q566_last_d = 1 & ttvtoc_ticks;
  i14q569_last_d = 1 & ttvtoc_ticks;
  i15q572_last_d = 1 & ttvtoc_ticks;
  i16q575_last_d = 1 & ttvtoc_ticks;
  i17q580_last_d = 1 & ttvtoc_ticks;
  pc_last_d = 1 & ttvtoc_ticks;
  guard_last_d = 1 & ttvtoc_ticks;
  memaddr100 = 16383 & memaddr100 | (1 & p>>17)<<14 & 32767;
  memaddr100 = 24575 & memaddr100 | (1 & p>>16)<<13 & 32767;
  memaddr100 = 28671 & memaddr100 | (1 & p>>15)<<12 & 32767;
  memaddr100 = 30719 & memaddr100 | (1 & p>>14)<<11 & 32767;
  memaddr100 = 31743 & memaddr100 | (1 & p>>13)<<10 & 32767;
  memaddr100 = 32255 & memaddr100 | (1 & p>>12)<<9 & 32767;
  memaddr100 = 32511 & memaddr100 | (1 & p>>11)<<8 & 32767;
  memaddr100 = 32639 & memaddr100 | (1 & p>>10)<<7 & 32767;
  memaddr100 = 32703 & memaddr100 | (1 & p>>9)<<6 & 32767;
  memaddr100 = 32735 & memaddr100 | (1 & p>>8)<<5 & 32767;
  memaddr100 = 32751 & memaddr100 | (1 & p>>7)<<4 & 32767;
  memaddr100 = 32759 & memaddr100 | (1 & p>>6)<<3 & 32767;
  memaddr100 = 32763 & memaddr100 | (1 & p>>5)<<2 & 32767;
  memaddr100 = 32765 & memaddr100 | (1 & p>>4)<<1 & 32767;
  memaddr100 = 32766 & memaddr100 | 1 & p>>3;
  cv_mem_read = 255 & *(memaddr100 + array_mem_mem_mem);
  I122 = 1 & ~(1 & p>>2);
  I117 = 1 & ~(1 & p>>1);
  I114 = 1 & ~(1 & p);
  g120 = I117 & 1 | I114 & 1;
  g126 = I122 & 1 | g120 & 1;
  I127 = 1 & ~g126;
  g118 = I117 & 1 | (1 & p) & 1;
  g125 = g118 & 1 | I122 & 1;
  g128 = 1 & (I127 & g125);
  g115 = I114 & 1 | (1 & p>>1) & 1;
  g124 = g115 & 1 | I122 & 1;
  g129 = 1 & (g128 & g124);
  g112 = (1 & p>>1) & 1 | (1 & p) & 1;
  g123 = I122 & 1 | g112 & 1;
  g130 = 1 & (g129 & g123);
  g121 = g120 & 1 | (1 & p>>2) & 1;
  g131 = 1 & (g121 & g130);
  g119 = g118 & 1 | (1 & p>>2) & 1;
  g132 = 1 & (g119 & g131);
  g116 = g115 & 1 | (1 & p>>2) & 1;
  g133 = 1 & (g116 & g132);
  g113 = g112 & 1 | (1 & p>>2) & 1;
  g134 = 1 & (g133 & g113);
  g630 = (1 & hold>>7) & 1 | g134 & 1;
  g103 = (1 & phase) & 1 | (1 & phase>>1) & 1;
  g631 = 1 & (g103 & g630);
  mem_write101 = 127 & mem_write101 | (1 & g631)<<7 & 255;
  I136 = 1 & ~g125;
  g137 = 1 & (I136 & g124);
  g138 = 1 & (g137 & g123);
  g139 = 1 & (g138 & g121);
  g140 = 1 & (g139 & g119);
  g141 = 1 & (g116 & g140);
  g142 = 1 & (g113 & g141);
  g627 = (1 & hold>>6) & 1 | g142 & 1;
  g628 = 1 & (g627 & g103);
  mem_write101 = 191 & mem_write101 | (1 & g628)<<6 & 255;
  I144 = 1 & ~g124;
  g145 = 1 & (I144 & g123);
  g146 = 1 & (g145 & g121);
  g147 = 1 & (g119 & g146);
  g148 = 1 & (g147 & g116);
  g149 = 1 & (g148 & g113);
  g624 = (1 & hold>>5) & 1 | g149 & 1;
  g625 = 1 & (g624 & g103);
  mem_write101 = 223 & mem_write101 | (1 & g625)<<5 & 255;
  I151 = 1 & ~g123;
  g152 = 1 & (I151 & g121);
  g153 = 1 & (g119 & g152);
  g154 = 1 & (g116 & g153);
  g155 = 1 & (g154 & g113);
  g621 = g155 & 1 | (1 & hold>>4) & 1;
  g622 = 1 & (g103 & g621);
  mem_write101 = 239 & mem_write101 | (1 & g622)<<4 & 255;
  I157 = 1 & ~g121;
  g158 = 1 & (g119 & I157);
  g159 = 1 & (g158 & g116);
  g160 = 1 & (g159 & g113);
  g618 = (1 & hold>>3) & 1 | g160 & 1;
  g619 = 1 & (g618 & g103);
  mem_write101 = 247 & mem_write101 | (1 & g619)<<3 & 255;
  I162 = 1 & ~g119;
  g163 = 1 & (g116 & I162);
  g164 = 1 & (g163 & g113);
  g615 = (1 & hold>>2) & 1 | g164 & 1;
  g616 = 1 & (g615 & g103);
  mem_write101 = 251 & mem_write101 | (1 & g616)<<2 & 255;
  I166 = 1 & ~g116;
  g167 = 1 & (I166 & g113);
  g612 = (1 & hold>>1) & 1 | g167 & 1;
  g613 = 1 & (g103 & g612);
  mem_write101 = 253 & mem_write101 | (1 & g613)<<1 & 255;
  I169 = 1 & ~g113;
  g609 = (1 & hold) & 1 | I169 & 1;
  g610 = 1 & (g609 & g103);
  mem_write101 = 254 & mem_write101 | 1 & g610;
  I105 = 1 & ~(1 & phase);
  g106 = (1 & phase>>1) & 1 | I105 & 1;
  I107 = 1 & ~g106;
  g234 = 1 & (I107 & pc);
  g591 = 1 & (g234 & g103);
  I104 = 1 & ~g103;
  g592 = I104 & 1 | g591 & 1;
  I213 = 1 & ~*reset;
  g593 = 1 & (g592 & I213);
  memcen102 = 1 & g593;
  g170 = 1 & ((1 & cv_mem_read) & I169);
  g168 = 1 & ((1 & cv_mem_read>>1) & g167);
  g171 = g168 & 1 | g170 & 1;
  g165 = 1 & ((1 & cv_mem_read>>2) & g164);
  g172 = g165 & 1 | g171 & 1;
  g161 = 1 & ((1 & cv_mem_read>>3) & g160);
  g173 = g172 & 1 | g161 & 1;
  g156 = 1 & ((1 & cv_mem_read>>4) & g155);
  g174 = g156 & 1 | g173 & 1;
  g150 = 1 & (g149 & (1 & cv_mem_read>>5));
  g175 = g174 & 1 | g150 & 1;
  g143 = 1 & (g142 & (1 & cv_mem_read>>6));
  g176 = g175 & 1 | g143 & 1;
  g135 = 1 & ((1 & cv_mem_read>>7) & g134);
  g177 = g176 & 1 | g135 & 1;
  I586 = 1 & ~g177;
  g587 = *guard & 1 | I586 & 1;
  I585 = 1 & ~*hs;
  g588 = 1 & (g587 & I585);
  I110 = 1 & ~(1 & phase>>1);
  g111 = (1 & phase) & 1 | I110 & 1;
  g108 = I107 & 1 | I104 & 1;
  g584 = g108 & 1 | g111 & 1;
  mq589 = 1 & (((g584) ? *guard:g588));
  g590 = 1 & (mq589 & I213);
  I202 = 1 & ~pc;
  mq581 = 1 & (((g106) ? pc:I202));
  mq582 = 1 & (((g103) ? mq581:pc));
  g583 = 1 & (mq582 & I213);
  I224 = 1 & ~(1 & p>>17);
  g578 = 1 & (I224 & (1 & q>>17));
  g267 = 1 & (1 & q>>1 & 1 & q);
  g283 = 1 & (g267 & (1 & q>>2));
  g299 = 1 & (g283 & (1 & q>>3));
  g316 = 1 & (g299 & (1 & q>>4));
  g333 = 1 & (g316 & (1 & q>>5));
  g350 = 1 & (g333 & (1 & q>>6));
  g367 = 1 & (g350 & (1 & q>>7));
  g384 = 1 & (g367 & (1 & q>>8));
  g401 = 1 & (g384 & (1 & q>>9));
  g418 = 1 & (g401 & (1 & q>>10));
  g435 = 1 & (g418 & (1 & q>>11));
  g452 = 1 & (g435 & (1 & q>>12));
  g469 = 1 & (g452 & (1 & q>>13));
  g486 = 1 & (g469 & (1 & q>>14));
  g503 = 1 & (g486 & (1 & q>>15));
  g576 = 1 & (g503 & (1 & q>>16));
  g577 = 1 & (g576 ^ 1 & q>>17);
  mq579 = 1 & (((g103) ? g577:g578));
  g573 = 1 & (I224 & (1 & q>>16));
  g504 = 1 & (g503 ^ 1 & q>>16);
  mq574 = 1 & (((g103) ? g504:g573));
  g570 = 1 & (I224 & (1 & q>>15));
  g487 = 1 & (g486 ^ 1 & q>>15);
  mq571 = 1 & (((g103) ? g487:g570));
  g567 = 1 & (I224 & (1 & q>>14));
  g470 = 1 & (g469 ^ 1 & q>>14);
  mq568 = 1 & (((g103) ? g470:g567));
  g564 = 1 & (I224 & (1 & q>>13));
  g453 = 1 & (g452 ^ 1 & q>>13);
  mq565 = 1 & (((g103) ? g453:g564));
  g561 = 1 & (I224 & (1 & q>>12));
  g436 = 1 & (g435 ^ 1 & q>>12);
  mq562 = 1 & (((g103) ? g436:g561));
  g558 = 1 & (I224 & (1 & q>>11));
  g419 = 1 & (g418 ^ 1 & q>>11);
  mq559 = 1 & (((g103) ? g419:g558));
  g555 = 1 & (I224 & (1 & q>>10));
  g402 = 1 & (g401 ^ 1 & q>>10);
  mq556 = 1 & (((g103) ? g402:g555));
  g552 = 1 & (I224 & (1 & q>>9));
  g385 = 1 & (g384 ^ 1 & q>>9);
  mq553 = 1 & (((g103) ? g385:g552));
  g549 = 1 & (I224 & (1 & q>>8));
  g368 = 1 & (g367 ^ 1 & q>>8);
  mq550 = 1 & (((g103) ? g368:g549));
  g546 = 1 & (I224 & (1 & q>>7));
  g351 = 1 & (g350 ^ 1 & q>>7);
  mq547 = 1 & (((g103) ? g351:g546));
  g543 = 1 & (I224 & (1 & q>>6));
  g334 = 1 & (g333 ^ 1 & q>>6);
  mq544 = 1 & (((g103) ? g334:g543));
  g540 = 1 & (I224 & (1 & q>>5));
  g317 = 1 & (g316 ^ 1 & q>>5);
  mq541 = 1 & (((g103) ? g317:g540));
  g537 = 1 & (I224 & (1 & q>>4));
  g300 = 1 & (g299 ^ 1 & q>>4);
  mq538 = 1 & (((g103) ? g300:g537));
  g534 = 1 & (I224 & (1 & q>>3));
  g284 = 1 & (g283 ^ 1 & q>>3);
  mq535 = 1 & (((g103) ? g284:g534));
  g531 = 1 & (I224 & (1 & q>>2));
  g268 = 1 & (g267 ^ 1 & q>>2);
  mq532 = 1 & (((g103) ? g268:g531));
  g528 = (1 & p>>17) & 1 | (1 & q>>1) & 1;
  g253 = 1 & (1 & q>>1 ^ 1 & q);
  mq529 = 1 & (((g103) ? g253:g528));
  g520 = I202 & 1 | (1 & q>>17) & 1;
  g521 = g106 & 1 | g520 & 1;
  I522 = 1 & ~g521;
  g523 = 1 & (I522 & (1 & p>>17));
  g524 = 1 & (g523 & g103);
  g525 = g524 & 1 | I104 & 1;
  g526 = 1 & (g525 & I213);
  g518 = 1 & (I224 & (1 & q));
  I241 = 1 & ~(1 & q);
  mq519 = 1 & (((g103) ? I241:g518));
  g309 = 1 & (1 & p>>4 & 1 & p>>3);
  g326 = 1 & (g309 & (1 & p>>5));
  g343 = 1 & (g326 & (1 & p>>6));
  g360 = 1 & (g343 & (1 & p>>7));
  g377 = 1 & (g360 & (1 & p>>8));
  g394 = 1 & (g377 & (1 & p>>9));
  g411 = 1 & (g394 & (1 & p>>10));
  g428 = 1 & (g411 & (1 & p>>11));
  g445 = 1 & (g428 & (1 & p>>12));
  g462 = 1 & (g445 & (1 & p>>13));
  g479 = 1 & (g462 & (1 & p>>14));
  g496 = 1 & (g479 & (1 & p>>15));
  g513 = 1 & (g496 & (1 & p>>16));
  g514 = 1 & (g513 ^ 1 & p>>17);
  g515 = 1 & (g514 & I224);
  g508 = 1 & (1 & q>>17 ^ 1 & p>>17);
  g491 = 1 & (1 & q>>16 ^ 1 & p>>16);
  g474 = 1 & (1 & q>>15 ^ 1 & p>>15);
  g457 = 1 & (1 & q>>14 ^ 1 & p>>14);
  g440 = 1 & (1 & q>>13 ^ 1 & p>>13);
  g423 = 1 & (1 & q>>12 ^ 1 & p>>12);
  g406 = 1 & (1 & q>>11 ^ 1 & p>>11);
  g389 = 1 & (1 & q>>10 ^ 1 & p>>10);
  g372 = 1 & (1 & q>>9 ^ 1 & p>>9);
  g355 = 1 & (1 & q>>8 ^ 1 & p>>8);
  g338 = 1 & (1 & q>>7 ^ 1 & p>>7);
  g321 = 1 & (1 & q>>6 ^ 1 & p>>6);
  g304 = 1 & (1 & q>>5 ^ 1 & p>>5);
  g288 = 1 & (1 & q>>4 ^ 1 & p>>4);
  g272 = 1 & (1 & q>>3 ^ 1 & p>>3);
  g257 = 1 & (1 & q>>2 ^ 1 & p>>2);
  g243 = 1 & (1 & q>>1 ^ 1 & p>>1);
  g242 = 1 & (1 & q & 1 & p);
  g255 = 1 & (g243 & g242);
  g254 = 1 & (1 & q>>1 & 1 & p>>1);
  g256 = g255 & 1 | g254 & 1;
  g270 = 1 & (g257 & g256);
  g269 = 1 & (1 & q>>2 & 1 & p>>2);
  g271 = g269 & 1 | g270 & 1;
  g286 = 1 & (g272 & g271);
  g285 = 1 & (1 & q>>3 & 1 & p>>3);
  g287 = g286 & 1 | g285 & 1;
  g302 = 1 & (g288 & g287);
  g301 = 1 & (1 & q>>4 & 1 & p>>4);
  g303 = g302 & 1 | g301 & 1;
  g319 = 1 & (g304 & g303);
  g318 = 1 & (1 & q>>5 & 1 & p>>5);
  g320 = g319 & 1 | g318 & 1;
  g336 = 1 & (g321 & g320);
  g335 = 1 & (1 & q>>6 & 1 & p>>6);
  g337 = g336 & 1 | g335 & 1;
  g353 = 1 & (g338 & g337);
  g352 = 1 & (1 & q>>7 & 1 & p>>7);
  g354 = g353 & 1 | g352 & 1;
  g370 = 1 & (g355 & g354);
  g369 = 1 & (1 & q>>8 & 1 & p>>8);
  g371 = g369 & 1 | g370 & 1;
  g387 = 1 & (g372 & g371);
  g386 = 1 & (1 & q>>9 & 1 & p>>9);
  g388 = g387 & 1 | g386 & 1;
  g404 = 1 & (g389 & g388);
  g403 = 1 & (1 & q>>10 & 1 & p>>10);
  g405 = g404 & 1 | g403 & 1;
  g421 = 1 & (g406 & g405);
  g420 = 1 & (1 & q>>11 & 1 & p>>11);
  g422 = g421 & 1 | g420 & 1;
  g438 = 1 & (g423 & g422);
  g437 = 1 & (1 & q>>12 & 1 & p>>12);
  g439 = g438 & 1 | g437 & 1;
  g455 = 1 & (g439 & g440);
  g454 = 1 & (1 & q>>13 & 1 & p>>13);
  g456 = g455 & 1 | g454 & 1;
  g472 = 1 & (g457 & g456);
  g471 = 1 & (1 & q>>14 & 1 & p>>14);
  g473 = g472 & 1 | g471 & 1;
  g489 = 1 & (g474 & g473);
  g488 = 1 & (1 & q>>15 & 1 & p>>15);
  g490 = g489 & 1 | g488 & 1;
  g506 = 1 & (g491 & g490);
  g505 = 1 & (1 & q>>16 & 1 & p>>16);
  g507 = g506 & 1 | g505 & 1;
  g509 = 1 & (g508 ^ g507);
  mq510 = 1 & (((1 & p>>17) ? g504:g509));
  I223 = 1 & ~(1 & q>>17);
  g511 = 1 & (mq510 & I223);
  g251 = 1 & (1 & p>>1 & 1 & p);
  g265 = 1 & (g251 & (1 & p>>2));
  g281 = 1 & (g265 & (1 & p>>3));
  g297 = 1 & (g281 & (1 & p>>4));
  g314 = 1 & (g297 & (1 & p>>5));
  g331 = 1 & (g314 & (1 & p>>6));
  g348 = 1 & (g331 & (1 & p>>7));
  g365 = 1 & (g348 & (1 & p>>8));
  g382 = 1 & (g365 & (1 & p>>9));
  g399 = 1 & (g382 & (1 & p>>10));
  g416 = 1 & (g399 & (1 & p>>11));
  g433 = 1 & (g416 & (1 & p>>12));
  g450 = 1 & (g433 & (1 & p>>13));
  g467 = 1 & (g450 & (1 & p>>14));
  g484 = 1 & (g467 & (1 & p>>15));
  g501 = 1 & (g484 & (1 & p>>16));
  g502 = 1 & (g501 ^ 1 & p>>17);
  mq512 = 1 & (((g106) ? g502:g511));
  mq516 = 1 & (((g103) ? mq512:g515));
  g497 = 1 & (g496 ^ 1 & p>>16);
  g498 = 1 & (g497 & I224);
  g492 = 1 & (g491 ^ g490);
  mq493 = 1 & (((1 & p>>17) ? g487:g492));
  g494 = 1 & (mq493 & I223);
  g485 = 1 & (g484 ^ 1 & p>>16);
  mq495 = 1 & (((g106) ? g485:g494));
  mq499 = 1 & (((g103) ? mq495:g498));
  g480 = 1 & (g479 ^ 1 & p>>15);
  g481 = 1 & (I224 & g480);
  g475 = 1 & (g474 ^ g473);
  mq476 = 1 & (((1 & p>>17) ? g470:g475));
  g477 = 1 & (mq476 & I223);
  g468 = 1 & (g467 ^ 1 & p>>15);
  mq478 = 1 & (((g106) ? g468:g477));
  mq482 = 1 & (((g103) ? mq478:g481));
  g463 = 1 & (g462 ^ 1 & p>>14);
  g464 = 1 & (I224 & g463);
  g458 = 1 & (g457 ^ g456);
  mq459 = 1 & (((1 & p>>17) ? g453:g458));
  g460 = 1 & (mq459 & I223);
  g451 = 1 & (g450 ^ 1 & p>>14);
  mq461 = 1 & (((g106) ? g451:g460));
  mq465 = 1 & (((g103) ? mq461:g464));
  g446 = 1 & (g445 ^ 1 & p>>13);
  g447 = 1 & (g446 & I224);
  g441 = 1 & (g439 ^ g440);
  mq442 = 1 & (((1 & p>>17) ? g436:g441));
  g443 = 1 & (mq442 & I223);
  g434 = 1 & (g433 ^ 1 & p>>13);
  mq444 = 1 & (((g106) ? g434:g443));
  mq448 = 1 & (((g103) ? mq444:g447));
  g429 = 1 & (g428 ^ 1 & p>>12);
  g430 = 1 & (g429 & I224);
  g424 = 1 & (g423 ^ g422);
  mq425 = 1 & (((1 & p>>17) ? g419:g424));
  g426 = 1 & (mq425 & I223);
  g417 = 1 & (g416 ^ 1 & p>>12);
  mq427 = 1 & (((g106) ? g417:g426));
  mq431 = 1 & (((g103) ? mq427:g430));
  g412 = 1 & (g411 ^ 1 & p>>11);
  g413 = 1 & (I224 & g412);
  g407 = 1 & (g406 ^ g405);
  mq408 = 1 & (((1 & p>>17) ? g402:g407));
  g409 = 1 & (mq408 & I223);
  g400 = 1 & (g399 ^ 1 & p>>11);
  mq410 = 1 & (((g106) ? g400:g409));
  mq414 = 1 & (((g103) ? mq410:g413));
  g395 = 1 & (g394 ^ 1 & p>>10);
  g396 = 1 & (g395 & I224);
  g390 = 1 & (g389 ^ g388);
  mq391 = 1 & (((1 & p>>17) ? g385:g390));
  g392 = 1 & (mq391 & I223);
  g383 = 1 & (g382 ^ 1 & p>>10);
  mq393 = 1 & (((g106) ? g383:g392));
  mq397 = 1 & (((g103) ? mq393:g396));
  g378 = 1 & (g377 ^ 1 & p>>9);
  g379 = 1 & (g378 & I224);
  g373 = 1 & (g372 ^ g371);
  mq374 = 1 & (((1 & p>>17) ? g368:g373));
  g375 = 1 & (mq374 & I223);
  g366 = 1 & (g365 ^ 1 & p>>9);
  mq376 = 1 & (((g106) ? g366:g375));
  mq380 = 1 & (((g103) ? mq376:g379));
  g361 = 1 & (g360 ^ 1 & p>>8);
  g362 = 1 & (I224 & g361);
  g356 = 1 & (g355 ^ g354);
  mq357 = 1 & (((1 & p>>17) ? g351:g356));
  g358 = 1 & (mq357 & I223);
  g349 = 1 & (g348 ^ 1 & p>>8);
  mq359 = 1 & (((g106) ? g349:g358));
  mq363 = 1 & (((g103) ? mq359:g362));
  g344 = 1 & (g343 ^ 1 & p>>7);
  g345 = 1 & (g344 & I224);
  g339 = 1 & (g338 ^ g337);
  mq340 = 1 & (((1 & p>>17) ? g334:g339));
  g341 = 1 & (mq340 & I223);
  g332 = 1 & (g331 ^ 1 & p>>7);
  mq342 = 1 & (((g106) ? g332:g341));
  mq346 = 1 & (((g103) ? mq342:g345));
  g327 = 1 & (g326 ^ 1 & p>>6);
  g328 = 1 & (g327 & I224);
  g322 = 1 & (g321 ^ g320);
  mq323 = 1 & (((1 & p>>17) ? g317:g322));
  g324 = 1 & (mq323 & I223);
  g315 = 1 & (g314 ^ 1 & p>>6);
  mq325 = 1 & (((g106) ? g315:g324));
  mq329 = 1 & (((g103) ? mq325:g328));
  g310 = 1 & (g309 ^ 1 & p>>5);
  g311 = 1 & (I224 & g310);
  g305 = 1 & (g304 ^ g303);
  mq306 = 1 & (((1 & p>>17) ? g300:g305));
  g307 = 1 & (mq306 & I223);
  g298 = 1 & (g297 ^ 1 & p>>5);
  mq308 = 1 & (((g106) ? g298:g307));
  mq312 = 1 & (((g103) ? mq308:g311));
  g293 = 1 & (1 & p>>4 ^ 1 & p>>3);
  g294 = 1 & (g293 & I224);
  g289 = 1 & (g288 ^ g287);
  mq290 = 1 & (((1 & p>>17) ? g284:g289));
  g291 = 1 & (mq290 & I223);
  g282 = 1 & (g281 ^ 1 & p>>4);
  mq292 = 1 & (((g106) ? g282:g291));
  mq295 = 1 & (((g103) ? mq292:g294));
  I277 = 1 & ~(1 & p>>3);
  g278 = 1 & (I277 & I224);
  g273 = 1 & (g272 ^ g271);
  mq274 = 1 & (((1 & p>>17) ? g268:g273));
  g275 = 1 & (mq274 & I223);
  g266 = 1 & (g265 ^ 1 & p>>3);
  mq276 = 1 & (((g106) ? g266:g275));
  mq279 = 1 & (((g103) ? mq276:g278));
  g262 = (1 & p>>17) & 1 | (1 & p>>2) & 1;
  g258 = 1 & (g257 ^ g256);
  mq259 = 1 & (((1 & p>>17) ? g253:g258));
  g260 = 1 & (mq259 & I223);
  g252 = 1 & (g251 ^ 1 & p>>2);
  mq261 = 1 & (((g106) ? g252:g260));
  mq263 = 1 & (((g103) ? mq261:g262));
  g248 = 1 & (I224 & (1 & p>>1));
  g244 = 1 & (g243 ^ g242);
  mq245 = 1 & (((1 & p>>17) ? I241:g244));
  g246 = 1 & (mq245 & I223);
  g240 = 1 & (1 & p>>1 ^ 1 & p);
  mq247 = 1 & (((g106) ? g240:g246));
  mq249 = 1 & (((g103) ? mq247:g248));
  I231 = 1 & ~g111;
  g178 = g177 & 1 | *hs & 1;
  g232 = 1 & (g178 & I231);
  g233 = 1 & (g106 & g232);
  g235 = g234 & 1 | g233 & 1;
  g236 = 1 & (g235 & g103);
  g237 = g236 & 1 | I104 & 1;
  g238 = 1 & (g237 & I213);
  g229 = 1 & (I224 & (1 & p));
  g225 = 1 & (1 & q ^ 1 & p);
  g226 = 1 & (g225 & I224);
  g227 = 1 & (g226 & I223);
  mq228 = 1 & (((g106) ? I114:g227));
  mq230 = 1 & (((g103) ? mq228:g229));
  g221 = 1 & (1 & phase ^ 1 & phase>>1);
  g217 = 1 & (I104 & (1 & p>>17));
  g214 = 1 & ((1 & q>>17) & pc);
  g215 = 1 & (I107 & g214);
  g216 = 1 & (g215 & g103);
  g218 = g217 & 1 | g216 & 1;
  g219 = 1 & (g218 & I213);
  g203 = 1 & (I107 & I202);
  g200 = *reset & 1 | I104 & 1;
  I201 = 1 & ~g200;
  g204 = 1 & (g203 & I201);
  g179 = g178 & 1 | g111 & 1;
  g109 = *reset & 1 | g108 & 1;
  g180 = g179 & 1 | g109 & 1;
  I181 = 1 & ~g180;

}


/* End of tt generated C routine */



Makefile

Here is the makefile used in compilation.


TTVTOC=/local/scratch/djg/scv3

TTVLIB=$(TTVTOC)/ttvtoclib.c

all:pgate
	rem time nice pgate

pbev:primes.c main.c ttvinc.c
	gcc -o pbev -I$(TTVTOC) main.c primes.c $(TTVLIB) 


pgate:primesvnl.c main.c ttvinc.c
	gcc -o pgate -I$(TTVTOC) main.c primesvnl.c $(TTVLIB) 


primes.vnl:primes.cv
	cv2.100  primes.cv -root PRIMEGEN -mlt collect_array_cen


primes.c:primes.cv
	vtoc -mode1 clk -mlt fl_newnet_copy primes.cv -root PRIMEGEN -o primes.c



SRAM

Here is the behavioural model of the SRAM that is needed for the instance generated by CV2.100. This is used for the gate level simulation and input to the second VTOC compilation.

//
module SSRAM32768x8(y, clk, a, cen, d);
  
  input [7:0] d;
  output [7:0] y;
  reg [7:0] y;
  input clk, cen;
  input [14:0] a;

  reg [7:0] mem [32767:0];

  always @(posedge clk) if (cen) mem[a] = d;
 
  always @(clk or a)  y = #10 mem[a];

endmodule


Generated Output

Here is the output from the system in all cases.

Phase = 2, p=0 q=131072 51 d7    ticks =2883734
Prime 1
Prime 2
Prime 3
Prime 5
Prime 7
Prime 11
Prime 13
Prime 17
Prime 19
Prime 23
Prime 29
Prime 31
Prime 37
Prime 41
Prime 43
Prime 47
Prime 53
Prime 59
Prime 61
Prime 67
ttvtoc_finish()

Actually, in the output from the fourth run, the C version of the gate-level version, the system also printed a violation of all the D-types at the start of simulation.


Cv100gates.cv

Here are the behavioural models of the leaf gates needed for the gate level simulation and the second VTOC compilation.

//
// Default library for use with CBG/TT CV2.100
//
// library cv100gates.cv



module MUX2(o, sel, e1, e0); 
  output o;
  input sel, e1, e0;
  assign #5 o = (sel) ? e1 : e0;
endmodule

module DFF(q, d, clk, ce, ar, spare);
  output q;
  reg q;
  initial q = 0;
  input clk;         // Clock (positive edge triggered)
  input d;           // Data input
  input ce;          // Clock enable
  input ar;          // Asynchronous reset
  input spare;


  integer last_d;
  integer last_clk;

  always @(posedge clk or posedge ar) 
	if (ar) q <= #10 0; 
	else if (ce)
		begin
		if ($time - last_d < 5)
			$display("Time %t, DFF %m violated set-up time", $time);
		last_clk = $time;
		q <= #10 (d & 1);
		end 

  always @(d) 
	begin
	last_d = $time;
	if ($time - last_clk < 4)
		$display("Time %t, DFF %m violated hold time", $time);
	end

endmodule 
//
//------------------------------------------------
//
module XOR2(o, i1,i2);
  input i1, i2;
  output o;
  assign #3 o = i1 ^ i2;
endmodule

module XOR3(o, i1,i2,i3);
  input i1, i2, i3;
  output o;
  assign #2 o = i1 ^ i2 ^ i3;
endmodule

module XOR4(o, i1,i2,i3,i4);
  input i1, i2, i3, i4;
  output o;
  assign #2 o = i1 ^ i2 ^ i3 ^ i4;
endmodule

//
//
//------------------------------------------------
module AND2(o, i1,i2);
  input i1, i2;
  output o;
  assign #2 o = i1 & i2;
endmodule

module AND3(o, i1,i2,i3);
  input i1, i2, i3;
  output o;
  assign #2 o = i1 & i2 & i3;
endmodule

module AND4(o, i1,i2,i3,i4);
  input i1, i2, i3, i4;
  output o;
  assign #2 o = i1 & i2 & i3 & i4;
endmodule
//
//------------------------------------------------
module OR2(o, i1,i2);
  input i1, i2;
  output o;
  assign #2 o = i1 | i2;
endmodule


module OR3(o, i1,i2,i3);
  input i1, i2, i3;
  output o;
  assign #2 o = i1 | i2 | i3;
endmodule

module OR4(o, i1,i2,i3,i4);
  input i1, i2, i3, i4;
  output o;
  assign #2 o = i1 | i2 | i3 | i4;
endmodule
//
//
//
//------------------------------------------------

module BUF(o, i);
  output o;
  input i;
  assign #2 o = i;
endmodule
//
//
//
//------------------------------------------------
module INV(o, i);
  output o;
  input i;
  assign #2 o = ~i;  
endmodule
//
//
//------------------------------------------------

// end of 100gates.