Advertisement
H3draut3r

Bin_TO_7Seg

Apr 29th, 2015
403
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #predefine Not for later use
  2. def not
  3. port in nin
  4. port out nout
  5. inst n_ot nand nin nin nout
  6. enddef
  7. #
  8. #
  9. #define 4way-OR
  10. def or41
  11.     port in oin4<3:0>
  12.     port out oout4
  13.     net o4net<7:0> 
  14.        
  15.         inst ox4_1 not oin4<0> o4net<0>
  16.         inst ox4_2 not oin4<1> o4net<1>
  17.         inst ox4_3 not oin4<2> o4net<2>
  18.         inst ox4_4 not oin4<3> o4net<3>
  19.         inst ox4_5 nand o4net<0> o4net<1> o4net<4>
  20.         inst ox4_6 nand o4net<2> o4net<3> o4net<5>
  21.         inst ox4_7 not o4net<4> o4net<6>
  22.         inst ox4_8 not o4net<6> o4net<7>
  23.         inst ox4_9 nand o4net<6> o4net<7> oout4
  24.         inst o4in io_out8 false,false,false,false,oin4<3:0>
  25.         inst o4out io_out oout4
  26. enddef
  27. #
  28. #
  29. #define 3way-OR
  30. def OR31
  31.     port in oin3<2:0>
  32.     port out oout3
  33.     net o3net<4:0>
  34.    
  35.         inst ox3_1 not oin3<0> o3net<0>
  36.         inst ox3_2 not oin3<1> o3net<1>
  37.         inst ox3_3 not oin3<2> o3net<2>
  38.         inst ox3_4 nand o3net<0> o3net<1> o3net<3>
  39.         inst ox3_5 not o3net<3> o3net<4>
  40.         inst ox3_6 nand o3net<2> o3net<4> oout3
  41.         inst o3in io_out8 false,false,false,false,false,oin3<2:0>
  42.         inst o3out io_out oout3
  43. enddef
  44. #
  45. #
  46. #peww..... OR's defined....
  47. #now the AND's
  48. #define 4way-AND
  49. def and4
  50.     port in ain41
  51.     port in ain42
  52.     port in ain43
  53.     port in ain44
  54.     port out aout4
  55.     net a41
  56.     net a42
  57.     net a43
  58.     net a44
  59.     net a45
  60.    
  61.         inst ax4_1 nand ain41 ain42 a41
  62.         inst ax4_2 nand ain43 ain44 a42
  63.         inst ax4_3 not a41 a43
  64.         inst ax4_4 not a42 a44
  65.         inst ax4_5 nand a43 a44 a45
  66.         inst ax4_6 not a45 aout4
  67.  
  68. enddef
  69. #
  70. #      
  71. #define 3way-AND
  72. def and3
  73.     port in ain31
  74.     port in ain32
  75.     port in ain33
  76.     port out aout3
  77.     net a31
  78.     net a32
  79.     net a33
  80.        
  81.         inst ax3_1 nand ain31 ain32 a31
  82.         inst ax3_2 not a31 a32
  83.         inst ax3_3 nand a32 ain33 a33
  84.         inst ax3_4 not a33 aout3
  85.        
  86. enddef
  87. #
  88. #finally the (E/A)ND of predefines....
  89. #define AND
  90. def AND
  91.     port in ain21
  92.     port in ain22
  93.     port out aout2
  94.     net a21
  95.        
  96.         inst ax2_1 nand ain21 ain22 a21
  97.         inst ax2_2 not a21 aout2
  98.        
  99. enddef
  100. #
  101. #Now the fun-part....
  102. #
  103. def BIN_TO_7SEG
  104.     port in BIN<3:0>
  105.     port out a
  106.     port out b
  107.     port out c
  108.     port out d
  109.     port out e
  110.     port out f
  111.     port out g
  112. #define net's for segments separately
  113.     net na<3:0>
  114.     net nb<3:0>
  115.     net nc<2:0>
  116.     net nd<3:0>
  117.     net ne<2:0>
  118.     net nf<3:0>
  119.     net ng<2:0>
  120. #define nets for Inverted BIN's
  121.     net nbn0
  122.     net nbn1
  123.     net nbn2
  124.     net nbn3
  125. #Net for Segments ( they need to get inverted before send to port )
  126.     net notA
  127.     net notb
  128.     net notc
  129.     net notd
  130.     net note
  131.     net notf
  132.     net notg
  133.    
  134. #predefine NOT-BIN's
  135.         inst bnot0 not bin<0> nbn0
  136.         inst bnot1 not bin<1> nbn1
  137.         inst bnot2 not bin<2> nbn2
  138.         inst bnot3 not bin<3> nbn3
  139. #dont believe it, but i rewrote this section about 10 times ...
  140. #define Segment notA
  141.         inst a1 and4 bin<0> nbn1 nbn2 nbn3 na<0>
  142.         inst a2 and4 nbn0 nbn1 bin<2> nbn3 na<1>
  143.         inst a3 and4 bin<0> bin<1> nbn2 bin<3> na<2>
  144.         inst a4 and4 bin<0> nbn1 bin<2> bin<3> na<3>
  145.         inst NOT_A_OR OR41 na<3:0> notA
  146.        
  147. #define Segment notB
  148.         inst b1 and4 bin<0> nbn1 bin<2> nbn3 nb<0>
  149.         inst b2 and3 nbn0 bin<1> bin<2> nb<1>
  150.         inst b3 and3 bin<0> bin<1> bin<3> nb<2>
  151.         inst b4 and3 nbn0 bin<2> bin<3> nb<3>
  152.         inst NOT_B_OR OR41 nb<3:0> notB
  153.        
  154. #define Segment notC
  155.         inst c1 and4 nbn0 bin<1> nbn2 nbn3 nc<0>
  156.         inst c2 and3 nbn0 bin<2> bin<3> nc<1>
  157.         inst c3 and3 bin<1> bin<2> bin<3> nc<2>
  158.         inst NOT_C_OR OR31 nc<2:0> notC
  159.        
  160. #define Segment notD
  161.         inst d1 and4 bin<0> nbn1 nbn2 nbn3 nd<0>
  162.         inst d2 and4 nbn0 nbn1 bin<2> nbn3 nd<1>
  163.         inst d3 and3 bin<0> bin<1> bin<2> nd<2>
  164.         inst d4 and4 nbn0 bin<1> nbn2 bin<3> nd<3>
  165.         inst NOT_D_OR OR41 nd<3:0> notD
  166.        
  167. #define Segment notE   
  168.         inst e1 and bin<0> nbn3 ne<0>
  169.         inst e2 and3 bin<0> nbn1 nbn2 ne<1>
  170.         inst e3 and3 nbn1 bin<2> nbn3 ne<2>
  171.         inst NOT_E_OR OR31 ne<2:0> notE
  172.        
  173. #define Segment notF
  174.         inst f1 and3 bin<0> nbn2 nbn3 nf<0>
  175.         inst f2 and3 bin<2> nbn2 nbn3 nf<1>
  176.         inst f3 and3 bin<0> bin<1> nbn3 nf<2>
  177.         inst NOT_F_OR OR31 nf<2:0> notF
  178.        
  179. #define Segment notG
  180.         inst g1 and3 nbn1 nbn2 nbn3 ng<0>
  181.         inst g2 and4 bin<0> bin<1> bin<2> nbn3 ng<1>
  182.         inst g3 and4 nbn0 nbn1 bin<2> bin<3> ng<2>
  183.         inst NOT_G_OR OR31 ng<2:0> notG
  184.        
  185. #invert Segments for Display-use
  186.         inst n1 not notA A
  187.         inst n2 not notB B
  188.         inst n3 not notC C
  189.         inst n4 not notD D
  190.         inst n5 not notE E
  191.         inst n6 not notF F
  192.         inst n7 not notG G
  193. #Done -.- finally      
  194. Enddef     
  195. #
  196. #
  197. # Test-Preload
  198. DEF TOP
  199.   NET BIN<3:0>
  200.   NET A
  201.   NET B
  202.   NET C
  203.   NET D
  204.   NET E
  205.   NET F
  206.   NET G
  207.   INST BIN_TO_7SEG BIN_TO_7SEG BIN<3:0> A B C D E F G
  208.   INST TEST BIN_TO_7SEG_TEST BIN<3:0> A B C D E F G
  209.   INST OUTBIN IO_OUT8 false,false,false,false,BIN<3:0>
  210.   INST OUT7SEG IO_OUT7SEG A B C D E F G
  211. ENDDEF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement