logic_gates.xml 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829
  1. <shapes name="mxgraph.electrical.logic_gates">
  2. <shape aspect="variable" h="60" name="AND" strokewidth="inherit" w="100">
  3. <connections>
  4. <constraint name="in1" perimeter="0" x="0" y="0.165"/>
  5. <constraint name="in2" perimeter="0" x="0" y="0.835"/>
  6. <constraint name="out" perimeter="0" x="1" y="0.5"/>
  7. </connections>
  8. <background>
  9. <path>
  10. <move x="20" y="0"/>
  11. <line x="50" y="0"/>
  12. <arc large-arc-flag="0" rx="30" ry="30" sweep-flag="1" x="50" x-axis-rotation="0" y="60"/>
  13. <line x="20" y="60"/>
  14. <close/>
  15. </path>
  16. </background>
  17. <foreground>
  18. <fillstroke/>
  19. <path>
  20. <move x="0" y="10"/>
  21. <line x="20" y="10"/>
  22. <move x="0" y="50"/>
  23. <line x="20" y="50"/>
  24. <move x="80" y="30"/>
  25. <line x="100" y="30"/>
  26. </path>
  27. <stroke/>
  28. </foreground>
  29. </shape>
  30. <shape aspect="variable" h="46" name="Bandpass Filter" strokewidth="inherit" w="52">
  31. <connections>
  32. <constraint name="in" perimeter="0" x="0" y="0.5"/>
  33. <constraint name="out" perimeter="0" x="1" y="0.5"/>
  34. </connections>
  35. <background>
  36. <rect h="46" w="52" x="0" y="0"/>
  37. </background>
  38. <foreground>
  39. <fillstroke/>
  40. <path>
  41. <move x="6" y="33"/>
  42. <line x="16" y="13"/>
  43. <line x="36" y="13"/>
  44. <line x="46" y="33"/>
  45. </path>
  46. <stroke/>
  47. </foreground>
  48. </shape>
  49. <shape aspect="variable" h="60" name="Buffer" strokewidth="inherit" w="100">
  50. <connections>
  51. <constraint name="in" perimeter="0" x="0" y="0.5"/>
  52. <constraint name="out" perimeter="0" x="1" y="0.5"/>
  53. </connections>
  54. <background>
  55. <path>
  56. <move x="20" y="0"/>
  57. <line x="80" y="30"/>
  58. <line x="20" y="60"/>
  59. <close/>
  60. <move x="0" y="30"/>
  61. <line x="20" y="30"/>
  62. <move x="80" y="30"/>
  63. <line x="100" y="30"/>
  64. </path>
  65. </background>
  66. <foreground>
  67. <fillstroke/>
  68. </foreground>
  69. </shape>
  70. <shape aspect="variable" h="80" name="D Type Flip-Flop" strokewidth="inherit" w="100">
  71. <connections>
  72. <constraint name="D" perimeter="0" x="0" y="0.25"/>
  73. <constraint name="E" perimeter="0" x="0" y="0.75"/>
  74. <constraint name="Q" perimeter="0" x="1" y="0.25"/>
  75. <constraint name="Qneg" perimeter="0" x="1" y="0.75"/>
  76. </connections>
  77. <background>
  78. <rect h="80" w="60" x="20" y="0"/>
  79. </background>
  80. <foreground>
  81. <fillstroke/>
  82. <path>
  83. <move x="0" y="20"/>
  84. <line x="20" y="20"/>
  85. <move x="0" y="60"/>
  86. <line x="20" y="60"/>
  87. <move x="80" y="20"/>
  88. <line x="100" y="20"/>
  89. <move x="71" y="55"/>
  90. <line x="79" y="55"/>
  91. <move x="20" y="55"/>
  92. <line x="30" y="60"/>
  93. <line x="20" y="65"/>
  94. <move x="80" y="60"/>
  95. <line x="100" y="60"/>
  96. </path>
  97. <stroke/>
  98. <text align="center" str="D" valign="bottom" x="25" y="25"/>
  99. <text align="center" str="Q" valign="bottom" x="75" y="25"/>
  100. <text align="center" str="Q" valign="bottom" x="75" y="65"/>
  101. </foreground>
  102. </shape>
  103. <shape aspect="variable" h="90" name="D Type Flip-Flop With Clear" strokewidth="inherit" w="100">
  104. <connections>
  105. <constraint name="D" perimeter="0" x="0" y="0.335"/>
  106. <constraint name="E" perimeter="0" x="0" y="0.78"/>
  107. <constraint name="Q" perimeter="0" x="1" y="0.335"/>
  108. <constraint name="Qneg" perimeter="0" x="1" y="0.78"/>
  109. <constraint name="clear" perimeter="0" x="0.5" y="0"/>
  110. </connections>
  111. <background>
  112. <rect h="80" w="60" x="20" y="10"/>
  113. </background>
  114. <foreground>
  115. <fillstroke/>
  116. <path>
  117. <move x="0" y="30"/>
  118. <line x="20" y="30"/>
  119. <move x="0" y="70"/>
  120. <line x="20" y="70"/>
  121. <move x="80" y="30"/>
  122. <line x="100" y="30"/>
  123. <move x="80" y="70"/>
  124. <line x="100" y="70"/>
  125. <move x="71" y="65"/>
  126. <line x="79" y="65"/>
  127. <move x="20" y="65"/>
  128. <line x="30" y="70"/>
  129. <line x="20" y="75"/>
  130. <move x="50" y="0"/>
  131. <line x="50" y="6"/>
  132. </path>
  133. <stroke/>
  134. <text align="center" str="D" valign="bottom" x="25" y="35"/>
  135. <text align="center" str="Q" valign="bottom" x="75" y="35"/>
  136. <text align="center" str="Q" valign="bottom" x="75" y="75"/>
  137. <ellipse h="4" w="4" x="48" y="6"/>
  138. <fillstroke/>
  139. </foreground>
  140. </shape>
  141. <shape aspect="variable" h="94" name="D Type Flip-Flop With Clear 2" strokewidth="inherit" w="100">
  142. <connections>
  143. <constraint name="D" perimeter="0" x="0" y="0.36"/>
  144. <constraint name="E" perimeter="0" x="0" y="0.79"/>
  145. <constraint name="Q" perimeter="0" x="1" y="0.36"/>
  146. <constraint name="Qneg" perimeter="0" x="1" y="0.79"/>
  147. <constraint name="clear" perimeter="0" x="0.5" y="0"/>
  148. </connections>
  149. <background>
  150. <save/>
  151. <rect h="80" w="60" x="20" y="14"/>
  152. </background>
  153. <foreground>
  154. <fillstroke/>
  155. <path>
  156. <move x="0" y="34"/>
  157. <line x="20" y="34"/>
  158. </path>
  159. <fillstroke/>
  160. <path>
  161. <move x="0" y="74"/>
  162. <line x="20" y="74"/>
  163. </path>
  164. <fillstroke/>
  165. <path>
  166. <move x="80" y="34"/>
  167. <line x="100" y="34"/>
  168. </path>
  169. <fillstroke/>
  170. <text align="center" str="D" valign="bottom" x="25" y="39"/>
  171. <text align="center" str="Q" valign="bottom" x="75" y="39"/>
  172. <path>
  173. <move x="80" y="74"/>
  174. <line x="100" y="74"/>
  175. </path>
  176. <fillstroke/>
  177. <text align="center" str="Q" valign="bottom" x="75" y="79"/>
  178. <path>
  179. <move x="71" y="69"/>
  180. <line x="79" y="69"/>
  181. </path>
  182. <fillstroke/>
  183. <path>
  184. <move x="20" y="69"/>
  185. <line x="30" y="74"/>
  186. <line x="20" y="79"/>
  187. </path>
  188. <stroke/>
  189. <restore/>
  190. <rect/>
  191. <stroke/>
  192. <path>
  193. <move x="50" y="0"/>
  194. <line x="50" y="6"/>
  195. </path>
  196. <fillstroke/>
  197. <ellipse h="8" w="8" x="46" y="6"/>
  198. <fillstroke/>
  199. </foreground>
  200. </shape>
  201. <shape aspect="variable" h="100" name="D Type RS Flip-Flop" strokewidth="inherit" w="100">
  202. <connections>
  203. <constraint name="D" perimeter="0" x="0" y="0.3"/>
  204. <constraint name="E" perimeter="0" x="0" y="0.7"/>
  205. <constraint name="Q" perimeter="0" x="1" y="0.3"/>
  206. <constraint name="Qneg" perimeter="0" x="1" y="0.7"/>
  207. <constraint name="S" perimeter="0" x="0.5" y="0"/>
  208. <constraint name="R" perimeter="0" x="0.5" y="1"/>
  209. </connections>
  210. <background>
  211. <rect h="80" w="60" x="20" y="10"/>
  212. </background>
  213. <foreground>
  214. <fillstroke/>
  215. <path>
  216. <move x="0" y="30"/>
  217. <line x="20" y="30"/>
  218. <move x="0" y="70"/>
  219. <line x="20" y="70"/>
  220. <move x="80" y="30"/>
  221. <line x="100" y="30"/>
  222. <move x="80" y="70"/>
  223. <line x="100" y="70"/>
  224. <move x="71" y="65"/>
  225. <line x="79" y="65"/>
  226. <move x="20" y="65"/>
  227. <line x="30" y="70"/>
  228. <line x="20" y="75"/>
  229. <move x="50" y="0"/>
  230. <line x="50" y="10"/>
  231. <move x="50" y="90"/>
  232. <line x="50" y="100"/>
  233. </path>
  234. <stroke/>
  235. <text align="center" str="D" valign="bottom" x="25" y="35"/>
  236. <text align="center" str="Q" valign="bottom" x="75" y="35"/>
  237. <text align="center" str="Q" valign="bottom" x="75" y="75"/>
  238. <text align="center" str="S" valign="bottom" x="50" y="20"/>
  239. <text align="center" str="R" valign="bottom" x="50" y="89"/>
  240. </foreground>
  241. </shape>
  242. <shape aspect="variable" h="46" name="Highpass Filter" strokewidth="inherit" w="52">
  243. <connections>
  244. <constraint name="in" perimeter="0" x="0" y="0.5"/>
  245. <constraint name="out" perimeter="0" x="1" y="0.5"/>
  246. </connections>
  247. <background>
  248. <rect h="46" w="52" x="0" y="0"/>
  249. </background>
  250. <foreground>
  251. <fillstroke/>
  252. <path>
  253. <move x="6" y="33"/>
  254. <line x="16" y="13"/>
  255. <line x="46" y="13"/>
  256. </path>
  257. <stroke/>
  258. </foreground>
  259. </shape>
  260. <shape aspect="variable" h="60" name="Inverter" strokewidth="inherit" w="100">
  261. <connections>
  262. <constraint name="in" perimeter="0" x="0" y="0.5"/>
  263. <constraint name="out" perimeter="0" x="1" y="0.5"/>
  264. </connections>
  265. <background>
  266. <path>
  267. <move x="20" y="0"/>
  268. <line x="80" y="30"/>
  269. <line x="20" y="60"/>
  270. <close/>
  271. <move x="0" y="30"/>
  272. <line x="20" y="30"/>
  273. <move x="84" y="30"/>
  274. <line x="100" y="30"/>
  275. </path>
  276. </background>
  277. <foreground>
  278. <fillstroke/>
  279. <ellipse h="4" w="4" x="80" y="28"/>
  280. <fillstroke/>
  281. </foreground>
  282. </shape>
  283. <shape aspect="variable" h="60" name="Inverter 2" strokewidth="inherit" w="100">
  284. <connections>
  285. <constraint name="in" perimeter="0" x="0" y="0.5"/>
  286. <constraint name="out" perimeter="0" x="1" y="0.5"/>
  287. </connections>
  288. <background>
  289. <path>
  290. <move x="0" y="30"/>
  291. <line x="20" y="30"/>
  292. </path>
  293. </background>
  294. <foreground>
  295. <fillstroke/>
  296. <path>
  297. <move x="84" y="30"/>
  298. <line x="100" y="30"/>
  299. </path>
  300. <fillstroke/>
  301. <path>
  302. <move x="77" y="30"/>
  303. <line x="17" y="60"/>
  304. <line x="17" y="0"/>
  305. <close/>
  306. </path>
  307. <fillstroke/>
  308. <ellipse h="8" w="8" x="77" y="26"/>
  309. <fillstroke/>
  310. </foreground>
  311. </shape>
  312. <shape aspect="variable" h="5" name="Inverting Contact" strokewidth="inherit" w="5">
  313. <connections>
  314. <constraint name="W" perimeter="0" x="0.1" y="0.5"/>
  315. <constraint name="E" perimeter="0" x="0.9" y="0.5"/>
  316. </connections>
  317. <background>
  318. <ellipse h="4" w="4" x="0.5" y="0.5"/>
  319. </background>
  320. <foreground>
  321. <fillstroke/>
  322. </foreground>
  323. </shape>
  324. <shape aspect="variable" h="80" name="JK Flip-Flop" strokewidth="inherit" w="100">
  325. <connections>
  326. <constraint name="J" perimeter="0" x="0" y="0.25"/>
  327. <constraint name="E" perimeter="0" x="0" y="0.5"/>
  328. <constraint name="K" perimeter="0" x="0" y="0.75"/>
  329. <constraint name="Q" perimeter="0" x="1" y="0.25"/>
  330. <constraint name="Qneg" perimeter="0" x="1" y="0.75"/>
  331. </connections>
  332. <background>
  333. <rect h="80" w="60" x="20" y="0"/>
  334. </background>
  335. <foreground>
  336. <fillstroke/>
  337. <path>
  338. <move x="0" y="20"/>
  339. <line x="20" y="20"/>
  340. <move x="0" y="60"/>
  341. <line x="20" y="60"/>
  342. <move x="80" y="20"/>
  343. <line x="100" y="20"/>
  344. <move x="80" y="60"/>
  345. <line x="100" y="60"/>
  346. <move x="71" y="55"/>
  347. <line x="79" y="55"/>
  348. <move x="20" y="35"/>
  349. <line x="30" y="40"/>
  350. <line x="20" y="45"/>
  351. <move x="0" y="40"/>
  352. <line x="20" y="40"/>
  353. </path>
  354. <stroke/>
  355. <text align="center" str="J" valign="bottom" x="25" y="25"/>
  356. <text align="center" str="K" valign="bottom" x="25" y="65"/>
  357. <text align="center" str="Q" valign="bottom" x="75" y="25"/>
  358. <text align="center" str="Q" valign="bottom" x="75" y="65"/>
  359. </foreground>
  360. </shape>
  361. <shape aspect="variable" h="90" name="JK Flip-Flop With Clear" strokewidth="inherit" w="100">
  362. <connections>
  363. <constraint name="J" perimeter="0" x="0" y="0.335"/>
  364. <constraint name="E" perimeter="0" x="0" y="0.555"/>
  365. <constraint name="K" perimeter="0" x="0" y="0.78"/>
  366. <constraint name="Q" perimeter="0" x="1" y="0.335"/>
  367. <constraint name="Qneg" perimeter="0" x="1" y="0.78"/>
  368. <constraint name="clear" perimeter="0" x="0.5" y="0"/>
  369. </connections>
  370. <background>
  371. <rect h="80" w="60" x="20" y="10"/>
  372. </background>
  373. <foreground>
  374. <fillstroke/>
  375. <path>
  376. <move x="0" y="30"/>
  377. <line x="20" y="30"/>
  378. <move x="0" y="70"/>
  379. <line x="20" y="70"/>
  380. <move x="80" y="30"/>
  381. <line x="100" y="30"/>
  382. <move x="80" y="70"/>
  383. <line x="100" y="70"/>
  384. <move x="71" y="65"/>
  385. <line x="79" y="65"/>
  386. <move x="20" y="45"/>
  387. <line x="30" y="50"/>
  388. <line x="20" y="55"/>
  389. <move x="0" y="50"/>
  390. <line x="20" y="50"/>
  391. <move x="50" y="0"/>
  392. <line x="50" y="6"/>
  393. </path>
  394. <stroke/>
  395. <text align="center" str="J" valign="bottom" x="25" y="35"/>
  396. <text align="center" str="K" valign="bottom" x="25" y="75"/>
  397. <text align="center" str="Q" valign="bottom" x="75" y="35"/>
  398. <text align="center" str="Q" valign="bottom" x="75" y="75"/>
  399. <ellipse h="4" w="4" x="48" y="6"/>
  400. <fillstroke/>
  401. <text align="center" str="C" valign="bottom" x="50" y="20"/>
  402. </foreground>
  403. </shape>
  404. <shape aspect="variable" h="94" name="JK Flip-Flop With Clear 2" strokewidth="inherit" w="100">
  405. <connections>
  406. <constraint name="J" perimeter="0" x="0" y="0.36"/>
  407. <constraint name="E" perimeter="0" x="0" y="0.575"/>
  408. <constraint name="K" perimeter="0" x="0" y="0.79"/>
  409. <constraint name="Q" perimeter="0" x="1" y="0.36"/>
  410. <constraint name="Qneg" perimeter="0" x="1" y="0.79"/>
  411. <constraint name="clear" perimeter="0" x="0.5" y="0"/>
  412. </connections>
  413. <background>
  414. <save/>
  415. <rect h="80" w="60" x="20" y="14"/>
  416. </background>
  417. <foreground>
  418. <fillstroke/>
  419. <path>
  420. <move x="0" y="34"/>
  421. <line x="20" y="34"/>
  422. </path>
  423. <fillstroke/>
  424. <path>
  425. <move x="0" y="74"/>
  426. <line x="20" y="74"/>
  427. </path>
  428. <fillstroke/>
  429. <path>
  430. <move x="80" y="34"/>
  431. <line x="100" y="34"/>
  432. </path>
  433. <fillstroke/>
  434. <text align="center" str="J" valign="bottom" x="25" y="39"/>
  435. <text align="center" str="K" valign="bottom" x="25" y="79"/>
  436. <text align="center" str="Q" valign="bottom" x="75" y="39"/>
  437. <path>
  438. <move x="80" y="74"/>
  439. <line x="100" y="74"/>
  440. </path>
  441. <fillstroke/>
  442. <text align="center" str="Q" valign="bottom" x="75" y="79"/>
  443. <path>
  444. <move x="71" y="69"/>
  445. <line x="79" y="69"/>
  446. </path>
  447. <fillstroke/>
  448. <path>
  449. <move x="20" y="49"/>
  450. <line x="30" y="54"/>
  451. <line x="20" y="59"/>
  452. </path>
  453. <stroke/>
  454. <restore/>
  455. <rect/>
  456. <stroke/>
  457. <path>
  458. <move x="0" y="54"/>
  459. <line x="20" y="54"/>
  460. </path>
  461. <fillstroke/>
  462. <path>
  463. <move x="50" y="0"/>
  464. <line x="50" y="6"/>
  465. </path>
  466. <fillstroke/>
  467. <ellipse h="8" w="8" x="46" y="6"/>
  468. <fillstroke/>
  469. <text align="center" str="C" valign="bottom" x="50" y="24"/>
  470. </foreground>
  471. </shape>
  472. <shape aspect="variable" h="100" name="JK Flip-Flop With SR" strokewidth="inherit" w="100">
  473. <connections>
  474. <constraint name="J" perimeter="0" x="0" y="0.3"/>
  475. <constraint name="E" perimeter="0" x="0" y="0.5"/>
  476. <constraint name="K" perimeter="0" x="0" y="0.7"/>
  477. <constraint name="Q" perimeter="0" x="1" y="0.3"/>
  478. <constraint name="Qneg" perimeter="0" x="1" y="0.7"/>
  479. <constraint name="S" perimeter="0" x="0.5" y="0"/>
  480. <constraint name="R" perimeter="0" x="0.5" y="1"/>
  481. </connections>
  482. <background>
  483. <rect h="80" w="60" x="20" y="10"/>
  484. </background>
  485. <foreground>
  486. <fillstroke/>
  487. <path>
  488. <move x="0" y="30"/>
  489. <line x="20" y="30"/>
  490. <move x="0" y="70"/>
  491. <line x="20" y="70"/>
  492. <move x="80" y="30"/>
  493. <line x="100" y="30"/>
  494. <move x="80" y="70"/>
  495. <line x="100" y="70"/>
  496. <move x="71" y="65"/>
  497. <line x="79" y="65"/>
  498. <move x="20" y="45"/>
  499. <line x="30" y="50"/>
  500. <line x="20" y="55"/>
  501. <move x="0" y="50"/>
  502. <line x="20" y="50"/>
  503. <move x="50" y="0"/>
  504. <line x="50" y="10"/>
  505. <move x="50" y="90"/>
  506. <line x="50" y="100"/>
  507. </path>
  508. <stroke/>
  509. <text align="center" str="J" valign="bottom" x="25" y="35"/>
  510. <text align="center" str="K" valign="bottom" x="25" y="75"/>
  511. <text align="center" str="Q" valign="bottom" x="75" y="35"/>
  512. <text align="center" str="Q" valign="bottom" x="75" y="75"/>
  513. <text align="center" str="S" valign="bottom" x="50" y="20"/>
  514. <text align="center" str="R" valign="bottom" x="50" y="89"/>
  515. </foreground>
  516. </shape>
  517. <shape aspect="variable" h="46" name="Lowpass Filter" strokewidth="inherit" w="52">
  518. <connections>
  519. <constraint name="in" perimeter="0" x="0" y="0.5"/>
  520. <constraint name="out" perimeter="0" x="1" y="0.5"/>
  521. </connections>
  522. <background>
  523. <rect h="46" w="52" x="0" y="0"/>
  524. </background>
  525. <foreground>
  526. <fillstroke/>
  527. <path>
  528. <move x="6" y="13"/>
  529. <line x="36" y="13"/>
  530. <line x="46" y="33"/>
  531. </path>
  532. <stroke/>
  533. </foreground>
  534. </shape>
  535. <shape aspect="variable" h="60" name="NAND" strokewidth="inherit" w="100">
  536. <connections>
  537. <constraint name="in1" perimeter="0" x="0" y="0.165"/>
  538. <constraint name="in2" perimeter="0" x="0" y="0.835"/>
  539. <constraint name="out" perimeter="0" x="1" y="0.5"/>
  540. </connections>
  541. <background>
  542. <path>
  543. <move x="20" y="0"/>
  544. <line x="50" y="0"/>
  545. <arc large-arc-flag="0" rx="30" ry="30" sweep-flag="1" x="50" x-axis-rotation="0" y="60"/>
  546. <line x="20" y="60"/>
  547. <close/>
  548. </path>
  549. </background>
  550. <foreground>
  551. <fillstroke/>
  552. <path>
  553. <move x="0" y="10"/>
  554. <line x="20" y="10"/>
  555. <move x="0" y="50"/>
  556. <line x="20" y="50"/>
  557. <move x="84" y="30"/>
  558. <line x="100" y="30"/>
  559. </path>
  560. <stroke/>
  561. <ellipse h="4" w="4" x="80" y="28"/>
  562. <fillstroke/>
  563. </foreground>
  564. </shape>
  565. <shape aspect="variable" h="60" name="NOR" strokewidth="inherit" w="100">
  566. <connections>
  567. <constraint name="in1" perimeter="0" x="0" y="0.165"/>
  568. <constraint name="in2" perimeter="0" x="0" y="0.835"/>
  569. <constraint name="out" perimeter="0" x="1" y="0.5"/>
  570. </connections>
  571. <background>
  572. <path>
  573. <move x="15" y="0"/>
  574. <line x="40" y="0"/>
  575. <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="80" x-axis-rotation="0" y="30"/>
  576. <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="40" x-axis-rotation="0" y="60"/>
  577. <line x="15" y="60"/>
  578. <arc large-arc-flag="0" rx="60" ry="60" sweep-flag="0" x="15" x-axis-rotation="0" y="0"/>
  579. <close/>
  580. </path>
  581. </background>
  582. <foreground>
  583. <fillstroke/>
  584. <path>
  585. <move x="0" y="10"/>
  586. <line x="20" y="10"/>
  587. <move x="0" y="50"/>
  588. <line x="20" y="50"/>
  589. <move x="84" y="30"/>
  590. <line x="100" y="30"/>
  591. </path>
  592. <stroke/>
  593. <ellipse h="4" w="4" x="80" y="28"/>
  594. <fillstroke/>
  595. </foreground>
  596. </shape>
  597. <shape aspect="variable" h="60" name="OR" strokewidth="inherit" w="100">
  598. <connections>
  599. <constraint name="in1" perimeter="0" x="0" y="0.165"/>
  600. <constraint name="in2" perimeter="0" x="0" y="0.835"/>
  601. <constraint name="out" perimeter="0" x="1" y="0.5"/>
  602. </connections>
  603. <background>
  604. <path>
  605. <move x="15" y="0"/>
  606. <line x="40" y="0"/>
  607. <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="80" x-axis-rotation="0" y="30"/>
  608. <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="40" x-axis-rotation="0" y="60"/>
  609. <line x="15" y="60"/>
  610. <arc large-arc-flag="0" rx="60" ry="60" sweep-flag="0" x="15" x-axis-rotation="0" y="0"/>
  611. <close/>
  612. </path>
  613. </background>
  614. <foreground>
  615. <fillstroke/>
  616. <path>
  617. <move x="0" y="10"/>
  618. <line x="20" y="10"/>
  619. <move x="0" y="50"/>
  620. <line x="20" y="50"/>
  621. <move x="80" y="30"/>
  622. <line x="100" y="30"/>
  623. </path>
  624. <stroke/>
  625. </foreground>
  626. </shape>
  627. <shape aspect="variable" h="80" name="RS Latch" strokewidth="inherit" w="100">
  628. <connections>
  629. <constraint name="S" perimeter="0" x="0" y="0.25"/>
  630. <constraint name="R" perimeter="0" x="0" y="0.75"/>
  631. <constraint name="Q" perimeter="0" x="1" y="0.25"/>
  632. <constraint name="Qneg" perimeter="0" x="1" y="0.75"/>
  633. </connections>
  634. <background>
  635. <rect h="80" w="60" x="20" y="0"/>
  636. </background>
  637. <foreground>
  638. <fillstroke/>
  639. <path>
  640. <move x="0" y="20"/>
  641. <line x="20" y="20"/>
  642. <move x="0" y="60"/>
  643. <line x="20" y="60"/>
  644. <move x="80" y="20"/>
  645. <line x="100" y="20"/>
  646. <move x="80" y="60"/>
  647. <line x="100" y="60"/>
  648. <move x="71" y="55"/>
  649. <line x="79" y="55"/>
  650. </path>
  651. <stroke/>
  652. <text align="center" str="S" valign="bottom" x="25" y="25"/>
  653. <text align="center" str="R" valign="bottom" x="25" y="65"/>
  654. <text align="center" str="Q" valign="bottom" x="75" y="25"/>
  655. <text align="center" str="Q" valign="bottom" x="75" y="65"/>
  656. </foreground>
  657. </shape>
  658. <shape aspect="variable" h="60" name="Schmitt Trigger" strokewidth="inherit" w="100">
  659. <connections>
  660. <constraint name="in" perimeter="0" x="0" y="0.5"/>
  661. <constraint name="out" perimeter="0" x="1" y="0.5"/>
  662. </connections>
  663. <background>
  664. <path>
  665. <move x="20" y="0"/>
  666. <line x="80" y="30"/>
  667. <line x="20" y="60"/>
  668. <close/>
  669. </path>
  670. </background>
  671. <foreground>
  672. <fillstroke/>
  673. <path>
  674. <move x="0" y="30"/>
  675. <line x="20" y="30"/>
  676. <move x="80" y="30"/>
  677. <line x="100" y="30"/>
  678. <move x="30" y="35"/>
  679. <line x="46" y="35"/>
  680. <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="0" x="50" x-axis-rotation="0" y="31"/>
  681. <line x="50" y="29"/>
  682. <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="1" x="54" x-axis-rotation="0" y="25"/>
  683. <line x="55" y="25"/>
  684. <line x="39" y="25"/>
  685. <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="0" x="35" x-axis-rotation="0" y="29"/>
  686. <line x="35" y="31"/>
  687. <arc large-arc-flag="0" rx="4" ry="4" sweep-flag="1" x="31" x-axis-rotation="0" y="35"/>
  688. <close/>
  689. </path>
  690. <stroke/>
  691. </foreground>
  692. </shape>
  693. <shape aspect="variable" h="80" name="Synchronous RS Latch" strokewidth="inherit" w="100">
  694. <connections>
  695. <constraint name="S" perimeter="0" x="0" y="0.25"/>
  696. <constraint name="E" perimeter="0" x="0" y="0.5"/>
  697. <constraint name="R" perimeter="0" x="0" y="0.75"/>
  698. <constraint name="Q" perimeter="0" x="1" y="0.25"/>
  699. <constraint name="Qneg" perimeter="0" x="1" y="0.75"/>
  700. </connections>
  701. <background>
  702. <rect h="80" w="60" x="20" y="0"/>
  703. </background>
  704. <foreground>
  705. <fillstroke/>
  706. <path>
  707. <move x="0" y="20"/>
  708. <line x="20" y="20"/>
  709. <move x="0" y="60"/>
  710. <line x="20" y="60"/>
  711. <move x="80" y="20"/>
  712. <line x="100" y="20"/>
  713. <move x="80" y="60"/>
  714. <line x="100" y="60"/>
  715. <move x="71" y="55"/>
  716. <line x="79" y="55"/>
  717. <move x="20" y="35"/>
  718. <line x="30" y="40"/>
  719. <line x="20" y="45"/>
  720. <move x="0" y="40"/>
  721. <line x="20" y="40"/>
  722. </path>
  723. <stroke/>
  724. <text align="center" str="S" valign="bottom" x="25" y="25"/>
  725. <text align="center" str="R" valign="bottom" x="25" y="65"/>
  726. <text align="center" str="Q" valign="bottom" x="75" y="25"/>
  727. <text align="center" str="Q" valign="bottom" x="75" y="65"/>
  728. </foreground>
  729. </shape>
  730. <shape aspect="variable" h="80" name="T Type Flip-Flop" strokewidth="inherit" w="100">
  731. <connections>
  732. <constraint name="T" perimeter="0" x="0" y="0.25"/>
  733. <constraint name="E" perimeter="0" x="0" y="0.75"/>
  734. <constraint name="Q" perimeter="0" x="1" y="0.25"/>
  735. <constraint name="Qneg" perimeter="0" x="1" y="0.75"/>
  736. </connections>
  737. <background>
  738. <rect h="80" w="60" x="20" y="0"/>
  739. </background>
  740. <foreground>
  741. <fillstroke/>
  742. <path>
  743. <move x="0" y="20"/>
  744. <line x="20" y="20"/>
  745. <move x="0" y="60"/>
  746. <line x="20" y="60"/>
  747. <move x="80" y="20"/>
  748. <line x="100" y="20"/>
  749. <move x="80" y="60"/>
  750. <line x="100" y="60"/>
  751. <move x="71" y="55"/>
  752. <line x="79" y="55"/>
  753. <move x="20" y="55"/>
  754. <line x="30" y="60"/>
  755. <line x="20" y="65"/>
  756. </path>
  757. <stroke/>
  758. <text align="center" str="T" valign="bottom" x="25" y="25"/>
  759. <text align="center" str="Q" valign="bottom" x="75" y="25"/>
  760. <text align="center" str="Q" valign="bottom" x="75" y="65"/>
  761. </foreground>
  762. </shape>
  763. <shape aspect="variable" h="60" name="XNOR" strokewidth="inherit" w="100">
  764. <connections>
  765. <constraint name="in1" perimeter="0" x="0" y="0.165"/>
  766. <constraint name="in2" perimeter="0" x="0" y="0.835"/>
  767. <constraint name="out" perimeter="0" x="1" y="0.5"/>
  768. </connections>
  769. <background>
  770. <path>
  771. <move x="15" y="0"/>
  772. <line x="40" y="0"/>
  773. <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="80" x-axis-rotation="0" y="30"/>
  774. <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="40" x-axis-rotation="0" y="60"/>
  775. <line x="15" y="60"/>
  776. <arc large-arc-flag="0" rx="60" ry="60" sweep-flag="0" x="15" x-axis-rotation="0" y="0"/>
  777. <close/>
  778. </path>
  779. </background>
  780. <foreground>
  781. <fillstroke/>
  782. <path>
  783. <move x="0" y="10"/>
  784. <line x="20" y="10"/>
  785. <move x="0" y="50"/>
  786. <line x="20" y="50"/>
  787. <move x="84" y="30"/>
  788. <line x="100" y="30"/>
  789. <move x="10" y="0"/>
  790. <arc large-arc-flag="0" rx="60" ry="60" sweep-flag="1" x="10" x-axis-rotation="0" y="60"/>
  791. </path>
  792. <stroke/>
  793. <ellipse h="4" w="4" x="80" y="28"/>
  794. <fillstroke/>
  795. </foreground>
  796. </shape>
  797. <shape aspect="variable" h="60" name="XOR" strokewidth="inherit" w="100">
  798. <connections>
  799. <constraint name="in1" perimeter="0" x="0" y="0.165"/>
  800. <constraint name="in2" perimeter="0" x="0" y="0.835"/>
  801. <constraint name="out" perimeter="0" x="1" y="0.5"/>
  802. </connections>
  803. <background>
  804. <path>
  805. <move x="15" y="0"/>
  806. <line x="40" y="0"/>
  807. <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="80" x-axis-rotation="0" y="30"/>
  808. <arc large-arc-flag="0" rx="45" ry="50" sweep-flag="1" x="40" x-axis-rotation="0" y="60"/>
  809. <line x="15" y="60"/>
  810. <arc large-arc-flag="0" rx="60" ry="60" sweep-flag="0" x="15" x-axis-rotation="0" y="0"/>
  811. <close/>
  812. </path>
  813. </background>
  814. <foreground>
  815. <fillstroke/>
  816. <path>
  817. <move x="0" y="10"/>
  818. <line x="20" y="10"/>
  819. <move x="0" y="50"/>
  820. <line x="20" y="50"/>
  821. <move x="80" y="30"/>
  822. <line x="100" y="30"/>
  823. <move x="10" y="0"/>
  824. <arc large-arc-flag="0" rx="60" ry="60" sweep-flag="1" x="10" x-axis-rotation="0" y="60"/>
  825. </path>
  826. <stroke/>
  827. </foreground>
  828. </shape>
  829. </shapes>