OpenCores
URL https://opencores.org/ocsvn/nlprg/nlprg/trunk

Subversion Repositories nlprg

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 1 to Rev 2
    Reverse comparison

Rev 1 → Rev 2

/nlprg/trunk/doc/nlprg8.svg
0,0 → 1,440
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Digital by H.Neemann -->
<!-- created: Mon Apr 13 07:17:35 CEST 2020 -->
 
<svg
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
width="393.6mm"
height="108.6mm"
viewBox="58 108 2624 724">
<g stroke-linecap="square">
<path d="M 1500,640 L 1620,640 L 1620,600 L 60,600 L 60,400 L 100,400 L 114,400" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1546,260 L 1560,260 L 1880,260 L 1880,400 L 1880,700 L 1860,700 L 1856,700" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 140,520 L 200,520 L 580,520 L 980,520 L 1380,520 L 1660,520 L 1960,520 L 2240,520 L 2480,520 L 2480,440 L 2540,440" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 2146,200 L 2160,200 L 2400,200 L 2400,400 L 2400,440" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 220,560 L 220,460 L 260,460" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 620,560 L 620,460 L 640,460" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1020,560 L 1020,460 L 1040,460" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1420,560 L 1420,460 L 1440,460" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1700,560 L 1700,460 L 1720,460" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 2000,560 L 2000,460 L 2020,460" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 2280,560 L 2280,460 L 2300,460" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 2416,780 L 2420,780 L 2460,780 L 2460,400 L 2460,160 L 2400,160 L 2386,160" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1100,400 L 1140,400 L 1180,400 L 1194,400" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 240,340 L 240,400 L 260,400" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 620,340 L 620,400 L 640,400" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1020,340 L 1020,400 L 1040,400" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1420,340 L 1420,400 L 1440,400" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 2080,400 L 2120,400 L 2140,400 L 2140,420 L 2220,420 L 2300,420" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 2360,400 L 2400,400 L 2460,400 L 2480,400 L 2480,420 L 2540,420" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1700,340 L 1700,400 L 1720,400" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 2000,340 L 2000,400 L 2020,400" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 2280,340 L 2280,400 L 2300,400" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 2600,400 L 2640,400 L 2680,400 L 2680,820 L 2420,820 L 2416,820" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 2520,340 L 2520,400 L 2540,400" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1500,400 L 1540,400 L 1620,400 L 1620,300 L 1560,300 L 1546,300" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1380,400 L 1400,400 L 1400,420 L 1440,420" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 320,400 L 360,400 L 400,400 L 440,400 L 454,400" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 700,400 L 740,400 L 780,400 L 820,400 L 834,400" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1780,400 L 1820,400 L 1880,400 L 1900,400 L 1900,420 L 2020,420" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1360,720 L 1400,720 L 1400,780 L 1420,780" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 740,400 L 740,720 L 880,720" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1500,800 L 2320,800" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1620,400 L 1620,420 L 1720,420" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1856,740 L 1860,740 L 2220,740 L 2220,420 L 2220,320" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 960,740 L 980,740 L 980,680 L 1080,680" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1360,680 L 1400,680 L 1400,640 L 1440,640" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 140,560 L 220,560 L 620,560 L 1020,560 L 1420,560 L 1700,560 L 2000,560 L 2280,560 L 2520,560 L 2520,460 L 2540,460" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1660,520 L 1660,440 L 1720,440" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1960,520 L 1960,440 L 2020,440" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 2240,520 L 2240,440 L 2300,440" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 200,520 L 200,440 L 260,440" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 580,520 L 580,440 L 640,440" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 980,520 L 980,440 L 1040,440" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1380,520 L 1380,440 L 1440,440" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 2386,120 L 2400,120 L 2640,120 L 2640,400 L 2640,440" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1500,760 L 1680,760 L 1680,720 L 1760,720" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 400,400 L 400,760 L 880,760" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1160,700 L 1200,700 L 1200,460 L 1260,460 L 1260,420 L 1300,420 L 1314,420" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 200,380 L 220,380 L 220,420 L 260,420" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 520,380 L 540,380 L 540,420 L 640,420" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 900,380 L 960,380 L 960,420 L 1040,420" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1280,380 L 1300,380 L 1314,380" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1540,400 L 1540,440" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 2120,400 L 2120,440" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 780,400 L 780,440" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1620,420 L 1620,600" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1820,400 L 1820,440" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1480,280 L 800,280 L 800,360 L 820,360 L 834,360" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1080,720 L 1060,720 L 1060,760 L 1240,760 L 1240,700 L 1280,700" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 360,400 L 360,440" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 1140,400 L 1140,440" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 2146,240 L 2160,240 L 2220,240 L 2220,320 L 1140,320 L 1140,360 L 1180,360 L 1194,360" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 2080,220 L 380,220 L 380,360 L 440,360 L 454,360" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<path d="M 2320,140 L 60,140 L 60,360 L 100,360 L 114,360" stroke="#3b3b3b" stroke-width="2.8" fill="none"/>
<g>
<circle cx="2220.0" cy="320.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="200.0" cy="520.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1660.0" cy="520.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1960.0" cy="520.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1380.0" cy="520.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="580.0" cy="520.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="980.0" cy="520.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2240.0" cy="520.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1140.0" cy="400.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2120.0" cy="400.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2400.0" cy="400.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2640.0" cy="400.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1540.0" cy="400.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="360.0" cy="400.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="740.0" cy="400.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1820.0" cy="400.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="400.0" cy="400.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="780.0" cy="400.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1620.0" cy="400.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2460.0" cy="400.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1880.0" cy="400.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1620.0" cy="600.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2220.0" cy="420.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1620.0" cy="420.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="220.0" cy="560.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1700.0" cy="560.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2000.0" cy="560.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1420.0" cy="560.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="620.0" cy="560.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1020.0" cy="560.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2280.0" cy="560.0" r="4.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 130,410 L 110,410 C 120,394 120,366 110,350 L 130,350 C 150,350 170,360 180,380 C 170,400 150,410 130,410 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<path d="M 100,410 C 110,400 110,360 100,350" stroke="#000000" stroke-width="2.8" fill="none"/>
<circle cx="190.0" cy="380.0" r="9.0" stroke="#000000" stroke-width="2.8" fill="none" />
<circle cx="100.0" cy="360.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="100.0" cy="400.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="200.0" cy="380.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 261,390 L 319,390 L 319,470 L 261,470 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<text text-anchor="start" x="264.0" y="406.75" fill="#808080" style="font-size:18px">Set</text>
<text text-anchor="start" x="264.0" y="426.75" fill="#808080" style="font-size:18px">D</text>
<path d="M 261,447 L 268,440 L 261,433" stroke="#000000" stroke-width="1.4" fill="none"/>
<text text-anchor="start" x="271.0" y="446.75" fill="#808080" style="font-size:18px">C</text>
<text text-anchor="start" x="264.0" y="466.75" fill="#808080" style="font-size:18px">Clr</text>
<text text-anchor="end" x="316.0" y="406.75" fill="#808080" style="font-size:18px">Q</text>
<text text-anchor="end" x="316.0" y="426.75" fill="#808080" style="font-size:18px"><tspan style="text-decoration:overline;">Q</tspan></text>
<text text-anchor="middle" x="290.0" y="487.5" fill="#808080" style="font-size:18px">D-AS</text>
<circle cx="260.0" cy="400.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="260.0" cy="420.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="260.0" cy="440.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="260.0" cy="460.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="320.0" cy="400.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="320.0" cy="420.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 1041,390 L 1099,390 L 1099,470 L 1041,470 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<text text-anchor="start" x="1044.0" y="406.75" fill="#808080" style="font-size:18px">Set</text>
<text text-anchor="start" x="1044.0" y="426.75" fill="#808080" style="font-size:18px">D</text>
<path d="M 1041,447 L 1048,440 L 1041,433" stroke="#000000" stroke-width="1.4" fill="none"/>
<text text-anchor="start" x="1051.0" y="446.75" fill="#808080" style="font-size:18px">C</text>
<text text-anchor="start" x="1044.0" y="466.75" fill="#808080" style="font-size:18px">Clr</text>
<text text-anchor="end" x="1096.0" y="406.75" fill="#808080" style="font-size:18px">Q</text>
<text text-anchor="end" x="1096.0" y="426.75" fill="#808080" style="font-size:18px"><tspan style="text-decoration:overline;">Q</tspan></text>
<text text-anchor="middle" x="1070.0" y="487.5" fill="#808080" style="font-size:18px">D-AS</text>
<circle cx="1040.0" cy="400.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1040.0" cy="420.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1040.0" cy="440.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1040.0" cy="460.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1100.0" cy="400.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1100.0" cy="420.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 641,390 L 699,390 L 699,470 L 641,470 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<text text-anchor="start" x="644.0" y="406.75" fill="#808080" style="font-size:18px">Set</text>
<text text-anchor="start" x="644.0" y="426.75" fill="#808080" style="font-size:18px">D</text>
<path d="M 641,447 L 648,440 L 641,433" stroke="#000000" stroke-width="1.4" fill="none"/>
<text text-anchor="start" x="651.0" y="446.75" fill="#808080" style="font-size:18px">C</text>
<text text-anchor="start" x="644.0" y="466.75" fill="#808080" style="font-size:18px">Clr</text>
<text text-anchor="end" x="696.0" y="406.75" fill="#808080" style="font-size:18px">Q</text>
<text text-anchor="end" x="696.0" y="426.75" fill="#808080" style="font-size:18px"><tspan style="text-decoration:overline;">Q</tspan></text>
<text text-anchor="middle" x="670.0" y="487.5" fill="#808080" style="font-size:18px">D-AS</text>
<circle cx="640.0" cy="400.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="640.0" cy="420.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="640.0" cy="440.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="640.0" cy="460.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="700.0" cy="400.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="700.0" cy="420.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 1441,390 L 1499,390 L 1499,470 L 1441,470 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<text text-anchor="start" x="1444.0" y="406.75" fill="#808080" style="font-size:18px">Set</text>
<text text-anchor="start" x="1444.0" y="426.75" fill="#808080" style="font-size:18px">D</text>
<path d="M 1441,447 L 1448,440 L 1441,433" stroke="#000000" stroke-width="1.4" fill="none"/>
<text text-anchor="start" x="1451.0" y="446.75" fill="#808080" style="font-size:18px">C</text>
<text text-anchor="start" x="1444.0" y="466.75" fill="#808080" style="font-size:18px">Clr</text>
<text text-anchor="end" x="1496.0" y="406.75" fill="#808080" style="font-size:18px">Q</text>
<text text-anchor="end" x="1496.0" y="426.75" fill="#808080" style="font-size:18px"><tspan style="text-decoration:overline;">Q</tspan></text>
<text text-anchor="middle" x="1470.0" y="487.5" fill="#808080" style="font-size:18px">D-AS</text>
<circle cx="1440.0" cy="400.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1440.0" cy="420.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1440.0" cy="440.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1440.0" cy="460.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1500.0" cy="400.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1500.0" cy="420.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 109,505 L 139,505 L 139,535 L 109,535 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<circle cx="124.0" cy="520.0" r="9.0" stroke="#000000" stroke-width="2.8" fill="none" />
<text text-anchor="end" x="95.0" y="529.0" fill="#000000" style="font-size:24px"><tspan style="font-style:italic;">ck</tspan></text>
<circle cx="140.0" cy="520.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 109,545 L 139,545 L 139,575 L 109,575 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<circle cx="124.0" cy="560.0" r="9.0" stroke="#000000" stroke-width="2.8" fill="none" />
<text text-anchor="end" x="95.0" y="569.0" fill="#000000" style="font-size:24px"><tspan style="font-style:italic;">rst</tspan></text>
<circle cx="140.0" cy="560.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<circle cx="360.0" cy="456.0" r="9.0" stroke="#000000" stroke-width="2.8" fill="none" />
<circle cx="360.0" cy="456.0" r="15.0" stroke="#000000" stroke-width="2.8" fill="none" />
<text text-anchor="end" x="360.0" y="494.0" fill="#000000" style="font-size:24px" transform="rotate(-90,360.0,485.0)" ><tspan style="font-style:italic;">o0</tspan></text>
<circle cx="360.0" cy="440.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<circle cx="780.0" cy="456.0" r="9.0" stroke="#000000" stroke-width="2.8" fill="none" />
<circle cx="780.0" cy="456.0" r="15.0" stroke="#000000" stroke-width="2.8" fill="none" />
<text text-anchor="end" x="780.0" y="494.0" fill="#000000" style="font-size:24px" transform="rotate(-90,780.0,485.0)" ><tspan style="font-style:italic;">o1</tspan></text>
<circle cx="780.0" cy="440.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<circle cx="1140.0" cy="456.0" r="9.0" stroke="#000000" stroke-width="2.8" fill="none" />
<circle cx="1140.0" cy="456.0" r="15.0" stroke="#000000" stroke-width="2.8" fill="none" />
<text text-anchor="end" x="1140.0" y="494.0" fill="#000000" style="font-size:24px" transform="rotate(-90,1140.0,485.0)" ><tspan style="font-style:italic;">o2</tspan></text>
<circle cx="1140.0" cy="440.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<circle cx="1540.0" cy="456.0" r="9.0" stroke="#000000" stroke-width="2.8" fill="none" />
<circle cx="1540.0" cy="456.0" r="15.0" stroke="#000000" stroke-width="2.8" fill="none" />
<text text-anchor="end" x="1540.0" y="494.0" fill="#000000" style="font-size:24px" transform="rotate(-90,1540.0,485.0)" ><tspan style="font-style:italic;">o3</tspan></text>
<circle cx="1540.0" cy="440.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 1330,430 L 1310,430 C 1320,414 1320,386 1310,370 L 1330,370 C 1350,370 1370,380 1380,400 C 1370,420 1350,430 1330,430 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<path d="M 1300,430 C 1310,420 1310,380 1300,370" stroke="#000000" stroke-width="2.8" fill="none"/>
<circle cx="1300.0" cy="380.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1300.0" cy="420.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1380.0" cy="400.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<text text-anchor="end" x="237.0" y="349.0" fill="#000000" style="font-size:24px">0</text>
<circle cx="240.0" cy="340.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<text text-anchor="end" x="617.0" y="349.0" fill="#000000" style="font-size:24px">0</text>
<circle cx="620.0" cy="340.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<text text-anchor="end" x="1017.0" y="349.0" fill="#000000" style="font-size:24px">0</text>
<circle cx="1020.0" cy="340.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<text text-anchor="end" x="1417.0" y="349.0" fill="#000000" style="font-size:24px">0</text>
<circle cx="1420.0" cy="340.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 2021,390 L 2079,390 L 2079,470 L 2021,470 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<text text-anchor="start" x="2024.0" y="406.75" fill="#808080" style="font-size:18px">Set</text>
<text text-anchor="start" x="2024.0" y="426.75" fill="#808080" style="font-size:18px">D</text>
<path d="M 2021,447 L 2028,440 L 2021,433" stroke="#000000" stroke-width="1.4" fill="none"/>
<text text-anchor="start" x="2031.0" y="446.75" fill="#808080" style="font-size:18px">C</text>
<text text-anchor="start" x="2024.0" y="466.75" fill="#808080" style="font-size:18px">Clr</text>
<text text-anchor="end" x="2076.0" y="406.75" fill="#808080" style="font-size:18px">Q</text>
<text text-anchor="end" x="2076.0" y="426.75" fill="#808080" style="font-size:18px"><tspan style="text-decoration:overline;">Q</tspan></text>
<text text-anchor="middle" x="2050.0" y="487.5" fill="#808080" style="font-size:18px">D-AS</text>
<circle cx="2020.0" cy="400.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2020.0" cy="420.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2020.0" cy="440.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2020.0" cy="460.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2080.0" cy="400.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2080.0" cy="420.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 1721,390 L 1779,390 L 1779,470 L 1721,470 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<text text-anchor="start" x="1724.0" y="406.75" fill="#808080" style="font-size:18px">Set</text>
<text text-anchor="start" x="1724.0" y="426.75" fill="#808080" style="font-size:18px">D</text>
<path d="M 1721,447 L 1728,440 L 1721,433" stroke="#000000" stroke-width="1.4" fill="none"/>
<text text-anchor="start" x="1731.0" y="446.75" fill="#808080" style="font-size:18px">C</text>
<text text-anchor="start" x="1724.0" y="466.75" fill="#808080" style="font-size:18px">Clr</text>
<text text-anchor="end" x="1776.0" y="406.75" fill="#808080" style="font-size:18px">Q</text>
<text text-anchor="end" x="1776.0" y="426.75" fill="#808080" style="font-size:18px"><tspan style="text-decoration:overline;">Q</tspan></text>
<text text-anchor="middle" x="1750.0" y="487.5" fill="#808080" style="font-size:18px">D-AS</text>
<circle cx="1720.0" cy="400.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1720.0" cy="420.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1720.0" cy="440.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1720.0" cy="460.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1780.0" cy="400.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1780.0" cy="420.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 2301,390 L 2359,390 L 2359,470 L 2301,470 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<text text-anchor="start" x="2304.0" y="406.75" fill="#808080" style="font-size:18px">Set</text>
<text text-anchor="start" x="2304.0" y="426.75" fill="#808080" style="font-size:18px">D</text>
<path d="M 2301,447 L 2308,440 L 2301,433" stroke="#000000" stroke-width="1.4" fill="none"/>
<text text-anchor="start" x="2311.0" y="446.75" fill="#808080" style="font-size:18px">C</text>
<text text-anchor="start" x="2304.0" y="466.75" fill="#808080" style="font-size:18px">Clr</text>
<text text-anchor="end" x="2356.0" y="406.75" fill="#808080" style="font-size:18px">Q</text>
<text text-anchor="end" x="2356.0" y="426.75" fill="#808080" style="font-size:18px"><tspan style="text-decoration:overline;">Q</tspan></text>
<text text-anchor="middle" x="2330.0" y="487.5" fill="#808080" style="font-size:18px">D-AS</text>
<circle cx="2300.0" cy="400.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2300.0" cy="420.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2300.0" cy="440.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2300.0" cy="460.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2360.0" cy="400.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2360.0" cy="420.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<circle cx="1820.0" cy="456.0" r="9.0" stroke="#000000" stroke-width="2.8" fill="none" />
<circle cx="1820.0" cy="456.0" r="15.0" stroke="#000000" stroke-width="2.8" fill="none" />
<text text-anchor="end" x="1820.0" y="494.0" fill="#000000" style="font-size:24px" transform="rotate(-90,1820.0,485.0)" ><tspan style="font-style:italic;">o4</tspan></text>
<circle cx="1820.0" cy="440.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<circle cx="2120.0" cy="456.0" r="9.0" stroke="#000000" stroke-width="2.8" fill="none" />
<circle cx="2120.0" cy="456.0" r="15.0" stroke="#000000" stroke-width="2.8" fill="none" />
<text text-anchor="end" x="2120.0" y="494.0" fill="#000000" style="font-size:24px" transform="rotate(-90,2120.0,485.0)" ><tspan style="font-style:italic;">o5</tspan></text>
<circle cx="2120.0" cy="440.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<circle cx="2400.0" cy="456.0" r="9.0" stroke="#000000" stroke-width="2.8" fill="none" />
<circle cx="2400.0" cy="456.0" r="15.0" stroke="#000000" stroke-width="2.8" fill="none" />
<text text-anchor="end" x="2400.0" y="494.0" fill="#000000" style="font-size:24px" transform="rotate(-90,2400.0,485.0)" ><tspan style="font-style:italic;">o6</tspan></text>
<circle cx="2400.0" cy="440.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<text text-anchor="end" x="1697.0" y="349.0" fill="#000000" style="font-size:24px">0</text>
<circle cx="1700.0" cy="340.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<text text-anchor="end" x="1997.0" y="349.0" fill="#000000" style="font-size:24px">0</text>
<circle cx="2000.0" cy="340.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<text text-anchor="end" x="2277.0" y="349.0" fill="#000000" style="font-size:24px">0</text>
<circle cx="2280.0" cy="340.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 2541,390 L 2599,390 L 2599,470 L 2541,470 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<text text-anchor="start" x="2544.0" y="406.75" fill="#808080" style="font-size:18px">Set</text>
<text text-anchor="start" x="2544.0" y="426.75" fill="#808080" style="font-size:18px">D</text>
<path d="M 2541,447 L 2548,440 L 2541,433" stroke="#000000" stroke-width="1.4" fill="none"/>
<text text-anchor="start" x="2551.0" y="446.75" fill="#808080" style="font-size:18px">C</text>
<text text-anchor="start" x="2544.0" y="466.75" fill="#808080" style="font-size:18px">Clr</text>
<text text-anchor="end" x="2596.0" y="406.75" fill="#808080" style="font-size:18px">Q</text>
<text text-anchor="end" x="2596.0" y="426.75" fill="#808080" style="font-size:18px"><tspan style="text-decoration:overline;">Q</tspan></text>
<text text-anchor="middle" x="2570.0" y="487.5" fill="#808080" style="font-size:18px">D-AS</text>
<circle cx="2540.0" cy="400.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2540.0" cy="420.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2540.0" cy="440.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2540.0" cy="460.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2600.0" cy="400.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2600.0" cy="420.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<circle cx="2640.0" cy="456.0" r="9.0" stroke="#000000" stroke-width="2.8" fill="none" />
<circle cx="2640.0" cy="456.0" r="15.0" stroke="#000000" stroke-width="2.8" fill="none" />
<text text-anchor="end" x="2640.0" y="494.0" fill="#000000" style="font-size:24px" transform="rotate(-90,2640.0,485.0)" ><tspan style="font-style:italic;">o7</tspan></text>
<circle cx="2640.0" cy="440.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<text text-anchor="end" x="2517.0" y="349.0" fill="#000000" style="font-size:24px">0</text>
<circle cx="2520.0" cy="340.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 2370,110 L 2390,110 C 2380,126 2380,154 2390,170 L 2370,170 C 2350,170 2330,160 2320,140 C 2330,120 2350,110 2370,110 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<path d="M 2400,110 C 2390,120 2390,160 2400,170" stroke="#000000" stroke-width="2.8" fill="none"/>
<circle cx="2400.0" cy="160.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2400.0" cy="120.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2320.0" cy="140.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 2130,190 L 2150,190 C 2140,206 2140,234 2150,250 L 2130,250 C 2110,250 2090,240 2080,220 C 2090,200 2110,190 2130,190 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<path d="M 2160,190 C 2150,200 2150,240 2160,250" stroke="#000000" stroke-width="2.8" fill="none"/>
<circle cx="2160.0" cy="240.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2160.0" cy="200.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2080.0" cy="220.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 1530,250 L 1550,250 C 1540,266 1540,294 1550,310 L 1530,310 C 1510,310 1490,300 1480,280 C 1490,260 1510,250 1530,250 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<path d="M 1560,250 C 1550,260 1550,300 1560,310" stroke="#000000" stroke-width="2.8" fill="none"/>
<circle cx="1560.0" cy="300.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1560.0" cy="260.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1480.0" cy="280.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 1210,410 L 1190,410 C 1200,394 1200,366 1190,350 L 1210,350 C 1230,350 1250,360 1260,380 C 1250,400 1230,410 1210,410 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<path d="M 1180,410 C 1190,400 1190,360 1180,350" stroke="#000000" stroke-width="2.8" fill="none"/>
<circle cx="1270.0" cy="380.0" r="9.0" stroke="#000000" stroke-width="2.8" fill="none" />
<circle cx="1180.0" cy="360.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1180.0" cy="400.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1280.0" cy="380.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 2390,770 L 2420,770 C 2410,786 2410,814 2420,830 L 2400,830 C 2370,830 2350,820 2340,800 C 2350,780 2370,770 2390,770 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<circle cx="2330.0" cy="800.0" r="9.0" stroke="#000000" stroke-width="2.8" fill="none" />
<circle cx="2420.0" cy="820.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2420.0" cy="780.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="2320.0" cy="800.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 1830,690 L 1860,690 C 1850,706 1850,734 1860,750 L 1840,750 C 1810,750 1790,740 1780,720 C 1790,700 1810,690 1830,690 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<circle cx="1770.0" cy="720.0" r="9.0" stroke="#000000" stroke-width="2.8" fill="none" />
<circle cx="1860.0" cy="740.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1860.0" cy="700.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1760.0" cy="720.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 1499,662 L 1461,640 L 1499,618 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<circle cx="1450.0" cy="640.0" r="9.0" stroke="#000000" stroke-width="2.8" fill="none" />
<circle cx="1500.0" cy="640.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1440.0" cy="640.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 1450,750 L 1499,750 L 1499,810 L 1450,810 C 1440,810 1420,800 1421,780 C 1421,760 1440,750 1450,750 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<circle cx="1500.0" cy="800.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1500.0" cy="760.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1420.0" cy="780.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 1310,670 L 1359,670 L 1359,730 L 1310,730 C 1300,730 1280,720 1281,700 C 1281,680 1300,670 1310,670 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<circle cx="1360.0" cy="720.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1360.0" cy="680.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1280.0" cy="700.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 930,770 L 881,770 L 881,710 L 930,710 C 940,710 960,720 959,740 C 959,760 940,770 930,770 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<circle cx="880.0" cy="720.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="880.0" cy="760.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="960.0" cy="740.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 1130,730 L 1081,730 L 1081,670 L 1130,670 C 1140,670 1160,680 1159,700 C 1159,720 1140,730 1130,730 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<circle cx="1080.0" cy="680.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1080.0" cy="720.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="1160.0" cy="700.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 850,410 L 830,410 C 840,394 840,366 830,350 L 850,350 C 870,350 890,360 900,380 C 890,400 870,410 850,410 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<path d="M 820,410 C 830,400 830,360 820,350" stroke="#000000" stroke-width="2.8" fill="none"/>
<circle cx="820.0" cy="360.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="820.0" cy="400.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="900.0" cy="380.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
<g>
<path d="M 470,410 L 450,410 C 460,394 460,366 450,350 L 470,350 C 490,350 510,360 520,380 C 510,400 490,410 470,410 Z" stroke="#000000" stroke-width="2.8" fill="none"/>
<path d="M 440,410 C 450,400 450,360 440,350" stroke="#000000" stroke-width="2.8" fill="none"/>
<circle cx="440.0" cy="360.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="440.0" cy="400.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
<circle cx="520.0" cy="380.0" r="2.0" stroke="#3b3b3b" stroke-width="2.8" fill="#3b3b3b" />
</g>
</g>
</svg>
/nlprg/trunk/rtl/dff.v
0,0 → 1,22
module dff
(
input d,
input ck,
input rst,
output q
 
);
reg state;
 
assign q = state;
 
always @ (posedge ck or posedge rst )
begin
if (rst)
state <= 'h0;
else
state <= d;
end
 
endmodule
 
/nlprg/trunk/rtl/nlprg8.v
0,0 → 1,96
module nlprg8 (
input ck,
input rst,
output o0,
output o1,
output o2,
output o3,
output o4,
output o5,
output o6,
output o7
);
wire s0;
wire o0_temp;
wire s1;
wire o2_temp;
wire s2;
wire o1_temp;
wire s3;
wire o3_temp;
wire o4_temp;
wire o5_temp;
wire o6_temp;
wire o7_temp;
 
dff dff0 (
.d( s0 ),
.ck( ck ),
.rst( rst ),
.q( o0_temp )
);
 
dff dff1 (
.d( s1 ),
.ck( ck ),
.rst( rst ),
.q( o2_temp )
);
 
dff dff2 (
.d( s2 ),
.ck( ck ),
.rst( rst ),
.q( o1_temp )
);
 
dff dff3 (
.d( s3 ),
.ck( ck ),
.rst( rst ),
.q( o3_temp )
);
 
dff dff4 (
.d( o4_temp ),
.ck( ck ),
.rst( rst ),
.q( o5_temp )
);
 
dff dff5 (
.d( o3_temp ),
.ck( ck ),
.rst( rst ),
.q( o4_temp )
);
 
dff dff6 (
.d( o5_temp ),
.ck( ck ),
.rst( rst ),
.q( o6_temp )
);
 
dff dff7 (
.d( o6_temp ),
.ck( ck ),
.rst( rst ),
.q( o7_temp )
);
 
assign s0 = (~ (o6_temp ^ o7_temp) ^ o3_temp);
assign s1 = ~ (~ (o3_temp ^ o4_temp) ^ o1_temp);
assign s2 = ~ (~ (o5_temp ^ o6_temp) ^ o0_temp);
assign s3 = ((o5_temp ^ o2_temp) ^ (~ (o1_temp | o0_temp) & (((o7_temp & o6_temp) & (o5_temp & o4_temp)) & o3_temp)));
assign o0 = o0_temp;
assign o1 = o1_temp;
assign o2 = o2_temp;
assign o3 = o3_temp;
assign o4 = o4_temp;
assign o5 = o5_temp;
assign o6 = o6_temp;
assign o7 = o7_temp;
 
endmodule
 
/nlprg/trunk/tb/log/nlprg8_tb.log
0,0 → 1,257
0 00000000
1 10000000
2 11000000
3 11100000
4 11110000
5 01011000
6 00101100
7 11100110
8 01100011
9 11110001
10 11011000
11 01101100
12 11000110
13 01110011
14 01011001
15 10101100
16 10100110
17 01000011
18 11100001
19 01110000
20 00011000
21 00001100
22 11110110
23 11001011
24 10000101
25 00010010
26 11101001
27 01010100
28 01011010
29 11101101
30 00000110
31 00010011
32 01101001
33 00010100
34 01111010
35 11111101
36 10101110
37 01100111
38 10100011
39 10010001
40 11101000
41 11010100
42 00011010
43 11001101
44 00010110
45 10111011
46 00011101
47 11011110
48 11111111
49 01101111
50 10000111
51 11010011
52 00001001
53 00100100
54 11000010
55 00100001
56 00010000
57 00101000
58 10110100
59 00101010
60 01110101
61 11001010
62 00000101
63 01010010
64 11001001
65 01000100
66 11110010
67 10011001
68 11001100
69 10010110
70 11111011
71 00111101
72 11001110
73 01010111
74 00011011
75 01001101
76 01010110
77 10011011
78 00001101
79 01110110
80 10001011
81 10100101
82 00000010
83 01000001
84 00100000
85 10010000
86 01101000
87 10010100
88 00111010
89 11011101
90 10111110
91 11001111
92 11010111
93 01011011
94 01101101
95 01000110
96 00110011
97 01111001
98 10111100
99 00001110
100 00110111
101 00101011
102 11110101
103 10001010
104 00100101
105 01000010
106 01100001
107 00110000
108 00111000
109 00011100
110 01011110
111 10111111
112 01001111
113 10010111
114 01111011
115 01111101
116 11101110
117 01000111
118 10110011
119 00111001
120 10011100
121 00011110
122 10011111
123 01011111
124 00111111
125 00011111
126 00001111
127 10110111
128 01101011
129 11010101
130 10011010
131 10001101
132 00110110
133 10101011
134 10110101
135 10101010
136 00110101
137 11101010
138 00010101
139 11111010
140 10111101
141 10001110
142 01110111
143 00001011
144 11100101
145 00100010
146 01010001
147 10001000
148 11100100
149 10100010
150 00010001
151 10101000
152 11110100
153 00001010
154 01100101
155 01100010
156 01110001
157 10011000
158 01001100
159 11010110
160 11011011
161 00101101
162 01100110
163 00100011
164 11010001
165 11001000
166 11000100
167 10110010
168 10111001
169 11011100
170 00111110
171 10001111
172 11110111
173 01001011
174 11000101
175 00110010
176 11111001
177 11111100
178 00101110
179 00100111
180 10000011
181 10000001
182 01000000
183 10100000
184 11010000
185 01001000
186 10000100
187 10010010
188 10101001
189 01110100
190 01001010
191 01000101
192 01110010
193 11011001
194 11101100
195 10000110
196 01010011
197 01001001
198 00000100
199 11010010
200 10001001
201 01100100
202 11100010
203 00110001
204 10111000
205 01011100
206 01111110
207 10101111
208 11100111
209 11100011
210 10110001
211 11111000
212 01111100
213 01101110
214 00000111
215 10010011
216 00101001
217 00110100
218 01101010
219 01010101
220 11011010
221 10101101
222 00100110
223 00000011
224 11000001
225 01100000
226 10110000
227 01111000
228 00111100
229 01001110
230 00010111
231 00111011
232 01011101
233 11111110
234 11101111
235 11000111
236 11110011
237 00011001
238 10001100
239 10110110
240 11101011
241 10010101
242 10111010
243 10011101
244 10011110
245 11011111
246 01111111
247 00101111
248 10100111
249 11000011
250 10100001
251 01010000
252 00001000
253 10100100
254 10000010
255 00000001
0 00000000
/nlprg/trunk/tb/wave/prng8_tb.vcd
0,0 → 1,4482
$date
Sat Apr 18 17:08:32 2020
$end
$version
Icarus Verilog
$end
$timescale
1s
$end
$scope module prng8_tb $end
$var wire 1 ! prng_start_state $end
$var wire 1 " o7 $end
$var wire 1 # o6 $end
$var wire 1 $ o5 $end
$var wire 1 % o4 $end
$var wire 1 & o3 $end
$var wire 1 ' o2 $end
$var wire 1 ( o1 $end
$var wire 1 ) o0 $end
$var wire 8 * o [7:0] $end
$var wire 1 + cnt_start_state $end
$var reg 1 , ck $end
$var reg 8 - cnt [7:0] $end
$var reg 1 . endsim $end
$var reg 1 / pass $end
$var reg 1 0 rst $end
$var reg 1 1 rst_d0 $end
$var reg 1 2 rst_d1 $end
$var integer 32 3 f [31:0] $end
$scope module nlprg8_u $end
$var wire 1 , ck $end
$var wire 1 ) o0 $end
$var wire 1 ( o1 $end
$var wire 1 ' o2 $end
$var wire 1 & o3 $end
$var wire 1 % o4 $end
$var wire 1 $ o5 $end
$var wire 1 # o6 $end
$var wire 1 " o7 $end
$var wire 1 0 rst $end
$var wire 1 4 s0 $end
$var wire 1 5 s1 $end
$var wire 1 6 s2 $end
$var wire 1 7 s3 $end
$var wire 1 8 o7_temp $end
$var wire 1 9 o6_temp $end
$var wire 1 : o5_temp $end
$var wire 1 ; o4_temp $end
$var wire 1 < o3_temp $end
$var wire 1 = o2_temp $end
$var wire 1 > o1_temp $end
$var wire 1 ? o0_temp $end
$scope module dff0 $end
$var wire 1 , ck $end
$var wire 1 4 d $end
$var wire 1 0 rst $end
$var wire 1 ? q $end
$var reg 1 ? state $end
$upscope $end
$scope module dff1 $end
$var wire 1 , ck $end
$var wire 1 5 d $end
$var wire 1 0 rst $end
$var wire 1 = q $end
$var reg 1 = state $end
$upscope $end
$scope module dff2 $end
$var wire 1 , ck $end
$var wire 1 6 d $end
$var wire 1 0 rst $end
$var wire 1 > q $end
$var reg 1 > state $end
$upscope $end
$scope module dff3 $end
$var wire 1 , ck $end
$var wire 1 7 d $end
$var wire 1 0 rst $end
$var wire 1 < q $end
$var reg 1 < state $end
$upscope $end
$scope module dff4 $end
$var wire 1 , ck $end
$var wire 1 0 rst $end
$var wire 1 : q $end
$var wire 1 ; d $end
$var reg 1 : state $end
$upscope $end
$scope module dff5 $end
$var wire 1 , ck $end
$var wire 1 < d $end
$var wire 1 0 rst $end
$var wire 1 ; q $end
$var reg 1 ; state $end
$upscope $end
$scope module dff6 $end
$var wire 1 , ck $end
$var wire 1 : d $end
$var wire 1 0 rst $end
$var wire 1 9 q $end
$var reg 1 9 state $end
$upscope $end
$scope module dff7 $end
$var wire 1 , ck $end
$var wire 1 9 d $end
$var wire 1 0 rst $end
$var wire 1 8 q $end
$var reg 1 8 state $end
$upscope $end
$upscope $end
$scope begin cnt_process $end
$upscope $end
$scope begin display_process $end
$upscope $end
$scope begin end_sim_process $end
$upscope $end
$scope begin reset_delay_process $end
$upscope $end
$upscope $end
$enddefinitions $end
#0
$dumpvars
0?
0>
0=
0<
0;
0:
09
08
07
06
05
14
b10000000000000000000000000000011 3
x2
x1
10
x/
x.
bx -
x,
x+
b0 *
0)
0(
0'
0&
0%
0$
0#
0"
1!
$end
#5
00
#10
0/
0.
12
11
1+
b0 -
10
#15
16
01
0+
b1 -
0!
b10000000 *
1)
1?
1,
00
#20
0,
#25
15
02
b10 -
b11000000 *
1(
1>
1,
#30
0,
#35
17
b11 -
b11100000 *
1'
1=
1,
#40
0,
#45
05
04
b100 -
b11110000 *
1&
1<
1,
#50
0,
#55
15
06
07
b101 -
0)
0?
0'
0=
b1011000 *
1%
1;
1,
#60
0,
#65
16
15
14
b110 -
1$
1:
0&
0<
0(
0>
b101100 *
1'
1=
1,
#70
0,
#75
04
16
15
b111 -
1)
1?
1(
1>
0%
0;
b11100110 *
1#
19
1,
#80
0,
#85
14
17
16
b1000 -
1"
18
0$
0:
b1100011 *
0)
0?
1,
#90
0,
#95
05
16
14
b1001 -
1)
1?
1&
1<
b11110001 *
0#
09
1,
#100
0,
#105
15
04
07
b1010 -
0"
08
1%
1;
b11011000 *
0'
0=
1,
#110
0,
#115
05
16
14
b1011 -
0)
0?
1'
1=
0&
0<
b1101100 *
1$
1:
1,
#120
0,
#125
15
04
17
16
b1100 -
1#
19
0%
0;
0'
0=
b11000110 *
1)
1?
1,
#130
0,
#135
05
16
04
b1101 -
0)
0?
1'
1=
1&
1<
0$
0:
b1110011 *
1"
18
1,
#140
0,
#145
06
15
14
07
b1110 -
0#
09
1%
1;
b1011001 *
0'
0=
1,
#150
0,
#155
06
15
14
b1111 -
1)
1?
1'
1=
0(
0>
0&
0<
1$
1:
b10101100 *
0"
08
1,
#160
0,
#165
16
05
04
b10000 -
1#
19
b10100110 *
0%
0;
1,
#170
0,
#175
14
16
15
b10001 -
0)
0?
0'
0=
1(
1>
0$
0:
b1000011 *
1"
18
1,
#180
0,
#185
04
17
16
b10010 -
0#
09
1'
1=
b11100001 *
1)
1?
1,
#190
0,
#195
05
06
04
b10011 -
0)
0?
1&
1<
b1110000 *
0"
08
1,
#200
0,
#205
05
07
b10100 -
1%
1;
0(
0>
b11000 *
0'
0=
1,
#210
0,
#215
15
16
17
14
b10101 -
0&
0<
b1100 *
1$
1:
1,
#220
0,
#225
05
07
16
14
b10110 -
1#
19
0%
0;
1&
1<
1(
1>
1'
1=
b11110110 *
1)
1?
1,
#230
0,
#235
06
14
b10111 -
0'
0=
0&
0<
0$
0:
1%
1;
b11001011 *
1"
18
1,
#240
0,
#245
04
17
05
b11000 -
0#
09
0%
0;
1$
1:
b10000101 *
0(
0>
1,
#250
0,
#255
15
16
07
14
b11001 -
0)
0?
1&
1<
0$
0:
1#
19
b10010 *
0"
08
1,
#260
0,
#265
05
17
16
04
b11010 -
1"
18
0#
09
1%
1;
0&
0<
1(
1>
1'
1=
b11101001 *
1)
1?
1,
#270
0,
#275
16
04
b11011 -
0)
0?
0'
0=
1&
1<
1$
1:
0%
0;
b1010100 *
0"
08
1,
#280
0,
#285
15
14
07
b11100 -
1#
19
1%
1;
b1011010 *
0$
0:
1,
#290
0,
#295
05
06
04
b11101 -
1)
1?
1'
1=
0&
0<
1$
1:
0#
09
b11101101 *
1"
18
1,
#300
0,
#305
05
17
06
b11110 -
0"
08
1#
19
0%
0;
0(
0>
0'
0=
b110 *
0)
0?
1,
#310
0,
#315
15
16
07
04
b11111 -
1&
1<
0$
0:
b10011 *
1"
18
1,
#320
0,
#325
06
05
17
04
b100000 -
0#
09
1%
1;
0&
0<
1(
1>
b1101001 *
1'
1=
1,
#330
0,
#335
16
15
04
b100001 -
0'
0=
0(
0>
1&
1<
1$
1:
0%
0;
b10100 *
0"
08
1,
#340
0,
#345
14
15
b100010 -
1#
19
1%
1;
0$
0:
1(
1>
b1111010 *
1'
1=
1,
#350
0,
#355
06
07
b100011 -
1)
1?
1$
1:
0#
09
b11111101 *
1"
18
1,
#360
0,
#365
16
15
04
b100100 -
0"
08
1#
19
0&
0<
b10101110 *
0(
0>
1,
#370
0,
#375
14
06
15
b100101 -
0)
0?
1(
1>
0%
0;
b1100111 *
1"
18
1,
#380
0,
#385
17
05
06
b100110 -
0$
0:
0(
0>
b10100011 *
1)
1?
1,
#390
0,
#395
15
16
07
14
b100111 -
0'
0=
1&
1<
b10010001 *
0#
09
1,
#400
0,
#405
05
17
14
b101000 -
0"
08
1%
1;
0&
0<
1(
1>
b11101000 *
1'
1=
1,
#410
0,
#415
06
04
b101001 -
0'
0=
1&
1<
1$
1:
b11010100 *
0%
0;
1,
#420
0,
#425
14
07
05
16
b101010 -
1#
19
1%
1;
0$
0:
0(
0>
b11010 *
0)
0?
1,
#430
0,
#435
06
05
17
04
b101011 -
1)
1?
1(
1>
0&
0<
1$
1:
0#
09
b11001101 *
1"
18
1,
#440
0,
#445
15
06
14
b101100 -
0"
08
1#
19
0%
0;
1&
1<
0(
0>
b10110 *
0)
0?
1,
#450
0,
#455
05
04
06
b101101 -
1)
1?
1'
1=
0$
0:
1%
1;
b10111011 *
1"
18
1,
#460
0,
#465
14
16
b101110 -
0#
09
1$
1:
0'
0=
b11101 *
0)
0?
1,
#470
0,
#475
16
15
b101111 -
1)
1?
1(
1>
1#
19
b11011110 *
0"
08
1,
#480
0,
#485
04
07
b110000 -
1"
18
b11111111 *
1'
1=
1,
#490
0,
#495
05
06
14
b110001 -
0)
0?
b1101111 *
0&
0<
1,
#500
0,
#505
05
17
16
b110010 -
0%
0;
0(
0>
0'
0=
b10000111 *
1)
1?
1,
#510
0,
#515
06
05
07
04
b110011 -
1(
1>
1&
1<
b11010011 *
0$
0:
1,
#520
0,
#525
15
06
04
b110100 -
0#
09
1%
1;
0&
0<
0(
0>
b1001 *
0)
0?
1,
#530
0,
#535
16
05
14
b110101 -
1'
1=
1$
1:
0!
0%
0;
b100100 *
0"
08
1,
#540
0,
#545
04
15
06
b110110 -
1#
19
0$
0:
1(
1>
0'
0=
b11000010 *
1)
1?
1,
#550
0,
#555
06
17
05
b110111 -
0)
0?
1'
1=
0(
0>
0#
09
b100001 *
1"
18
1,
#560
0,
#565
15
07
04
b111000 -
0"
08
1&
1<
b10000 *
0'
0=
1,
#570
0,
#575
17
14
b111001 -
1'
1=
0&
0<
b101000 *
1%
1;
1,
#580
0,
#585
07
06
04
b111010 -
0%
0;
1$
1:
1&
1<
b10110100 *
1)
1?
1,
#590
0,
#595
16
17
04
b111011 -
0)
0?
0&
0<
0$
0:
1%
1;
b101010 *
1#
19
1,
#600
0,
#605
07
05
14
b111100 -
1"
18
0#
09
0%
0;
1$
1:
1&
1<
b1110101 *
1(
1>
1,
#610
0,
#615
06
04
b111101 -
1)
1?
0'
0=
0&
0<
0$
0:
1%
1;
1#
19
b11001010 *
0"
08
1,
#620
0,
#625
17
05
16
b111110 -
1"
18
0#
09
0%
0;
1$
1:
0(
0>
b101 *
0)
0?
1,
#630
0,
#635
05
07
14
b111111 -
1(
1>
1&
1<
0$
0:
1#
19
b1010010 *
0"
08
1,
#640
0,
#645
16
04
b1000000 -
1"
18
0#
09
1%
1;
0&
0<
b11001001 *
1)
1?
1,
#650
0,
#655
15
14
16
17
b1000001 -
0)
0?
1$
1:
0%
0;
b1000100 *
0"
08
1,
#660
0,
#665
05
06
14
b1000010 -
1#
19
0$
0:
1&
1<
1'
1=
b11110010 *
1)
1?
1,
#670
0,
#675
16
07
05
b1000011 -
0'
0=
0(
0>
1%
1;
0#
09
b10011001 *
1"
18
1,
#680
0,
#685
06
17
05
14
b1000100 -
0"
08
1$
1:
0&
0<
b11001100 *
1(
1>
1,
#690
0,
#695
16
15
14
b1000101 -
0(
0>
1&
1<
0%
0;
b10010110 *
1#
19
1,
#700
0,
#705
06
04
15
b1000110 -
1"
18
1%
1;
0$
0:
1(
1>
b11111011 *
1'
1=
1,
#710
0,
#715
14
16
05
07
b1000111 -
0)
0?
0(
0>
1$
1:
b111101 *
0#
09
1,
#720
0,
#725
05
17
16
04
b1001000 -
0"
08
1#
19
0&
0<
1(
1>
0'
0=
b11001110 *
1)
1?
1,
#730
0,
#735
06
04
b1001001 -
0)
0?
1&
1<
0%
0;
b1010111 *
1"
18
1,
#740
0,
#745
16
07
05
b1001010 -
1%
1;
0$
0:
b11011 *
0(
0>
1,
#750
0,
#755
05
17
04
b1001011 -
1(
1>
0&
0<
1$
1:
b1001101 *
0#
09
1,
#760
0,
#765
06
14
b1001100 -
0"
08
1#
19
0%
0;
b1010110 *
1&
1<
1,
#770
0,
#775
04
06
05
07
b1001101 -
1)
1?
0(
0>
0$
0:
1%
1;
b10011011 *
1"
18
1,
#780
0,
#785
15
17
16
04
b1001110 -
0#
09
1$
1:
0&
0<
b1101 *
0)
0?
1,
#790
0,
#795
06
07
05
14
b1001111 -
1'
1=
1(
1>
1&
1<
0%
0;
1#
19
b1110110 *
0"
08
1,
#800
0,
#805
15
06
14
b1010000 -
1"
18
1%
1;
0$
0:
0&
0<
0(
0>
0'
0=
b10001011 *
1)
1?
1,
#810
0,
#815
05
04
b1010001 -
1'
1=
1$
1:
0%
0;
b10100101 *
0#
09
1,
#820
0,
#825
16
b1010010 -
0"
08
1#
19
0$
0:
0'
0=
b10 *
0)
0?
1,
#830
0,
#835
06
15
b1010011 -
1(
1>
0#
09
b1000001 *
1"
18
1,
#840
0,
#845
14
05
17
b1010100 -
0"
08
0(
0>
b100000 *
1'
1=
1,
#850
0,
#855
15
16
07
04
b1010101 -
1)
1?
0'
0=
b10010000 *
1&
1<
1,
#860
0,
#865
05
17
06
14
b1010110 -
1%
1;
0&
0<
1(
1>
1'
1=
b1101000 *
0)
0?
1,
#870
0,
#875
06
15
04
b1010111 -
1)
1?
0'
0=
0(
0>
1&
1<
1$
1:
b10010100 *
0%
0;
1,
#880
0,
#885
05
14
16
b1011000 -
1#
19
1%
1;
0$
0:
1'
1=
b111010 *
0)
0?
1,
#890
0,
#895
06
15
b1011001 -
1)
1?
0'
0=
1(
1>
1$
1:
0#
09
b11011101 *
1"
18
1,
#900
0,
#905
16
05
07
b1011010 -
0"
08
1#
19
0(
0>
b10111110 *
1'
1=
1,
#910
0,
#915
17
05
14
b1011011 -
0'
0=
1(
1>
0&
0<
b11001111 *
1"
18
1,
#920
0,
#925
04
b1011100 -
0%
0;
b11010111 *
1&
1<
1,
#930
0,
#935
15
16
07
b1011101 -
0)
0?
0$
0:
b1011011 *
1%
1;
1,
#940
0,
#945
05
04
b1011110 -
0#
09
1$
1:
0&
0<
b1101101 *
1'
1=
1,
#950
0,
#955
15
06
17
b1011111 -
0'
0=
0%
0;
1#
19
b1000110 *
0"
08
1,
#960
0,
#965
16
15
04
b1100000 -
1"
18
0$
0:
1&
1<
0(
0>
b110011 *
1'
1=
1,
#970
0,
#975
06
14
15
b1100001 -
1(
1>
1%
1;
b1111001 *
0#
09
1,
#980
0,
#985
04
07
05
06
b1100010 -
0"
08
1$
1:
0(
0>
b10111100 *
1)
1?
1,
#990
0,
#995
15
06
17
04
b1100011 -
0)
0?
0'
0=
0&
0<
b1110 *
1#
19
1,
#1000
0,
#1005
07
04
b1100100 -
1"
18
0%
0;
1&
1<
b110111 *
1'
1=
1,
#1010
0,
#1015
16
17
14
b1100101 -
0&
0<
0$
0:
b101011 *
1%
1;
1,
#1020
0,
#1025
07
05
06
14
b1100110 -
0#
09
0%
0;
1$
1:
1&
1<
1(
1>
b11110101 *
1)
1?
1,
#1030
0,
#1035
15
04
b1100111 -
0'
0=
0(
0>
0&
0<
0$
0:
1%
1;
1#
19
b10001010 *
0"
08
1,
#1040
0,
#1045
05
16
b1101000 -
1"
18
0#
09
0%
0;
1$
1:
1'
1=
b100101 *
0)
0?
1,
#1050
0,
#1055
15
b1101001 -
0'
0=
1(
1>
0$
0:
1#
19
b1000010 *
0"
08
1,
#1060
0,
#1065
06
17
b1101010 -
1"
18
0#
09
b1100001 *
1'
1=
1,
#1070
0,
#1075
15
04
b1101011 -
0(
0>
1&
1<
b110000 *
0"
08
1,
#1080
0,
#1085
05
b1101100 -
b111000 *
1%
1;
1,
#1090
0,
#1095
16
b1101101 -
0'
0=
b11100 *
1$
1:
1,
#1100
0,
#1105
06
14
15
b1101110 -
1#
19
b1011110 *
1(
1>
1,
#1110
0,
#1115
04
16
07
05
b1101111 -
1)
1?
1'
1=
0(
0>
b10111111 *
1"
18
1,
#1120
0,
#1125
05
17
06
14
b1110000 -
0&
0<
1(
1>
0'
0=
b1001111 *
0)
0?
1,
#1130
0,
#1135
16
15
04
b1110001 -
1)
1?
0(
0>
1&
1<
b10010111 *
0%
0;
1,
#1140
0,
#1145
15
16
b1110010 -
1%
1;
0$
0:
1(
1>
1'
1=
b1111011 *
0)
0?
1,
#1150
0,
#1155
14
07
b1110011 -
1$
1:
b1111101 *
0#
09
1,
#1160
0,
#1165
05
16
04
b1110100 -
0"
08
1#
19
0&
0<
b11101110 *
1)
1?
1,
#1170
0,
#1175
15
14
06
17
b1110101 -
0)
0?
0'
0=
0%
0;
b1000111 *
1"
18
1,
#1180
0,
#1185
15
06
04
b1110110 -
0$
0:
1&
1<
0(
0>
1'
1=
b10110011 *
1)
1?
1,
#1190
0,
#1195
05
14
06
b1110111 -
0)
0?
1%
1;
b111001 *
0#
09
1,
#1200
0,
#1205
04
06
b1111000 -
0"
08
1$
1:
0'
0=
b10011100 *
1)
1?
1,
#1210
0,
#1215
14
06
b1111001 -
0)
0?
b11110 *
1#
19
1,
#1220
0,
#1225
04
16
b1111010 -
1"
18
b10011111 *
1)
1?
1,
#1230
0,
#1235
06
15
b1111011 -
0)
0?
b1011111 *
1(
1>
1,
#1240
0,
#1245
05
17
b1111100 -
0(
0>
b111111 *
1'
1=
1,
#1250
0,
#1255
07
b1111101 -
b11111 *
0'
0=
1,
#1260
0,
#1265
15
17
14
b1111110 -
b1111 *
0&
0<
1,
#1270
0,
#1275
07
16
04
b1111111 -
1)
1?
1'
1=
1&
1<
b10110111 *
0%
0;
1,
#1280
0,
#1285
17
05
16
14
b10000000 -
1%
1;
0$
0:
0&
0<
1(
1>
b1101011 *
0)
0?
1,
#1290
0,
#1295
06
14
b10000001 -
1)
1?
0'
0=
1&
1<
1$
1:
0%
0;
b11010101 *
0#
09
1,
#1300
0,
#1305
07
05
b10000010 -
0"
08
1#
19
1%
1;
0$
0:
b10011010 *
0(
0>
1,
#1310
0,
#1315
15
17
04
b10000011 -
0&
0<
1$
1:
0#
09
b10001101 *
1"
18
1,
#1320
0,
#1325
07
06
14
b10000100 -
0"
08
1#
19
0%
0;
1&
1<
1'
1=
b110110 *
0)
0?
1,
#1330
0,
#1335
06
17
14
b10000101 -
1)
1?
0&
0<
0$
0:
1%
1;
b10101011 *
1"
18
1,
#1340
0,
#1345
07
14
b10000110 -
0#
09
0%
0;
1$
1:
b10110101 *
1&
1<
1,
#1350
0,
#1355
17
04
b10000111 -
0&
0<
0$
0:
1%
1;
1#
19
b10101010 *
0"
08
1,
#1360
0,
#1365
07
16
14
b10001000 -
1"
18
0#
09
0%
0;
1$
1:
1&
1<
b110101 *
0)
0?
1,
#1370
0,
#1375
06
05
17
04
b10001001 -
1)
1?
1(
1>
0&
0<
0$
0:
1%
1;
1#
19
b11101010 *
0"
08
1,
#1380
0,
#1385
15
16
14
b10001010 -
1"
18
0#
09
0%
0;
1$
1:
1&
1<
0(
0>
0'
0=
b10101 *
0)
0?
1,
#1390
0,
#1395
06
15
b10001011 -
1)
1?
1'
1=
1(
1>
0$
0:
1%
1;
1#
19
b11111010 *
0"
08
1,
#1400
0,
#1405
07
05
b10001100 -
1"
18
0#
09
1$
1:
b10111101 *
0(
0>
1,
#1410
0,
#1415
15
16
17
04
b10001101 -
0'
0=
0&
0<
1#
19
b10001110 *
0"
08
1,
#1420
0,
#1425
05
07
06
04
b10001110 -
1"
18
0%
0;
1&
1<
1(
1>
1'
1=
b1110111 *
0)
0?
1,
#1430
0,
#1435
16
15
14
b10001111 -
0'
0=
0(
0>
0&
0<
0$
0:
b1011 *
1%
1;
1,
#1440
0,
#1445
04
15
06
b10010000 -
0#
09
0%
0;
1$
1:
1(
1>
1'
1=
b11100101 *
1)
1?
1,
#1450
0,
#1455
16
05
17
b10010001 -
0)
0?
0(
0>
0$
0:
1#
19
b100010 *
0"
08
1,
#1460
0,
#1465
06
05
07
14
b10010010 -
1"
18
0#
09
1&
1<
1(
1>
b1010001 *
0'
0=
1,
#1470
0,
#1475
16
15
14
b10010011 -
1)
1?
0(
0>
0&
0<
1%
1;
b10001000 *
0"
08
1,
#1480
0,
#1485
06
15
b10010100 -
0%
0;
1$
1:
1(
1>
b11100100 *
1'
1=
1,
#1490
0,
#1495
04
05
17
b10010101 -
0(
0>
0$
0:
b10100010 *
1#
19
1,
#1500
0,
#1505
15
07
06
14
b10010110 -
1"
18
0#
09
1&
1<
0'
0=
b10001 *
0)
0?
1,
#1510
0,
#1515
16
17
14
b10010111 -
1)
1?
1'
1=
0&
0<
1%
1;
b10101000 *
0"
08
1,
#1520
0,
#1525
06
07
05
04
b10011000 -
0%
0;
1$
1:
1&
1<
b11110100 *
1(
1>
1,
#1530
0,
#1535
16
15
04
b10011001 -
0)
0?
0'
0=
0(
0>
0&
0<
0$
0:
1%
1;
b1010 *
1#
19
1,
#1540
0,
#1545
15
b10011010 -
1"
18
0#
09
0%
0;
1$
1:
1(
1>
b1100101 *
1'
1=
1,
#1550
0,
#1555
17
b10011011 -
0$
0:
1#
19
b1100010 *
0"
08
1,
#1560
0,
#1565
06
05
14
b10011100 -
1"
18
0#
09
b1110001 *
1&
1<
1,
#1570
0,
#1575
04
16
07
05
b10011101 -
1)
1?
0'
0=
0(
0>
1%
1;
b10011000 *
0"
08
1,
#1580
0,
#1585
17
05
16
14
b10011110 -
1$
1:
0&
0<
1(
1>
b1001100 *
0)
0?
1,
#1590
0,
#1595
16
14
b10011111 -
1)
1?
1&
1<
0%
0;
b11010110 *
1#
19
1,
#1600
0,
#1605
15
06
04
07
b10100000 -
1"
18
1%
1;
b11011011 *
0$
0:
1,
#1610
0,
#1615
16
15
04
b10100001 -
0)
0?
1'
1=
0(
0>
0&
0<
1$
1:
b101101 *
0#
09
1,
#1620
0,
#1625
06
15
b10100010 -
0"
08
1#
19
0%
0;
b1100110 *
1(
1>
1,
#1630
0,
#1635
16
14
05
17
b10100011 -
0(
0>
0$
0:
b100011 *
1"
18
1,
#1640
0,
#1645
05
07
16
14
b10100100 -
0#
09
1&
1<
1(
1>
0'
0=
b11010001 *
1)
1?
1,
#1650
0,
#1655
14
b10100101 -
0&
0<
1%
1;
b11001000 *
0"
08
1,
#1660
0,
#1665
15
06
17
b10100110 -
0%
0;
b11000100 *
1$
1:
1,
#1670
0,
#1675
15
14
b10100111 -
1'
1=
0(
0>
1&
1<
0$
0:
b10110010 *
1#
19
1,
#1680
0,
#1685
16
05
b10101000 -
1"
18
0#
09
b10111001 *
1%
1;
1,
#1690
0,
#1695
06
04
15
b10101001 -
0'
0=
1(
1>
1$
1:
b11011100 *
0"
08
1,
#1700
0,
#1705
14
05
07
06
b10101010 -
1#
19
0(
0>
1'
1=
b111110 *
0)
0?
1,
#1710
0,
#1715
15
16
17
14
b10101011 -
1)
1?
0'
0=
0&
0<
b10001111 *
1"
18
1,
#1720
0,
#1725
05
07
04
b10101100 -
0%
0;
1&
1<
1(
1>
b11110111 *
1'
1=
1,
#1730
0,
#1735
16
14
b10101101 -
0)
0?
0'
0=
0&
0<
0$
0:
b1001011 *
1%
1;
1,
#1740
0,
#1745
15
04
17
06
b10101110 -
0#
09
0%
0;
1$
1:
b11000101 *
1)
1?
1,
#1750
0,
#1755
16
15
14
b10101111 -
0)
0?
1'
1=
0(
0>
1&
1<
0$
0:
1#
19
b110010 *
0"
08
1,
#1760
0,
#1765
15
16
b10110000 -
1"
18
0#
09
1%
1;
1(
1>
b11111001 *
1)
1?
1,
#1770
0,
#1775
06
04
07
b10110001 -
1$
1:
b11111100 *
0"
08
1,
#1780
0,
#1785
15
06
04
b10110010 -
1#
19
0&
0<
0(
0>
b101110 *
0)
0?
1,
#1790
0,
#1795
05
14
b10110011 -
0%
0;
b100111 *
1"
18
1,
#1800
0,
#1805
06
b10110100 -
0$
0:
0'
0=
b10000011 *
1)
1?
1,
#1810
0,
#1815
16
04
b10110101 -
b10000001 *
0#
09
1,
#1820
0,
#1825
14
15
06
b10110110 -
0"
08
1(
1>
b1000000 *
0)
0?
1,
#1830
0,
#1835
16
17
05
b10110111 -
1)
1?
1'
1=
0!
b10100000 *
0(
0>
1,
#1840
0,
#1845
05
07
04
b10111000 -
1&
1<
1(
1>
b11010000 *
0'
0=
1,
#1850
0,
#1855
06
14
b10111001 -
0)
0?
0&
0<
b1001000 *
1%
1;
1,
#1860
0,
#1865
17
05
06
b10111010 -
0%
0;
1$
1:
0(
0>
b10000100 *
1)
1?
1,
#1870
0,
#1875
15
07
14
b10111011 -
1&
1<
0$
0:
b10010010 *
1#
19
1,
#1880
0,
#1885
16
17
04
b10111100 -
1"
18
0#
09
1%
1;
0&
0<
b10101001 *
1'
1=
1,
#1890
0,
#1895
16
05
07
04
b10111101 -
0)
0?
1(
1>
1&
1<
1$
1:
0%
0;
b1110100 *
0"
08
1,
#1900
0,
#1905
04
b10111110 -
1#
19
1%
1;
0$
0:
0&
0<
b1001010 *
0'
0=
1,
#1910
0,
#1915
15
17
b10111111 -
1$
1:
0%
0;
0#
09
b1000101 *
1"
18
1,
#1920
0,
#1925
05
14
b11000000 -
0"
08
1#
19
0$
0:
1&
1<
b1110010 *
1'
1=
1,
#1930
0,
#1935
15
16
07
b11000001 -
1)
1?
0'
0=
1%
1;
0#
09
b11011001 *
1"
18
1,
#1940
0,
#1945
06
05
14
b11000010 -
0"
08
1$
1:
0&
0<
b11101100 *
1'
1=
1,
#1950
0,
#1955
16
04
17
05
b11000011 -
0'
0=
0(
0>
0%
0;
b10000110 *
1#
19
1,
#1960
0,
#1965
07
05
16
04
b11000100 -
1"
18
0$
0:
1&
1<
1(
1>
b1010011 *
0)
0?
1,
#1970
0,
#1975
06
04
b11000101 -
0&
0<
1%
1;
b1001001 *
0#
09
1,
#1980
0,
#1985
16
14
17
05
b11000110 -
0"
08
0%
0;
1$
1:
b100 *
0(
0>
1,
#1990
0,
#1995
06
05
07
14
b11000111 -
1)
1?
1(
1>
1&
1<
0$
0:
b11010010 *
1#
19
1,
#2000
0,
#2005
16
15
04
b11001000 -
1"
18
0#
09
1%
1;
0&
0<
b10001001 *
0(
0>
1,
#2010
0,
#2015
14
16
15
b11001001 -
0)
0?
1'
1=
1(
1>
1$
1:
0%
0;
b1100100 *
0"
08
1,
#2020
0,
#2025
04
17
06
b11001010 -
1#
19
0$
0:
b11100010 *
1)
1?
1,
#2030
0,
#2035
06
15
14
b11001011 -
0)
0?
0(
0>
1&
1<
0#
09
b110001 *
1"
18
1,
#2040
0,
#2045
05
04
16
b11001100 -
0"
08
1%
1;
b10111000 *
1)
1?
1,
#2050
0,
#2055
16
15
b11001101 -
0)
0?
0'
0=
1(
1>
b1011100 *
1$
1:
1,
#2060
0,
#2065
06
14
07
b11001110 -
1#
19
b1111110 *
1'
1=
1,
#2070
0,
#2075
16
15
14
b11001111 -
1)
1?
0(
0>
0&
0<
b10101111 *
1"
18
1,
#2080
0,
#2085
15
b11010000 -
0%
0;
b11100111 *
1(
1>
1,
#2090
0,
#2095
06
17
b11010001 -
b11100011 *
0$
0:
1,
#2100
0,
#2105
16
15
14
b11010010 -
0#
09
1&
1<
b10110001 *
0(
0>
1,
#2110
0,
#2115
04
15
b11010011 -
1(
1>
1%
1;
b11111000 *
0"
08
1,
#2120
0,
#2125
07
16
b11010100 -
1$
1:
b1111100 *
0)
0?
1,
#2130
0,
#2135
05
06
04
b11010101 -
0&
0<
b1101110 *
1#
19
1,
#2140
0,
#2145
14
05
17
b11010110 -
1"
18
0%
0;
0(
0>
b111 *
0'
0=
1,
#2150
0,
#2155
15
06
07
04
b11010111 -
1)
1?
1&
1<
b10010011 *
0$
0:
1,
#2160
0,
#2165
17
06
04
b11011000 -
0#
09
1%
1;
0&
0<
1'
1=
b101001 *
0)
0?
1,
#2170
0,
#2175
16
07
04
b11011001 -
1&
1<
1$
1:
0%
0;
b110100 *
0"
08
1,
#2180
0,
#2185
17
05
04
b11011010 -
1#
19
1%
1;
0$
0:
0&
0<
b1101010 *
1(
1>
1,
#2190
0,
#2195
14
b11011011 -
0'
0=
1&
1<
1$
1:
0%
0;
0#
09
b1010101 *
1"
18
1,
#2200
0,
#2205
15
07
06
b11011100 -
0"
08
1#
19
1%
1;
0$
0:
b11011010 *
1)
1?
1,
#2210
0,
#2215
15
04
b11011101 -
1'
1=
0(
0>
0&
0<
1$
1:
0#
09
b10101101 *
1"
18
1,
#2220
0,
#2225
05
06
b11011110 -
0"
08
1#
19
0%
0;
b100110 *
0)
0?
1,
#2230
0,
#2235
16
14
b11011111 -
0'
0=
0$
0:
b11 *
1"
18
1,
#2240
0,
#2245
04
15
16
b11100000 -
0#
09
1(
1>
b11000001 *
1)
1?
1,
#2250
0,
#2255
14
06
17
b11100001 -
0)
0?
1'
1=
b1100000 *
0"
08
1,
#2260
0,
#2265
15
16
04
b11100010 -
1&
1<
0(
0>
b10110000 *
1)
1?
1,
#2270
0,
#2275
06
15
b11100011 -
0)
0?
1(
1>
b1111000 *
1%
1;
1,
#2280
0,
#2285
16
07
05
b11100100 -
1$
1:
b111100 *
0(
0>
1,
#2290
0,
#2295
06
17
05
04
b11100101 -
0'
0=
1(
1>
0&
0<
b1001110 *
1#
19
1,
#2300
0,
#2305
15
04
b11100110 -
1"
18
0%
0;
1&
1<
b10111 *
0(
0>
1,
#2310
0,
#2315
16
05
b11100111 -
1'
1=
0$
0:
b111011 *
1%
1;
1,
#2320
0,
#2325
14
15
b11101000 -
0#
09
1$
1:
1(
1>
b1011101 *
0'
0=
1,
#2330
0,
#2335
16
07
b11101001 -
1)
1?
1'
1=
1#
19
b11111110 *
0"
08
1,
#2340
0,
#2345
05
14
b11101010 -
1"
18
b11101111 *
0&
0<
1,
#2350
0,
#2355
15
17
b11101011 -
0'
0=
b11000111 *
0%
0;
1,
#2360
0,
#2365
06
05
04
b11101100 -
0$
0:
1&
1<
b11110011 *
1'
1=
1,
#2370
0,
#2375
14
06
07
05
b11101101 -
0)
0?
0'
0=
0(
0>
1%
1;
b11001 *
0#
09
1,
#2380
0,
#2385
15
17
06
14
b11101110 -
0"
08
1$
1:
0&
0<
b10001100 *
1)
1?
1,
#2390
0,
#2395
16
07
14
b11101111 -
1'
1=
1&
1<
0%
0;
b10110110 *
1#
19
1,
#2400
0,
#2405
06
17
05
14
b11110000 -
1"
18
1%
1;
0$
0:
0&
0<
b11101011 *
1(
1>
1,
#2410
0,
#2415
15
14
b11110001 -
0'
0=
0(
0>
1&
1<
1$
1:
0%
0;
b10010101 *
0#
09
1,
#2420
0,
#2425
05
b11110010 -
0"
08
1#
19
1%
1;
0$
0:
b10111010 *
1'
1=
1,
#2430
0,
#2435
b11110011 -
0'
0=
1$
1:
0#
09
b10011101 *
1"
18
1,
#2440
0,
#2445
16
b11110100 -
0"
08
b10011110 *
1#
19
1,
#2450
0,
#2455
04
15
b11110101 -
1(
1>
b11011111 *
1"
18
1,
#2460
0,
#2465
07
06
b11110110 -
1'
1=
b1111111 *
0)
0?
1,
#2470
0,
#2475
15
14
b11110111 -
0(
0>
b101111 *
0&
0<
1,
#2480
0,
#2485
05
16
b11111000 -
0%
0;
b10100111 *
1)
1?
1,
#2490
0,
#2495
06
15
b11111001 -
0'
0=
1(
1>
b11000011 *
0$
0:
1,
#2500
0,
#2505
16
04
05
17
b11111010 -
0#
09
0(
0>
b10100001 *
1'
1=
1,
#2510
0,
#2515
06
07
05
04
b11111011 -
0)
0?
0'
0=
1(
1>
1&
1<
b1010000 *
0"
08
1,
#2520
0,
#2525
15
14
b11111100 -
1%
1;
0!
0&
0<
b1000 *
0(
0>
1,
#2530
0,
#2535
05
06
b11111101 -
1)
1?
1'
1=
1$
1:
0!
b10100100 *
0%
0;
1,
#2540
0,
#2545
04
b11111110 -
1#
19
0$
0:
b10000010 *
0'
0=
1,
#2550
0,
#2555
06
b11111111 -
0)
0?
0#
09
b1 *
1"
18
1,
#2560
0,
#2565
14
1+
b0 -
1!
b0 *
0"
08
1,
#2570
0,
#2575
16
1.
0+
b1 -
0!
b10000000 *
1)
1?
1,
#2580
0,
#2585
15
b10 -
b11000000 *
1(
1>
1,
/nlprg/trunk/tb/filelist.f
0,0 → 1,3
../rtl/dff.v
../rtl/nlprg8.v
./nlprg8_tb.v
/nlprg/trunk/tb/nlprg8_tb.v
0,0 → 1,135
module prng8_tb ();
 
reg ck;
reg rst;
wire o0;
wire o1;
wire o2;
wire o3;
wire o4;
wire o5;
wire o6;
wire o7;
 
nlprg8 nlprg8_u (
.ck(ck),
.rst(rst),
.o0(o0),
.o1(o1),
.o2(o2),
.o3(o3),
.o4(o4),
.o5(o5),
.o6(o6),
.o7(o7)
);
 
// dump variables
 
initial begin
 
$dumpfile( "./wave/prng8_tb.vcd");
$dumpvars( 0, prng8_tb );
 
end
 
parameter N = 8;
 
wire [N-1:0] o = {o0,o1,o2,o3,o4,o5,o6,o7};
 
integer f = -1 ; // file handler
 
// generate clocks and reset
 
initial begin
 
f = $fopen("./log/nlprg8_tb.log","w+");
 
rst = 1'b1 ;
#5 rst = ~ rst ;
#5 rst = ~ rst ;
#5 rst = ~ rst ;
ck = 1'b1 ;
forever #5 ck = ~ ck ;
 
end
 
// generate counter
 
reg [N-1:0] cnt;
 
always@ ( posedge ck or posedge rst ) begin : cnt_process
if ( rst ) cnt <= {N{1'b0}} ;
else cnt <= cnt + 1'b1 ;
end
 
// delay reset
 
reg rst_d0;
reg rst_d1;
 
always@ ( posedge ck or posedge rst ) begin : reset_delay_process
if ( rst ) begin
rst_d0 <= 1'b1 ;
rst_d1 <= 1'b1 ;
 
end else begin
 
rst_d0 <= 1'b0 ;
rst_d1 <= rst_d0 ;
 
end
end
 
// generate endsim
 
reg endsim;
reg pass;
 
wire prng_start_state = ( o == {N{1'b0}});
wire cnt_start_state = ( cnt == {N{1'b0}});
 
 
always@ ( posedge ck or posedge rst ) begin : end_sim_process
if ( rst ) begin
endsim <= 1'b0 ;
pass <= 1'b0 ;
 
end else if ( prng_start_state & ( ! rst_d1 ) ) begin
endsim <= 1'b1 ;
pass <= 1'b0 ;
 
end else if ( cnt_start_state & prng_start_state & ( ! rst_d1 ) ) begin
endsim <= 1'b1 ;
pass <= 1'b1 ;
 
end else if ( cnt_start_state & ( ! rst_d1 ) ) begin
endsim <= 1'b1 ;
pass <= 1'b0 ;
end
 
end
 
 
// display and finish
 
always@ ( posedge ck or posedge rst ) begin : display_process
if (( ! endsim ) && ( ! rst )) begin
$fdisplay(f,"%10d %10b", cnt , o) ;
end else if ( endsim ) begin
$fclose(f);
$finish ;
end
end
 
endmodule
 
/nlprg/trunk/LICENSE
0,0 → 1,22
MIT License
 
Copyright (c) 2020 Francesco Dell' Anna
 
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
 
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
 
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
 
/nlprg/trunk/README.md
0,0 → 1,8
# NLPRG
 
This project provides an example of a non-linear pseudo random generator ( nlprg ). The nlprg can produce a pseudo-random sequence with a period of 2^n numbers, where n is the numbers of registers.
For more information an circuit examples visit my blog at https://fdblog.xyz/circuits/non-linear-pseudo-random-generator-introduction/
 
You can find the circuit schematic in the doc folder.
 
After running the simulation ( for example by running : iverilog nlprng8_tb.v ; ./a.out ), you should find the resulting sequence in the tb/log and all the waves in the tb/wave.

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.