diff --git a/examples/I2C/Example_Read_Write_ADC.ice b/examples/I2C/Example_Read_Write_ADC.ice new file mode 100644 index 0000000..7daf978 --- /dev/null +++ b/examples/I2C/Example_Read_Write_ADC.ice @@ -0,0 +1,13322 @@ +{ + "version": "1.2", + "package": { + "name": "", + "version": "", + "description": "", + "author": "", + "image": "" + }, + "design": { + "board": "alhambra-ii", + "graph": { + "blocks": [ + { + "id": "b5c04f78-8aac-46ce-a46b-3cc6acc56f36", + "type": "basic.output", + "data": { + "name": "LEDS", + "range": "[7:0]", + "pins": [ + { + "index": "7", + "name": "LED7", + "value": "37" + }, + { + "index": "6", + "name": "LED6", + "value": "38" + }, + { + "index": "5", + "name": "LED5", + "value": "39" + }, + { + "index": "4", + "name": "LED4", + "value": "41" + }, + { + "index": "3", + "name": "LED3", + "value": "42" + }, + { + "index": "2", + "name": "LED2", + "value": "43" + }, + { + "index": "1", + "name": "LED1", + "value": "44" + }, + { + "index": "0", + "name": "LED0", + "value": "45" + } + ], + "virtual": false + }, + "position": { + "x": 1216, + "y": 128 + } + }, + { + "id": "7f944bba-bd6a-461a-a9cf-432c0702ea08", + "type": "basic.output", + "data": { + "name": "sda", + "pins": [ + { + "index": "0", + "name": "ADC_SDA", + "value": "83" + } + ], + "virtual": false + }, + "position": { + "x": 840, + "y": 304 + } + }, + { + "id": "d8688f69-5d33-4db4-b4e0-577d487b8a3c", + "type": "basic.output", + "data": { + "name": "scl", + "pins": [ + { + "index": "0", + "name": "ADC_SCL", + "value": "84" + } + ], + "virtual": false + }, + "position": { + "x": 840, + "y": 376 + } + }, + { + "id": "71e538e2-07ae-46fe-88bf-cf8614b83394", + "type": "basic.constant", + "data": { + "name": "ms", + "value": "300", + "local": true + }, + "position": { + "x": -136, + "y": 24 + } + }, + { + "id": "5419bd93-71a4-4b15-ad11-226f2e384162", + "type": "basic.constant", + "data": { + "name": "Max", + "value": "7", + "local": true + }, + "position": { + "x": 48, + "y": 24 + } + }, + { + "id": "e172339a-1f66-4651-841d-d1d8416dbb9e", + "type": "basic.memory", + "data": { + "name": "Config&read", + "list": "90 // Send address write 'h48 (the address is 7 bits, to convert it to 8 bits (which is to add the RW bit) it has to be multiplied by 2.\n00 // Command.\nCC // Command.\n90 // Send address write.\n02 // Select channel 1 of the 4 it has.\n91 // Send address read. (48*2+1)\n00 // Arbitrary byte. Actually, the read byte is output through an external shift register.", + "local": true, + "format": 10 + }, + "position": { + "x": 184, + "y": -56 + }, + "size": { + "width": 328, + "height": 184 + } + }, + { + "id": "59715255-4292-420d-8dcc-5b580cf80053", + "type": "e81c23c668234ee0bdf9bc099ccd0826ab246aa6", + "position": { + "x": 552, + "y": 136 + }, + "size": { + "width": 96, + "height": 288 + } + }, + { + "id": "1af5fc23-360a-47dc-880f-0a83a842ee67", + "type": "e308ae53e30f77d7b8307a6ea2745aae28e71f3f", + "position": { + "x": 48, + "y": 160 + }, + "size": { + "width": 96, + "height": 128 + } + }, + { + "id": "ebf7dc75-88a4-4f03-84ce-746129a0d872", + "type": "259ba4ac4c27d6d3ab8316419a0de7bf952a242e", + "position": { + "x": 304, + "y": 176 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "ee442278-1b08-4b29-858d-cc16d8bdbf2f", + "type": "ec2da447d7f051eef8a0640ae0eaf0776c0f51e8", + "position": { + "x": -136, + "y": 192 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "f49b5b98-bbc7-43f7-867c-35ce7910436b", + "type": "8348632101cd9c30c865f27521f47b4892d5e7db", + "position": { + "x": -296, + "y": 192 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "f85f542d-d021-4d65-878f-facabcb4dc46", + "type": "380790bc9e7c906de7879e82d221e75fc090f9d4", + "position": { + "x": -464, + "y": 208 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "e599c14c-a11a-4974-86cd-737615e71e2b", + "type": "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542", + "position": { + "x": -464, + "y": 288 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "efede71b-c3d9-4e09-86a2-d16d10be2237", + "type": "56e0da7091190448826e12c0590f60e2927ced42", + "position": { + "x": 840, + "y": 200 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "5d37a6b5-427c-4b4d-8f50-6f64d222001d", + "type": "89d2342d9664348db3e70e823cacbc8eb24ea3d0", + "position": { + "x": 1048, + "y": 224 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "29eca181-66c1-44d5-a6df-f467b82b0f23", + "type": "e174ec6faeae0fd10cec0c7a57204c72912025ec", + "position": { + "x": 304, + "y": 304 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "1a5f95eb-3767-433c-9bc9-835ed8daedf4", + "type": "basic.info", + "data": { + "info": "Control logic. Double click on the module to see the interior and the explanation of its operation.", + "readonly": true + }, + "position": { + "x": 280, + "y": 376 + }, + "size": { + "width": 224, + "height": 32 + } + }, + { + "id": "fa5423a4-d7df-4daf-97ca-45c45a2a6129", + "type": "basic.info", + "data": { + "info": "Total number of bytes to be sent through I2C", + "readonly": true + }, + "position": { + "x": 24, + "y": -32 + }, + "size": { + "width": 144, + "height": 32 + } + }, + { + "id": "c2857064-daa4-40ba-863a-04118a463a0d", + "type": "basic.info", + "data": { + "info": "It will do an ADC read every 300ms.", + "readonly": true + }, + "position": { + "x": -144, + "y": -32 + }, + "size": { + "width": 128, + "height": 32 + } + }, + { + "id": "4d1f70f3-a156-4432-8abc-c91b99e0cbbb", + "type": "basic.info", + "data": { + "info": "Send and receive information through I2C", + "readonly": true + }, + "position": { + "x": 528, + "y": 64 + }, + "size": { + "width": 152, + "height": 32 + } + }, + { + "id": "850887a0-b241-4b4b-83fc-f428c5d16384", + "type": "basic.info", + "data": { + "info": "Converts the ADC reading from serial to parallel.", + "readonly": true + }, + "position": { + "x": 840, + "y": 152 + }, + "size": { + "width": 304, + "height": 32 + } + }, + { + "id": "3abdf8e6-490d-42d5-a73f-1478439238ab", + "type": "basic.info", + "data": { + "info": "Peripherals and sensors usually require some time before starting up. We give it 250 ms.", + "readonly": true + }, + "position": { + "x": -464, + "y": 120 + }, + "size": { + "width": 296, + "height": 32 + } + }, + { + "id": "8d15667d-baef-4183-acb3-46a00a2c63cd", + "type": "basic.info", + "data": { + "info": "Display the values on the LEDs", + "readonly": true + }, + "position": { + "x": 1168, + "y": 96 + }, + "size": { + "width": 200, + "height": 32 + } + }, + { + "id": "e6409e81-0381-42fb-ad05-6ac154204012", + "type": "basic.info", + "data": { + "info": "# Read from the ADC ADS7924, Channel 0.", + "readonly": true + }, + "position": { + "x": 96, + "y": -136 + }, + "size": { + "width": 520, + "height": 32 + } + } + ], + "wires": [ + { + "source": { + "block": "ebf7dc75-88a4-4f03-84ce-746129a0d872", + "port": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5" + }, + "target": { + "block": "59715255-4292-420d-8dcc-5b580cf80053", + "port": "9e29102c-bdc7-4b28-8407-66ce468dcee8" + }, + "size": 8 + }, + { + "source": { + "block": "1af5fc23-360a-47dc-880f-0a83a842ee67", + "port": "2885a59c-c338-4e79-83bc-771f79ec7d2e" + }, + "target": { + "block": "ebf7dc75-88a4-4f03-84ce-746129a0d872", + "port": "186c4116-7846-4c8e-98a0-7376675105f1" + }, + "size": 3 + }, + { + "source": { + "block": "1af5fc23-360a-47dc-880f-0a83a842ee67", + "port": "73948305-b05b-418f-88af-11328f400cdc" + }, + "target": { + "block": "59715255-4292-420d-8dcc-5b580cf80053", + "port": "c0905169-37e4-4c29-9375-d0cbac9239e1" + }, + "vertices": [ + { + "x": 216, + "y": 248 + } + ] + }, + { + "source": { + "block": "5419bd93-71a4-4b15-ad11-226f2e384162", + "port": "constant-out" + }, + "target": { + "block": "1af5fc23-360a-47dc-880f-0a83a842ee67", + "port": "d0005413-fea9-4b0b-8a18-9b15d4977bc1" + } + }, + { + "source": { + "block": "59715255-4292-420d-8dcc-5b580cf80053", + "port": "d8d9425f-381a-4850-b961-b16858e08ea2" + }, + "target": { + "block": "7f944bba-bd6a-461a-a9cf-432c0702ea08", + "port": "in" + } + }, + { + "source": { + "block": "59715255-4292-420d-8dcc-5b580cf80053", + "port": "1454227a-43d8-4994-8a3a-82a0ca663303" + }, + "target": { + "block": "d8688f69-5d33-4db4-b4e0-577d487b8a3c", + "port": "in" + } + }, + { + "source": { + "block": "ee442278-1b08-4b29-858d-cc16d8bdbf2f", + "port": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c" + }, + "target": { + "block": "1af5fc23-360a-47dc-880f-0a83a842ee67", + "port": "8f591b24-0427-409f-aa6e-ca1861556cf5" + } + }, + { + "source": { + "block": "71e538e2-07ae-46fe-88bf-cf8614b83394", + "port": "constant-out" + }, + "target": { + "block": "ee442278-1b08-4b29-858d-cc16d8bdbf2f", + "port": "136e8d6d-892a-4f14-8d6d-0c5bc6c3e844" + } + }, + { + "source": { + "block": "f49b5b98-bbc7-43f7-867c-35ce7910436b", + "port": "4e8afe74-8f38-4873-97ee-f7585d99a4aa" + }, + "target": { + "block": "ee442278-1b08-4b29-858d-cc16d8bdbf2f", + "port": "3ac5ff24-ed0a-4d08-bdaa-adbb8ce688ab" + } + }, + { + "source": { + "block": "f85f542d-d021-4d65-878f-facabcb4dc46", + "port": "a4a65abf-83bf-4843-b78f-c992f03483d5" + }, + "target": { + "block": "f49b5b98-bbc7-43f7-867c-35ce7910436b", + "port": "adf3a6ae-71e2-43dd-b504-c2cdbc14dab7" + } + }, + { + "source": { + "block": "e599c14c-a11a-4974-86cd-737615e71e2b", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "f49b5b98-bbc7-43f7-867c-35ce7910436b", + "port": "fc243ba8-9abb-4a22-81c4-fabdf043cd01" + } + }, + { + "source": { + "block": "efede71b-c3d9-4e09-86a2-d16d10be2237", + "port": "90654ccb-afdd-41ec-aaf8-b9be5b51253b" + }, + "target": { + "block": "5d37a6b5-427c-4b4d-8f50-6f64d222001d", + "port": "42b35cc2-aa64-4e66-be42-169958246799" + }, + "size": 8 + }, + { + "source": { + "block": "59715255-4292-420d-8dcc-5b580cf80053", + "port": "86f31e6a-12b5-44e9-b7f2-bf5c8e950f17" + }, + "target": { + "block": "efede71b-c3d9-4e09-86a2-d16d10be2237", + "port": "ed62d7ef-27fb-44ef-99e8-a19bad6342dd" + } + }, + { + "source": { + "block": "59715255-4292-420d-8dcc-5b580cf80053", + "port": "396aa3b6-a380-43ce-aa0a-857411996213" + }, + "target": { + "block": "efede71b-c3d9-4e09-86a2-d16d10be2237", + "port": "e6088243-1d79-4783-ac0f-528d9700b6df" + } + }, + { + "source": { + "block": "5d37a6b5-427c-4b4d-8f50-6f64d222001d", + "port": "d3e4f800-c611-4f65-88e7-8b7d2def0021" + }, + "target": { + "block": "b5c04f78-8aac-46ce-a46b-3cc6acc56f36", + "port": "in" + }, + "size": 8 + }, + { + "source": { + "block": "e172339a-1f66-4651-841d-d1d8416dbb9e", + "port": "memory-out" + }, + "target": { + "block": "ebf7dc75-88a4-4f03-84ce-746129a0d872", + "port": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377" + } + }, + { + "source": { + "block": "59715255-4292-420d-8dcc-5b580cf80053", + "port": "9a83f916-b044-40f7-9d7d-c45b108b1d59" + }, + "target": { + "block": "1af5fc23-360a-47dc-880f-0a83a842ee67", + "port": "ad4d0fc2-118e-496e-b292-c435bad20e7d" + }, + "vertices": [ + { + "x": 192, + "y": 464 + } + ] + }, + { + "source": { + "block": "29eca181-66c1-44d5-a6df-f467b82b0f23", + "port": "8817202f-fd82-4c55-a61e-73bfce814fa8" + }, + "target": { + "block": "59715255-4292-420d-8dcc-5b580cf80053", + "port": "803f0643-ffcf-4a19-bc72-424be0056ad0" + } + }, + { + "source": { + "block": "29eca181-66c1-44d5-a6df-f467b82b0f23", + "port": "8817202f-fd82-4c55-a61e-73bfce814fa8" + }, + "target": { + "block": "59715255-4292-420d-8dcc-5b580cf80053", + "port": "eac204d5-eff2-43b2-90c3-547f8a27ce85" + } + }, + { + "source": { + "block": "29eca181-66c1-44d5-a6df-f467b82b0f23", + "port": "4e8afe74-8f38-4873-97ee-f7585d99a4aa" + }, + "target": { + "block": "59715255-4292-420d-8dcc-5b580cf80053", + "port": "4868a582-148d-4510-a223-b11bbf8ac42f" + }, + "vertices": [ + { + "x": 512, + "y": 312 + } + ] + }, + { + "source": { + "block": "1af5fc23-360a-47dc-880f-0a83a842ee67", + "port": "2885a59c-c338-4e79-83bc-771f79ec7d2e" + }, + "target": { + "block": "29eca181-66c1-44d5-a6df-f467b82b0f23", + "port": "7747f9e3-368a-411c-97c9-ec1c85616509" + }, + "size": 3 + }, + { + "source": { + "block": "59715255-4292-420d-8dcc-5b580cf80053", + "port": "9a83f916-b044-40f7-9d7d-c45b108b1d59" + }, + "target": { + "block": "29eca181-66c1-44d5-a6df-f467b82b0f23", + "port": "adf3a6ae-71e2-43dd-b504-c2cdbc14dab7" + }, + "vertices": [ + { + "x": 264, + "y": 464 + } + ] + }, + { + "source": { + "block": "1af5fc23-360a-47dc-880f-0a83a842ee67", + "port": "49221b19-132a-4e3f-9a1f-97bcd463391b" + }, + "target": { + "block": "5d37a6b5-427c-4b4d-8f50-6f64d222001d", + "port": "065ea371-8398-43b3-8341-287c234a3acb" + }, + "vertices": [ + { + "x": 168, + "y": 504 + } + ] + } + ] + } + }, + "dependencies": { + "e81c23c668234ee0bdf9bc099ccd0826ab246aa6": { + "package": { + "name": "I2C-Read_&_Write", + "version": "0.1", + "description": "I2C read and write.", + "author": "Democrito", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2278.128%22%20height=%22158.752%22%20viewBox=%220%200%2073.2451%20148.83252%22%3E%3Cpath%20d=%22M22.722%2090.97a12.161%2012.161%200%200%201-2.118-.807c-1.344-.702-3.332-2.71-4.051-4.09l-.556-1.067-1.712-.046c-1.368-.036-1.925-.125-2.77-.44-2.98-1.112-5.217-3.415-6.123-6.304-.435-1.39-.46-3.63-.054-4.987.15-.504.252-.93.225-.945-2.14-1.24-4.028-3.672-4.69-6.043-.326-1.167-.26-3.51.134-4.775.583-1.87%201.933-3.8%203.478-4.968.433-.327.503-.452.356-.628-.357-.43-.964-2.302-1.061-3.276-.333-3.32%202.195-6.876%205.615-7.9l.9-.27-.095-1.03c-.441-4.73%204.034-8.883%208.792-8.157.916.14%201.274.145%201.316.018.122-.364%201.286-1.712%201.946-2.25.91-.745%202.532-1.49%203.628-1.668%202.928-.476%206.38%201.552%207.889%204.63l.604%201.236.042%2022.364c.045%2024.05.06%2023.5-.75%2025.66-1.617%204.316-6.535%206.896-10.945%205.743zm21.797.077c-2.924-.634-5.726-3.036-6.76-5.794-.826-2.203-.803-1.41-.758-25.614l.04-22.452.61-1.233c1.51-3.05%204.938-5.09%207.779-4.634%201.12.18%202.076.56%203.1%201.227.863.563%202.163%201.9%202.444%202.514.154.337.222.354.96.235.436-.07%201.322-.118%201.97-.105%204.173.08%207.7%204.047%207.312%208.22l-.097%201.046.51.106c1.982.41%204.256%202.248%205.22%204.217.783%201.596.99%203.02.66%204.537-.143.654-.442%201.552-.666%201.997l-.408.81.518.39c1.519%201.147%202.872%203.083%203.462%204.952.397%201.26.46%203.584.129%204.775-.58%202.08-2.194%204.35-3.927%205.517-.393.265-.736.498-.763.518-.027.02.075.45.226.953.405%201.356.38%203.598-.055%204.987-.902%202.875-3.158%205.198-6.123%206.304-.845.315-1.402.404-2.77.44l-1.712.046-.556%201.066c-.718%201.38-2.707%203.39-4.048%204.09-1.96%201.023-4.202%201.338-6.297.885z%22%20fill=%22#ff0%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M22.578%2091.606a12.161%2012.161%200%200%201-2.117-.808c-1.344-.702-3.332-2.71-4.052-4.09l-.555-1.066-1.712-.046c-1.368-.036-1.925-.125-2.77-.44-2.98-1.112-5.217-3.415-6.123-6.305-.436-1.39-.46-3.63-.055-4.986.15-.505.252-.93.226-.945-2.14-1.24-4.028-3.672-4.69-6.044-.327-1.166-.26-3.508.133-4.774.583-1.872%201.934-3.8%203.479-4.97.432-.325.503-.45.356-.626-.358-.43-.964-2.302-1.062-3.277-.332-3.32%202.196-6.876%205.616-7.9l.9-.27-.096-1.028c-.44-4.733%204.035-8.885%208.792-8.158.917.14%201.274.145%201.317.018.12-.365%201.286-1.712%201.946-2.252.909-.743%202.532-1.49%203.628-1.667%202.927-.475%206.38%201.553%207.888%204.632l.605%201.235.042%2022.363c.045%2024.05.06%2023.5-.75%2025.662-1.617%204.315-6.535%206.895-10.946%205.742zm4.125-2.4c2.45-.654%204.236-2.5%204.822-4.98.154-.65.197-5.87.197-23.533V37.995l-.46-.83c-.575-1.035-1.437-1.823-2.58-2.358-1.253-.586-2.884-.573-4.063.033-1.1.565-1.94%201.458-2.573%202.73-.312.627-.686%201.135-.94%201.276-.385.215-.491.203-1.332-.152-1.356-.573-3.24-.552-4.465.048a5.034%205.034%200%200%200-2.481%202.71c-.286.755-.34%201.158-.287%202.182.037.73.168%201.45.313%201.722.137.256.469.934.738%201.506%201.436%203.06%205.58%204.902%208.783%203.907%201.323-.41%202.31-1.084%203.589-2.45.873-.932%201.184-1.166%201.547-1.166%201.022%200%201.555.95%201.065%201.895-.467.902-2.43%202.684-3.677%203.338l-1.16.61.384.235c.21.13.985.84%201.718%201.58%201.654%201.664%202.427%203.034%202.59%204.59.13%201.222.042%201.315-1.088%201.146-.674-.1-.705-.132-1.45-1.462-1.532-2.74-3.818-4.537-7.111-5.588-1.925-.614-3.188-1.145-4.038-1.698-1.11-.72-2.576-2.292-3.161-3.388l-.517-.968-.651.1c-.995.152-2.542.96-3.076%201.608-.905%201.094-1.166%201.852-1.175%203.402-.01%201.605.247%202.34%201.223%203.498.902%201.07.724%201.738-.652%202.45-1.062.548-2.526%201.948-2.992%202.86-.784%201.533-.998%203.45-.568%205.096.534%202.046%201.665%203.403%203.627%204.35%201.71.827%201.77%201.01.98%203.035-.503%201.294-.51%203.643-.015%204.988%201.24%203.363%204.82%205.04%208.59%204.024a12.888%2012.888%200%200%200%202.375-.954c3.909-2.154%205.068-5.6%203.31-9.83-1.132-2.73-3.72-4.344-6.765-4.224-.837.033-.958-.004-1.297-.397-.476-.552-.474-1.065.005-1.62.366-.426.425-.44%201.845-.427%204.5.04%207.807%202.715%209.08%207.344.403%201.47.434%203.64.07%204.995-.728%202.72-2.954%205.28-5.853%206.734-.951.476-.96.578-.163%201.84.872%201.378%202.517%202.58%204.013%202.933.904.212%202.852.19%203.726-.043zm17.672%202.476c-2.923-.633-5.726-3.035-6.76-5.794-.826-2.203-.802-1.41-.758-25.613l.04-22.453.61-1.232c1.512-3.05%204.939-5.09%207.78-4.634%201.119.18%202.076.56%203.099%201.226.864.564%202.163%201.9%202.445%202.515.154.337.22.354.96.235.436-.07%201.322-.118%201.969-.105%204.174.08%207.7%204.046%207.313%208.22l-.098%201.046.51.105c1.982.41%204.257%202.25%205.22%204.218.783%201.596.99%203.02.66%204.537-.142.653-.442%201.552-.666%201.997l-.407.81.518.39c1.518%201.146%202.872%203.083%203.46%204.952.399%201.26.46%203.584.13%204.774-.58%202.08-2.194%204.35-3.926%205.518a85.5%2085.5%200%200%200-.763.518c-.027.02.075.448.225.953.406%201.356.38%203.597-.054%204.986-.902%202.876-3.158%205.2-6.124%206.305-.845.315-1.401.404-2.77.44l-1.712.046-.555%201.066c-.72%201.38-2.708%203.388-4.05%204.09-1.96%201.023-4.201%201.338-6.296.884zm4.878-2.85c1.88-.88%202.957-2.155%203.729-4.42.526-1.548.785-1.706%202.317-1.418%201.385.26%203.113.142%204.265-.293%201.759-.664%203.273-2.262%203.87-4.084.336-1.023.384-3.355.09-4.318l-.194-.64-2.158-.016c-2.26-.017-3.944-.265-5.658-.835-.892-.296-1.116-.313-2.145-.16-.632.094-1.535.315-2.006.49-1.918.717-3.663%202.476-4.367%204.402-.373%201.022-.753%201.39-1.434%201.39-.561%200-1.213-.633-1.213-1.177%200-.225.155-.774.343-1.22%201.156-2.73%203.426-4.927%206.034-5.837l.81-.283-.673-.868c-.946-1.223-1.412-2.09-1.888-3.514-.74-2.206-.734-5.714.009-6.456.473-.47%201.256-.49%201.736-.038.338.317.35.407.266%202.23-.068%201.5-.03%202.115.18%202.918.616%202.346%202.367%204.57%204.299%205.458%201.675.77%203.046%201.013%205.746%201.017%202.214.003%202.405-.02%203.257-.41%201.038-.476%202.43-1.783%202.922-2.746%201.037-2.03%201.036-4.61-.002-6.643-.455-.89-1.913-2.292-2.962-2.85-.474-.252-.948-.57-1.054-.703-.35-.45-.223-1.05.372-1.757.975-1.158%201.232-1.893%201.223-3.498-.01-1.55-.27-2.308-1.175-3.402-.532-.645-2.08-1.456-3.066-1.607l-.642-.098-.691%201.067c-.97%201.494-2.681%203.157-3.83%203.716-1.201.586-3.051.72-4.688.336-1.368-.32-3.62-1.365-3.845-1.785-.28-.522-.197-1.11.214-1.52.486-.487%201.028-.488%201.86-.006%201.726%201%204.075%201.322%205.362.738.853-.388%201.976-1.51%202.79-2.793%201.11-1.743%201.288-2.28%201.288-3.878%200-1.228-.057-1.528-.436-2.3a5.227%205.227%200%200%200-2.446-2.377c-1.05-.484-3.25-.474-4.285.018-.405.193-.83.35-.946.35-.431%200-.91-.51-1.361-1.452-1.191-2.483-3.54-3.678-5.92-3.012-1.661.466-3.251%201.998-3.666%203.536-.252.934-.123%2045.394.134%2046.306.672%202.386%202.387%204.13%204.73%204.813.44.128%201.306.188%202.289.16%201.383-.042%201.712-.11%202.616-.53z%22%20stroke=%22#000%22/%3E%3Ctext%20stroke-width=%221.05%22%20fill=%22#00f%22%20font-family=%22Arial%22%20style=%22line-height:1.25;-inkscape-font-specification:'Arial%20Bold'%22%20x=%22-.438%22%20y=%2232.083%22%20transform=%22scale(1.15054%20.86915)%22%20font-weight=%22700%22%20font-size=%2241.984%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctspan%20x=%22-.438%22%20y=%2232.083%22%20style=%22-inkscape-font-specification:'Arial%20Bold'%22%3EI2C%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:'Arial%20Bold'%22%20x=%22-.867%22%20y=%22132.347%22%20transform=%22scale(1.19282%20.83835)%22%20font-weight=%22700%22%20font-size=%2225.689%22%20letter-spacing=%220%22%20word-spacing=%220%22%20font-family=%22Arial%22%20fill=%22red%22%20stroke-width=%22.643%22%3E%3Ctspan%20x=%22-.867%22%20y=%22132.347%22%20style=%22-inkscape-font-specification:'Arial%20Bold'%22%3ERead%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:'Arial%20Bold'%22%20x=%22-.087%22%20y=%22175.465%22%20transform=%22scale(1.18094%20.84678)%22%20font-weight=%22700%22%20font-size=%2225.434%22%20letter-spacing=%220%22%20word-spacing=%220%22%20font-family=%22Arial%22%20fill=%22red%22%20stroke-width=%22.636%22%3E%3Ctspan%20x=%22-.087%22%20y=%22175.465%22%20style=%22-inkscape-font-specification:'Arial%20Bold'%22%3EWrite%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:'Arial%20Bold'%22%20x=%2223.689%22%20y=%22154.728%22%20transform=%22scale(1.19282%20.83835)%22%20font-weight=%22700%22%20font-size=%2225.689%22%20letter-spacing=%220%22%20word-spacing=%220%22%20font-family=%22Arial%22%20fill=%22#f60%22%20stroke-width=%22.643%22%3E%3Ctspan%20x=%2223.689%22%20y=%22154.728%22%20style=%22-inkscape-font-specification:'Arial%20Bold'%22%3E&%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "4de17236-2bd6-4226-8b46-73a1b20627c6", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 440, + "y": 144 + } + }, + { + "id": "54bc7810-601b-438b-84fe-7c6ccfb0b1ac", + "type": "basic.inputLabel", + "data": { + "blockColor": "yellow", + "name": "clk", + "pins": [ + { + "index": "0", + "name": "", + "value": "" + } + ], + "virtual": true + }, + "position": { + "x": 2968, + "y": 144 + } + }, + { + "id": "e1eba2ec-135a-4d54-b07d-ca74864c7517", + "type": "basic.output", + "data": { + "name": "sda_test" + }, + "position": { + "x": 2968, + "y": 296 + } + }, + { + "id": "acf5f905-8262-4e28-830d-15ba2d0b599f", + "type": "basic.outputLabel", + "data": { + "blockColor": "fuchsia", + "name": "sda_test", + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 2472, + "y": 296 + } + }, + { + "id": "ddd6e425-039b-4704-9197-436dee4c94a0", + "type": "basic.outputLabel", + "data": { + "blockColor": "olivedrab", + "name": "wr", + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 1584, + "y": 296 + } + }, + { + "id": "4a8226f0-0861-4f61-8026-3a760afcae3f", + "type": "basic.inputLabel", + "data": { + "blockColor": "lightgray", + "name": "fq", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 1376, + "y": 304 + } + }, + { + "id": "4037b68b-6615-42d5-9d2a-00fce8e77f0d", + "type": "basic.outputLabel", + "data": { + "blockColor": "fuchsia", + "name": "hold" + }, + "position": { + "x": 944, + "y": 320 + } + }, + { + "id": "98843c67-e0c7-4fa6-83e2-541957f2bb84", + "type": "basic.output", + "data": { + "name": "scl_test" + }, + "position": { + "x": 2968, + "y": 344 + } + }, + { + "id": "1f349d8f-03af-4194-9010-0118499c8dec", + "type": "basic.outputLabel", + "data": { + "blockColor": "fuchsia", + "name": "scl_test", + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 2472, + "y": 344 + } + }, + { + "id": "9e29102c-bdc7-4b28-8407-66ce468dcee8", + "type": "basic.input", + "data": { + "name": "d", + "range": "[7:0]", + "clock": false, + "size": 8 + }, + "position": { + "x": 448, + "y": 456 + } + }, + { + "id": "8e724fcf-2c8f-48ba-91c0-36a764e4c830", + "type": "basic.output", + "data": { + "name": "rw_test" + }, + "position": { + "x": 2968, + "y": 472 + } + }, + { + "id": "86f31e6a-12b5-44e9-b7f2-bf5c8e950f17", + "type": "basic.output", + "data": { + "name": "sdata" + }, + "position": { + "x": 2968, + "y": 512 + } + }, + { + "id": "6f2956f2-156d-44a1-960b-364ebc0333f8", + "type": "basic.inputLabel", + "data": { + "blockColor": "fuchsia", + "name": "sda_test", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 2968, + "y": 552 + } + }, + { + "id": "0ee095fe-f99f-417d-9dbe-b56034c55fb2", + "type": "basic.outputLabel", + "data": { + "name": "sel", + "range": "[1:0]", + "oldBlockColor": "fuchsia", + "blockColor": "springgreen", + "size": 2 + }, + "position": { + "x": 1792, + "y": 576 + } + }, + { + "id": "396aa3b6-a380-43ce-aa0a-857411996213", + "type": "basic.output", + "data": { + "name": "shift" + }, + "position": { + "x": 2968, + "y": 608 + } + }, + { + "id": "fe87b2fb-b9bb-4dd6-9048-1e8781d13df9", + "type": "basic.outputLabel", + "data": { + "blockColor": "yellow", + "name": "clk", + "oldBlockColor": "yellow" + }, + "position": { + "x": 448, + "y": 608 + } + }, + { + "id": "a37f224d-8152-4876-a864-42ed09950ef2", + "type": "basic.outputLabel", + "data": { + "blockColor": "fuchsia", + "name": "scl_shift", + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 1792, + "y": 640 + } + }, + { + "id": "e727dfbe-0a00-4b2f-80fb-9cf53db2e434", + "type": "basic.outputLabel", + "data": { + "blockColor": "yellow", + "name": "clk", + "oldBlockColor": "yellow" + }, + "position": { + "x": 1792, + "y": 672 + } + }, + { + "id": "ec7e8050-cc0c-4101-bc2e-3501416ea3dc", + "type": "basic.inputLabel", + "data": { + "name": "sel", + "range": "[1:0]", + "pins": [ + { + "index": "1", + "name": "", + "value": "" + }, + { + "index": "0", + "name": "", + "value": "" + } + ], + "virtual": true, + "blockColor": "springgreen" + }, + "position": { + "x": 2968, + "y": 680 + } + }, + { + "id": "928a8622-9680-4589-8cbc-320038779b65", + "type": "basic.outputLabel", + "data": { + "blockColor": "lightgray", + "name": "fq", + "oldBlockColor": "indianred" + }, + "position": { + "x": 944, + "y": 696 + } + }, + { + "id": "c0905169-37e4-4c29-9375-d0cbac9239e1", + "type": "basic.input", + "data": { + "name": "start", + "clock": false + }, + "position": { + "x": 448, + "y": 728 + } + }, + { + "id": "56ff916e-da54-4252-b7aa-962d610e0fd0", + "type": "basic.outputLabel", + "data": { + "blockColor": "darkorange", + "name": "end", + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 2472, + "y": 792 + } + }, + { + "id": "b41e240b-57b7-45a4-a3c5-920bd3a4f968", + "type": "basic.output", + "data": { + "name": "done" + }, + "position": { + "x": 2968, + "y": 792 + } + }, + { + "id": "e63ee61e-5a33-4647-a17e-3809a3a5ad1b", + "type": "basic.inputLabel", + "data": { + "blockColor": "fuchsia", + "name": "start", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 752, + "y": 792 + } + }, + { + "id": "17c9ae37-d89d-4d5a-8044-755662ccad97", + "type": "basic.outputLabel", + "data": { + "blockColor": "red", + "name": "rst", + "oldBlockColor": "red" + }, + "position": { + "x": 1144, + "y": 808 + } + }, + { + "id": "88a01632-9b78-4ea9-9b19-4311c1ec92ca", + "type": "basic.inputLabel", + "data": { + "blockColor": "olivedrab", + "name": "wr", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "oldBlockColor": "olivedrab" + }, + "position": { + "x": 2968, + "y": 856 + } + }, + { + "id": "689be50d-5acb-4f9c-b41a-ecea9ddae103", + "type": "basic.outputLabel", + "data": { + "blockColor": "fuchsia", + "name": "start" + }, + "position": { + "x": 2016, + "y": 880 + } + }, + { + "id": "5338a294-ba59-44fa-8642-ad8aaf7025a4", + "type": "basic.outputLabel", + "data": { + "blockColor": "greenyellow", + "name": "RW", + "oldBlockColor": "darkorange" + }, + "position": { + "x": 2272, + "y": 920 + } + }, + { + "id": "313a7e97-f6cd-455e-b056-b55632092f7b", + "type": "basic.inputLabel", + "data": { + "blockColor": "darkorange", + "name": "end", + "pins": [ + { + "index": "0", + "name": "", + "value": "" + } + ], + "virtual": true, + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 1792, + "y": 920 + } + }, + { + "id": "4868a582-148d-4510-a223-b11bbf8ac42f", + "type": "basic.input", + "data": { + "name": "stop", + "clock": false + }, + "position": { + "x": 448, + "y": 960 + } + }, + { + "id": "9a83f916-b044-40f7-9d7d-c45b108b1d59", + "type": "basic.output", + "data": { + "name": "next" + }, + "position": { + "x": 2968, + "y": 968 + } + }, + { + "id": "917f6db0-6c3c-4eb2-83bf-985467b0ab41", + "type": "basic.inputLabel", + "data": { + "blockColor": "red", + "name": "rst", + "pins": [ + { + "index": "0", + "name": "", + "value": "" + } + ], + "virtual": true, + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 2272, + "y": 968 + } + }, + { + "id": "c3901bd8-dd31-401b-b90c-931acd97960b", + "type": "basic.outputLabel", + "data": { + "blockColor": "lightgray", + "name": "fq" + }, + "position": { + "x": 1792, + "y": 992 + } + }, + { + "id": "2245a729-9992-4b15-9ac5-b923235680b3", + "type": "basic.outputLabel", + "data": { + "blockColor": "yellow", + "name": "clk", + "oldBlockColor": "yellow" + }, + "position": { + "x": 2272, + "y": 1016 + } + }, + { + "id": "d8d9425f-381a-4850-b961-b16858e08ea2", + "type": "basic.output", + "data": { + "name": "sda" + }, + "position": { + "x": 2968, + "y": 1072 + } + }, + { + "id": "1454227a-43d8-4994-8a3a-82a0ca663303", + "type": "basic.output", + "data": { + "name": "scl" + }, + "position": { + "x": 2968, + "y": 1144 + } + }, + { + "id": "15d0b086-6b89-4489-9750-f4887b5a6b74", + "type": "basic.outputLabel", + "data": { + "name": "sel", + "range": "[1:0]", + "blockColor": "springgreen", + "size": 2 + }, + "position": { + "x": 1792, + "y": 1152 + } + }, + { + "id": "803f0643-ffcf-4a19-bc72-424be0056ad0", + "type": "basic.input", + "data": { + "name": "RW", + "clock": false + }, + "position": { + "x": 448, + "y": 1176 + } + }, + { + "id": "97291f1d-7207-43b4-912e-fc9dd099bc37", + "type": "basic.inputLabel", + "data": { + "blockColor": "greenyellow", + "name": "RW", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "oldBlockColor": "slateblue" + }, + "position": { + "x": 752, + "y": 1176 + } + }, + { + "id": "92ff0749-052d-403f-83cd-fde6eb3bb3cb", + "type": "basic.inputLabel", + "data": { + "blockColor": "fuchsia", + "name": "scl_test", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 2968, + "y": 1216 + } + }, + { + "id": "e3150378-2a08-48ec-99b4-843f77d90eed", + "type": "basic.inputLabel", + "data": { + "blockColor": "fuchsia", + "name": "scl_shift", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 2472, + "y": 1264 + } + }, + { + "id": "eac204d5-eff2-43b2-90c3-547f8a27ce85", + "type": "basic.input", + "data": { + "name": "nack", + "clock": false + }, + "position": { + "x": 448, + "y": 1272 + } + }, + { + "id": "381fd431-f0e1-4481-907b-248c94aa573d", + "type": "basic.inputLabel", + "data": { + "blockColor": "fuchsia", + "name": "hold", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 2968, + "y": 1288 + } + }, + { + "id": "524107ba-b1fe-420c-92e6-a3e191d57f3b", + "type": "basic.outputLabel", + "data": { + "blockColor": "yellow", + "name": "clk", + "oldBlockColor": "yellow" + }, + "position": { + "x": 1376, + "y": 1312 + } + }, + { + "id": "4ca26524-fc46-4e39-b5a6-960adfb02b48", + "type": "basic.constant", + "data": { + "name": "Hz", + "value": "100_000", + "local": false + }, + "position": { + "x": 1144, + "y": 200 + } + }, + { + "id": "03295ab4-c1f1-4c75-b4b9-7c6c2316ce4a", + "type": "basic.constant", + "data": { + "name": "max", + "value": "9", + "local": true + }, + "position": { + "x": 1584, + "y": 1224 + } + }, + { + "id": "21c35f4a-8baf-495c-a097-8f80093b6fbf", + "type": "basic.constant", + "data": { + "name": "eight", + "value": "8", + "local": true + }, + "position": { + "x": 1792, + "y": 1224 + } + }, + { + "id": "166bf8df-1004-4b13-8dcd-e7c3119ce0a1", + "type": "725b7e2cb9666b5ed3183537d9c898f096dab82a", + "position": { + "x": 1792, + "y": 504 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "f142edec-fc11-4d66-bfad-2ec10b401293", + "type": "725b7e2cb9666b5ed3183537d9c898f096dab82a", + "position": { + "x": 1792, + "y": 1064 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "77d75ca1-b198-43f3-964f-4afc199bb13c", + "type": "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542", + "position": { + "x": 1792, + "y": 376 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "3bf62d7b-0192-44f0-abe6-7773adf50004", + "type": "e79148d23652be6d5149f8f6881f7f47bd958497", + "position": { + "x": 2472, + "y": 688 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "69cb8815-c65b-4782-8302-d26de5cacd06", + "type": "2ddbb26d71094c8d654eb6b642054e1d9f5ba734", + "position": { + "x": 1584, + "y": 1328 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "25f4d001-6984-4f5d-aa45-ea857f6daf77", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "position": { + "x": 2272, + "y": 736 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "06f31bd9-a018-4347-92a9-ccabb58bc101", + "type": "e33ecba0f1fbe8ecdf043e2ed5d88a553fff19e8", + "position": { + "x": 2016, + "y": 424 + }, + "size": { + "width": 96, + "height": 160 + } + }, + { + "id": "95956d9b-2396-48bb-9dcd-607a3cd254fb", + "type": "e33ecba0f1fbe8ecdf043e2ed5d88a553fff19e8", + "position": { + "x": 2016, + "y": 1096 + }, + "size": { + "width": 96, + "height": 160 + } + }, + { + "id": "a9c7c14f-2d02-4bcd-94b9-6e9e6f175145", + "type": "d7e6ff61e136e0120db6aaabf8b34ea6fd14c159", + "position": { + "x": 2272, + "y": 456 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "c9de0dcd-9539-4aa1-b8d8-30e19ace13e3", + "type": "d976e4d8f32b931eedc3e12fe125a464cbb9238d", + "position": { + "x": 1376, + "y": 504 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "892037e4-b713-4f22-b260-44c1e79aeb7e", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 1792, + "y": 440 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "5c4f6e0b-26dc-4320-9a58-67b8df6f4ff8", + "type": "2cc41a5382c79d4e650316c0bbb9c0ffee453add", + "position": { + "x": 1144, + "y": 680 + }, + "size": { + "width": 96, + "height": 128 + } + }, + { + "id": "7d93597c-6d34-414e-8596-eb936af89ddb", + "type": "b8135e59508d20a0f5ed1e8dfb123d695afe65b9", + "position": { + "x": 1376, + "y": 680 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "c937d31e-0145-4993-9e5d-b02415c2750b", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 2272, + "y": 296 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "40d105fc-5855-470e-b441-14767470a5a9", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 2272, + "y": 840 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "3fc6d02e-2613-4f6b-8a7e-7eca71951d32", + "type": "0b4097a1c6ac2a5e6e6f03e1930cb2e46d222f05", + "position": { + "x": 1792, + "y": 1320 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "c9308253-7d03-49df-8323-788cdadcb8a5", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 2472, + "y": 608 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "4bcf0819-a351-4dca-9c87-f7648a2f4bf4", + "type": "d7e6ff61e136e0120db6aaabf8b34ea6fd14c159", + "position": { + "x": 2472, + "y": 1160 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "a85bb61a-c18b-4602-90a7-8fac14232cd0", + "type": "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542", + "position": { + "x": 2272, + "y": 1216 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "c2def9b7-70ba-4df6-9319-6afd359fc33b", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 2272, + "y": 1144 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "2bb660d1-82b9-490c-881c-22806a75d950", + "type": "53847c98bfef0fe28fbef1f4f65042911f361c44", + "position": { + "x": 1584, + "y": 408 + }, + "size": { + "width": 96, + "height": 160 + } + }, + { + "id": "6375bc2d-fb0b-45c1-807d-7e4db91cb218", + "type": "1420082f26891895ac20bd3f92bae423a80f7669", + "position": { + "x": 2472, + "y": 856 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "a19090a3-0754-40ee-b8ff-b7b853623505", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 2648, + "y": 1240 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "e0badec5-0a64-43db-8101-73c493ff5b57", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 2800, + "y": 1288 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "2c05c075-2971-4df4-9af4-dbee695394b8", + "type": "7b1b18c562dd91a11b875e640993a8c004d75533", + "position": { + "x": 1144, + "y": 304 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "efdaa97f-c65b-443e-80d6-a02b11468e6c", + "type": "b70dd9c39fe3c51faff4233d2dde462fc53c7e38", + "position": { + "x": 2472, + "y": 936 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "c4e3df0e-3048-4c22-94b5-f72e08286531", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 2472, + "y": 1032 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "44b23d7d-5267-465c-8ca4-acd2838186bf", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "position": { + "x": 2272, + "y": 1080 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "30b00924-6fe1-4151-9c98-7e7ba357189b", + "type": "8e2728307baccbf26c01cdb87bcfba8ca64a435c", + "position": { + "x": 2016, + "y": 808 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "baa4f214-f5f5-4087-893e-fc92ec8403c9", + "type": "7eacdff4ce248b009935725889c8ae3339817d76", + "position": { + "x": 2016, + "y": 624 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "09e898a7-18c1-41e1-ab86-199e14503bc6", + "type": "fae75666c16ceda511dc194c49e012b7019d8032", + "position": { + "x": 2016, + "y": 944 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "dcfc3587-80ee-49f5-b55c-b219d1d7d92e", + "type": "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542", + "position": { + "x": 1376, + "y": 1240 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "1ff4b383-47b7-4861-95bb-bb31b52d33e3", + "type": "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542", + "position": { + "x": 2272, + "y": 576 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "49951405-46f1-45e8-814d-3aaf6e1c279f", + "type": "basic.info", + "data": { + "info": "start tick", + "readonly": true + }, + "position": { + "x": 464, + "y": 704 + }, + "size": { + "width": 64, + "height": 32 + } + }, + { + "id": "acc3a8e0-b164-4b77-8f2c-247526862d4c", + "type": "basic.info", + "data": { + "info": "Sending the first byte will produce automatically the I2C protocol \"start\" signal, we send the address and data we need, and a tick the \"stop\" input pin will produce the I2C protocol \"stop\" signal.", + "readonly": true + }, + "position": { + "x": 448, + "y": 808 + }, + "size": { + "width": 264, + "height": 32 + } + }, + { + "id": "e264709a-737b-45e1-b0f6-3635a81493e4", + "type": "basic.info", + "data": { + "info": "stop tick", + "readonly": true + }, + "position": { + "x": 464, + "y": 936 + }, + "size": { + "width": 64, + "height": 32 + } + }, + { + "id": "e5bfd82d-ecb7-4c30-aaf2-63f43c4bdf8e", + "type": "basic.info", + "data": { + "info": "RW = 1 Read \nRW = 0 Write", + "readonly": true + }, + "position": { + "x": 448, + "y": 1136 + }, + "size": { + "width": 104, + "height": 32 + } + }, + { + "id": "46486ec1-6908-4673-8ff3-de0cd32c5b45", + "type": "basic.info", + "data": { + "info": "The \"nack\" input pin normally has to be at 0. Only when we do a reading and it is the last byte we read, it will be then when nack has to be 1. There are sensors and peripherals that will accept that it is always 0, but others require strict adherence to the I2C protocol.", + "readonly": true + }, + "position": { + "x": 928, + "y": 1200 + }, + "size": { + "width": 352, + "height": 32 + } + }, + { + "id": "8238f17f-b1a0-465f-bcc8-7d8fe02f4e94", + "type": "basic.info", + "data": { + "info": "It will produce two ticks in the counter for the I2C protocol START sequence to occur. After these two cycles there will be no more for this output.", + "readonly": true + }, + "position": { + "x": 1376, + "y": 784 + }, + "size": { + "width": 160, + "height": 32 + } + }, + { + "id": "dae835e1-c0d9-4785-8418-5627105c8295", + "type": "basic.info", + "data": { + "info": "After the 2 ticks in the counter it will start to mark this pin to shift the bits in the shift register.", + "readonly": true + }, + "position": { + "x": 1544, + "y": 608 + }, + "size": { + "width": 200, + "height": 32 + } + }, + { + "id": "b219248c-9e31-4b2d-b6b0-206d2b35f7a6", + "type": "basic.info", + "data": { + "info": "The \"start\" signal starts at one cycle low of the input frequency, and It is ensured that it is started at the beginning of a cycle of the I2C frequency.", + "readonly": true + }, + "position": { + "x": 936, + "y": 552 + }, + "size": { + "width": 320, + "height": 32 + } + }, + { + "id": "0497c67f-258c-4ccc-9173-16f510c5bd83", + "type": "basic.info", + "data": { + "info": "Frequency in Hz of the I2C", + "readonly": true + }, + "position": { + "x": 1376, + "y": 272 + }, + "size": { + "width": 168, + "height": 32 + } + }, + { + "id": "7f0ad177-608b-4d99-8341-faffbdd94204", + "type": "basic.info", + "data": { + "info": "Load first, then shift", + "readonly": true + }, + "position": { + "x": 1384, + "y": 416 + }, + "size": { + "width": 128, + "height": 32 + } + }, + { + "id": "ad434e81-9be2-4189-a75b-bbc3daf00155", + "type": "basic.info", + "data": { + "info": "Sequence start, send/receive and stop.", + "readonly": true + }, + "position": { + "x": 1952, + "y": 360 + }, + "size": { + "width": 240, + "height": 32 + } + }, + { + "id": "10d69e3d-2fe8-4476-899c-e98fa79bccd3", + "type": "basic.info", + "data": { + "info": "Sequence start, send/receive and stop.", + "readonly": true + }, + "position": { + "x": 1944, + "y": 1256 + }, + "size": { + "width": 240, + "height": 32 + } + }, + { + "id": "08016e50-cad6-48bd-96e6-7f7b4fc5184a", + "type": "basic.info", + "data": { + "info": "The accountant decides what has to happen at each moment.", + "readonly": true + }, + "position": { + "x": 2656, + "y": 736 + }, + "size": { + "width": 200, + "height": 32 + } + }, + { + "id": "99f9a1b8-3922-42d3-a04b-7473d8791a90", + "type": "basic.info", + "data": { + "info": "SDA sequence", + "readonly": true + }, + "position": { + "x": 2016, + "y": 392 + }, + "size": { + "width": 96, + "height": 32 + } + }, + { + "id": "42e41ef6-410d-4200-b7c5-16100fa28bab", + "type": "basic.info", + "data": { + "info": "SCL sequence", + "readonly": true + }, + "position": { + "x": 2008, + "y": 1280 + }, + "size": { + "width": 96, + "height": 32 + } + }, + { + "id": "d691684e-fe89-4018-a827-a79b206ac52d", + "type": "basic.info", + "data": { + "info": "For testing with PulseView only", + "readonly": true + }, + "position": { + "x": 2688, + "y": 296 + }, + "size": { + "width": 200, + "height": 32 + } + }, + { + "id": "874dc6ca-91a0-4b95-b6ad-f23817a645e4", + "type": "basic.info", + "data": { + "info": "For testing with PulseView only", + "readonly": true + }, + "position": { + "x": 2688, + "y": 344 + }, + "size": { + "width": 200, + "height": 32 + } + }, + { + "id": "a7ba228f-79ac-4d10-b4b7-bae324f0cc21", + "type": "basic.info", + "data": { + "info": "For testing with PulseView only", + "readonly": true + }, + "position": { + "x": 2696, + "y": 472 + }, + "size": { + "width": 200, + "height": 32 + } + }, + { + "id": "cb6babd9-14ea-431a-908b-cb26870047a9", + "type": "basic.info", + "data": { + "info": "Serial bits of a read", + "readonly": true + }, + "position": { + "x": 2744, + "y": 552 + }, + "size": { + "width": 120, + "height": 32 + } + }, + { + "id": "22db6832-41a9-469e-be7f-f158877bdbb3", + "type": "basic.info", + "data": { + "info": "ticks of a reading", + "readonly": true + }, + "position": { + "x": 2744, + "y": 608 + }, + "size": { + "width": 112, + "height": 32 + } + }, + { + "id": "a97770dc-6dd7-4cd2-9e64-2bd0134d2a33", + "type": "basic.info", + "data": { + "info": "done tick", + "readonly": true + }, + "position": { + "x": 2984, + "y": 776 + }, + "size": { + "width": 64, + "height": 32 + } + }, + { + "id": "d6279318-bd66-4b1e-a8ad-2afe977afd23", + "type": "basic.info", + "data": { + "info": "Next tick", + "readonly": true + }, + "position": { + "x": 2984, + "y": 952 + }, + "size": { + "width": 64, + "height": 32 + } + }, + { + "id": "26f102b3-4821-4ca0-9ed3-cd440b4c2094", + "type": "basic.info", + "data": { + "info": "SDA pin", + "readonly": true + }, + "position": { + "x": 2992, + "y": 1056 + }, + "size": { + "width": 64, + "height": 32 + } + }, + { + "id": "2bb4b22e-241b-488f-a40b-452d1cebcd07", + "type": "basic.info", + "data": { + "info": "SCL pin", + "readonly": true + }, + "position": { + "x": 2992, + "y": 1128 + }, + "size": { + "width": 64, + "height": 32 + } + }, + { + "id": "6c6de663-598f-46ad-baec-0e3ba14da186", + "type": "basic.info", + "data": { + "info": "**The read bits will be output by \"sdata\" pin with their corresponding tick by \"shift\" pin. Add the necessary shift registers on the outside.**", + "readonly": true + }, + "position": { + "x": 2664, + "y": 944 + }, + "size": { + "width": 248, + "height": 40 + } + }, + { + "id": "482c911e-6754-4922-a9d8-ef089410030b", + "type": "basic.info", + "data": { + "info": "8-bits data input.", + "readonly": true + }, + "position": { + "x": 448, + "y": 424 + }, + "size": { + "width": 112, + "height": 32 + } + } + ], + "wires": [ + { + "source": { + "block": "4de17236-2bd6-4226-8b46-73a1b20627c6", + "port": "out" + }, + "target": { + "block": "54bc7810-601b-438b-84fe-7c6ccfb0b1ac", + "port": "inlabel" + }, + "vertices": [] + }, + { + "source": { + "block": "acf5f905-8262-4e28-830d-15ba2d0b599f", + "port": "outlabel" + }, + "target": { + "block": "e1eba2ec-135a-4d54-b07d-ca74864c7517", + "port": "in" + }, + "vertices": [ + { + "x": 2792, + "y": 328 + } + ] + }, + { + "source": { + "block": "1f349d8f-03af-4194-9010-0118499c8dec", + "port": "outlabel" + }, + "target": { + "block": "98843c67-e0c7-4fa6-83e2-541957f2bb84", + "port": "in" + }, + "vertices": [ + { + "x": 2792, + "y": 376 + } + ] + }, + { + "source": { + "block": "56ff916e-da54-4252-b7aa-962d610e0fd0", + "port": "outlabel" + }, + "target": { + "block": "b41e240b-57b7-45a4-a3c5-920bd3a4f968", + "port": "in" + }, + "vertices": [] + }, + { + "source": { + "block": "c0905169-37e4-4c29-9375-d0cbac9239e1", + "port": "out" + }, + "target": { + "block": "e63ee61e-5a33-4647-a17e-3809a3a5ad1b", + "port": "inlabel" + }, + "vertices": [] + }, + { + "source": { + "block": "4868a582-148d-4510-a223-b11bbf8ac42f", + "port": "out" + }, + "target": { + "block": "313a7e97-f6cd-455e-b056-b55632092f7b", + "port": "inlabel" + }, + "vertices": [] + }, + { + "source": { + "block": "803f0643-ffcf-4a19-bc72-424be0056ad0", + "port": "out" + }, + "target": { + "block": "97291f1d-7207-43b4-912e-fc9dd099bc37", + "port": "inlabel" + }, + "vertices": [] + }, + { + "source": { + "block": "3bf62d7b-0192-44f0-abe6-7773adf50004", + "port": "7a982450-c842-4aa2-8e77-43cc628266e0", + "size": 2 + }, + "target": { + "block": "ec7e8050-cc0c-4101-bc2e-3501416ea3dc", + "port": "inlabel" + }, + "vertices": [], + "size": 2 + }, + { + "source": { + "block": "e727dfbe-0a00-4b2f-80fb-9cf53db2e434", + "port": "outlabel" + }, + "target": { + "block": "3bf62d7b-0192-44f0-abe6-7773adf50004", + "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" + }, + "vertices": [] + }, + { + "source": { + "block": "524107ba-b1fe-420c-92e6-a3e191d57f3b", + "port": "outlabel" + }, + "target": { + "block": "69cb8815-c65b-4782-8302-d26de5cacd06", + "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" + }, + "vertices": [] + }, + { + "source": { + "block": "0ee095fe-f99f-417d-9dbe-b56034c55fb2", + "port": "outlabel" + }, + "target": { + "block": "06f31bd9-a018-4347-92a9-ccabb58bc101", + "port": "94142d6d-263f-4f11-9418-5578d56bcbb1", + "size": 2 + }, + "vertices": [ + { + "x": 1912, + "y": 592 + } + ], + "size": 2 + }, + { + "source": { + "block": "95956d9b-2396-48bb-9dcd-607a3cd254fb", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" + }, + "target": { + "block": "e3150378-2a08-48ec-99b4-843f77d90eed", + "port": "inlabel" + }, + "vertices": [ + { + "x": 2232, + "y": 1296 + } + ] + }, + { + "source": { + "block": "15d0b086-6b89-4489-9750-f4887b5a6b74", + "port": "outlabel" + }, + "target": { + "block": "95956d9b-2396-48bb-9dcd-607a3cd254fb", + "port": "94142d6d-263f-4f11-9418-5578d56bcbb1", + "size": 2 + }, + "vertices": [ + { + "x": 1920, + "y": 1216 + } + ], + "size": 2 + }, + { + "source": { + "block": "a9c7c14f-2d02-4bcd-94b9-6e9e6f175145", + "port": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058" + }, + "target": { + "block": "6f2956f2-156d-44a1-960b-364ebc0333f8", + "port": "inlabel" + }, + "vertices": [ + { + "x": 2392, + "y": 552 + } + ] + }, + { + "source": { + "block": "ddd6e425-039b-4704-9197-436dee4c94a0", + "port": "outlabel" + }, + "target": { + "block": "a9c7c14f-2d02-4bcd-94b9-6e9e6f175145", + "port": "f96a1baf-fc8b-4c25-b132-12552605743f" + }, + "vertices": [ + { + "x": 2224, + "y": 384 + } + ] + }, + { + "source": { + "block": "ddd6e425-039b-4704-9197-436dee4c94a0", + "port": "outlabel" + }, + "target": { + "block": "892037e4-b713-4f22-b260-44c1e79aeb7e", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": 1768, + "y": 376 + } + ] + }, + { + "source": { + "block": "928a8622-9680-4589-8cbc-320038779b65", + "port": "outlabel" + }, + "target": { + "block": "5c4f6e0b-26dc-4320-9a58-67b8df6f4ff8", + "port": "bcef1c12-a59c-48f2-a462-320d500235a9" + }, + "vertices": [] + }, + { + "source": { + "block": "fe87b2fb-b9bb-4dd6-9048-1e8781d13df9", + "port": "outlabel" + }, + "target": { + "block": "5c4f6e0b-26dc-4320-9a58-67b8df6f4ff8", + "port": "7f0c5ba5-d35f-42f2-b75f-01659f5c74d6" + }, + "vertices": [] + }, + { + "source": { + "block": "fe87b2fb-b9bb-4dd6-9048-1e8781d13df9", + "port": "outlabel" + }, + "target": { + "block": "7d93597c-6d34-414e-8596-eb936af89ddb", + "port": "4b1fc7a3-c946-485a-8a6e-fb48ab711489" + }, + "vertices": [ + { + "x": 1328, + "y": 680 + } + ] + }, + { + "source": { + "block": "17c9ae37-d89d-4d5a-8044-755662ccad97", + "port": "outlabel" + }, + "target": { + "block": "7d93597c-6d34-414e-8596-eb936af89ddb", + "port": "6bedf67d-24d7-48c8-95b7-840f9b8ee694" + }, + "vertices": [] + }, + { + "source": { + "block": "ddd6e425-039b-4704-9197-436dee4c94a0", + "port": "outlabel" + }, + "target": { + "block": "c937d31e-0145-4993-9e5d-b02415c2750b", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "4bcf0819-a351-4dca-9c87-f7648a2f4bf4", + "port": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058" + }, + "target": { + "block": "92ff0749-052d-403f-83cd-fde6eb3bb3cb", + "port": "inlabel" + }, + "vertices": [ + { + "x": 2784, + "y": 1232 + } + ] + }, + { + "source": { + "block": "6375bc2d-fb0b-45c1-807d-7e4db91cb218", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "88a01632-9b78-4ea9-9b19-4311c1ec92ca", + "port": "inlabel" + }, + "vertices": [] + }, + { + "source": { + "block": "e0badec5-0a64-43db-8101-73c493ff5b57", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "381fd431-f0e1-4481-907b-248c94aa573d", + "port": "inlabel" + }, + "vertices": [] + }, + { + "source": { + "block": "2c05c075-2971-4df4-9af4-dbee695394b8", + "port": "70887b0b-826c-4150-a873-605b77da8272" + }, + "target": { + "block": "4a8226f0-0861-4f61-8026-3a760afcae3f", + "port": "inlabel" + }, + "vertices": [] + }, + { + "source": { + "block": "4037b68b-6615-42d5-9d2a-00fce8e77f0d", + "port": "outlabel" + }, + "target": { + "block": "2c05c075-2971-4df4-9af4-dbee695394b8", + "port": "38f0d8e4-3d8b-4998-87af-0d8cf7c1fd6a" + }, + "vertices": [] + }, + { + "source": { + "block": "5338a294-ba59-44fa-8642-ad8aaf7025a4", + "port": "outlabel" + }, + "target": { + "block": "efdaa97f-c65b-443e-80d6-a02b11468e6c", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "2245a729-9992-4b15-9ac5-b923235680b3", + "port": "outlabel" + }, + "target": { + "block": "c4e3df0e-3048-4c22-94b5-f72e08286531", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + }, + "vertices": [] + }, + { + "source": { + "block": "689be50d-5acb-4f9c-b41a-ecea9ddae103", + "port": "outlabel" + }, + "target": { + "block": "44b23d7d-5267-465c-8ca4-acd2838186bf", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": 2224, + "y": 1040 + } + ] + }, + { + "source": { + "block": "e727dfbe-0a00-4b2f-80fb-9cf53db2e434", + "port": "outlabel" + }, + "target": { + "block": "30b00924-6fe1-4151-9c98-7e7ba357189b", + "port": "4196184b-4a60-493b-bcc6-c95958483683" + }, + "vertices": [ + { + "x": 1944, + "y": 776 + } + ] + }, + { + "source": { + "block": "a37f224d-8152-4876-a864-42ed09950ef2", + "port": "outlabel" + }, + "target": { + "block": "baa4f214-f5f5-4087-893e-fc92ec8403c9", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + }, + "vertices": [] + }, + { + "source": { + "block": "e727dfbe-0a00-4b2f-80fb-9cf53db2e434", + "port": "outlabel" + }, + "target": { + "block": "baa4f214-f5f5-4087-893e-fc92ec8403c9", + "port": "4196184b-4a60-493b-bcc6-c95958483683" + }, + "vertices": [ + { + "x": 1944, + "y": 680 + } + ] + }, + { + "source": { + "block": "09e898a7-18c1-41e1-ab86-199e14503bc6", + "port": "85cff7d0-bfed-43a4-989c-9788a21aa439" + }, + "target": { + "block": "917f6db0-6c3c-4eb2-83bf-985467b0ab41", + "port": "inlabel" + }, + "vertices": [] + }, + { + "source": { + "block": "c3901bd8-dd31-401b-b90c-931acd97960b", + "port": "outlabel" + }, + "target": { + "block": "09e898a7-18c1-41e1-ab86-199e14503bc6", + "port": "9bb84a42-9ee0-4d22-aec1-1b9c60278ed5" + }, + "vertices": [] + }, + { + "source": { + "block": "e727dfbe-0a00-4b2f-80fb-9cf53db2e434", + "port": "outlabel" + }, + "target": { + "block": "09e898a7-18c1-41e1-ab86-199e14503bc6", + "port": "5b6c2879-1b2f-42ad-a627-77ab5818e651" + }, + "vertices": [ + { + "x": 1944, + "y": 808 + } + ] + }, + { + "source": { + "block": "69cb8815-c65b-4782-8302-d26de5cacd06", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + }, + "target": { + "block": "9a83f916-b044-40f7-9d7d-c45b108b1d59", + "port": "in" + }, + "vertices": [ + { + "x": 2936, + "y": 1032 + } + ] + }, + { + "source": { + "block": "03295ab4-c1f1-4c75-b4b9-7c6c2316ce4a", + "port": "constant-out" + }, + "target": { + "block": "69cb8815-c65b-4782-8302-d26de5cacd06", + "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" + }, + "vertices": [] + }, + { + "source": { + "block": "25f4d001-6984-4f5d-aa45-ea857f6daf77", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "3bf62d7b-0192-44f0-abe6-7773adf50004", + "port": "26aba23f-8567-4e9b-bd45-c26724030f33" + }, + "vertices": [] + }, + { + "source": { + "block": "166bf8df-1004-4b13-8dcd-e7c3119ce0a1", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "06f31bd9-a018-4347-92a9-ccabb58bc101", + "port": "db089906-4326-4b59-8aa5-ebb61116a4cd" + }, + "vertices": [] + }, + { + "source": { + "block": "77d75ca1-b198-43f3-964f-4afc199bb13c", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "06f31bd9-a018-4347-92a9-ccabb58bc101", + "port": "5898179a-7390-429b-ac3c-b7a0df673610" + }, + "vertices": [] + }, + { + "source": { + "block": "77d75ca1-b198-43f3-964f-4afc199bb13c", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "06f31bd9-a018-4347-92a9-ccabb58bc101", + "port": "fa311466-9b3b-455f-9a73-efb56fcc06d2" + }, + "vertices": [] + }, + { + "source": { + "block": "f142edec-fc11-4d66-bfad-2ec10b401293", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "95956d9b-2396-48bb-9dcd-607a3cd254fb", + "port": "db089906-4326-4b59-8aa5-ebb61116a4cd" + }, + "vertices": [] + }, + { + "source": { + "block": "f142edec-fc11-4d66-bfad-2ec10b401293", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "95956d9b-2396-48bb-9dcd-607a3cd254fb", + "port": "5898179a-7390-429b-ac3c-b7a0df673610" + }, + "vertices": [] + }, + { + "source": { + "block": "f142edec-fc11-4d66-bfad-2ec10b401293", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "95956d9b-2396-48bb-9dcd-607a3cd254fb", + "port": "fa311466-9b3b-455f-9a73-efb56fcc06d2" + }, + "vertices": [] + }, + { + "source": { + "block": "a9c7c14f-2d02-4bcd-94b9-6e9e6f175145", + "port": "6459ba21-608e-4f77-8235-c8c1b08ba775" + }, + "target": { + "block": "d8d9425f-381a-4850-b961-b16858e08ea2", + "port": "in" + }, + "vertices": [ + { + "x": 2632, + "y": 808 + } + ] + }, + { + "source": { + "block": "a9c7c14f-2d02-4bcd-94b9-6e9e6f175145", + "port": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058" + }, + "target": { + "block": "86f31e6a-12b5-44e9-b7f2-bf5c8e950f17", + "port": "in" + }, + "vertices": [ + { + "x": 2392, + "y": 544 + }, + { + "x": 2808, + "y": 584 + } + ] + }, + { + "source": { + "block": "06f31bd9-a018-4347-92a9-ccabb58bc101", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" + }, + "target": { + "block": "a9c7c14f-2d02-4bcd-94b9-6e9e6f175145", + "port": "04fdb7a7-2740-4ff1-ad26-56407ef5b958" + }, + "vertices": [] + }, + { + "source": { + "block": "4de17236-2bd6-4226-8b46-73a1b20627c6", + "port": "out" + }, + "target": { + "block": "c9de0dcd-9539-4aa1-b8d8-30e19ace13e3", + "port": "039b063c-fded-4d25-87f0-5b4030b7485e" + }, + "vertices": [] + }, + { + "source": { + "block": "892037e4-b713-4f22-b260-44c1e79aeb7e", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "06f31bd9-a018-4347-92a9-ccabb58bc101", + "port": "6ff164c2-5a24-45ee-b357-7b83df4dbbec" + }, + "vertices": [] + }, + { + "source": { + "block": "5c4f6e0b-26dc-4320-9a58-67b8df6f4ff8", + "port": "420956ba-1684-4e55-b6dc-3cda190e7fc3" + }, + "target": { + "block": "c9de0dcd-9539-4aa1-b8d8-30e19ace13e3", + "port": "7a49a58e-e51d-43b5-bba9-f1732fb448ca" + }, + "vertices": [ + { + "x": 1288, + "y": 656 + } + ] + }, + { + "source": { + "block": "5c4f6e0b-26dc-4320-9a58-67b8df6f4ff8", + "port": "95d3bdd3-b557-46bc-a467-783f9e297504" + }, + "target": { + "block": "95956d9b-2396-48bb-9dcd-607a3cd254fb", + "port": "6ff164c2-5a24-45ee-b357-7b83df4dbbec" + }, + "vertices": [ + { + "x": 1288, + "y": 1040 + } + ] + }, + { + "source": { + "block": "c0905169-37e4-4c29-9375-d0cbac9239e1", + "port": "out" + }, + "target": { + "block": "5c4f6e0b-26dc-4320-9a58-67b8df6f4ff8", + "port": "11029c6c-1062-49a6-8f7a-8185e00ec776" + }, + "vertices": [ + { + "x": 992, + "y": 760 + } + ] + }, + { + "source": { + "block": "69cb8815-c65b-4782-8302-d26de5cacd06", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + }, + "target": { + "block": "5c4f6e0b-26dc-4320-9a58-67b8df6f4ff8", + "port": "02212078-e676-42fd-9b74-e4444529e1d2" + }, + "vertices": [ + { + "x": 1040, + "y": 936 + } + ] + }, + { + "source": { + "block": "7d93597c-6d34-414e-8596-eb936af89ddb", + "port": "8f348e4f-94ee-47ad-abeb-6eaf5e71c3f7" + }, + "target": { + "block": "25f4d001-6984-4f5d-aa45-ea857f6daf77", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "7d93597c-6d34-414e-8596-eb936af89ddb", + "port": "64deaccd-9457-4a20-b2b1-288e4de4e10d" + }, + "target": { + "block": "c9de0dcd-9539-4aa1-b8d8-30e19ace13e3", + "port": "1c6df57e-a2ac-4f8f-bae8-8cda9faada90" + }, + "vertices": [ + { + "x": 1432, + "y": 640 + } + ] + }, + { + "source": { + "block": "7d93597c-6d34-414e-8596-eb936af89ddb", + "port": "64deaccd-9457-4a20-b2b1-288e4de4e10d" + }, + "target": { + "block": "69cb8815-c65b-4782-8302-d26de5cacd06", + "port": "26aba23f-8567-4e9b-bd45-c26724030f33" + }, + "vertices": [] + }, + { + "source": { + "block": "5c4f6e0b-26dc-4320-9a58-67b8df6f4ff8", + "port": "95d3bdd3-b557-46bc-a467-783f9e297504" + }, + "target": { + "block": "7d93597c-6d34-414e-8596-eb936af89ddb", + "port": "3775a420-c70b-40c6-9620-3334fb35a526" + }, + "vertices": [ + { + "x": 1328, + "y": 744 + } + ] + }, + { + "source": { + "block": "c937d31e-0145-4993-9e5d-b02415c2750b", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "8e724fcf-2c8f-48ba-91c0-36a764e4c830", + "port": "in" + }, + "vertices": [ + { + "x": 2456, + "y": 496 + }, + { + "x": 2792, + "y": 504 + } + ] + }, + { + "source": { + "block": "3fc6d02e-2613-4f6b-8a7e-7eca71951d32", + "port": "0344dacc-8583-456b-b377-8cb4ab97cf94" + }, + "target": { + "block": "40d105fc-5855-470e-b441-14767470a5a9", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": 2200, + "y": 1264 + } + ] + }, + { + "source": { + "block": "21c35f4a-8baf-495c-a097-8f80093b6fbf", + "port": "constant-out" + }, + "target": { + "block": "3fc6d02e-2613-4f6b-8a7e-7eca71951d32", + "port": "bde24908-c5bf-4286-b7e3-e42a11ca5c68" + }, + "vertices": [] + }, + { + "source": { + "block": "69cb8815-c65b-4782-8302-d26de5cacd06", + "port": "c659caa2-1cf7-4da3-855a-2b0c0ecc7510" + }, + "target": { + "block": "3fc6d02e-2613-4f6b-8a7e-7eca71951d32", + "port": "426de53f-e3cf-433b-bb21-00c5d207b946" + }, + "vertices": [], + "size": 4 + }, + { + "source": { + "block": "c9308253-7d03-49df-8323-788cdadcb8a5", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "396aa3b6-a380-43ce-aa0a-857411996213", + "port": "in" + }, + "vertices": [ + { + "x": 2808, + "y": 640 + } + ] + }, + { + "source": { + "block": "c937d31e-0145-4993-9e5d-b02415c2750b", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "c9308253-7d03-49df-8323-788cdadcb8a5", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "4bcf0819-a351-4dca-9c87-f7648a2f4bf4", + "port": "6459ba21-608e-4f77-8235-c8c1b08ba775" + }, + "target": { + "block": "1454227a-43d8-4994-8a3a-82a0ca663303", + "port": "in" + }, + "vertices": [] + }, + { + "source": { + "block": "a85bb61a-c18b-4602-90a7-8fac14232cd0", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "4bcf0819-a351-4dca-9c87-f7648a2f4bf4", + "port": "04fdb7a7-2740-4ff1-ad26-56407ef5b958" + }, + "vertices": [] + }, + { + "source": { + "block": "c2def9b7-70ba-4df6-9319-6afd359fc33b", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "4bcf0819-a351-4dca-9c87-f7648a2f4bf4", + "port": "f96a1baf-fc8b-4c25-b132-12552605743f" + }, + "vertices": [] + }, + { + "source": { + "block": "95956d9b-2396-48bb-9dcd-607a3cd254fb", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" + }, + "target": { + "block": "c2def9b7-70ba-4df6-9319-6afd359fc33b", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "2bb660d1-82b9-490c-881c-22806a75d950", + "port": "21039c06-c932-498c-968d-879a68d66795" + }, + "target": { + "block": "892037e4-b713-4f22-b260-44c1e79aeb7e", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [ + { + "x": 1728, + "y": 472 + } + ] + }, + { + "source": { + "block": "c9de0dcd-9539-4aa1-b8d8-30e19ace13e3", + "port": "c8a8a08a-91c1-4677-a6bb-3064297e3555" + }, + "target": { + "block": "2bb660d1-82b9-490c-881c-22806a75d950", + "port": "ec65c3cd-0951-4d74-bbfc-c37f87a78e66" + }, + "vertices": [] + }, + { + "source": { + "block": "4de17236-2bd6-4226-8b46-73a1b20627c6", + "port": "out" + }, + "target": { + "block": "2bb660d1-82b9-490c-881c-22806a75d950", + "port": "a265c13d-af7a-437b-97ae-424872381a93" + }, + "vertices": [] + }, + { + "source": { + "block": "c9de0dcd-9539-4aa1-b8d8-30e19ace13e3", + "port": "0c1ce6d1-6158-4976-88df-cfa404d416c3" + }, + "target": { + "block": "2bb660d1-82b9-490c-881c-22806a75d950", + "port": "b916c09a-8848-4500-a1a0-0cc09e8f23c1" + }, + "vertices": [] + }, + { + "source": { + "block": "9e29102c-bdc7-4b28-8407-66ce468dcee8", + "port": "out" + }, + "target": { + "block": "2bb660d1-82b9-490c-881c-22806a75d950", + "port": "05394100-6c4a-4bd5-b479-739c16ede30c" + }, + "vertices": [], + "size": 8 + }, + { + "source": { + "block": "eac204d5-eff2-43b2-90c3-547f8a27ce85", + "port": "out" + }, + "target": { + "block": "2bb660d1-82b9-490c-881c-22806a75d950", + "port": "02007399-7499-4b76-ad4f-91094344d055" + }, + "vertices": [ + { + "x": 896, + "y": 600 + } + ] + }, + { + "source": { + "block": "40d105fc-5855-470e-b441-14767470a5a9", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "6375bc2d-fb0b-45c1-807d-7e4db91cb218", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "4bcf0819-a351-4dca-9c87-f7648a2f4bf4", + "port": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058" + }, + "target": { + "block": "a19090a3-0754-40ee-b8ff-b7b853623505", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "a19090a3-0754-40ee-b8ff-b7b853623505", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "e0badec5-0a64-43db-8101-73c493ff5b57", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "95956d9b-2396-48bb-9dcd-607a3cd254fb", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" + }, + "target": { + "block": "e0badec5-0a64-43db-8101-73c493ff5b57", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [ + { + "x": 2232, + "y": 1336 + } + ] + }, + { + "source": { + "block": "4ca26524-fc46-4e39-b5a6-960adfb02b48", + "port": "constant-out" + }, + "target": { + "block": "2c05c075-2971-4df4-9af4-dbee695394b8", + "port": "319cdca8-e777-4c8b-88ca-f885ba96ad06" + }, + "vertices": [] + }, + { + "source": { + "block": "4de17236-2bd6-4226-8b46-73a1b20627c6", + "port": "out" + }, + "target": { + "block": "2c05c075-2971-4df4-9af4-dbee695394b8", + "port": "4656865c-bcf1-4668-8e13-9221e32222d3" + }, + "vertices": [] + }, + { + "source": { + "block": "efdaa97f-c65b-443e-80d6-a02b11468e6c", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "6375bc2d-fb0b-45c1-807d-7e4db91cb218", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] + }, + { + "source": { + "block": "c4e3df0e-3048-4c22-94b5-f72e08286531", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "efdaa97f-c65b-443e-80d6-a02b11468e6c", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] + }, + { + "source": { + "block": "69cb8815-c65b-4782-8302-d26de5cacd06", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + }, + "target": { + "block": "c4e3df0e-3048-4c22-94b5-f72e08286531", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + }, + "vertices": [ + { + "x": 2416, + "y": 1296 + } + ] + }, + { + "source": { + "block": "44b23d7d-5267-465c-8ca4-acd2838186bf", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "c4e3df0e-3048-4c22-94b5-f72e08286531", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + }, + "vertices": [] + }, + { + "source": { + "block": "30b00924-6fe1-4151-9c98-7e7ba357189b", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" + }, + "target": { + "block": "44b23d7d-5267-465c-8ca4-acd2838186bf", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [ + { + "x": 2176, + "y": 1048 + } + ] + }, + { + "source": { + "block": "95956d9b-2396-48bb-9dcd-607a3cd254fb", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" + }, + "target": { + "block": "30b00924-6fe1-4151-9c98-7e7ba357189b", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + }, + "vertices": [ + { + "x": 2000, + "y": 1064 + } + ] + }, + { + "source": { + "block": "baa4f214-f5f5-4087-893e-fc92ec8403c9", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" + }, + "target": { + "block": "c9308253-7d03-49df-8323-788cdadcb8a5", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] + }, + { + "source": { + "block": "09e898a7-18c1-41e1-ab86-199e14503bc6", + "port": "b77bd433-38d0-4ec7-9c21-7e1b7bf4743e" + }, + "target": { + "block": "25f4d001-6984-4f5d-aa45-ea857f6daf77", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [ + { + "x": 2152, + "y": 912 + } + ] + }, + { + "source": { + "block": "4868a582-148d-4510-a223-b11bbf8ac42f", + "port": "out" + }, + "target": { + "block": "09e898a7-18c1-41e1-ab86-199e14503bc6", + "port": "17a6513b-054c-44d6-8010-11470eb5b29a" + }, + "vertices": [ + { + "x": 1848, + "y": 992 + } + ] + }, + { + "source": { + "block": "dcfc3587-80ee-49f5-b55c-b219d1d7d92e", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "69cb8815-c65b-4782-8302-d26de5cacd06", + "port": "743b5299-2d89-4783-b7c9-12a5b36df406" + }, + "vertices": [ + { + "x": 1512, + "y": 1304 + } + ] + }, + { + "source": { + "block": "1ff4b383-47b7-4861-95bb-bb31b52d33e3", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "3bf62d7b-0192-44f0-abe6-7773adf50004", + "port": "743b5299-2d89-4783-b7c9-12a5b36df406" + }, + "vertices": [ + { + "x": 2392, + "y": 672 + } + ] + } + ] + } + } + }, + "725b7e2cb9666b5ed3183537d9c898f096dab82a": { + "package": { + "name": "1", + "version": "0.1", + "description": "Un bit constante a 1", + "author": "Jesus Arroyo", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2233.632%22%20height=%2269.34%22%20viewBox=%220%200%2031.530464%2065.006656%22%3E%3Cpath%20d=%22M3.517%2012.015L19%200l12.53%202.863-10.012%2043.262-9.746-2.227%207.7-34.532L8.03%2016.38z%22%20fill=%22green%22%20fill-rule=%22evenodd%22/%3E%3Cpath%20d=%22M17.593%2043.464l7.822%2010.472-6.56%207.919%202.27%202.043m-5.14-20.179l-4.542%2010.473-10.345%202.043.757%203.32%22%20fill=%22none%22%20stroke=%22green%22%20stroke-width=%222.196%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "3d584b0a-29eb-47af-8c43-c0822282ef05", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 512, + "y": 160 + } + }, + { + "id": "61331ec5-2c56-4cdd-b607-e63b1502fa65", + "type": "basic.code", + "data": { + "code": "//-- Bit constante a 1\nassign q = 1'b1;\n\n", + "params": [], + "ports": { + "in": [], + "out": [ + { + "name": "q" + } + ] + } + }, + "position": { + "x": 168, + "y": 112 + }, + "size": { + "width": 256, + "height": 160 + } + } + ], + "wires": [ + { + "source": { + "block": "61331ec5-2c56-4cdd-b607-e63b1502fa65", + "port": "q" + }, + "target": { + "block": "3d584b0a-29eb-47af-8c43-c0822282ef05", + "port": "in" + } + } + ] + } + } + }, + "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542": { + "package": { + "name": "0", + "version": "0.1", + "description": "Un bit constante a 0", + "author": "Jesus Arroyo", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2233.563%22%20height=%2257.469%22%20viewBox=%220%200%2031.465601%2053.876499%22%3E%3Cpath%20d=%22M21.822%2032.843l4.092%208.992-3.772%209.727%204.181%201.31m-12.967-19.26s-1.091%208.253-2.585%208.919C9.278%2043.198%201%2049.389%201%2049.389l2.647%203.256%22%20fill=%22none%22%20stroke=%22green%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20style=%22line-height:125%25%22%20x=%22-.863%22%20y=%2230.575%22%20transform=%22scale(.90756%201.10186)%22%20font-weight=%22400%22%20font-size=%2254.594%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22green%22%3E%3Ctspan%20x=%22-.863%22%20y=%2230.575%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold%20Italic'%22%20font-style=%22italic%22%20font-weight=%22700%22%3Eo%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "3d584b0a-29eb-47af-8c43-c0822282ef05", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 512, + "y": 160 + } + }, + { + "id": "61331ec5-2c56-4cdd-b607-e63b1502fa65", + "type": "basic.code", + "data": { + "code": "//-- Bit constante a 0\nassign q = 1'b0;\n\n", + "params": [], + "ports": { + "in": [], + "out": [ + { + "name": "q" + } + ] + } + }, + "position": { + "x": 168, + "y": 112 + }, + "size": { + "width": 256, + "height": 160 + } + } + ], + "wires": [ + { + "source": { + "block": "61331ec5-2c56-4cdd-b607-e63b1502fa65", + "port": "q" + }, + "target": { + "block": "3d584b0a-29eb-47af-8c43-c0822282ef05", + "port": "in" + } + } + ] + } + } + }, + "e79148d23652be6d5149f8f6881f7f47bd958497": { + "package": { + "name": "Contador-2bits-up-rst", + "version": "0.1", + "description": "Contador módulo M, ascendente, de 2 bits, con reset ", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22327.118%22%20height=%22304.435%22%20viewBox=%220%200%2086.549973%2080.548402%22%3E%3Cdefs%3E%3Cmarker%20id=%22a%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3C/defs%3E%3Cg%20transform=%22translate(-59.162%20-4.54)%22%3E%3Cpath%20d=%22M138.803%2048.49V16.91%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%222.806%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20marker-end=%22url(#a)%22/%3E%3Crect%20rx=%222.807%22%20ry=%222.807%22%20y=%225.289%22%20x=%2299.747%22%20height=%2247.849%22%20width=%2229.538%22%20fill=%22#666%22%20stroke=%22#000%22%20stroke-width=%221.497%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20transform=%22scale(.94516%201.05802)%22%20y=%2240.921%22%20x=%22108.575%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%228.982%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%221.497%22%3E%3Ctspan%20style=%22line-height:1.25;-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2240.921%22%20x=%22108.575%22%20font-weight=%22700%22%20font-size=%2235.656%22%3E0%3C/tspan%3E%3C/text%3E%3Cpath%20d=%22M100.868%2030.283h27.764%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%222.245%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Crect%20rx=%222.807%22%20ry=%222.807%22%20y=%225.289%22%20x=%2266.333%22%20height=%2247.849%22%20width=%2229.538%22%20fill=%22#666%22%20stroke=%22#000%22%20stroke-width=%221.497%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20transform=%22scale(.94516%201.05802)%22%20y=%2240.921%22%20x=%2273.223%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%228.982%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%221.497%22%3E%3Ctspan%20style=%22line-height:1.25;-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2240.921%22%20x=%2273.223%22%20font-weight=%22700%22%20font-size=%2235.656%22%3E0%3C/tspan%3E%3C/text%3E%3Cpath%20d=%22M67.454%2030.283h27.764%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%222.245%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Cg%20transform=%22matrix(1.00937%200%200%201.00937%20-27.38%20-4.42)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3Cg%20transform=%22matrix(1.00937%200%200%201.00937%2028.939%20-4.42)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 264, + "y": 176 + } + }, + { + "id": "7a982450-c842-4aa2-8e77-43cc628266e0", + "type": "basic.output", + "data": { + "name": "", + "range": "[1:0]", + "size": 2 + }, + "position": { + "x": 800, + "y": 200 + } + }, + { + "id": "743b5299-2d89-4783-b7c9-12a5b36df406", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false + }, + "position": { + "x": 264, + "y": 280 + } + }, + { + "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "type": "basic.output", + "data": { + "name": "ov" + }, + "position": { + "x": 800, + "y": 352 + } + }, + { + "id": "26aba23f-8567-4e9b-bd45-c26724030f33", + "type": "basic.input", + "data": { + "name": "cnt", + "clock": false + }, + "position": { + "x": 264, + "y": 376 + } + }, + { + "id": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "type": "basic.constant", + "data": { + "name": "", + "value": "4", + "local": false + }, + "position": { + "x": 528, + "y": 48 + } + }, + { + "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "type": "basic.code", + "data": { + "code": "//-- Numero de bits del contador\nlocalparam N = 2; \n\n//-- En contadores de N bits:\n//-- M = 2 ** N\n\n//-- Internamente usamos un bit mas\n//-- (N+1) bits\nreg [N:0] qi = 0;\n\nalways @(posedge clk)\n if (rst | ov)\n qi <= 2'b00;\n else\n if (cnt)\n qi <= qi + 1;\n \nassign q = qi;\n\n//-- Comprobar overflow\nassign ov = (qi == M);\n ", + "params": [ + { + "name": "M" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "rst" + }, + { + "name": "cnt" + } + ], + "out": [ + { + "name": "q", + "range": "[1:0]", + "size": 2 + }, + { + "name": "ov" + } + ] + } + }, + "position": { + "x": 408, + "y": 160 + }, + "size": { + "width": 336, + "height": 296 + } + }, + { + "id": "b35ae5de-a490-4f7b-9200-ac52cd3f333e", + "type": "basic.info", + "data": { + "info": "**Parámetro**: Módulo del contador", + "readonly": true + }, + "position": { + "x": 472, + "y": 32 + }, + "size": { + "width": 280, + "height": 56 + } + } + ], + "wires": [ + { + "source": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "q" + }, + "target": { + "block": "7a982450-c842-4aa2-8e77-43cc628266e0", + "port": "in" + }, + "size": 2 + }, + { + "source": { + "block": "743b5299-2d89-4783-b7c9-12a5b36df406", + "port": "out" + }, + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "rst" + } + }, + { + "source": { + "block": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "port": "constant-out" + }, + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "M" + } + }, + { + "source": { + "block": "26aba23f-8567-4e9b-bd45-c26724030f33", + "port": "out" + }, + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "cnt" + } + }, + { + "source": { + "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "port": "out" + }, + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "clk" + } + }, + { + "source": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "ov" + }, + "target": { + "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "port": "in" + } + } + ] + } + } + }, + "2ddbb26d71094c8d654eb6b642054e1d9f5ba734": { + "package": { + "name": "Contador-4bits-up-rst", + "version": "0.1", + "description": "Contador módulo M, ascendente, de 4 bits, con reset ", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22327.118%22%20height=%22304.435%22%20viewBox=%220%200%2086.549973%2080.548402%22%3E%3Cdefs%3E%3Cmarker%20id=%22a%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3C/defs%3E%3Cg%20transform=%22translate(-59.162%20-4.54)%22%3E%3Cpath%20d=%22M138.803%2048.49V16.91%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%222.806%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20marker-end=%22url(#a)%22/%3E%3Crect%20rx=%222.807%22%20ry=%222.807%22%20y=%225.289%22%20x=%2299.747%22%20height=%2247.849%22%20width=%2229.538%22%20fill=%22#666%22%20stroke=%22#000%22%20stroke-width=%221.497%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20transform=%22scale(.94516%201.05802)%22%20y=%2240.921%22%20x=%22108.575%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%228.982%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%221.497%22%3E%3Ctspan%20style=%22line-height:1.25;-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2240.921%22%20x=%22108.575%22%20font-weight=%22700%22%20font-size=%2235.656%22%3E0%3C/tspan%3E%3C/text%3E%3Cpath%20d=%22M100.868%2030.283h27.764%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%222.245%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Crect%20rx=%222.807%22%20ry=%222.807%22%20y=%225.289%22%20x=%2266.333%22%20height=%2247.849%22%20width=%2229.538%22%20fill=%22#666%22%20stroke=%22#000%22%20stroke-width=%221.497%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20transform=%22scale(.94516%201.05802)%22%20y=%2240.921%22%20x=%2273.223%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%228.982%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%221.497%22%3E%3Ctspan%20style=%22line-height:1.25;-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2240.921%22%20x=%2273.223%22%20font-weight=%22700%22%20font-size=%2235.656%22%3E0%3C/tspan%3E%3C/text%3E%3Cpath%20d=%22M67.454%2030.283h27.764%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%222.245%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Cg%20transform=%22matrix(1.00937%200%200%201.00937%20-27.38%20-4.42)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3Cg%20transform=%22matrix(1.00937%200%200%201.00937%2028.939%20-4.42)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 264, + "y": 184 + } + }, + { + "id": "c659caa2-1cf7-4da3-855a-2b0c0ecc7510", + "type": "basic.output", + "data": { + "name": "", + "range": "[3:0]", + "size": 4 + }, + "position": { + "x": 800, + "y": 208 + } + }, + { + "id": "743b5299-2d89-4783-b7c9-12a5b36df406", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false + }, + "position": { + "x": 264, + "y": 288 + } + }, + { + "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "type": "basic.output", + "data": { + "name": "ov" + }, + "position": { + "x": 800, + "y": 368 + } + }, + { + "id": "26aba23f-8567-4e9b-bd45-c26724030f33", + "type": "basic.input", + "data": { + "name": "cnt", + "clock": false + }, + "position": { + "x": 264, + "y": 392 + } + }, + { + "id": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "type": "basic.constant", + "data": { + "name": "", + "value": "16", + "local": false + }, + "position": { + "x": 536, + "y": 64 + } + }, + { + "id": "b35ae5de-a490-4f7b-9200-ac52cd3f333e", + "type": "basic.info", + "data": { + "info": "**Parámetro**: Módulo del contador", + "readonly": true + }, + "position": { + "x": 472, + "y": 32 + }, + "size": { + "width": 280, + "height": 56 + } + }, + { + "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "type": "basic.code", + "data": { + "code": "//-- Numero de bits del contador\nlocalparam N = 4; \n\n//-- En contadores de N bits:\n//-- M = 2 ** N\n\n//-- Internamente usamos un bit mas\n//-- (N+1) bits\nreg [N:0] qi = 0;\n\nalways @(posedge clk)\n if (rst | ov)\n qi <= 0;\n else\n if (cnt)\n qi <= qi + 1;\n\n//-- Comprobar overflow\nassign ov = (qi == M);\n\n//-- En cuanto haya overflow\n//-- se saca 0 por la salida\nassign q = ov ? 0 : qi;\n\n\n ", + "params": [ + { + "name": "M" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "rst" + }, + { + "name": "cnt" + } + ], + "out": [ + { + "name": "q", + "range": "[3:0]", + "size": 4 + }, + { + "name": "ov" + } + ] + } + }, + "position": { + "x": 408, + "y": 160 + }, + "size": { + "width": 344, + "height": 320 + } + } + ], + "wires": [ + { + "source": { + "block": "743b5299-2d89-4783-b7c9-12a5b36df406", + "port": "out" + }, + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "rst" + } + }, + { + "source": { + "block": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "port": "constant-out" + }, + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "M" + } + }, + { + "source": { + "block": "26aba23f-8567-4e9b-bd45-c26724030f33", + "port": "out" + }, + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "cnt" + } + }, + { + "source": { + "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "port": "out" + }, + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "clk" + } + }, + { + "source": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "ov" + }, + "target": { + "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "port": "in" + } + }, + { + "source": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "q" + }, + "target": { + "block": "c659caa2-1cf7-4da3-855a-2b0c0ecc7510", + "port": "in" + }, + "size": 4 + } + ] + } + } + }, + "81613874c6152f06c06ed7014bf4235900cfcc30": { + "package": { + "name": "OR", + "version": "1.0.1", + "description": "Puerta OR", + "author": "Jesús Arroyo, Juan González", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20height=%22192.718%22%20width=%22383.697%22%20version=%221%22%3E%3Cpath%20d=%22M175.56%20188.718H84.527s30.345-42.538%2031.086-94.03c.743-51.49-31.821-90.294-31.821-90.294L176.109%204c46.445%201.948%20103.899%2053.44%20123.047%2093.678-32.601%2067.503-92.158%2089.79-123.596%2091.04z%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M4.057%2047.292h99.605M4.883%20145.168h100.981M298.57%2098.89h81.07%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22/%3E%3Ctext%20style=%22line-height:125%25%22%20font-weight=%22400%22%20font-size=%2266.317%22%20y=%22121.28%22%20x=%22131.572%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#00f%22%3E%3Ctspan%20font-weight=%22700%22%20y=%22121.28%22%20x=%22131.572%22%3EOR%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 64, + "y": 88 + } + }, + { + "id": "664caf9e-5f40-4df4-800a-b626af702e62", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 784, + "y": 152 + } + }, + { + "id": "97b51945-d716-4b6c-9db9-970d08541249", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 64, + "y": 224 + } + }, + { + "id": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "type": "basic.code", + "data": { + "code": "//-- Puerta OR\n\n//-- module and (input wire a, input wire b,\n//-- output wire c);\n\nassign c = a | b;\n\n//-- endmodule", + "params": [], + "ports": { + "in": [ + { + "name": "a" + }, + { + "name": "b" + } + ], + "out": [ + { + "name": "c" + } + ] + } + }, + "position": { + "x": 256, + "y": 48 + }, + "size": { + "width": 464, + "height": 272 + } + } + ], + "wires": [ + { + "source": { + "block": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "port": "out" + }, + "target": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "a" + } + }, + { + "source": { + "block": "97b51945-d716-4b6c-9db9-970d08541249", + "port": "out" + }, + "target": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "b" + } + }, + { + "source": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "c" + }, + "target": { + "block": "664caf9e-5f40-4df4-800a-b626af702e62", + "port": "in" + } + } + ] + } + } + }, + "e33ecba0f1fbe8ecdf043e2ed5d88a553fff19e8": { + "package": { + "name": "Mux_4_1_bus", + "version": "0.1.4", + "description": "Multiplexor de 4 a 1, bus. Implementado en verilog.", + "author": "Juan Gonzalez-Gomez (obijuan) [Modificado por otro usuario.]", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2246.347%22%20height=%22182.066%22%20viewBox=%220%200%2043.450545%20170.68778%22%3E%3Cpath%20d=%22M42.044%2021.324c0-7.134-3.893-13.724-10.206-17.275a20.674%2020.674%200%200%200-20.365.08C5.189%207.728%201.349%2014.347%201.407%2021.481v127.723c-.058%207.135%203.782%2013.755%2010.066%2017.355a20.674%2020.674%200%200%200%2020.365.079c6.313-3.551%2010.206-10.14%2010.206-17.275z%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%222.813%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20style=%22line-height:125%25%22%20x=%2216.068%22%20y=%2270.768%22%20font-weight=%22400%22%20font-size=%2218.75%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctspan%20x=%2216.068%22%20y=%2270.768%22%3E2%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25%22%20x=%2216.018%22%20y=%2227.719%22%20font-weight=%22400%22%20font-size=%2218.75%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctspan%20x=%2216.018%22%20y=%2227.719%22%3E3%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25%22%20x=%2216.068%22%20y=%22113.534%22%20font-weight=%22400%22%20font-size=%2218.75%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctspan%20x=%2216.068%22%20y=%22113.534%22%3E1%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25%22%20x=%2216.068%22%20y=%22156.655%22%20font-weight=%22400%22%20font-size=%2218.75%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctspan%20x=%2216.068%22%20y=%22156.655%22%3E0%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "fa311466-9b3b-455f-9a73-efb56fcc06d2", + "type": "basic.input", + "data": { + "name": "i3", + "clock": false + }, + "position": { + "x": -720, + "y": -112 + } + }, + { + "id": "6ff164c2-5a24-45ee-b357-7b83df4dbbec", + "type": "basic.input", + "data": { + "name": "i2", + "clock": false + }, + "position": { + "x": -720, + "y": -56 + } + }, + { + "id": "5898179a-7390-429b-ac3c-b7a0df673610", + "type": "basic.input", + "data": { + "name": "i1", + "clock": false + }, + "position": { + "x": -720, + "y": 0 + } + }, + { + "id": "0ef557c8-5378-43b3-80af-176f129f1a07", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": -24, + "y": 0 + } + }, + { + "id": "db089906-4326-4b59-8aa5-ebb61116a4cd", + "type": "basic.input", + "data": { + "name": "i0", + "clock": false + }, + "position": { + "x": -720, + "y": 56 + } + }, + { + "id": "94142d6d-263f-4f11-9418-5578d56bcbb1", + "type": "basic.input", + "data": { + "name": "sel", + "range": "[1:0]", + "pins": [ + { + "index": "1", + "name": "", + "value": "" + }, + { + "index": "0", + "name": "", + "value": "" + } + ], + "virtual": true, + "clock": false + }, + "position": { + "x": -720, + "y": 112 + } + }, + { + "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "type": "basic.code", + "data": { + "code": "\nassign o = (sel == 0) ? i0 :\n (sel == 1) ? i1 :\n (sel == 2) ? i2 : i3;\n", + "params": [], + "ports": { + "in": [ + { + "name": "i3" + }, + { + "name": "i2" + }, + { + "name": "i1" + }, + { + "name": "i0" + }, + { + "name": "sel", + "range": "[1:0]", + "size": 2 + } + ], + "out": [ + { + "name": "o" + } + ] + } + }, + "position": { + "x": -464, + "y": -104 + }, + "size": { + "width": 368, + "height": 272 + } + } + ], + "wires": [ + { + "source": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "o" + }, + "target": { + "block": "0ef557c8-5378-43b3-80af-176f129f1a07", + "port": "in" + } + }, + { + "source": { + "block": "db089906-4326-4b59-8aa5-ebb61116a4cd", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i0" + } + }, + { + "source": { + "block": "5898179a-7390-429b-ac3c-b7a0df673610", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i1" + }, + "vertices": [] + }, + { + "source": { + "block": "6ff164c2-5a24-45ee-b357-7b83df4dbbec", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i2" + }, + "vertices": [] + }, + { + "source": { + "block": "fa311466-9b3b-455f-9a73-efb56fcc06d2", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i3" + }, + "vertices": [] + }, + { + "source": { + "block": "94142d6d-263f-4f11-9418-5578d56bcbb1", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "sel" + }, + "size": 2 + } + ] + } + } + }, + "d7e6ff61e136e0120db6aaabf8b34ea6fd14c159": { + "package": { + "name": "In-out-right", + "version": "0.1", + "description": "Bloque inout, con conexión de pin por la derecha", + "author": "Salvador E. Tropea", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22770.821%22%20height=%22624.079%22%20viewBox=%220%200%20203.94649%20165.12089%22%20id=%22svg8%22%3E%3Cdefs%20id=%22defs2%22%3E%3Cmarker%20orient=%22auto%22%20id=%22Arrow2Mstart%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path899%22%20d=%22M5.231%202.42L-1.324.01%205.23-2.401C4.184-.978%204.19.969%205.231%202.42z%22%20fill=%22green%22%20fill-rule=%22evenodd%22%20stroke=%22green%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22Arrow1Mstart%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path881%22%20d=%22M4%200l2-2-7%202%207%202z%22%20fill=%22green%22%20fill-rule=%22evenodd%22%20stroke=%22green%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22Arrow2Mend%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path902%22%20d=%22M-5.231-2.42L1.324-.01-5.23%202.401c1.047-1.423%201.041-3.37%200-4.821z%22%20fill=%22green%22%20fill-rule=%22evenodd%22%20stroke=%22green%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22TriangleOutS%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path1023%22%20d=%22M1.154%200l-1.73%201v-2z%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.2666%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22Arrow1Send%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path890%22%20d=%22M-1.2%200l-1%201%203.5-1-3.5-1z%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.2666%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22Arrow2Mend-2%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path902-9%22%20d=%22M-5.231-2.42L1.324-.01-5.23%202.401c1.047-1.423%201.041-3.37%200-4.821z%22%20fill=%22green%22%20fill-rule=%22evenodd%22%20stroke=%22green%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22Arrow2Mend-2-2%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path902-9-7%22%20d=%22M-5.231-2.42L1.324-.01-5.23%202.401c1.047-1.423%201.041-3.37%200-4.821z%22%20fill=%22green%22%20fill-rule=%22evenodd%22%20stroke=%22green%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3C/defs%3E%3Cg%20id=%22layer1%22%20transform=%22translate(-29.4%20-56.943)%22%3E%3Cpath%20d=%22M230.796%20196.941h-77.954V76.847%22%20id=%22path873-6-3%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%222.646%22%20stroke-linecap=%22round%22/%3E%3Cpath%20id=%22path855-5%22%20d=%22M130.88%20159.638l-27.214-45.357-27.214%2045.357z%22%20fill=%22#f2f2f2%22%20stroke=%22#000%22%20stroke-width=%222.646%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M103.666%20114.28V76.77%22%20id=%22path873%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%222.646%22%20stroke-linecap=%22round%22/%3E%3Cpath%20d=%22M104.086%2076.77h127.918%22%20id=%22path1157%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%222.646%22%20stroke-linecap=%22round%22/%3E%3Ccircle%20id=%22path1159%22%20cx=%22153.191%22%20cy=%2276.77%22%20r=%223.742%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%222.646%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M105.27%20159.904v37.511H35.547%22%20id=%22path873-6%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%222.646%22%20stroke-linecap=%22round%22/%3E%3Cpath%20d=%22M39.021%20210.405h57.196%22%20id=%22path1195%22%20fill=%22green%22%20stroke=%22green%22%20stroke-width=%222.646%22%20marker-end=%22url(#Arrow2Mend)%22/%3E%3Cpath%20d=%22M164.857%20109.77v57.195%22%20id=%22path1195-1%22%20fill=%22green%22%20stroke=%22green%22%20stroke-width=%222.646%22%20marker-end=%22url(#Arrow2Mend-2)%22/%3E%3Cpath%20d=%22M163.814%2063.843h57.195%22%20id=%22path1195-1-0%22%20fill=%22green%22%20stroke=%22green%22%20stroke-width=%222.646%22%20marker-start=%22url(#Arrow2Mstart)%22%20marker-end=%22url(#Arrow2Mend-2-2)%22/%3E%3Cpath%20d=%22M90.694%20135.035H51.459%22%20id=%22path873-9%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%222.646%22%20stroke-linecap=%22round%22/%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:ubuntu;text-align:start%22%20x=%2238.628%22%20y=%22126.356%22%20id=%22text2352%22%20font-weight=%22400%22%20font-size=%2232.91%22%20font-family=%22ubuntu%22%20letter-spacing=%220%22%20word-spacing=%220%22%20stroke-width=%222.057%22%3E%3Ctspan%20id=%22tspan2350%22%20x=%2238.628%22%20y=%22126.356%22%3Eoe%3C/tspan%3E%3C/text%3E%3C/g%3E%3Cstyle%20id=%22style3%22/%3E%3C/svg%3E" + }, + "design": { + "config": "true", + "graph": { + "blocks": [ + { + "id": "f96a1baf-fc8b-4c25-b132-12552605743f", + "type": "basic.input", + "data": { + "name": "oe" + }, + "position": { + "x": 40, + "y": 64 + } + }, + { + "id": "6459ba21-608e-4f77-8235-c8c1b08ba775", + "type": "basic.output", + "data": { + "name": "pin" + }, + "position": { + "x": 704, + "y": 64 + } + }, + { + "id": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058", + "type": "basic.output", + "data": { + "name": "din" + }, + "position": { + "x": 720, + "y": 192 + } + }, + { + "id": "04fdb7a7-2740-4ff1-ad26-56407ef5b958", + "type": "basic.input", + "data": { + "name": "dout", + "clock": false + }, + "position": { + "x": 40, + "y": 192 + } + }, + { + "id": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", + "type": "basic.code", + "data": { + "code": " SB_IO #(\n .PIN_TYPE(6'b1010_01),\n .PULLUP(1'b0)\n ) triState (\n .PACKAGE_PIN(pin),\n .OUTPUT_ENABLE(oe),\n .D_OUT_0(dout),\n .D_IN_0(din)\n );", + "params": [], + "ports": { + "in": [ + { + "name": "oe" + }, + { + "name": "dout" + } + ], + "out": [ + { + "name": "pin" + }, + { + "name": "din" + } + ] + } + }, + "position": { + "x": 248, + "y": 32 + }, + "size": { + "width": 384, + "height": 256 + } + } + ], + "wires": [ + { + "source": { + "block": "f96a1baf-fc8b-4c25-b132-12552605743f", + "port": "out" + }, + "target": { + "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", + "port": "oe" + } + }, + { + "source": { + "block": "04fdb7a7-2740-4ff1-ad26-56407ef5b958", + "port": "out" + }, + "target": { + "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", + "port": "dout" + } + }, + { + "source": { + "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", + "port": "din" + }, + "target": { + "block": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058", + "port": "in" + } + }, + { + "source": { + "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", + "port": "pin" + }, + "target": { + "block": "6459ba21-608e-4f77-8235-c8c1b08ba775", + "port": "in" + } + } + ] + } + } + }, + "d976e4d8f32b931eedc3e12fe125a464cbb9238d": { + "package": { + "name": "double_delay", + "version": "0.1", + "description": "Double delay", + "author": "FPGAwars", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22512%22%20height=%22512%22%20viewBox=%220%200%20512%20512%22%3E%3Cpath%20d=%22M512%20256C512%20114.625%20397.375%200%20256%200S0%20114.625%200%20256s114.625%20256%20256%20256%20256-114.625%20256-256zm-480%200C32%20132.469%20132.5%2032%20256%2032s224%20100.469%20224%20224c0%20123.5-100.5%20224-224%20224S32%20379.5%2032%20256zm224%200V64c106.031%200%20192%2085.969%20192%20192H256zm-130.562-93.875l-16%2027.719-27.719-16%2016-27.719%2027.719%2016zm261.124%20187.719l16-27.688%2027.72%2016-16%2027.688-27.72-16zM189.844%20109.438l-27.719%2016-16-27.719%2027.719-16%2016%2027.719zm132.281%20293.124l27.719-16%2016%2027.72-27.688%2016-16.031-27.72zM272%20416v32l-32%20.031V416h32zm-82.156-13.438l-16%2027.72-27.719-15.97%2016.031-27.75%2027.688%2016zm-64.406-52.718l-27.719%2016.031-16.031-27.688%2027.75-16.031%2016%2027.688zM96%20272l-32%20.031-.063-32H96V272z%22/%3E%3C/svg%3E", + "otid": 1603759838283 + }, + "design": { + "graph": { + "blocks": [ + { + "id": "039b063c-fded-4d25-87f0-5b4030b7485e", + "type": "basic.input", + "data": { + "name": "", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "clock": true + }, + "position": { + "x": 272, + "y": 120 + } + }, + { + "id": "0c1ce6d1-6158-4976-88df-cfa404d416c3", + "type": "basic.output", + "data": { + "name": "b0", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 720, + "y": 168 + } + }, + { + "id": "7a49a58e-e51d-43b5-bba9-f1732fb448ca", + "type": "basic.input", + "data": { + "name": "a0", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "clock": false + }, + "position": { + "x": 272, + "y": 184 + } + }, + { + "id": "c8a8a08a-91c1-4677-a6bb-3064297e3555", + "type": "basic.output", + "data": { + "name": "b1", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 720, + "y": 256 + } + }, + { + "id": "1c6df57e-a2ac-4f8f-bae8-8cda9faada90", + "type": "basic.input", + "data": { + "name": "a1", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "clock": false + }, + "position": { + "x": 272, + "y": 272 + } + }, + { + "id": "f8975657-1ea2-4bda-8005-0ce4446979f2", + "type": "basic.output", + "data": { + "name": "nc", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 720, + "y": 336 + } + }, + { + "id": "5d4716e9-c580-40a9-8b56-28cc3d8663ef", + "type": "90b966c5dc7f2a6d216911bfaa6e95b57c2ab4f8", + "position": { + "x": 504, + "y": 168 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "b3141652-d650-4fc8-88de-4f8f14039c65", + "type": "90b966c5dc7f2a6d216911bfaa6e95b57c2ab4f8", + "position": { + "x": 504, + "y": 256 + }, + "size": { + "width": 96, + "height": 64 + } + } + ], + "wires": [ + { + "source": { + "block": "7a49a58e-e51d-43b5-bba9-f1732fb448ca", + "port": "out" + }, + "target": { + "block": "5d4716e9-c580-40a9-8b56-28cc3d8663ef", + "port": "50fee72b-b3e5-4390-a0d5-465be5620cf8" + } + }, + { + "source": { + "block": "1c6df57e-a2ac-4f8f-bae8-8cda9faada90", + "port": "out" + }, + "target": { + "block": "b3141652-d650-4fc8-88de-4f8f14039c65", + "port": "50fee72b-b3e5-4390-a0d5-465be5620cf8" + } + }, + { + "source": { + "block": "5d4716e9-c580-40a9-8b56-28cc3d8663ef", + "port": "fc0b1f10-38aa-4eb8-a929-7d0996614ad4" + }, + "target": { + "block": "0c1ce6d1-6158-4976-88df-cfa404d416c3", + "port": "in" + } + }, + { + "source": { + "block": "b3141652-d650-4fc8-88de-4f8f14039c65", + "port": "fc0b1f10-38aa-4eb8-a929-7d0996614ad4" + }, + "target": { + "block": "c8a8a08a-91c1-4677-a6bb-3064297e3555", + "port": "in" + } + }, + { + "source": { + "block": "039b063c-fded-4d25-87f0-5b4030b7485e", + "port": "out" + }, + "target": { + "block": "5d4716e9-c580-40a9-8b56-28cc3d8663ef", + "port": "eade65d1-cc62-48fa-a5b4-c622d6c0974a" + } + }, + { + "source": { + "block": "039b063c-fded-4d25-87f0-5b4030b7485e", + "port": "out" + }, + "target": { + "block": "b3141652-d650-4fc8-88de-4f8f14039c65", + "port": "eade65d1-cc62-48fa-a5b4-c622d6c0974a" + } + } + ] + } + } + }, + "90b966c5dc7f2a6d216911bfaa6e95b57c2ab4f8": { + "package": { + "name": "Delay3", + "version": "0.1", + "description": "Retrasa la señal de entrada 3 ciclos de reloj.", + "author": "FPGAwars", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22512%22%20height=%22512%22%20viewBox=%220%200%20512%20512%22%3E%3Cpath%20d=%22M512%20256C512%20114.625%20397.375%200%20256%200S0%20114.625%200%20256s114.625%20256%20256%20256%20256-114.625%20256-256zm-480%200C32%20132.469%20132.5%2032%20256%2032s224%20100.469%20224%20224c0%20123.5-100.5%20224-224%20224S32%20379.5%2032%20256zm224%200V64c106.031%200%20192%2085.969%20192%20192H256zm-130.562-93.875l-16%2027.719-27.719-16%2016-27.719%2027.719%2016zm261.124%20187.719l16-27.688%2027.72%2016-16%2027.688-27.72-16zM189.844%20109.438l-27.719%2016-16-27.719%2027.719-16%2016%2027.719zm132.281%20293.124l27.719-16%2016%2027.72-27.688%2016-16.031-27.72zM272%20416v32l-32%20.031V416h32zm-82.156-13.438l-16%2027.72-27.719-15.97%2016.031-27.75%2027.688%2016zm-64.406-52.718l-27.719%2016.031-16.031-27.688%2027.75-16.031%2016%2027.688zM96%20272l-32%20.031-.063-32H96V272z%22/%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "eade65d1-cc62-48fa-a5b4-c622d6c0974a", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 136, + "y": 80 + } + }, + { + "id": "fc0b1f10-38aa-4eb8-a929-7d0996614ad4", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 880, + "y": 136 + } + }, + { + "id": "50fee72b-b3e5-4390-a0d5-465be5620cf8", + "type": "basic.input", + "data": { + "name": "", + "clock": false + }, + "position": { + "x": 136, + "y": 152 + } + }, + { + "id": "b5571d49-7c43-4698-af7c-27d0b8f7619e", + "type": "af48ebc63c0bdb7fd04dc2a9583c4ebb2248168f", + "position": { + "x": 368, + "y": 136 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "2c54348d-c541-4739-875d-8b08283f773c", + "type": "af48ebc63c0bdb7fd04dc2a9583c4ebb2248168f", + "position": { + "x": 536, + "y": 136 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "8a315cd2-d7e5-4016-aa70-0ed7b5571017", + "type": "af48ebc63c0bdb7fd04dc2a9583c4ebb2248168f", + "position": { + "x": 712, + "y": 136 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "f758fb58-4504-4f3f-af58-a9b7accc7e37", + "type": "basic.info", + "data": { + "info": "**Retrasa la señal de entrada varios ciclos de reloj.**", + "readonly": true + }, + "position": { + "x": 360, + "y": 24 + }, + "size": { + "width": 528, + "height": 32 + } + } + ], + "wires": [ + { + "source": { + "block": "b5571d49-7c43-4698-af7c-27d0b8f7619e", + "port": "73f2857d-3f7f-45c2-92f5-c550285b4e71" + }, + "target": { + "block": "2c54348d-c541-4739-875d-8b08283f773c", + "port": "3e08d30f-4cc5-4c7b-a1ea-009d5795aaed" + } + }, + { + "source": { + "block": "2c54348d-c541-4739-875d-8b08283f773c", + "port": "73f2857d-3f7f-45c2-92f5-c550285b4e71" + }, + "target": { + "block": "8a315cd2-d7e5-4016-aa70-0ed7b5571017", + "port": "3e08d30f-4cc5-4c7b-a1ea-009d5795aaed" + } + }, + { + "source": { + "block": "50fee72b-b3e5-4390-a0d5-465be5620cf8", + "port": "out" + }, + "target": { + "block": "b5571d49-7c43-4698-af7c-27d0b8f7619e", + "port": "3e08d30f-4cc5-4c7b-a1ea-009d5795aaed" + } + }, + { + "source": { + "block": "eade65d1-cc62-48fa-a5b4-c622d6c0974a", + "port": "out" + }, + "target": { + "block": "b5571d49-7c43-4698-af7c-27d0b8f7619e", + "port": "3eab6a54-662e-4398-81a1-e4c1d7285191" + } + }, + { + "source": { + "block": "eade65d1-cc62-48fa-a5b4-c622d6c0974a", + "port": "out" + }, + "target": { + "block": "2c54348d-c541-4739-875d-8b08283f773c", + "port": "3eab6a54-662e-4398-81a1-e4c1d7285191" + } + }, + { + "source": { + "block": "eade65d1-cc62-48fa-a5b4-c622d6c0974a", + "port": "out" + }, + "target": { + "block": "8a315cd2-d7e5-4016-aa70-0ed7b5571017", + "port": "3eab6a54-662e-4398-81a1-e4c1d7285191" + } + }, + { + "source": { + "block": "8a315cd2-d7e5-4016-aa70-0ed7b5571017", + "port": "73f2857d-3f7f-45c2-92f5-c550285b4e71" + }, + "target": { + "block": "fc0b1f10-38aa-4eb8-a929-7d0996614ad4", + "port": "in" + } + } + ] + } + } + }, + "af48ebc63c0bdb7fd04dc2a9583c4ebb2248168f": { + "package": { + "name": "DFF ini = 0", + "version": "1.0", + "description": "DFF ini = 0", + "author": "FPGA WARS", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2263.799%22%20height=%2257.366%22%20viewBox=%220%200%2059.811602%2053.780232%22%3E%3Cg%20transform=%22translate(-310.54%20-373.968)%22%3E%3Cpath%20d=%22M353.401%20407.803l3.157%2019.445%203.914-19.445%22%20fill=%22#ccc%22%20stroke=%22#000%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20style=%22line-height:125%25%22%20x=%22310.844%22%20y=%22395.812%22%20font-weight=%22400%22%20font-size=%2227.335%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctspan%20x=%22310.844%22%20y=%22395.812%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%3ED%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25%22%20x=%22316.916%22%20y=%22420.476%22%20font-weight=%22400%22%20font-size=%2220%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#00f%22%3E%3Ctspan%20x=%22316.916%22%20y=%22420.476%22%3E0%3C/tspan%3E%3C/text%3E%3Crect%20width=%2223.595%22%20height=%2221.484%22%20x=%22311.539%22%20y=%22402.712%22%20ry=%223.545%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M351.238%20398.03l1.658-19.774h-6.818v-3.788h22.097v3.788h-6.44l1.196%2019.953s5.208.866%206.428%204.494c1.221%203.628-.254%205.053.105%205.104l-25.022-.03s-.566-4.234%201.398-6.377c1.965-2.142%205.398-3.37%205.398-3.37z%22%20fill=%22red%22%20stroke=%22#000%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "3eab6a54-662e-4398-81a1-e4c1d7285191", + "type": "basic.input", + "data": { + "name": "", + "clock": true, + "virtual": true + }, + "position": { + "x": 192, + "y": 56 + } + }, + { + "id": "73f2857d-3f7f-45c2-92f5-c550285b4e71", + "type": "basic.output", + "data": { + "name": "Q" + }, + "position": { + "x": 776, + "y": 88 + } + }, + { + "id": "3e08d30f-4cc5-4c7b-a1ea-009d5795aaed", + "type": "basic.input", + "data": { + "name": "D", + "clock": false + }, + "position": { + "x": 192, + "y": 120 + } + }, + { + "id": "1b06d9f0-d794-4cc0-9643-a1a5f32ebaec", + "type": "basic.code", + "data": { + "code": "reg Q = 0;\n\nalways @(posedge Clock)\nbegin\n Q <= D;\nend", + "params": [], + "ports": { + "in": [ + { + "name": "Clock" + }, + { + "name": "D" + } + ], + "out": [ + { + "name": "Q" + } + ] + } + }, + "position": { + "x": 408, + "y": 56 + }, + "size": { + "width": 272, + "height": 128 + } + } + ], + "wires": [ + { + "source": { + "block": "3eab6a54-662e-4398-81a1-e4c1d7285191", + "port": "out" + }, + "target": { + "block": "1b06d9f0-d794-4cc0-9643-a1a5f32ebaec", + "port": "Clock" + } + }, + { + "source": { + "block": "3e08d30f-4cc5-4c7b-a1ea-009d5795aaed", + "port": "out" + }, + "target": { + "block": "1b06d9f0-d794-4cc0-9643-a1a5f32ebaec", + "port": "D" + } + }, + { + "source": { + "block": "1b06d9f0-d794-4cc0-9643-a1a5f32ebaec", + "port": "Q" + }, + "target": { + "block": "73f2857d-3f7f-45c2-92f5-c550285b4e71", + "port": "in" + } + } + ] + } + } + }, + "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6": { + "package": { + "name": "AND", + "version": "1.0.1", + "description": "Puerta AND", + "author": "Jesús Arroyo, Juan González", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22336.09%22%20height=%22194.045%22%20version=%221%22%3E%3Cpath%20d=%22M174.656%20190.045H78.304V4h96.352s87.463%208.625%2087.463%2091.94c0%2083.311-87.463%2094.105-87.463%2094.105z%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M4.057%2045.668h74.018M4.057%20144.812h74.018m184.632-50.034h69.326%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22/%3E%3Ctext%20style=%22line-height:125%25%22%20x=%2292.894%22%20y=%22114.587%22%20font-weight=%22400%22%20font-size=%2258.054%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#00f%22%3E%3Ctspan%20x=%2292.894%22%20y=%22114.587%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%3EAND%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 64, + "y": 88 + } + }, + { + "id": "664caf9e-5f40-4df4-800a-b626af702e62", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 784, + "y": 152 + } + }, + { + "id": "97b51945-d716-4b6c-9db9-970d08541249", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 64, + "y": 224 + } + }, + { + "id": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "type": "basic.code", + "data": { + "code": "//-- Puerta AND\n\n//-- module and (input wire a, input wire b,\n//-- output wire c);\n\nassign c = a & b;\n\n//-- endmodule", + "params": [], + "ports": { + "in": [ + { + "name": "a" + }, + { + "name": "b" + } + ], + "out": [ + { + "name": "c" + } + ] + } + }, + "position": { + "x": 256, + "y": 48 + }, + "size": { + "width": 464, + "height": 272 + } + } + ], + "wires": [ + { + "source": { + "block": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "port": "out" + }, + "target": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "a" + } + }, + { + "source": { + "block": "97b51945-d716-4b6c-9db9-970d08541249", + "port": "out" + }, + "target": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "b" + } + }, + { + "source": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "c" + }, + "target": { + "block": "664caf9e-5f40-4df4-800a-b626af702e62", + "port": "in" + } + } + ] + } + } + }, + "2cc41a5382c79d4e650316c0bbb9c0ffee453add": { + "package": { + "name": "StartWave", + "version": "0.1", + "description": "It enables the I2C frequency within the circuit and will always do so when there is a falling edge.", + "author": "Democrito", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2279.658%22%20height=%22110.457%22%20viewBox=%220%200%2021.07615%2029.22487%22%3E%3Cpath%20d=%22M3.393%2023.17l3.785-.023v-4.01l3.317-.007.024%203.883h3.608%22%20fill=%22none%22%20stroke=%22#0000a1%22%20stroke-width=%22.765%22/%3E%3Cpath%20d=%22M10.745%2012.154l-.024%205.76.496-1.274h-1.04l.544%201.273%22%20fill=%22none%22%20stroke=%22red%22%20stroke-width=%22.527%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M10.342%2023.037l3.785-.024v-4.01l3.317-.007.024%203.883h3.608%22%20fill=%22none%22%20stroke=%22#0000a1%22%20stroke-width=%22.765%22/%3E%3Cg%20transform=%22matrix(.16834%200%200%20.17685%20-14.34%203.795)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:'sans-serif%20Bold'%22%20x=%223.648%22%20y=%2211.13%22%20font-weight=%22700%22%20font-size=%224.939%22%20letter-spacing=%220%22%20word-spacing=%220%22%20font-family=%22sans-serif%22%20fill=%22#ff844c%22%20stroke=%22#004600%22%20stroke-width=%22.265%22%3E%3Ctspan%20x=%223.648%22%20y=%2211.13%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%3EStart%3C/tspan%3E%3C/text%3E%3Cpath%20d=%22M1.309%207.416c0%201.456.056%201.456.056%201.456%22%20fill=%22none%22%20stroke=%22#0ff%22%20stroke-width=%22.1%22%20stroke-opacity=%22.151%22/%3E%3Cg%20transform=%22matrix(.16834%200%200%20.17685%20-14.343%2013.542)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3Cpath%20d=%22M8.974.132h4.558%22%20fill=%22none%22/%3E%3C/svg%3E", + "otid": 1603920128880 + }, + "design": { + "graph": { + "blocks": [ + { + "id": "7f0c5ba5-d35f-42f2-b75f-01659f5c74d6", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 536, + "y": 192 + } + }, + { + "id": "420956ba-1684-4e55-b6dc-3cda190e7fc3", + "type": "basic.output", + "data": { + "name": "ld", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 1664, + "y": 208 + } + }, + { + "id": "95d3bdd3-b557-46bc-a467-783f9e297504", + "type": "basic.output", + "data": { + "name": "fo" + }, + "position": { + "x": 1664, + "y": 344 + } + }, + { + "id": "bcef1c12-a59c-48f2-a462-320d500235a9", + "type": "basic.input", + "data": { + "name": "fi", + "clock": false + }, + "position": { + "x": 536, + "y": 360 + } + }, + { + "id": "11029c6c-1062-49a6-8f7a-8185e00ec776", + "type": "basic.input", + "data": { + "name": "start", + "clock": false, + "virtual": true + }, + "position": { + "x": 536, + "y": 488 + } + }, + { + "id": "02212078-e676-42fd-9b74-e4444529e1d2", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false + }, + "position": { + "x": 536, + "y": 552 + } + }, + { + "id": "39f417fc-095b-496f-b0eb-7b3b850171ab", + "type": "7eacdff4ce248b009935725889c8ae3339817d76", + "position": { + "x": 1064, + "y": 360 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "d4bb1bba-e144-4b52-88e1-315b5da15a68", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 1272, + "y": 344 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "c65a5eb2-bea3-4922-8e43-aa9d8e419b20", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 1480, + "y": 344 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "502520a6-6c6a-4812-ac53-a4c8e53133cb", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 728, + "y": 472 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "21a64767-5f53-4df0-a4a1-9df7744e9c53", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 896, + "y": 376 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "8ccda512-8480-4bc6-a590-da96030f9ebb", + "type": "basic.info", + "data": { + "info": "Hitting the \"set\" will allow the frequency \"fi\" to pass to \"fo\" but always starting with a falling edge of that signal. Hitting \"rst\" prevents the input frequency from passing. It is about the always output frequency cycle low.", + "readonly": true + }, + "position": { + "x": 1304, + "y": 488 + }, + "size": { + "width": 472, + "height": 32 + } + }, + { + "id": "588b8c02-87e4-4e77-851a-d8b3c3c83d55", + "type": "8e2728307baccbf26c01cdb87bcfba8ca64a435c", + "position": { + "x": 1480, + "y": 208 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "5fa036e4-cf53-4cd9-b303-fead461ef2bf", + "type": "basic.info", + "data": { + "info": "With this pulse it will memorize the input in another module (\"Data\").", + "readonly": true + }, + "position": { + "x": 1424, + "y": 128 + }, + "size": { + "width": 168, + "height": 32 + } + }, + { + "id": "00c4cb9e-df4a-4a5b-8d26-3f8ef4662d43", + "type": "basic.info", + "data": { + "info": "### It enables the I2C frequency within the circuit and will always do so when there is a falling edge.", + "readonly": true + }, + "position": { + "x": 856, + "y": 128 + }, + "size": { + "width": 408, + "height": 32 + } + } + ], + "wires": [ + { + "source": { + "block": "7f0c5ba5-d35f-42f2-b75f-01659f5c74d6", + "port": "out" + }, + "target": { + "block": "39f417fc-095b-496f-b0eb-7b3b850171ab", + "port": "4196184b-4a60-493b-bcc6-c95958483683" + }, + "vertices": [] + }, + { + "source": { + "block": "39f417fc-095b-496f-b0eb-7b3b850171ab", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" + }, + "target": { + "block": "d4bb1bba-e144-4b52-88e1-315b5da15a68", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + }, + "vertices": [] + }, + { + "source": { + "block": "02212078-e676-42fd-9b74-e4444529e1d2", + "port": "out" + }, + "target": { + "block": "d4bb1bba-e144-4b52-88e1-315b5da15a68", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + }, + "vertices": [] + }, + { + "source": { + "block": "7f0c5ba5-d35f-42f2-b75f-01659f5c74d6", + "port": "out" + }, + "target": { + "block": "d4bb1bba-e144-4b52-88e1-315b5da15a68", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + }, + "vertices": [] + }, + { + "source": { + "block": "c65a5eb2-bea3-4922-8e43-aa9d8e419b20", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "95d3bdd3-b557-46bc-a467-783f9e297504", + "port": "in" + }, + "vertices": [] + }, + { + "source": { + "block": "d4bb1bba-e144-4b52-88e1-315b5da15a68", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "c65a5eb2-bea3-4922-8e43-aa9d8e419b20", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] + }, + { + "source": { + "block": "bcef1c12-a59c-48f2-a462-320d500235a9", + "port": "out" + }, + "target": { + "block": "c65a5eb2-bea3-4922-8e43-aa9d8e419b20", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": 648, + "y": 304 + } + ] + }, + { + "source": { + "block": "11029c6c-1062-49a6-8f7a-8185e00ec776", + "port": "out" + }, + "target": { + "block": "502520a6-6c6a-4812-ac53-a4c8e53133cb", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + }, + "vertices": [] + }, + { + "source": { + "block": "02212078-e676-42fd-9b74-e4444529e1d2", + "port": "out" + }, + "target": { + "block": "502520a6-6c6a-4812-ac53-a4c8e53133cb", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + }, + "vertices": [] + }, + { + "source": { + "block": "7f0c5ba5-d35f-42f2-b75f-01659f5c74d6", + "port": "out" + }, + "target": { + "block": "502520a6-6c6a-4812-ac53-a4c8e53133cb", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + }, + "vertices": [] + }, + { + "source": { + "block": "21a64767-5f53-4df0-a4a1-9df7744e9c53", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "39f417fc-095b-496f-b0eb-7b3b850171ab", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + }, + "vertices": [] + }, + { + "source": { + "block": "bcef1c12-a59c-48f2-a462-320d500235a9", + "port": "out" + }, + "target": { + "block": "21a64767-5f53-4df0-a4a1-9df7744e9c53", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "502520a6-6c6a-4812-ac53-a4c8e53133cb", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "21a64767-5f53-4df0-a4a1-9df7744e9c53", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] + }, + { + "source": { + "block": "588b8c02-87e4-4e77-851a-d8b3c3c83d55", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" + }, + "target": { + "block": "420956ba-1684-4e55-b6dc-3cda190e7fc3", + "port": "in" + }, + "vertices": [] + }, + { + "source": { + "block": "7f0c5ba5-d35f-42f2-b75f-01659f5c74d6", + "port": "out" + }, + "target": { + "block": "588b8c02-87e4-4e77-851a-d8b3c3c83d55", + "port": "4196184b-4a60-493b-bcc6-c95958483683" + }, + "vertices": [] + }, + { + "source": { + "block": "d4bb1bba-e144-4b52-88e1-315b5da15a68", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "588b8c02-87e4-4e77-851a-d8b3c3c83d55", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + }, + "vertices": [ + { + "x": 1416, + "y": 312 + } + ] + } + ] + } + } + }, + "7eacdff4ce248b009935725889c8ae3339817d76": { + "package": { + "name": "Bajada", + "version": "0.1", + "description": "Detector de flanco de bajada. Emite un tic cuando detecta un flanco descendente", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22396.685%22%20height=%22254.461%22%20viewBox=%220%200%20104.95637%2067.326178%22%3E%3Cdefs%3E%3Cmarker%20orient=%22auto%22%20id=%22a%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20fill=%22red%22%20fill-rule=%22evenodd%22%20stroke=%22red%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3C/defs%3E%3Cg%20transform=%22translate(-54.29%20-50.022)%22%3E%3Cpath%20d=%22M123.88%2069.103c2.17%203.317%204.013%202.718%205.68%200%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%22.529%22%20stroke-linecap=%22round%22/%3E%3Cpath%20d=%22M132.326%2095.38V51.614h-11.225v43.497%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%221.323%22%20stroke-linecap=%22round%22/%3E%3Cellipse%20cx=%22112.489%22%20cy=%2297.866%22%20rx=%227.009%22%20ry=%222.635%22%20transform=%22rotate(-1.418)%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%22.265%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cellipse%20cx=%22-140.807%22%20cy=%2291.678%22%20rx=%227.009%22%20ry=%222.635%22%20transform=%22scale(-1%201)%20rotate(-1.418)%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%22.265%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M124.8%2059.416v3.875M128.39%2059.416v3.875%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%22.529%22/%3E%3Cpath%20d=%22M85.794%2074.097h21.381%22%20fill=%22red%22%20stroke=%22red%22%20stroke-width=%222.646%22%20marker-end=%22url(#a)%22/%3E%3Cg%20transform=%22matrix(.842%200%200%20.842%2062.024%2042.68)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3Cg%20fill=%22none%22%20stroke=%22#00f%22%20stroke-linecap=%22round%22%3E%3Cpath%20d=%22M67.528%2082.456l6.026%207.975-5.054%206.03%201.749%201.556m-3.96-15.367l-3.5%207.976-7.97%201.555.583%202.529%22%20stroke-width=%221.058%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M67.258%2052.035v29.942%22%20stroke-width=%223.969%22/%3E%3Cpath%20d=%22M56.469%2072.226L67.157%2082.68l10.351-10.453%22%20stroke-width=%223.969%22%20stroke-linejoin=%22round%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "4196184b-4a60-493b-bcc6-c95958483683", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 152, + "y": 176 + } + }, + { + "id": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 624, + "y": 200 + } + }, + { + "id": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", + "type": "basic.input", + "data": { + "name": "", + "clock": false + }, + "position": { + "x": 152, + "y": 232 + } + }, + { + "id": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "type": "basic.code", + "data": { + "code": "reg q = 0;\n\nalways @(posedge clk)\n q <= i;\n \nassign o = (q & ~i); ", + "params": [], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "i" + } + ], + "out": [ + { + "name": "o" + } + ] + } + }, + "position": { + "x": 336, + "y": 176 + }, + "size": { + "width": 232, + "height": 112 + } + } + ], + "wires": [ + { + "source": { + "block": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", + "port": "out" + }, + "target": { + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "i" + } + }, + { + "source": { + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "o" + }, + "target": { + "block": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", + "port": "in" + } + }, + { + "source": { + "block": "4196184b-4a60-493b-bcc6-c95958483683", + "port": "out" + }, + "target": { + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "clk" + } + } + ] + } + } + }, + "b959c256104d1064a5ef7b38632ffb6eed3b396f": { + "package": { + "name": "Biestable-Set-Reset", + "version": "0.1", + "description": "Biestable con entradas de Set y Reset síncronas, para poner y quitar notaficaciones de eventos", + "author": "Juan Gonzalez-Gomez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20234.62951%20290.44458%22%20id=%22svg30%22%20width=%22234.63%22%20height=%22290.445%22%3E%3Cstyle%20id=%22style2%22%3E.st0%7Bdisplay:none%7D.st1%7Bfill:none;stroke:#303030;stroke-width:.7;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10%7D.st2%7Bfill:#303030%7D%3C/style%3E%3Cg%20id=%22layer1%22%20transform=%22translate(3.47%203.198)%22%3E%3Cpath%20class=%22st1%22%20d=%22M21.358%20145.947a63.75%2063.75%200%200%200%201.152%2011.049%22%20id=%22path9%22%20fill=%22none%22%20stroke=%22#303030%22%20stroke-width=%226.776%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22/%3E%3Cpath%20class=%22st1%22%20d=%22M48.702%2092.116a64.784%2064.784%200%200%200-12.559%2011.68%2064.99%2064.99%200%200%200-12.69%2024.809%22%20id=%22path11%22%20fill=%22none%22%20stroke=%22#303030%22%20stroke-width=%226.776%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22/%3E%3Cpath%20id=%22line17%22%20class=%22st1%22%20fill=%22none%22%20stroke=%22#303030%22%20stroke-width=%226.776%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20d=%22M184.865%20207.591L41.298%20262.802%22/%3E%3Cpath%20id=%22path21-3%22%20d=%22M185.448%20175.07l.37.154c2.52.831%204.718%202.386%206.634%204.249%202.02%202.322%203.694%204.777%204.423%208.713%201.496%208.074-3.286%2016.05-10.95%2018.997l-1.06.408L41.298%20262.8l-.733.283c-8.003%203.077-17.551.461-21.82-6.975-3.3-5.748-2.736-12.198.418-21.613%203.155-9.414%202.86-21.856-1.644-33.55l.041.003-12.507-32.667c-12.88-33.415-.747-70.376%2027.41-90.31l-1.102-2.749c-3.685-9.583%201.14-20.438%2010.723-24.124%209.583-3.685%2020.439%201.14%2024.124%2010.723l1.654%203.239c34.881-3.556%2068.594%2015.855%2081.318%2049.33l15.24%2038.432c4.795%208.723%2011.831%2015.955%2021.028%2022.248z%22%20fill=%22#fff%22%20stroke=%22#303030%22%20stroke-width=%227%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22/%3E%3Cpath%20d=%22M64.268%20268.838l45.015-17.115s7.963%2024.296-14.427%2030.38c-22.39%206.086-30.588-13.265-30.588-13.265z%22%20id=%22path826%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%227%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3C/g%3E%3Cg%20id=%22layer3%22%3E%3Crect%20id=%22rect845%22%20width=%22135.189%22%20height=%22135.189%22%20x=%2295.783%22%20y=%223.671%22%20ry=%2219.847%22%20fill=%22#55acee%22%20stroke=%22#303030%22%20stroke-width=%227%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22/%3E%3C/g%3E%3Cg%20id=%22layer4%22%3E%3Cpath%20class=%22st2%22%20d=%22M172.724%2052.533V27.647h-9.888L144.047%2037.7l2.308%208.9%2014.833-8.076h.33v74.824H172.724V52.533z%22%20id=%22path7%22%20fill=%22#303030%22%20stroke-width=%2214.425%22/%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "9f09a4af-8f7a-45c3-af7b-293a244e76d9", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 200, + "y": 64 + } + }, + { + "id": "3ae2d46d-7981-497a-899f-b60bfae0f43e", + "type": "basic.input", + "data": { + "name": "set", + "clock": false + }, + "position": { + "x": 200, + "y": 152 + } + }, + { + "id": "1cb167a4-9e2a-416b-803e-da7b6151eaa5", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 720, + "y": 152 + } + }, + { + "id": "86eb8c81-17fc-4371-bd21-51f429191f3c", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false + }, + "position": { + "x": 200, + "y": 232 + } + }, + { + "id": "bf12a800-db30-4289-a7c5-8c08438f9a39", + "type": "basic.constant", + "data": { + "name": "", + "value": "0", + "local": false + }, + "position": { + "x": 464, + "y": 0 + } + }, + { + "id": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", + "type": "basic.code", + "data": { + "code": "reg q = INI;\n\nalways @(posedge clk)\n if (set)\n q <= 1'b1;\n else if (rst)\n q<=1'b0;", + "params": [ + { + "name": "INI" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "set" + }, + { + "name": "rst" + } + ], + "out": [ + { + "name": "q" + } + ] + } + }, + "position": { + "x": 400, + "y": 120 + }, + "size": { + "width": 224, + "height": 128 + } + } + ], + "wires": [ + { + "source": { + "block": "9f09a4af-8f7a-45c3-af7b-293a244e76d9", + "port": "out" + }, + "target": { + "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", + "port": "clk" + }, + "vertices": [ + { + "x": 336, + "y": 104 + } + ] + }, + { + "source": { + "block": "3ae2d46d-7981-497a-899f-b60bfae0f43e", + "port": "out" + }, + "target": { + "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", + "port": "set" + } + }, + { + "source": { + "block": "86eb8c81-17fc-4371-bd21-51f429191f3c", + "port": "out" + }, + "target": { + "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", + "port": "rst" + }, + "vertices": [ + { + "x": 344, + "y": 248 + } + ] + }, + { + "source": { + "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", + "port": "q" + }, + "target": { + "block": "1cb167a4-9e2a-416b-803e-da7b6151eaa5", + "port": "in" + } + }, + { + "source": { + "block": "bf12a800-db30-4289-a7c5-8c08438f9a39", + "port": "constant-out" + }, + "target": { + "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", + "port": "INI" + } + } + ] + } + } + }, + "8e2728307baccbf26c01cdb87bcfba8ca64a435c": { + "package": { + "name": "Subida", + "version": "0.1", + "description": "Detector de flanco de subida. Emite un tic cuando detecta un flanco ascendente", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22363.337%22%20height=%22251.136%22%20viewBox=%220%200%2096.132868%2066.446441%22%3E%3Cdefs%3E%3Cmarker%20orient=%22auto%22%20id=%22a%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20fill=%22red%22%20fill-rule=%22evenodd%22%20stroke=%22red%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3C/defs%3E%3Cg%20transform=%22translate(-63.113%20-50.902)%22%3E%3Cg%20fill=%22none%22%20stroke=%22#00f%22%20stroke-linecap=%22round%22%3E%3Cpath%20d=%22M76.611%2083.336l6.027%207.974-5.055%206.03%201.75%201.557M75.371%2083.53l-3.5%207.975-7.97%201.556.583%202.528%22%20stroke-width=%221.058%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M75.907%2083.53V53.588%22%20stroke-width=%223.969%22/%3E%3Cpath%20d=%22M65.118%2063.338l10.688-10.452%2010.351%2010.452%22%20stroke-width=%223.969%22%20stroke-linejoin=%22round%22/%3E%3C/g%3E%3Cpath%20d=%22M123.88%2069.103c2.17%203.317%204.013%202.718%205.68%200%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%22.529%22%20stroke-linecap=%22round%22/%3E%3Cpath%20d=%22M132.326%2095.38V51.614h-11.225v43.497%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%221.323%22%20stroke-linecap=%22round%22/%3E%3Cellipse%20cx=%22112.489%22%20cy=%2297.866%22%20rx=%227.009%22%20ry=%222.635%22%20transform=%22rotate(-1.418)%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%22.265%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cellipse%20cx=%22-140.807%22%20cy=%2291.678%22%20rx=%227.009%22%20ry=%222.635%22%20transform=%22scale(-1%201)%20rotate(-1.418)%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%22.265%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M124.8%2059.416v3.875M128.39%2059.416v3.875%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%22.529%22/%3E%3Cpath%20d=%22M85.794%2074.097h21.381%22%20fill=%22red%22%20stroke=%22red%22%20stroke-width=%222.646%22%20marker-end=%22url(#a)%22/%3E%3Cg%20transform=%22matrix(.842%200%200%20.842%2062.024%2042.68)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "4196184b-4a60-493b-bcc6-c95958483683", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 152, + "y": 176 + } + }, + { + "id": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 624, + "y": 200 + } + }, + { + "id": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", + "type": "basic.input", + "data": { + "name": "", + "clock": false + }, + "position": { + "x": 152, + "y": 232 + } + }, + { + "id": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "type": "basic.code", + "data": { + "code": "reg q = 0;\n\nalways @(posedge clk)\n q <= i;\n \nassign o = (~q & i); ", + "params": [], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "i" + } + ], + "out": [ + { + "name": "o" + } + ] + } + }, + "position": { + "x": 336, + "y": 176 + }, + "size": { + "width": 232, + "height": 112 + } + } + ], + "wires": [ + { + "source": { + "block": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", + "port": "out" + }, + "target": { + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "i" + } + }, + { + "source": { + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "o" + }, + "target": { + "block": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", + "port": "in" + } + }, + { + "source": { + "block": "4196184b-4a60-493b-bcc6-c95958483683", + "port": "out" + }, + "target": { + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "clk" + } + } + ] + } + } + }, + "b8135e59508d20a0f5ed1e8dfb123d695afe65b9": { + "package": { + "name": "TwoPulses", + "version": "0.1", + "description": "With the first cycle it creates 2 pulses for start I2C & load data to send.", + "author": "Democrito", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20125.6999%2038.953771%22%20height=%2241.551%22%20width=%22134.079%22%3E%3Cpath%20d=%22M104.674%2032.058l9.04-.095V4.972h4.684v27.032h5.12%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%222.158%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22bevel%22/%3E%3Cpath%20d=%22M2.067%2031.324h10.706l-.089-25.228%2034.904-.178.356%2025.444h12.854%22%20fill=%22none%22%20stroke=%22#0000e4%22%20stroke-width=%221.875%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22bevel%22/%3E%3Cpath%20d=%22M49.5%2018.282l26.583-.13-4.139-6.698.046%2014.502%205.335-7.219%22%20fill=%22red%22%20stroke=%22red%22%20stroke-width=%221.628%22/%3E%3Cpath%20d=%22M74.496%2032.017h6.01V5.027h4.684v27.03h19.484%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%222.158%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22bevel%22/%3E%3C/svg%3E", + "otid": 1603920898763 + }, + "design": { + "graph": { + "blocks": [ + { + "id": "64deaccd-9457-4a20-b2b1-288e4de4e10d", + "type": "basic.output", + "data": { + "name": "shift" + }, + "position": { + "x": 1264, + "y": 128 + } + }, + { + "id": "8f348e4f-94ee-47ad-abeb-6eaf5e71c3f7", + "type": "basic.output", + "data": { + "name": "Tics2" + }, + "position": { + "x": 1264, + "y": 248 + } + }, + { + "id": "4b1fc7a3-c946-485a-8a6e-fb48ab711489", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 272, + "y": 296 + } + }, + { + "id": "3775a420-c70b-40c6-9620-3334fb35a526", + "type": "basic.input", + "data": { + "name": "fi", + "clock": false + }, + "position": { + "x": 272, + "y": 432 + } + }, + { + "id": "6bedf67d-24d7-48c8-95b7-840f9b8ee694", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false + }, + "position": { + "x": 272, + "y": 504 + } + }, + { + "id": "484b07f3-b73d-4d0a-9cef-e2cda1039f03", + "type": "c386a7076c0569a15326b30b6748ca284426424d", + "position": { + "x": 440, + "y": 416 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "185f1e7a-430c-4b32-a892-5efed37a4c20", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 648, + "y": 384 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "adab6675-08ae-4118-aa7e-e9c192f03206", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 952, + "y": 368 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "51d12177-857b-41ea-9e40-6fa027883e51", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 1120, + "y": 128 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "3f5b132a-14c2-4128-8f51-707ac1e4bc3d", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 1120, + "y": 384 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "f299eabe-f3d2-47b8-841d-50aacfdb937a", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 1120, + "y": 248 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "cf2b751b-df7e-42db-823a-9aa35a91e65e", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "position": { + "x": 648, + "y": 232 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "443a4d94-2132-482a-8cc2-e6deb916decd", + "type": "7eacdff4ce248b009935725889c8ae3339817d76", + "position": { + "x": 800, + "y": 384 + }, + "size": { + "width": 96, + "height": 64 + } + } + ], + "wires": [ + { + "source": { + "block": "3775a420-c70b-40c6-9620-3334fb35a526", + "port": "out" + }, + "target": { + "block": "484b07f3-b73d-4d0a-9cef-e2cda1039f03", + "port": "9ca5353b-32fd-4f1f-af0b-5339bd50b1ff" + }, + "vertices": [] + }, + { + "source": { + "block": "4b1fc7a3-c946-485a-8a6e-fb48ab711489", + "port": "out" + }, + "target": { + "block": "484b07f3-b73d-4d0a-9cef-e2cda1039f03", + "port": "2708468d-1088-4570-be63-fb0d4799a941" + }, + "vertices": [] + }, + { + "source": { + "block": "4b1fc7a3-c946-485a-8a6e-fb48ab711489", + "port": "out" + }, + "target": { + "block": "185f1e7a-430c-4b32-a892-5efed37a4c20", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + }, + "vertices": [] + }, + { + "source": { + "block": "484b07f3-b73d-4d0a-9cef-e2cda1039f03", + "port": "3ada5999-55ba-4c4e-9877-a3e9ed82308c" + }, + "target": { + "block": "185f1e7a-430c-4b32-a892-5efed37a4c20", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + }, + "vertices": [] + }, + { + "source": { + "block": "484b07f3-b73d-4d0a-9cef-e2cda1039f03", + "port": "1c25e08e-e664-4fab-9b30-cedc1f8a3739" + }, + "target": { + "block": "185f1e7a-430c-4b32-a892-5efed37a4c20", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + }, + "vertices": [] + }, + { + "source": { + "block": "6bedf67d-24d7-48c8-95b7-840f9b8ee694", + "port": "out" + }, + "target": { + "block": "adab6675-08ae-4118-aa7e-e9c192f03206", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + }, + "vertices": [] + }, + { + "source": { + "block": "4b1fc7a3-c946-485a-8a6e-fb48ab711489", + "port": "out" + }, + "target": { + "block": "adab6675-08ae-4118-aa7e-e9c192f03206", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + }, + "vertices": [] + }, + { + "source": { + "block": "51d12177-857b-41ea-9e40-6fa027883e51", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "64deaccd-9457-4a20-b2b1-288e4de4e10d", + "port": "in" + }, + "vertices": [] + }, + { + "source": { + "block": "adab6675-08ae-4118-aa7e-e9c192f03206", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "51d12177-857b-41ea-9e40-6fa027883e51", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [ + { + "x": 1080, + "y": 328 + } + ] + }, + { + "source": { + "block": "484b07f3-b73d-4d0a-9cef-e2cda1039f03", + "port": "3ada5999-55ba-4c4e-9877-a3e9ed82308c" + }, + "target": { + "block": "51d12177-857b-41ea-9e40-6fa027883e51", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": 584, + "y": 200 + } + ] + }, + { + "source": { + "block": "adab6675-08ae-4118-aa7e-e9c192f03206", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "3f5b132a-14c2-4128-8f51-707ac1e4bc3d", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "f299eabe-f3d2-47b8-841d-50aacfdb937a", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "8f348e4f-94ee-47ad-abeb-6eaf5e71c3f7", + "port": "in" + }, + "vertices": [] + }, + { + "source": { + "block": "3f5b132a-14c2-4128-8f51-707ac1e4bc3d", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "f299eabe-f3d2-47b8-841d-50aacfdb937a", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [ + { + "x": 1224, + "y": 352 + }, + { + "x": 1136, + "y": 352 + } + ] + }, + { + "source": { + "block": "cf2b751b-df7e-42db-823a-9aa35a91e65e", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "f299eabe-f3d2-47b8-841d-50aacfdb937a", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "484b07f3-b73d-4d0a-9cef-e2cda1039f03", + "port": "1c25e08e-e664-4fab-9b30-cedc1f8a3739" + }, + "target": { + "block": "cf2b751b-df7e-42db-823a-9aa35a91e65e", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [ + { + "x": 608, + "y": 360 + } + ] + }, + { + "source": { + "block": "484b07f3-b73d-4d0a-9cef-e2cda1039f03", + "port": "3ada5999-55ba-4c4e-9877-a3e9ed82308c" + }, + "target": { + "block": "cf2b751b-df7e-42db-823a-9aa35a91e65e", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": 584, + "y": 320 + } + ] + }, + { + "source": { + "block": "443a4d94-2132-482a-8cc2-e6deb916decd", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" + }, + "target": { + "block": "adab6675-08ae-4118-aa7e-e9c192f03206", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + }, + "vertices": [] + }, + { + "source": { + "block": "185f1e7a-430c-4b32-a892-5efed37a4c20", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "443a4d94-2132-482a-8cc2-e6deb916decd", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + }, + "vertices": [] + }, + { + "source": { + "block": "4b1fc7a3-c946-485a-8a6e-fb48ab711489", + "port": "out" + }, + "target": { + "block": "443a4d94-2132-482a-8cc2-e6deb916decd", + "port": "4196184b-4a60-493b-bcc6-c95958483683" + }, + "vertices": [] + } + ] + } + } + }, + "c386a7076c0569a15326b30b6748ca284426424d": { + "package": { + "name": "Detector-flancos", + "version": "0.1", + "description": "Detector de flancos de subida y bajada. Emite tic por las salidas correspondientes al detecta los flancos", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22375.877%22%20height=%22399.413%22%20viewBox=%220%200%2099.450701%20105.67809%22%3E%3Cdefs%3E%3Cmarker%20orient=%22auto%22%20id=%22a%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20fill=%22red%22%20fill-rule=%22evenodd%22%20stroke=%22red%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22b%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20fill=%22red%22%20fill-rule=%22evenodd%22%20stroke=%22red%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3C/defs%3E%3Cg%20transform=%22translate(-61.727%20-50.902)%22%3E%3Cg%20fill=%22none%22%20stroke=%22#00f%22%20stroke-linecap=%22round%22%3E%3Cpath%20d=%22M76.611%2083.336l6.027%207.974-5.055%206.03%201.75%201.557M75.371%2083.53l-3.5%207.975-7.97%201.556.583%202.528%22%20stroke-width=%221.058%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M75.907%2083.53V53.588%22%20stroke-width=%223.969%22/%3E%3Cpath%20d=%22M65.118%2063.338l10.688-10.452%2010.351%2010.452%22%20stroke-width=%223.969%22%20stroke-linejoin=%22round%22/%3E%3C/g%3E%3Cpath%20d=%22M123.88%2069.103c2.17%203.317%204.013%202.718%205.68%200%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%22.529%22%20stroke-linecap=%22round%22/%3E%3Cpath%20d=%22M132.326%2095.38V51.614h-11.225v43.497%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%221.323%22%20stroke-linecap=%22round%22/%3E%3Cellipse%20cx=%22112.489%22%20cy=%2297.866%22%20rx=%227.009%22%20ry=%222.635%22%20transform=%22rotate(-1.418)%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%22.265%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cellipse%20cx=%22-140.807%22%20cy=%2291.678%22%20rx=%227.009%22%20ry=%222.635%22%20transform=%22scale(-1%201)%20rotate(-1.418)%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%22.265%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M124.8%2059.416v3.875M128.39%2059.416v3.875%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%22.529%22/%3E%3Cpath%20d=%22M85.794%2074.097h21.381%22%20fill=%22red%22%20stroke=%22red%22%20stroke-width=%222.646%22%20marker-end=%22url(#a)%22/%3E%3Cg%20transform=%22matrix(.842%200%200%20.842%2062.826%2011.41)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3Cpath%20d=%22M74.965%20140.485l6.027%207.974-5.055%206.03%201.75%201.557m-3.96-15.367l-3.5%207.975-7.97%201.556.582%202.528%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%221.058%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M74.695%20110.063v29.943%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%223.969%22%20stroke-linecap=%22round%22/%3E%3Cpath%20d=%22M63.906%20130.255l10.689%2010.452%2010.35-10.452%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%223.969%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M124.208%20120.573c2.17%203.317%204.013%202.718%205.68%200%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%22.529%22%20stroke-linecap=%22round%22/%3E%3Cpath%20d=%22M132.654%20146.85v-43.764H121.43v43.496%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%221.323%22%20stroke-linecap=%22round%22/%3E%3Cellipse%20cx=%22111.543%22%20cy=%22149.329%22%20rx=%227.009%22%20ry=%222.635%22%20transform=%22rotate(-1.418)%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%22.265%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cellipse%20cx=%22-142.409%22%20cy=%22143.124%22%20rx=%227.009%22%20ry=%222.635%22%20transform=%22scale(-1%201)%20rotate(-1.418)%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%22.265%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M125.128%20110.887v3.874M128.718%20110.887v3.874%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%22.529%22/%3E%3Cpath%20d=%22M86.122%20125.567h21.381%22%20fill=%22red%22%20stroke=%22red%22%20stroke-width=%222.646%22%20marker-end=%22url(#b)%22/%3E%3Cg%20transform=%22matrix(.842%200%200%20.842%2063.956%2061.544)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "2708468d-1088-4570-be63-fb0d4799a941", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 152, + "y": 160 + } + }, + { + "id": "1c25e08e-e664-4fab-9b30-cedc1f8a3739", + "type": "basic.output", + "data": { + "name": "up" + }, + "position": { + "x": 672, + "y": 160 + } + }, + { + "id": "9ca5353b-32fd-4f1f-af0b-5339bd50b1ff", + "type": "basic.input", + "data": { + "name": "", + "clock": false + }, + "position": { + "x": 152, + "y": 248 + } + }, + { + "id": "3ada5999-55ba-4c4e-9877-a3e9ed82308c", + "type": "basic.output", + "data": { + "name": "down" + }, + "position": { + "x": 672, + "y": 248 + } + }, + { + "id": "49c0a94e-2687-4aa4-8cba-327b2942095f", + "type": "basic.info", + "data": { + "info": "## Detector doble: flancos de subida y bajada\n\nSe detectan tanto los flancos de subida como de bajada y se emite los \ntics por sus salidas correspondientes", + "readonly": true + }, + "position": { + "x": 144, + "y": -24 + }, + "size": { + "width": 568, + "height": 80 + } + }, + { + "id": "a6ea5e17-d259-4272-8d1c-87a6a7fe3235", + "type": "basic.info", + "data": { + "info": "Señal de \nentrada", + "readonly": true + }, + "position": { + "x": 168, + "y": 216 + }, + "size": { + "width": 96, + "height": 56 + } + }, + { + "id": "d0d6c668-3c03-42f5-9244-9a0431f11a87", + "type": "basic.info", + "data": { + "info": "Reloj del \nsistema", + "readonly": true + }, + "position": { + "x": 168, + "y": 120 + }, + "size": { + "width": 96, + "height": 48 + } + }, + { + "id": "73c2239c-1050-4d9f-ae49-0299d50982af", + "type": "basic.code", + "data": { + "code": "reg q = 0;\n\nalways @(posedge clk)\n q <= i;\n \nassign up = (~q & i); \nassign down = (q & ~i); ", + "params": [], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "i" + } + ], + "out": [ + { + "name": "up" + }, + { + "name": "down" + } + ] + } + }, + "position": { + "x": 336, + "y": 152 + }, + "size": { + "width": 264, + "height": 168 + } + } + ], + "wires": [ + { + "source": { + "block": "2708468d-1088-4570-be63-fb0d4799a941", + "port": "out" + }, + "target": { + "block": "73c2239c-1050-4d9f-ae49-0299d50982af", + "port": "clk" + } + }, + { + "source": { + "block": "9ca5353b-32fd-4f1f-af0b-5339bd50b1ff", + "port": "out" + }, + "target": { + "block": "73c2239c-1050-4d9f-ae49-0299d50982af", + "port": "i" + } + }, + { + "source": { + "block": "73c2239c-1050-4d9f-ae49-0299d50982af", + "port": "up" + }, + "target": { + "block": "1c25e08e-e664-4fab-9b30-cedc1f8a3739", + "port": "in" + } + }, + { + "source": { + "block": "73c2239c-1050-4d9f-ae49-0299d50982af", + "port": "down" + }, + "target": { + "block": "3ada5999-55ba-4c4e-9877-a3e9ed82308c", + "port": "in" + } + } + ] + } + } + }, + "35f267d0df6ffcb7fc33753bc9df9cf083642cca": { + "package": { + "name": "NOT", + "version": "1.0.3", + "description": "Puerta NOT", + "author": "Jesús Arroyo, Juan González", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22317.651%22%20height=%22194.058%22%20version=%221%22%3E%3Cpath%20d=%22M69.246%204l161.86%2093.027-161.86%2093.031V4z%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linejoin=%22round%22/%3E%3Cellipse%20cx=%22253.352%22%20cy=%2296.736%22%20rx=%2221.393%22%20ry=%2221.893%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M4.057%2097.49h65.262m205.796%200h38.48%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22/%3E%3Ctext%20style=%22line-height:125%25%22%20x=%2281.112%22%20y=%22111.734%22%20transform=%22scale(.99532%201.0047)%22%20font-weight=%22400%22%20font-size=%2249.675%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#00f%22%3E%3Ctspan%20x=%2281.112%22%20y=%22111.734%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%3ENot%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 64, + "y": 144 + } + }, + { + "id": "664caf9e-5f40-4df4-800a-b626af702e62", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 752, + "y": 144 + } + }, + { + "id": "5365ed8c-e5db-4445-938f-8d689830ea5c", + "type": "basic.code", + "data": { + "code": "//-- Puerta NOT\n\n//-- module (input wire a, output wire c);\n\n\nassign c = ~a;\n\n\n//-- endmodule\n", + "params": [], + "ports": { + "in": [ + { + "name": "a" + } + ], + "out": [ + { + "name": "c" + } + ] + } + }, + "position": { + "x": 256, + "y": 48 + }, + "size": { + "width": 400, + "height": 256 + } + } + ], + "wires": [ + { + "source": { + "block": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "port": "out" + }, + "target": { + "block": "5365ed8c-e5db-4445-938f-8d689830ea5c", + "port": "a" + } + }, + { + "source": { + "block": "5365ed8c-e5db-4445-938f-8d689830ea5c", + "port": "c" + }, + "target": { + "block": "664caf9e-5f40-4df4-800a-b626af702e62", + "port": "in" + } + } + ] + } + } + }, + "0b4097a1c6ac2a5e6e6f03e1930cb2e46d222f05": { + "package": { + "name": "Comparador", + "version": "0.1", + "description": "Comparador de un operando de 4 bits. Se compara si el operando es igual al parámetro", + "author": "Juan Gonzalez-Gomez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22312.756%22%20height=%22168.82%22%20viewBox=%220%200%20293.20803%20158.26888%22%3E%3Ctext%20style=%22line-height:125%25%22%20x=%22178.324%22%20y=%22457.047%22%20font-size=%2296.3%22%20transform=%22matrix(4.864%200%200%204.864%20-916.998%20-1997.335)%22%20fill=%22#00f%22%20stroke-width=%22.057%22%20font-weight=%22400%22%20letter-spacing=%220%22%20word-spacing=%220%22%20font-family=%22sans-serif%22%3E%3Ctspan%20x=%22178.324%22%20y=%22457.047%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%20stroke-width=%22.206%22%3E=%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "0344dacc-8583-456b-b377-8cb4ab97cf94", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 616, + "y": 160 + } + }, + { + "id": "426de53f-e3cf-433b-bb21-00c5d207b946", + "type": "basic.input", + "data": { + "name": "", + "range": "[3:0]", + "clock": false, + "size": 4 + }, + "position": { + "x": 168, + "y": 160 + } + }, + { + "id": "bde24908-c5bf-4286-b7e3-e42a11ca5c68", + "type": "basic.constant", + "data": { + "name": "", + "value": "0", + "local": false + }, + "position": { + "x": 408, + "y": 48 + } + }, + { + "id": "9c811723-c900-4ceb-9989-036b071ee3fe", + "type": "basic.code", + "data": { + "code": "assign eq = (a == K);", + "params": [ + { + "name": "K" + } + ], + "ports": { + "in": [ + { + "name": "a", + "range": "[3:0]", + "size": 4 + } + ], + "out": [ + { + "name": "eq" + } + ] + } + }, + "position": { + "x": 344, + "y": 160 + }, + "size": { + "width": 224, + "height": 64 + } + } + ], + "wires": [ + { + "source": { + "block": "9c811723-c900-4ceb-9989-036b071ee3fe", + "port": "eq" + }, + "target": { + "block": "0344dacc-8583-456b-b377-8cb4ab97cf94", + "port": "in" + } + }, + { + "source": { + "block": "bde24908-c5bf-4286-b7e3-e42a11ca5c68", + "port": "constant-out" + }, + "target": { + "block": "9c811723-c900-4ceb-9989-036b071ee3fe", + "port": "K" + } + }, + { + "source": { + "block": "426de53f-e3cf-433b-bb21-00c5d207b946", + "port": "out" + }, + "target": { + "block": "9c811723-c900-4ceb-9989-036b071ee3fe", + "port": "a" + }, + "size": 4 + } + ] + } + } + }, + "53847c98bfef0fe28fbef1f4f65042911f361c44": { + "package": { + "name": "Registro-desplazamiento", + "version": "0.1", + "description": "Registro de desplazamiento (izquierda) de 8 bits", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22600.51%22%20height=%22391.803%22%20viewBox=%220%200%20158.8849%20103.66459%22%3E%3Cdefs%3E%3Cmarker%20orient=%22auto%22%20id=%22a%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-5.231-2.42L1.324-.01-5.23%202.401c1.047-1.423%201.041-3.37%200-4.821z%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3C/defs%3E%3Cpath%20d=%22M63.01%2076.938L76.618%2093.61%2069.7%2073.076%22%20fill=%22#ccc%22%20stroke=%22#000%22%20stroke-width=%221.092%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M55.626%2068.874L46.394%2049.26l-6.45%203.724-2.07-3.583%2020.905-12.07%202.069%203.584-6.092%203.517%2012.03%2018.223s5.399-2.025%208.535.74c3.137%202.766%202.52%204.92%202.887%204.773L54.52%2081.807s-2.848-3.696-2.16-6.796c.688-3.1%203.266-6.137%203.266-6.137z%22%20fill=%22red%22%20stroke=%22#000%22%20stroke-width=%221.092%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cg%20transform=%22translate(-93.18%206.94)%20scale(1.09073)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20cx=%22100.602%22%20cy=%2273.815%22%20r=%2214.559%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M103.454%2076.938L117.06%2093.61l-6.918-20.534%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%22/%3E%3Cpath%20d=%22M96.07%2068.874L86.836%2049.26l-6.45%203.724-2.07-3.583%2020.905-12.07%202.07%203.584-6.093%203.517%2012.03%2018.223s5.4-2.025%208.536.74c3.136%202.766%202.52%204.92%202.887%204.773L94.964%2081.807s-2.848-3.696-2.16-6.796c.687-3.1%203.265-6.137%203.265-6.137z%22%20fill=%22red%22%20stroke-width=%221.0924880399999999%22/%3E%3C/g%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M143.141%2076.938l13.607%2016.672-6.917-20.534%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%22/%3E%3Cpath%20d=%22M135.757%2068.874l-9.232-19.613-6.45%203.724-2.07-3.583%2020.905-12.07%202.069%203.584-6.092%203.517%2012.03%2018.223s5.399-2.025%208.535.74c3.137%202.766%202.52%204.92%202.887%204.773l-23.688%2013.638s-2.848-3.696-2.16-6.796c.688-3.1%203.266-6.137%203.266-6.137z%22%20fill=%22red%22%20stroke-width=%221.0924880399999999%22/%3E%3C/g%3E%3Cpath%20d=%22M184.452%2090.227H90.37%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%225.292%22%20marker-end=%22url(#a)%22%20transform=%22translate(-48.145%20-76.529)%22/%3E%3Cg%20transform=%22translate(-93.518%20-26.741)%20scale(1.09073)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20cx=%22100.602%22%20cy=%2273.815%22%20r=%2214.559%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "a265c13d-af7a-437b-97ae-424872381a93", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 224, + "y": 648 + } + }, + { + "id": "21039c06-c932-498c-968d-879a68d66795", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 952, + "y": 680 + } + }, + { + "id": "02007399-7499-4b76-ad4f-91094344d055", + "type": "basic.input", + "data": { + "name": "sin", + "clock": false + }, + "position": { + "x": 224, + "y": 696 + } + }, + { + "id": "05394100-6c4a-4bd5-b479-739c16ede30c", + "type": "basic.input", + "data": { + "name": "d", + "range": "[7:0]", + "clock": false, + "size": 8 + }, + "position": { + "x": 224, + "y": 744 + } + }, + { + "id": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", + "type": "basic.output", + "data": { + "name": "q", + "range": "[7:0]", + "size": 8 + }, + "position": { + "x": 968, + "y": 800 + } + }, + { + "id": "b916c09a-8848-4500-a1a0-0cc09e8f23c1", + "type": "basic.input", + "data": { + "name": "load", + "clock": false + }, + "position": { + "x": 224, + "y": 800 + } + }, + { + "id": "ec65c3cd-0951-4d74-bbfc-c37f87a78e66", + "type": "basic.input", + "data": { + "name": "shift", + "clock": false + }, + "position": { + "x": 224, + "y": 856 + } + }, + { + "id": "4fef4dd0-ce33-42df-96b7-6c92c543f8eb", + "type": "basic.constant", + "data": { + "name": "", + "value": "0", + "local": false + }, + "position": { + "x": 624, + "y": 544 + } + }, + { + "id": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "type": "basic.code", + "data": { + "code": "//-- Numero de bits el registros de desplazamiento\nlocalparam N = 8;\n\nreg [N-1:0] q = INI;\n\nalways @(posedge clk)\n if (load)\n q <= d;\n else if (shift)\n q <= {q[N-2:0], si};\n \n//-- Sacar el bit de mayor peso por serial-out \nassign so = q[N-1];", + "params": [ + { + "name": "INI" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "si" + }, + { + "name": "d", + "range": "[7:0]", + "size": 8 + }, + { + "name": "load" + }, + { + "name": "shift" + } + ], + "out": [ + { + "name": "so" + }, + { + "name": "q", + "range": "[7:0]", + "size": 8 + } + ] + } + }, + "position": { + "x": 440, + "y": 656 + }, + "size": { + "width": 464, + "height": 232 + } + } + ], + "wires": [ + { + "source": { + "block": "4fef4dd0-ce33-42df-96b7-6c92c543f8eb", + "port": "constant-out" + }, + "target": { + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "INI" + } + }, + { + "source": { + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "q" + }, + "target": { + "block": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", + "port": "in" + }, + "size": 8 + }, + { + "source": { + "block": "a265c13d-af7a-437b-97ae-424872381a93", + "port": "out" + }, + "target": { + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "clk" + } + }, + { + "source": { + "block": "02007399-7499-4b76-ad4f-91094344d055", + "port": "out" + }, + "target": { + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "si" + } + }, + { + "source": { + "block": "05394100-6c4a-4bd5-b479-739c16ede30c", + "port": "out" + }, + "target": { + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "d" + }, + "size": 8 + }, + { + "source": { + "block": "ec65c3cd-0951-4d74-bbfc-c37f87a78e66", + "port": "out" + }, + "target": { + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "shift" + } + }, + { + "source": { + "block": "b916c09a-8848-4500-a1a0-0cc09e8f23c1", + "port": "out" + }, + "target": { + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "load" + } + }, + { + "source": { + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "so" + }, + "target": { + "block": "21039c06-c932-498c-968d-879a68d66795", + "port": "in" + } + } + ] + } + } + }, + "1420082f26891895ac20bd3f92bae423a80f7669": { + "package": { + "name": "NAND", + "version": "1.0.1", + "description": "Puerta NAND", + "author": "Jesús Arroyo, Juan González", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22360.218%22%20height=%22194.045%22%20version=%221%22%3E%3Cpath%20d=%22M174.656%20190.045H78.304V4h96.352s87.463%208.625%2087.463%2091.94c0%2083.311-87.463%2094.105-87.463%2094.105z%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M4.057%2045.668h74.018M4.057%20144.812h74.018m228.708-50.034h49.378%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22/%3E%3Ctext%20style=%22line-height:125%25%22%20x=%2293.046%22%20y=%22111.175%22%20font-weight=%22400%22%20font-size=%2244.012%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#00f%22%3E%3Ctspan%20x=%2293.046%22%20y=%22111.175%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%3ENAND%3C/tspan%3E%3C/text%3E%3Cellipse%20cx=%22284.476%22%20cy=%2294.796%22%20rx=%2221.393%22%20ry=%2221.893%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 64, + "y": 88 + } + }, + { + "id": "664caf9e-5f40-4df4-800a-b626af702e62", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 784, + "y": 152 + } + }, + { + "id": "97b51945-d716-4b6c-9db9-970d08541249", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 64, + "y": 224 + } + }, + { + "id": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "type": "basic.code", + "data": { + "code": "//-- Puerta NAND\n\n//-- module nand (input wire a, input wire b,\n//-- output wire c);\n\nassign c = ~(a & b);\n\n//-- endmodule", + "params": [], + "ports": { + "in": [ + { + "name": "a" + }, + { + "name": "b" + } + ], + "out": [ + { + "name": "c" + } + ] + } + }, + "position": { + "x": 256, + "y": 48 + }, + "size": { + "width": 464, + "height": 272 + } + } + ], + "wires": [ + { + "source": { + "block": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "port": "out" + }, + "target": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "a" + } + }, + { + "source": { + "block": "97b51945-d716-4b6c-9db9-970d08541249", + "port": "out" + }, + "target": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "b" + } + }, + { + "source": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "c" + }, + "target": { + "block": "664caf9e-5f40-4df4-800a-b626af702e62", + "port": "in" + } + } + ] + } + } + }, + "7b1b18c562dd91a11b875e640993a8c004d75533": { + "package": { + "name": "Corazon_Hz CLONE", + "version": "0.1-c1619126144316", + "description": "Corazon genérico para bombear bits a la frecuencia fijada en Hz (por defecto 1Hz)", + "author": "Juan Gonzalez-Gomez (obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22177.215%22%20height=%22156.392%22%20viewBox=%220%200%20166.13943%20146.61829%22%3E%3Cpath%20d=%22M78.495%20143.399c-2.574-4.43-6.565-8.766-14.127-15.35-4.096-3.566-6.588-5.546-20.775-16.506-11.12-8.593-16.668-13.36-23.098-19.847C14.07%2085.208%2010.293%2080.04%207.052%2073.303%204.984%2069%203.562%2064.854%202.676%2060.547c-1.123-5.472-1.275-7.324-1.27-15.382.008-10.573.357-12.332%203.828-19.385%202.58-5.239%204.54-7.997%208.62-12.141%203.963-4.022%206.536-5.85%2012.1-8.6%206.18-3.057%2010.65-3.859%2019.86-3.562%207.157.232%209.776.943%2015.45%204.208%208.929%205.138%2015.858%2013.387%2017.776%2021.162.313%201.27.636%202.312.719%202.312.082%200%20.805-1.487%201.606-3.305%202.727-6.179%205.26-9.95%209.284-13.828%2012.32-11.88%2031.744-14.027%2047.45-5.25%206.414%203.584%2011.633%208.802%2015.676%2015.675%203.184%205.41%204.812%2012.595%205.09%2022.464.402%2014.298-2.214%2024.207-9.174%2034.766-2.763%204.19-4.806%206.73-8.638%2010.73-6.182%206.458-11.758%2011.205-24.92%2021.216-8.307%206.317-13.23%2010.378-20.355%2016.8-5.71%205.143-14.558%2014.1-15.41%2015.596-.372.655-.71%201.189-.749%201.189-.039%200-.544-.815-1.124-1.813z%22%20fill=%22red%22%20stroke=%22#000%22%20stroke-width=%222.813%22/%3E%3Ctext%20y=%22136.183%22%20x=%22124.113%22%20style=%22line-height:125%25%22%20font-weight=%22400%22%20font-size=%2253.914%22%20letter-spacing=%220%22%20word-spacing=%220%22%20transform=%22scale(.99853%201.00147)%22%20font-family=%22sans-serif%22%20fill=%22#00f%22%3E%3Ctspan%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%22136.183%22%20x=%22124.113%22%20font-weight=%22700%22%20font-size=%2230.808%22%3EHz%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "4656865c-bcf1-4668-8e13-9221e32222d3", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": -296, + "y": 0 + } + }, + { + "id": "70887b0b-826c-4150-a873-605b77da8272", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 560, + "y": 128 + } + }, + { + "id": "38f0d8e4-3d8b-4998-87af-0d8cf7c1fd6a", + "type": "basic.input", + "data": { + "name": "rst", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "clock": false + }, + "position": { + "x": -296, + "y": 264 + } + }, + { + "id": "319cdca8-e777-4c8b-88ca-f885ba96ad06", + "type": "basic.constant", + "data": { + "name": "", + "value": "1", + "local": false + }, + "position": { + "x": 112, + "y": -224 + } + }, + { + "id": "7e864797-b165-408f-a9ce-2e71dc63f8b8", + "type": "basic.code", + "data": { + "code": "\n//parameter HZ=1;\n\n//-- Constante para dividir y obtener una frecuencia de 1Hz\nlocalparam M = 12000000/HZ;\n\n//-- Calcular el numero de bits para almacenar M\nlocalparam N = $clog2(M);\n\n//-- Registro del divisor\nreg [N-1:0] divcounter;\n\n//-- Temporal clock\nreg clk_t = 0;\n\n//-- Se usa un contador modulo M/2 para luego\n//-- pasarlo por un biestable T y dividir la frecuencia\n//-- entre 2, para que el ciclo de trabajo sea del 50%\nalways @(posedge clk)\n if (rst)\n divcounter = 0;\n else if (divcounter == M/2) begin\n clk_t <= 1;\n divcounter = 0;\n end \n else begin\n divcounter <= divcounter + 1;\n clk_t = 0;\n end \n \nreg clk_o = 0; \n \n//-- Biestable T para obtener ciclo de trabajo del 50%\nalways @(posedge clk) begin\n if (clk_t) clk_o <= ~clk_o;\nend", + "params": [ + { + "name": "HZ" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "rst" + } + ], + "out": [ + { + "name": "clk_o" + } + ] + } + }, + "position": { + "x": -104, + "y": -104 + }, + "size": { + "width": 528, + "height": 528 + } + } + ], + "wires": [ + { + "source": { + "block": "7e864797-b165-408f-a9ce-2e71dc63f8b8", + "port": "clk_o" + }, + "target": { + "block": "70887b0b-826c-4150-a873-605b77da8272", + "port": "in" + } + }, + { + "source": { + "block": "4656865c-bcf1-4668-8e13-9221e32222d3", + "port": "out" + }, + "target": { + "block": "7e864797-b165-408f-a9ce-2e71dc63f8b8", + "port": "clk" + }, + "vertices": [] + }, + { + "source": { + "block": "319cdca8-e777-4c8b-88ca-f885ba96ad06", + "port": "constant-out" + }, + "target": { + "block": "7e864797-b165-408f-a9ce-2e71dc63f8b8", + "port": "HZ" + } + }, + { + "source": { + "block": "38f0d8e4-3d8b-4998-87af-0d8cf7c1fd6a", + "port": "out" + }, + "target": { + "block": "7e864797-b165-408f-a9ce-2e71dc63f8b8", + "port": "rst" + } + } + ] + } + } + }, + "b70dd9c39fe3c51faff4233d2dde462fc53c7e38": { + "package": { + "name": "XOR", + "version": "1.0.1", + "description": "Puerta XOR", + "author": "Jesús Arroyo, Juan González", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20height=%22193.047%22%20width=%22383.697%22%20version=%221%22%3E%3Cpath%20d=%22M175.56%20189.047H84.527s30.345-42.538%2031.086-94.03c.743-51.49-31.821-90.294-31.821-90.294l92.317-.394c46.445%201.948%20103.899%2053.44%20123.047%2093.678-32.601%2067.503-92.158%2089.79-123.596%2091.04z%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M4.057%2047.62h99.605M4.883%20145.497h100.981M298.57%2099.219h81.07%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22/%3E%3Ctext%20x=%22129.011%22%20y=%22115.285%22%20font-size=%2258.24%22%20font-weight=%22400%22%20style=%22line-height:125%25%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#00f%22%20transform=%22translate(0%20.329)%22%3E%3Ctspan%20x=%22129.011%22%20y=%22115.285%22%20font-weight=%22700%22%3EXOR%3C/tspan%3E%3C/text%3E%3Cpath%20d=%22M54.321%20188.368s30.345-42.538%2031.086-94.03c.742-51.49-31.821-90.294-31.821-90.294%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 64, + "y": 88 + } + }, + { + "id": "664caf9e-5f40-4df4-800a-b626af702e62", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 784, + "y": 152 + } + }, + { + "id": "97b51945-d716-4b6c-9db9-970d08541249", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 64, + "y": 224 + } + }, + { + "id": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "type": "basic.code", + "data": { + "code": "//-- Puerta XOR\n\n//-- module xor (input wire a, input wire b,\n//-- output wire c);\n\nassign c = a ^ b;\n\n//-- endmodule", + "params": [], + "ports": { + "in": [ + { + "name": "a" + }, + { + "name": "b" + } + ], + "out": [ + { + "name": "c" + } + ] + } + }, + "position": { + "x": 256, + "y": 48 + }, + "size": { + "width": 464, + "height": 272 + } + } + ], + "wires": [ + { + "source": { + "block": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "port": "out" + }, + "target": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "a" + } + }, + { + "source": { + "block": "97b51945-d716-4b6c-9db9-970d08541249", + "port": "out" + }, + "target": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "b" + } + }, + { + "source": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "c" + }, + "target": { + "block": "664caf9e-5f40-4df4-800a-b626af702e62", + "port": "in" + } + } + ] + } + } + }, + "fae75666c16ceda511dc194c49e012b7019d8032": { + "package": { + "name": "Wave_stop_ptk", + "version": "0.1", + "description": "It is responsible for giving two pulses to create the stop signal in the multiplexers and reset other modules.", + "author": "Democrito", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22157.458%22%20height=%22128.044%22%20viewBox=%220%200%2041.660765%2033.878045%22%3E%3Cpath%20d=%22M11.101%2010.207L11%2020.62l2.092-2.304H8.705L11%2020.618%22%20fill=%22none%22%20stroke=%22red%22%20stroke-width=%221.455%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M.005%2022.243l14.501.042v-6.787l13.702-.14%22%20fill=%22none%22%20stroke=%22#0000a1%22%20stroke-width=%221.426%22/%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:'sans-serif%20Bold'%22%20x=%224.364%22%20y=%229.319%22%20font-weight=%22700%22%20font-size=%2211.65%22%20letter-spacing=%220%22%20word-spacing=%220%22%20transform=%22scale(.89695%201.11489)%22%20font-family=%22sans-serif%22%20fill=%22#ff844c%22%20stroke=%22#004600%22%20stroke-width=%22.625%22%3E%3Ctspan%20x=%224.364%22%20y=%229.319%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%3EStop%3C/tspan%3E%3C/text%3E%3Cpath%20d=%22M7.508%206.688c0%201.456.056%201.456.056%201.456%22%20fill=%22none%22%20stroke=%22#0ff%22%20stroke-width=%22.1%22%20stroke-opacity=%22.151%22/%3E%3Cpath%20d=%22M15.438.132h4.558%22%20fill=%22none%22/%3E%3Cpath%20d=%22M.005%2033.165l12.318-.09-.066-6.788c5.404.004%2010.674.107%2016.077%200%22%20fill=%22none%22%20stroke=%22#0000a1%22%20stroke-width=%221.426%22/%3E%3Cg%20transform=%22matrix(.4277%200%200%20.33377%20-7.724%20-3.118)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3C/svg%3E", + "otid": 1603921862534 + }, + "design": { + "graph": { + "blocks": [ + { + "id": "5b6c2879-1b2f-42ad-a627-77ab5818e651", + "type": "basic.input", + "data": { + "name": "", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "clock": true + }, + "position": { + "x": 504, + "y": 48 + } + }, + { + "id": "b77bd433-38d0-4ec7-9c21-7e1b7bf4743e", + "type": "basic.output", + "data": { + "name": "two", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 1776, + "y": 168 + } + }, + { + "id": "17a6513b-054c-44d6-8010-11470eb5b29a", + "type": "basic.input", + "data": { + "name": "start", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "clock": false + }, + "position": { + "x": 496, + "y": 240 + } + }, + { + "id": "85cff7d0-bfed-43a4-989c-9788a21aa439", + "type": "basic.output", + "data": { + "name": "rst", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 1776, + "y": 248 + } + }, + { + "id": "9bb84a42-9ee0-4d22-aec1-1b9c60278ed5", + "type": "basic.input", + "data": { + "name": "fq", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "clock": false + }, + "position": { + "x": 504, + "y": 472 + } + }, + { + "id": "1b5553e0-14de-497c-871d-3777bbebe5d5", + "type": "basic.constant", + "data": { + "name": "", + "value": "2", + "local": true + }, + "position": { + "x": 1520, + "y": 80 + } + }, + { + "id": "1ecd4eda-3997-4bd0-9558-282d80be3257", + "type": "e79148d23652be6d5149f8f6881f7f47bd958497", + "position": { + "x": 1520, + "y": 208 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "74f13278-71af-4786-b736-dcf24af327d7", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 1280, + "y": 256 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "1de51b71-a2d9-4a3b-83e7-64f779a2e31f", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 1032, + "y": 224 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "82cc7fd9-2492-4491-9ae2-aa9d6f364aaf", + "type": "c386a7076c0569a15326b30b6748ca284426424d", + "position": { + "x": 784, + "y": 456 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "ffcc22ca-7cb0-4aef-958a-530c7efd93ce", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "position": { + "x": 1040, + "y": 456 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "edf9b5b0-a85c-49c6-bce6-0a5952c0031a", + "type": "basic.info", + "data": { + "info": "** Gives the last two pulses that make up the stop sign. **", + "readonly": true + }, + "position": { + "x": 1120, + "y": 128 + }, + "size": { + "width": 192, + "height": 32 + } + }, + { + "id": "873cde2a-1581-4a08-b4a1-709ae51320ce", + "type": "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542", + "position": { + "x": 1280, + "y": 176 + }, + "size": { + "width": 96, + "height": 64 + } + } + ], + "wires": [ + { + "source": { + "block": "1ecd4eda-3997-4bd0-9558-282d80be3257", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + }, + "target": { + "block": "85cff7d0-bfed-43a4-989c-9788a21aa439", + "port": "in" + }, + "vertices": [] + }, + { + "source": { + "block": "1b5553e0-14de-497c-871d-3777bbebe5d5", + "port": "constant-out" + }, + "target": { + "block": "1ecd4eda-3997-4bd0-9558-282d80be3257", + "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" + }, + "vertices": [] + }, + { + "source": { + "block": "5b6c2879-1b2f-42ad-a627-77ab5818e651", + "port": "out" + }, + "target": { + "block": "1ecd4eda-3997-4bd0-9558-282d80be3257", + "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" + }, + "vertices": [ + { + "x": 1456, + "y": 152 + } + ] + }, + { + "source": { + "block": "74f13278-71af-4786-b736-dcf24af327d7", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "1ecd4eda-3997-4bd0-9558-282d80be3257", + "port": "26aba23f-8567-4e9b-bd45-c26724030f33" + }, + "vertices": [] + }, + { + "source": { + "block": "74f13278-71af-4786-b736-dcf24af327d7", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "b77bd433-38d0-4ec7-9c21-7e1b7bf4743e", + "port": "in" + }, + "vertices": [ + { + "x": 1456, + "y": 328 + }, + { + "x": 1712, + "y": 304 + } + ] + }, + { + "source": { + "block": "1de51b71-a2d9-4a3b-83e7-64f779a2e31f", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "74f13278-71af-4786-b736-dcf24af327d7", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "5b6c2879-1b2f-42ad-a627-77ab5818e651", + "port": "out" + }, + "target": { + "block": "1de51b71-a2d9-4a3b-83e7-64f779a2e31f", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + }, + "vertices": [] + }, + { + "source": { + "block": "1ecd4eda-3997-4bd0-9558-282d80be3257", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + }, + "target": { + "block": "1de51b71-a2d9-4a3b-83e7-64f779a2e31f", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + }, + "vertices": [ + { + "x": 1656, + "y": 408 + } + ] + }, + { + "source": { + "block": "17a6513b-054c-44d6-8010-11470eb5b29a", + "port": "out" + }, + "target": { + "block": "1de51b71-a2d9-4a3b-83e7-64f779a2e31f", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + }, + "vertices": [] + }, + { + "source": { + "block": "5b6c2879-1b2f-42ad-a627-77ab5818e651", + "port": "out" + }, + "target": { + "block": "82cc7fd9-2492-4491-9ae2-aa9d6f364aaf", + "port": "2708468d-1088-4570-be63-fb0d4799a941" + }, + "vertices": [ + { + "x": 752, + "y": 352 + } + ] + }, + { + "source": { + "block": "9bb84a42-9ee0-4d22-aec1-1b9c60278ed5", + "port": "out" + }, + "target": { + "block": "82cc7fd9-2492-4491-9ae2-aa9d6f364aaf", + "port": "9ca5353b-32fd-4f1f-af0b-5339bd50b1ff" + }, + "vertices": [] + }, + { + "source": { + "block": "ffcc22ca-7cb0-4aef-958a-530c7efd93ce", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "74f13278-71af-4786-b736-dcf24af327d7", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] + }, + { + "source": { + "block": "82cc7fd9-2492-4491-9ae2-aa9d6f364aaf", + "port": "1c25e08e-e664-4fab-9b30-cedc1f8a3739" + }, + "target": { + "block": "ffcc22ca-7cb0-4aef-958a-530c7efd93ce", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "82cc7fd9-2492-4491-9ae2-aa9d6f364aaf", + "port": "3ada5999-55ba-4c4e-9877-a3e9ed82308c" + }, + "target": { + "block": "ffcc22ca-7cb0-4aef-958a-530c7efd93ce", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] + }, + { + "source": { + "block": "873cde2a-1581-4a08-b4a1-709ae51320ce", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "1ecd4eda-3997-4bd0-9558-282d80be3257", + "port": "743b5299-2d89-4783-b7c9-12a5b36df406" + }, + "vertices": [ + { + "x": 1416, + "y": 232 + } + ] + } + ] + } + } + }, + "e308ae53e30f77d7b8307a6ea2745aae28e71f3f": { + "package": { + "name": "count-04-2bits", + "version": "0.1", + "description": "Máquina de contar, de 2 bits (cuenta hasta 4 ciclos)", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20height=%22498.716%22%20width=%22422.648%22%3E%3Cpath%20d=%22M198.947%2079.637c-24.895%200-45.092%2020.196-45.092%2045.109%200%2024.886%2020.197%2045.126%2045.092%2045.126%2024.904%200%2044.953-20.24%2044.953-45.126%200-24.913-20.05-45.11-44.953-45.11zm90.41%2071.022l-8.128%2019.578%2014.497%2028.472%201.914%203.759-20.1%2020.1-32.98-15.575-19.578%208.04-9.937%2030.421-1.27%204.038h-28.411l-12.295-34.337-19.579-8.075-28.514%2014.462-3.76%201.88-20.091-20.083%2015.558-32.997-8.066-19.56-30.37-9.92-4.028-1.306v-28.393L108.58%2098.85l8.067-19.544-14.454-28.533-1.905-3.741%2020.065-20.066%2033.023%2015.55%2019.552-8.084%209.929-30.403L184.137%200h28.402l12.304%2034.38%2019.526%208.084%2028.524-14.471%203.794-1.906%2020.083%2020.066-15.558%2032.97%208.04%2019.588%2030.455%209.928%204.003%201.28v28.384z%22%20fill=%22#00f%22/%3E%3Crect%20rx=%2210.608%22%20ry=%2210.608%22%20y=%22266.697%22%20x=%22218.697%22%20height=%22180.846%22%20width=%22111.64%22%20fill=%22#666%22%20stroke=%22#000%22%20stroke-width=%225.658%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20transform=%22scale(.94516%201.05802)%22%20y=%22387.839%22%20x=%22242.878%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%2233.946%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%225.658%22%3E%3Ctspan%20style=%22line-height:1.25;-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%22387.839%22%20x=%22242.878%22%20font-weight=%22700%22%20font-size=%22134.762%22%3E0%3C/tspan%3E%3C/text%3E%3Cpath%20d=%22M222.934%20361.162h104.934%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%228.487%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Crect%20rx=%2210.608%22%20ry=%2210.608%22%20y=%22266.697%22%20x=%2292.408%22%20height=%22180.846%22%20width=%22111.64%22%20fill=%22#666%22%20stroke=%22#000%22%20stroke-width=%225.658%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20transform=%22scale(.94516%201.05802)%22%20y=%22387.839%22%20x=%22109.261%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%2233.946%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%225.658%22%3E%3Ctspan%20style=%22line-height:1.25;-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%22387.839%22%20x=%22109.261%22%20font-weight=%22700%22%20font-size=%22134.762%22%3E0%3C/tspan%3E%3C/text%3E%3Cpath%20d=%22M96.645%20361.162h104.934%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%228.487%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Cg%20transform=%22matrix(3.23542%200%200%203.23542%20-277.4%2063.192)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3Cg%20transform=%22matrix(3.23542%200%200%203.23542%20-277.4%20211.802)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3Cg%20transform=%22matrix(3.23542%200%200%203.23542%2049.068%20210.797)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3Cg%20transform=%22matrix(3.23542%200%200%203.23542%2046.938%2063.192)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "cb426e3d-ace3-4a57-a74b-155caed0c14c", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 592, + "y": -416 + } + }, + { + "id": "9291f94d-2d9a-4c3a-b7df-4299abf84886", + "type": "basic.inputLabel", + "data": { + "blockColor": "yellow", + "name": "clk", + "pins": [ + { + "index": "0", + "name": "", + "value": "" + } + ], + "virtual": true + }, + "position": { + "x": 736, + "y": -416 + } + }, + { + "id": "81fb4efb-363e-483e-b1df-c2ebda777355", + "type": "basic.outputLabel", + "data": { + "blockColor": "yellow", + "name": "clk" + }, + "position": { + "x": 1416, + "y": -352 + } + }, + { + "id": "92c88f9e-7d51-4946-b0ef-088dcd8efa49", + "type": "basic.inputLabel", + "data": { + "blockColor": "red", + "name": "on", + "pins": [ + { + "index": "0", + "name": "", + "value": "" + } + ], + "virtual": true, + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 952, + "y": -304 + } + }, + { + "id": "6c846478-ff94-415a-b78e-03b6981bc0fe", + "type": "basic.outputLabel", + "data": { + "blockColor": "fuchsia", + "name": "rst" + }, + "position": { + "x": 1416, + "y": -288 + } + }, + { + "id": "40607400-436e-4dea-b733-8308a06fd4ef", + "type": "basic.outputLabel", + "data": { + "blockColor": "yellow", + "name": "clk" + }, + "position": { + "x": 584, + "y": -224 + } + }, + { + "id": "6a11eaf9-4bd5-405e-81f8-44418365326b", + "type": "basic.output", + "data": { + "name": "Busy" + }, + "position": { + "x": 2312, + "y": -216 + } + }, + { + "id": "2438a009-c8e2-4acb-b443-90fe0ddd989d", + "type": "basic.outputLabel", + "data": { + "blockColor": "red", + "name": "on", + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 2152, + "y": -216 + } + }, + { + "id": "bc6920df-ca50-4643-ad7a-7e10c29856e8", + "type": "basic.inputLabel", + "data": { + "blockColor": "fuchsia", + "name": "rst", + "pins": [ + { + "index": "0", + "name": "", + "value": "" + } + ], + "virtual": true + }, + "position": { + "x": 952, + "y": -192 + } + }, + { + "id": "8f591b24-0427-409f-aa6e-ca1861556cf5", + "type": "basic.input", + "data": { + "name": "start", + "clock": false + }, + "position": { + "x": 584, + "y": -136 + } + }, + { + "id": "bd54a999-6eb2-4eb1-a2f4-9924ae525a9e", + "type": "basic.inputLabel", + "data": { + "name": "cnt", + "range": "[2:0]", + "pins": [ + { + "index": "2", + "name": "", + "value": "" + }, + { + "index": "1", + "name": "", + "value": "" + }, + { + "index": "0", + "name": "", + "value": "" + } + ], + "virtual": true, + "blockColor": "navy" + }, + "position": { + "x": 1824, + "y": -120 + } + }, + { + "id": "9e9bbee0-fcbc-4cf1-971f-096a8267abf2", + "type": "basic.outputLabel", + "data": { + "name": "cnt", + "range": "[2:0]", + "blockColor": "navy", + "oldBlockColor": "royalblue", + "size": 3 + }, + "position": { + "x": 1200, + "y": -104 + } + }, + { + "id": "9baa509b-0012-4e0e-b874-e62987258aa1", + "type": "basic.inputLabel", + "data": { + "blockColor": "fuchsia", + "name": "start", + "pins": [ + { + "index": "0", + "name": "", + "value": "" + } + ], + "virtual": true + }, + "position": { + "x": 944, + "y": -72 + } + }, + { + "id": "afac67ea-64eb-4387-856b-46ad5d276971", + "type": "basic.outputLabel", + "data": { + "name": "cnt", + "range": "[2:0]", + "blockColor": "navy", + "size": 3 + }, + "position": { + "x": 2160, + "y": -72 + } + }, + { + "id": "2885a59c-c338-4e79-83bc-771f79ec7d2e", + "type": "basic.output", + "data": { + "name": "n", + "range": "[2:0]", + "size": 3 + }, + "position": { + "x": 2312, + "y": -72 + } + }, + { + "id": "45bd338b-4745-4b06-b199-462cdaffa31d", + "type": "basic.outputLabel", + "data": { + "blockColor": "gold", + "name": "stop", + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 584, + "y": -24 + } + }, + { + "id": "8a5f0c79-7347-4b35-8e27-603ebed8bf9f", + "type": "basic.outputLabel", + "data": { + "blockColor": "darkgreen", + "name": "cycle", + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 1472, + "y": 16 + } + }, + { + "id": "5a3f8466-6a57-4607-939a-fb15222442a7", + "type": "basic.inputLabel", + "data": { + "blockColor": "fuchsia", + "name": "done", + "pins": [ + { + "index": "0", + "name": "", + "value": "" + } + ], + "virtual": true + }, + "position": { + "x": 920, + "y": 24 + } + }, + { + "id": "dddd2a78-e0f8-4688-ad63-0c41ad98894b", + "type": "basic.outputLabel", + "data": { + "blockColor": "fuchsia", + "name": "exec", + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 2160, + "y": 104 + } + }, + { + "id": "73948305-b05b-418f-88af-11328f400cdc", + "type": "basic.output", + "data": { + "name": "exec" + }, + "position": { + "x": 2328, + "y": 104 + } + }, + { + "id": "c5781045-a890-4e66-8f67-80d0cb317ee6", + "type": "basic.outputLabel", + "data": { + "blockColor": "red", + "name": "on", + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 1544, + "y": 136 + } + }, + { + "id": "fa7f43f2-cbb2-47e0-bcc5-32336f9cd8ed", + "type": "basic.outputLabel", + "data": { + "blockColor": "red", + "name": "on", + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 648, + "y": 152 + } + }, + { + "id": "8c96c7ec-0c2f-4870-9197-46116cd1d134", + "type": "basic.inputLabel", + "data": { + "blockColor": "darkgreen", + "name": "cycle", + "pins": [ + { + "index": "0", + "name": "", + "value": "" + } + ], + "virtual": true, + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 1080, + "y": 168 + } + }, + { + "id": "ad4d0fc2-118e-496e-b292-c435bad20e7d", + "type": "basic.input", + "data": { + "name": "next", + "clock": false + }, + "position": { + "x": 616, + "y": 208 + } + }, + { + "id": "d8820925-23d9-4f02-8491-adf813601d08", + "type": "basic.outputLabel", + "data": { + "blockColor": "yellow", + "name": "clk" + }, + "position": { + "x": 1384, + "y": 232 + } + }, + { + "id": "a756b829-42d1-4779-b42d-a9acc3800854", + "type": "basic.outputLabel", + "data": { + "blockColor": "fuchsia", + "name": "done", + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 2160, + "y": 248 + } + }, + { + "id": "49221b19-132a-4e3f-9a1f-97bcd463391b", + "type": "basic.output", + "data": { + "name": "done" + }, + "position": { + "x": 2320, + "y": 248 + } + }, + { + "id": "06b60a4f-b1b1-4a91-ba10-bdb5a7515718", + "type": "basic.inputLabel", + "data": { + "blockColor": "fuchsia", + "name": "exec", + "pins": [ + { + "index": "0", + "name": "", + "value": "" + } + ], + "virtual": true, + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 1952, + "y": 288 + } + }, + { + "id": "f9f37a77-fd08-4506-9c1b-cc53daa19559", + "type": "basic.outputLabel", + "data": { + "blockColor": "darkgreen", + "name": "cycle", + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 1384, + "y": 304 + } + }, + { + "id": "10afc859-04fd-433d-823a-4fa4721320c1", + "type": "basic.outputLabel", + "data": { + "blockColor": "fuchsia", + "name": "start" + }, + "position": { + "x": 1680, + "y": 376 + } + }, + { + "id": "2e9e9e82-c651-4a6b-9d9e-4c796699d133", + "type": "basic.inputLabel", + "data": { + "blockColor": "gold", + "name": "stop", + "pins": [ + { + "index": "0", + "name": "", + "value": "" + } + ], + "virtual": true, + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 1144, + "y": 376 + } + }, + { + "id": "5324c14f-171f-4f3c-9455-4c3252223087", + "type": "basic.outputLabel", + "data": { + "name": "cnt", + "range": "[2:0]", + "blockColor": "navy", + "oldBlockColor": "royalblue", + "size": 3 + }, + "position": { + "x": 688, + "y": 552 + } + }, + { + "id": "d0005413-fea9-4b0b-8a18-9b15d4977bc1", + "type": "basic.constant", + "data": { + "name": "N", + "value": "8", + "local": false + }, + "position": { + "x": 680, + "y": 352 + } + }, + { + "id": "a19b8bcd-a0a4-4da0-9844-5e5c0306e231", + "type": "basic.constant", + "data": { + "name": "", + "value": "1", + "local": true + }, + "position": { + "x": 1352, + "y": -208 + } + }, + { + "id": "374613cb-968d-46d1-94a4-16686e7df28d", + "type": "basic.constant", + "data": { + "name": "", + "value": "0", + "local": true + }, + "position": { + "x": 1648, + "y": -256 + } + }, + { + "id": "d59fae1c-4ff0-418f-9a6e-440a854abd17", + "type": "438dedd956354c574afcde6f0793a7d369b2a031", + "position": { + "x": 752, + "y": -168 + }, + "size": { + "width": 96, + "height": 128 + } + }, + { + "id": "d76d4948-a798-448c-adfa-c03b511371e5", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", + "position": { + "x": 1544, + "y": 288 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "bd61136e-6597-4728-a8c3-141a1841150b", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 808, + "y": 168 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "7d6ed080-252a-4f1b-8ec7-0f47d7866317", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 1016, + "y": 376 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "ac8b922a-9249-49a3-8b42-a1f259ccae2b", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 1680, + "y": 272 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "28aef1aa-1cc2-4bb4-9a70-2db1962258d4", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "position": { + "x": 1824, + "y": 288 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "e042b05f-b116-4a58-8aee-1bf2833ecb6b", + "type": "basic.info", + "data": { + "info": "**Reloj del sistema**", + "readonly": true + }, + "position": { + "x": 680, + "y": -472 + }, + "size": { + "width": 192, + "height": 40 + } + }, + { + "id": "09056d84-24ad-48b7-89c2-0d008ca64b89", + "type": "basic.info", + "data": { + "info": "**Estado de** \n**la máquina**", + "readonly": true + }, + "position": { + "x": 760, + "y": -248 + }, + "size": { + "width": 160, + "height": 40 + } + }, + { + "id": "02ad4d4d-3335-43e1-a671-4b00fc01c8be", + "type": "basic.info", + "data": { + "info": "Máquina encendida", + "readonly": true + }, + "position": { + "x": 936, + "y": -328 + }, + "size": { + "width": 168, + "height": 40 + } + }, + { + "id": "23827b42-5be3-406c-9991-b4ad6deb74e8", + "type": "basic.info", + "data": { + "info": "Máquina apagada \n(rst = 1)", + "readonly": true + }, + "position": { + "x": 952, + "y": -232 + }, + "size": { + "width": 152, + "height": 56 + } + }, + { + "id": "8a928b2a-c1fd-4d20-ba27-2f2bb41c0d01", + "type": "basic.info", + "data": { + "info": "Tic de arranque", + "readonly": true + }, + "position": { + "x": 960, + "y": -96 + }, + "size": { + "width": 160, + "height": 40 + } + }, + { + "id": "6648005b-8565-4aa7-9dbe-692786ab5eed", + "type": "basic.info", + "data": { + "info": "Tic de fin", + "readonly": true + }, + "position": { + "x": 944, + "y": 0 + }, + "size": { + "width": 120, + "height": 32 + } + }, + { + "id": "08d8a2f1-ca1d-4bb5-84ec-2e003a76d1c1", + "type": "basic.info", + "data": { + "info": "**Contador de ciclos**", + "readonly": true + }, + "position": { + "x": 1480, + "y": -424 + }, + "size": { + "width": 224, + "height": 40 + } + }, + { + "id": "6b89fbaa-ded1-4b08-85b3-d5043665ba0f", + "type": "basic.info", + "data": { + "info": "Número de ciclos \ncontados", + "readonly": true + }, + "position": { + "x": 1824, + "y": -160 + }, + "size": { + "width": 160, + "height": 56 + } + }, + { + "id": "ce9c2faa-a5a2-43ef-a19f-8089842fa7fb", + "type": "basic.info", + "data": { + "info": "Valor \nincrementado", + "readonly": true + }, + "position": { + "x": 1496, + "y": -120 + }, + "size": { + "width": 128, + "height": 56 + } + }, + { + "id": "9749c7ec-56c0-4d88-8b20-572f154aba47", + "type": "basic.info", + "data": { + "info": "### Salidas", + "readonly": true + }, + "position": { + "x": 2152, + "y": -328 + }, + "size": { + "width": 280, + "height": 40 + } + }, + { + "id": "4c022dd4-dc38-48e8-8e23-991de83819a0", + "type": "basic.info", + "data": { + "info": "Estado de la máquina", + "readonly": true + }, + "position": { + "x": 2160, + "y": -248 + }, + "size": { + "width": 192, + "height": 40 + } + }, + { + "id": "2f5c5893-19c2-411c-b942-83e2e0355d9b", + "type": "basic.info", + "data": { + "info": "Ciclo actual", + "readonly": true + }, + "position": { + "x": 2168, + "y": -104 + }, + "size": { + "width": 152, + "height": 40 + } + }, + { + "id": "3529c7ae-8223-48c9-a5c7-1b8161eb3654", + "type": "basic.info", + "data": { + "info": "Cuenta finalizada", + "readonly": true + }, + "position": { + "x": 2160, + "y": 216 + }, + "size": { + "width": 176, + "height": 48 + } + }, + { + "id": "8d3fe74d-0b04-434f-bd0a-c966094bb54e", + "type": "basic.info", + "data": { + "info": "Ejecutar el ciclo", + "readonly": true + }, + "position": { + "x": 2168, + "y": 80 + }, + "size": { + "width": 168, + "height": 40 + } + }, + { + "id": "eae9349c-e15a-4922-8652-1849ae8af424", + "type": "basic.info", + "data": { + "info": "Número de ciclos \na contar", + "readonly": true + }, + "position": { + "x": 696, + "y": 288 + }, + "size": { + "width": 152, + "height": 56 + } + }, + { + "id": "95a0fd91-d4b4-4a8c-a326-fa00aead76a2", + "type": "basic.info", + "data": { + "info": "¿Estamos en el \nciclo k-1?", + "readonly": true + }, + "position": { + "x": 1024, + "y": 480 + }, + "size": { + "width": 144, + "height": 56 + } + }, + { + "id": "ee786c92-eee9-4192-b5cd-7ffd2cff4aa0", + "type": "basic.info", + "data": { + "info": "Solo se hace caso a la \nentrada next si la \nmáquina está encendida", + "readonly": true + }, + "position": { + "x": 648, + "y": 88 + }, + "size": { + "width": 216, + "height": 80 + } + }, + { + "id": "fdea86ef-3e4a-4419-972a-3e09c49380ab", + "type": "basic.info", + "data": { + "info": "Nuevo ciclo", + "readonly": true + }, + "position": { + "x": 920, + "y": 168 + }, + "size": { + "width": 136, + "height": 40 + } + }, + { + "id": "f1312a02-2038-404e-b9cf-5f4ee6b11012", + "type": "basic.info", + "data": { + "info": "Si es el ciclo k-1 y \nse pide un ciclo \nnuevo: Terminar", + "readonly": true + }, + "position": { + "x": 1128, + "y": 304 + }, + "size": { + "width": 208, + "height": 72 + } + }, + { + "id": "9baabc30-8c27-4b55-92e4-d59783269162", + "type": "basic.info", + "data": { + "info": "Apagar la \nmáquina", + "readonly": true + }, + "position": { + "x": 600, + "y": -64 + }, + "size": { + "width": 120, + "height": 56 + } + }, + { + "id": "b1d4db4d-86bf-41b9-8192-647537f22b35", + "type": "basic.info", + "data": { + "info": "Ciclo nuevo: \nincrementar la cuenta", + "readonly": true + }, + "position": { + "x": 1464, + "y": -32 + }, + "size": { + "width": 208, + "height": 56 + } + }, + { + "id": "6c065227-d7b8-48ea-8105-765c0ff10e5d", + "type": "basic.info", + "data": { + "info": "El tic de start se saca \npor exec para que se ejecute \nel primer ciclo", + "readonly": true + }, + "position": { + "x": 1680, + "y": 440 + }, + "size": { + "width": 248, + "height": 72 + } + }, + { + "id": "f41e1b4d-0de7-4d61-9b57-16de7ef8dc8a", + "type": "basic.info", + "data": { + "info": "Si la máquina está \napagada, las señales \nde ejecución no pueden \nsalir!", + "readonly": true + }, + "position": { + "x": 1688, + "y": 168 + }, + "size": { + "width": 208, + "height": 80 + } + }, + { + "id": "1ed4ad01-9b81-4934-84b7-804dcaec10c1", + "type": "basic.info", + "data": { + "info": "Retrasar la señal un ciclo \nmientras que se detecta si \nla máquina ha finalizado o no", + "readonly": true + }, + "position": { + "x": 1432, + "y": 360 + }, + "size": { + "width": 256, + "height": 72 + } + }, + { + "id": "2995df45-3084-41ce-ba62-1fd0b1bb5532", + "type": "3048aac04179d3c8aa21b28da9ad8bff04ce2899", + "position": { + "x": 1648, + "y": -152 + }, + "size": { + "width": 96, + "height": 128 + } + }, + { + "id": "c1eb9971-3d0e-4bc9-8db1-3037e23b178e", + "type": "b40da6e557650abc55a25a2c69a6511959dc84e2", + "position": { + "x": 856, + "y": 512 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "b9c98019-6a6f-44ba-9c4f-f0ff482f9ad2", + "type": "e81274ef9d736a1810cc627ec4f61d7016e01548", + "position": { + "x": 680, + "y": 448 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "1f7aa5c6-97f4-41c1-bee5-75a87e23bf0e", + "type": "46aa41432f266626cbc7fbbbeb9fba9fe9be3d0f", + "position": { + "x": 1352, + "y": -104 + }, + "size": { + "width": 96, + "height": 64 + } + } + ], + "wires": [ + { + "source": { + "block": "6c846478-ff94-415a-b78e-03b6981bc0fe", + "port": "outlabel" + }, + "target": { + "block": "2995df45-3084-41ce-ba62-1fd0b1bb5532", + "port": "a2b70876-c7c0-4208-a403-eed81e32fe5a" + }, + "vertices": [ + { + "x": 1592, + "y": -192 + } + ] + }, + { + "source": { + "block": "d59fae1c-4ff0-418f-9a6e-440a854abd17", + "port": "89a5da53-cc8b-4099-a5e3-b9cf281619b1" + }, + "target": { + "block": "bc6920df-ca50-4643-ad7a-7e10c29856e8", + "port": "inlabel" + } + }, + { + "source": { + "block": "d59fae1c-4ff0-418f-9a6e-440a854abd17", + "port": "aefe9248-3b3d-441b-9e65-33cda65b99dd" + }, + "target": { + "block": "9baa509b-0012-4e0e-b874-e62987258aa1", + "port": "inlabel" + } + }, + { + "source": { + "block": "d59fae1c-4ff0-418f-9a6e-440a854abd17", + "port": "0d991cee-b329-439b-b9e7-5712d2db539d" + }, + "target": { + "block": "92c88f9e-7d51-4946-b0ef-088dcd8efa49", + "port": "inlabel" + }, + "vertices": [ + { + "x": 888, + "y": -216 + } + ] + }, + { + "source": { + "block": "fa7f43f2-cbb2-47e0-bcc5-32336f9cd8ed", + "port": "outlabel" + }, + "target": { + "block": "bd61136e-6597-4728-a8c3-141a1841150b", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + } + }, + { + "source": { + "block": "45bd338b-4745-4b06-b199-462cdaffa31d", + "port": "outlabel" + }, + "target": { + "block": "d59fae1c-4ff0-418f-9a6e-440a854abd17", + "port": "ba15eacb-1e03-4580-932b-3231703481e5" + } + }, + { + "source": { + "block": "7d6ed080-252a-4f1b-8ec7-0f47d7866317", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "2e9e9e82-c651-4a6b-9d9e-4c796699d133", + "port": "inlabel" + } + }, + { + "source": { + "block": "d59fae1c-4ff0-418f-9a6e-440a854abd17", + "port": "3802390d-8417-4369-b93c-dda647ccb0c6" + }, + "target": { + "block": "5a3f8466-6a57-4607-939a-fb15222442a7", + "port": "inlabel" + } + }, + { + "source": { + "block": "c5781045-a890-4e66-8f67-80d0cb317ee6", + "port": "outlabel" + }, + "target": { + "block": "ac8b922a-9249-49a3-8b42-a1f259ccae2b", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + } + }, + { + "source": { + "block": "a756b829-42d1-4779-b42d-a9acc3800854", + "port": "outlabel" + }, + "target": { + "block": "49221b19-132a-4e3f-9a1f-97bcd463391b", + "port": "in" + } + }, + { + "source": { + "block": "8a5f0c79-7347-4b35-8e27-603ebed8bf9f", + "port": "outlabel" + }, + "target": { + "block": "2995df45-3084-41ce-ba62-1fd0b1bb5532", + "port": "065ea371-8398-43b3-8341-287c234a3acb" + } + }, + { + "source": { + "block": "10afc859-04fd-433d-823a-4fa4721320c1", + "port": "outlabel" + }, + "target": { + "block": "28aef1aa-1cc2-4bb4-9a70-2db1962258d4", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + } + }, + { + "source": { + "block": "28aef1aa-1cc2-4bb4-9a70-2db1962258d4", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "06b60a4f-b1b1-4a91-ba10-bdb5a7515718", + "port": "inlabel" + } + }, + { + "source": { + "block": "bd61136e-6597-4728-a8c3-141a1841150b", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "8c96c7ec-0c2f-4870-9197-46116cd1d134", + "port": "inlabel" + } + }, + { + "source": { + "block": "f9f37a77-fd08-4506-9c1b-cc53daa19559", + "port": "outlabel" + }, + "target": { + "block": "d76d4948-a798-448c-adfa-c03b511371e5", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + } + }, + { + "source": { + "block": "cb426e3d-ace3-4a57-a74b-155caed0c14c", + "port": "out" + }, + "target": { + "block": "9291f94d-2d9a-4c3a-b7df-4299abf84886", + "port": "inlabel" + } + }, + { + "source": { + "block": "40607400-436e-4dea-b733-8308a06fd4ef", + "port": "outlabel" + }, + "target": { + "block": "d59fae1c-4ff0-418f-9a6e-440a854abd17", + "port": "046501b8-4427-4d4d-af97-7fe807774f33" + } + }, + { + "source": { + "block": "2438a009-c8e2-4acb-b443-90fe0ddd989d", + "port": "outlabel" + }, + "target": { + "block": "6a11eaf9-4bd5-405e-81f8-44418365326b", + "port": "in" + } + }, + { + "source": { + "block": "81fb4efb-363e-483e-b1df-c2ebda777355", + "port": "outlabel" + }, + "target": { + "block": "2995df45-3084-41ce-ba62-1fd0b1bb5532", + "port": "096f61b6-6d5c-4907-9512-e65b25969458" + } + }, + { + "source": { + "block": "d8820925-23d9-4f02-8491-adf813601d08", + "port": "outlabel" + }, + "target": { + "block": "d76d4948-a798-448c-adfa-c03b511371e5", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + }, + "vertices": [ + { + "x": 1496, + "y": 280 + } + ] + }, + { + "source": { + "block": "dddd2a78-e0f8-4688-ad63-0c41ad98894b", + "port": "outlabel" + }, + "target": { + "block": "73948305-b05b-418f-88af-11328f400cdc", + "port": "in" + } + }, + { + "source": { + "block": "2995df45-3084-41ce-ba62-1fd0b1bb5532", + "port": "26cb5fd1-f03e-440e-add7-90181e93e0aa", + "size": 3 + }, + "target": { + "block": "bd54a999-6eb2-4eb1-a2f4-9924ae525a9e", + "port": "inlabel" + }, + "size": 3 + }, + { + "source": { + "block": "afac67ea-64eb-4387-856b-46ad5d276971", + "port": "outlabel" + }, + "target": { + "block": "2885a59c-c338-4e79-83bc-771f79ec7d2e", + "port": "in", + "size": 3 + }, + "size": 3 + }, + { + "source": { + "block": "5324c14f-171f-4f3c-9455-4c3252223087", + "port": "outlabel" + }, + "target": { + "block": "c1eb9971-3d0e-4bc9-8db1-3037e23b178e", + "port": "02895c3c-06cb-49d7-9e3f-012ee448d996", + "size": 3 + }, + "size": 3 + }, + { + "source": { + "block": "9e9bbee0-fcbc-4cf1-971f-096a8267abf2", + "port": "outlabel" + }, + "target": { + "block": "1f7aa5c6-97f4-41c1-bee5-75a87e23bf0e", + "port": "aff67440-6545-4e7f-96c7-f5cb83d6dc64", + "size": 3 + }, + "size": 3 + }, + { + "source": { + "block": "374613cb-968d-46d1-94a4-16686e7df28d", + "port": "constant-out" + }, + "target": { + "block": "2995df45-3084-41ce-ba62-1fd0b1bb5532", + "port": "f3b434e4-0c8f-4dd7-90c7-305189a807f1" + } + }, + { + "source": { + "block": "a19b8bcd-a0a4-4da0-9844-5e5c0306e231", + "port": "constant-out" + }, + "target": { + "block": "1f7aa5c6-97f4-41c1-bee5-75a87e23bf0e", + "port": "c4eedeee-32b3-41da-834c-48f3a92cbaec" + } + }, + { + "source": { + "block": "c1eb9971-3d0e-4bc9-8db1-3037e23b178e", + "port": "0344dacc-8583-456b-b377-8cb4ab97cf94" + }, + "target": { + "block": "7d6ed080-252a-4f1b-8ec7-0f47d7866317", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + } + }, + { + "source": { + "block": "ac8b922a-9249-49a3-8b42-a1f259ccae2b", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "28aef1aa-1cc2-4bb4-9a70-2db1962258d4", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + } + }, + { + "source": { + "block": "d76d4948-a798-448c-adfa-c03b511371e5", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + }, + "target": { + "block": "ac8b922a-9249-49a3-8b42-a1f259ccae2b", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + } + }, + { + "source": { + "block": "bd61136e-6597-4728-a8c3-141a1841150b", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "7d6ed080-252a-4f1b-8ec7-0f47d7866317", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + } + }, + { + "source": { + "block": "d0005413-fea9-4b0b-8a18-9b15d4977bc1", + "port": "constant-out" + }, + "target": { + "block": "b9c98019-6a6f-44ba-9c4f-f0ff482f9ad2", + "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" + } + }, + { + "source": { + "block": "8f591b24-0427-409f-aa6e-ca1861556cf5", + "port": "out" + }, + "target": { + "block": "d59fae1c-4ff0-418f-9a6e-440a854abd17", + "port": "88176871-35ac-42bf-bf62-36c81a4b4b47" + } + }, + { + "source": { + "block": "ad4d0fc2-118e-496e-b292-c435bad20e7d", + "port": "out" + }, + "target": { + "block": "bd61136e-6597-4728-a8c3-141a1841150b", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + } + }, + { + "source": { + "block": "b9c98019-6a6f-44ba-9c4f-f0ff482f9ad2", + "port": "29384483-ab1f-4cd5-a1dd-7aa7aec6e2d0" + }, + "target": { + "block": "c1eb9971-3d0e-4bc9-8db1-3037e23b178e", + "port": "0867b1bc-1cc5-4707-8ddb-40d0318d237c" + }, + "size": 3 + }, + { + "source": { + "block": "1f7aa5c6-97f4-41c1-bee5-75a87e23bf0e", + "port": "b4b26cea-7b9f-4fb2-ba10-3c9c3010df55" + }, + "target": { + "block": "2995df45-3084-41ce-ba62-1fd0b1bb5532", + "port": "2bbc1f45-0a7e-42a6-abc4-84077c5507b2" + }, + "size": 3 + } + ] + } + } + }, + "438dedd956354c574afcde6f0793a7d369b2a031": { + "package": { + "name": "Machine-state", + "version": "0.1", + "description": "Biestable de almacenamiento del estado de la máquina", + "author": "Juan Gonzalez-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20height=%22404.343%22%20width=%22319.18%22%20id=%22svg4%22%3E%3Cdefs%20id=%22defs8%22%3E%3Cmarker%20id=%22TriangleOutM%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20id=%22path972%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22Arrow1Mend%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-4%200l-2%202%207-2-7-2z%22%20id=%22path836%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22Arrow2Mend%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-5.231-2.42L1.324-.01-5.23%202.401c1.047-1.423%201.041-3.37%200-4.821z%22%20id=%22path854%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cmarker%20id=%22Arrow2Mend-3%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-5.231-2.42L1.324-.01-5.23%202.401c1.047-1.423%201.041-3.37%200-4.821z%22%20id=%22path854-6%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cmarker%20id=%22Arrow1Mend-5%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-4%200l-2%202%207-2-7-2z%22%20id=%22path836-3%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22TriangleOutM-7%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path972-5%22%20d=%22M2.308%200l-3.46%202v-4z%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22Arrow1Mend-3%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path836-5%22%20d=%22M-4%200l-2%202%207-2-7-2z%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22Arrow2Mend-6%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path854-2%22%20d=%22M-5.231-2.42L1.324-.01-5.23%202.401c1.047-1.423%201.041-3.37%200-4.821z%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22Arrow2Mend-3-9%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path854-6-1%22%20d=%22M-5.231-2.42L1.324-.01-5.23%202.401c1.047-1.423%201.041-3.37%200-4.821z%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22Arrow1Mend-5-2%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path836-3-7%22%20d=%22M-4%200l-2%202%207-2-7-2z%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cdefs%20id=%22defs3%22%3E%3Cpath%20id=%22a%22%20d=%22M-58.3-45h653.6v640H-58.3z%22/%3E%3C/defs%3E%3Cpath%20id=%22path898%22%20d=%22M-58.3-45h653.6v640H-58.3z%22/%3E%3Cmarker%20id=%22TriangleOutM-3%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20id=%22path972-6%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22Arrow1Mend-7%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-4%200l-2%202%207-2-7-2z%22%20id=%22path836-53%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22Arrow2Mend-5%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-5.231-2.42L1.324-.01-5.23%202.401c1.047-1.423%201.041-3.37%200-4.821z%22%20id=%22path854-62%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cmarker%20id=%22Arrow2Mend-3-91%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-5.231-2.42L1.324-.01-5.23%202.401c1.047-1.423%201.041-3.37%200-4.821z%22%20id=%22path854-6-2%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cmarker%20id=%22Arrow1Mend-5-7%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-4%200l-2%202%207-2-7-2z%22%20id=%22path836-3-0%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22TriangleOutM-7-9%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path972-5-3%22%20d=%22M2.308%200l-3.46%202v-4z%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22Arrow1Mend-3-6%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path836-5-0%22%20d=%22M-4%200l-2%202%207-2-7-2z%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22Arrow2Mend-6-6%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path854-2-2%22%20d=%22M-5.231-2.42L1.324-.01-5.23%202.401c1.047-1.423%201.041-3.37%200-4.821z%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22Arrow2Mend-3-9-6%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path854-6-1-1%22%20d=%22M-5.231-2.42L1.324-.01-5.23%202.401c1.047-1.423%201.041-3.37%200-4.821z%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22Arrow1Mend-5-2-8%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path836-3-7-7%22%20d=%22M-4%200l-2%202%207-2-7-2z%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cdefs%20id=%22defs3-9%22%3E%3Cpath%20id=%22a-2%22%20d=%22M-58.3-45h653.6v640H-58.3z%22/%3E%3C/defs%3E%3Cpath%20id=%22path974%22%20d=%22M-58.3-45h653.6v640H-58.3z%22/%3E%3C/defs%3E%3Cpath%20d=%22M124.728%2079.637c-24.895%200-45.091%2020.196-45.091%2045.109%200%2024.886%2020.196%2045.126%2045.092%2045.126%2024.904%200%2044.952-20.24%2044.952-45.126%200-24.913-20.049-45.11-44.953-45.11zm90.41%2071.022l-8.128%2019.578%2014.497%2028.472%201.914%203.759-20.1%2020.1-32.979-15.575-19.578%208.04-9.938%2030.421-1.27%204.038h-28.41L98.85%20215.155%2079.27%20207.08l-28.514%2014.462-3.759%201.88-20.092-20.083%2015.559-32.997-8.067-19.56-30.37-9.92L0%20139.555v-28.393L34.362%2098.85l8.067-19.544-14.453-28.533-1.906-3.741%2020.066-20.066%2033.022%2015.55%2019.553-8.084%209.928-30.403L109.92%200h28.401l12.304%2034.38%2019.527%208.084%2028.523-14.471%203.794-1.906%2020.083%2020.066-15.558%2032.97%208.04%2019.588%2030.456%209.928%204.003%201.28v28.384z%22%20id=%22path2%22%20fill=%22#00f%22%20stroke-width=%22.278%22/%3E%3Cg%20id=%22g992-5%22%20transform=%22matrix(3.23542%200%200%203.23542%20-54.399%20117.43)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20id=%22path992-2-62%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20id=%22path1773-2-3-1-8-9-9%22%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3Cstyle%20id=%22style2%22%3E.st0%7Bdisplay:none%7D.st1%7Bfill:none;stroke:#303030;stroke-width:.7;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10%7D.st2%7Bfill:#303030%7D%3C/style%3E%3Cg%20id=%22g1022%22%20transform=%22matrix(.5585%200%200%20.5585%2076.484%2043.495)%22%3E%3Cg%20transform=%22translate(3.47%203.198)%22%20id=%22layer1%22%3E%3Cpath%20id=%22path9-3%22%20d=%22M21.358%20145.947a63.75%2063.75%200%200%200%201.152%2011.049%22%20class=%22st1%22%20fill=%22none%22%20stroke=%22#303030%22%20stroke-width=%226.776%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22/%3E%3Cpath%20id=%22path11%22%20d=%22M48.702%2092.116a64.784%2064.784%200%200%200-12.559%2011.68%2064.99%2064.99%200%200%200-12.69%2024.809%22%20class=%22st1%22%20fill=%22none%22%20stroke=%22#303030%22%20stroke-width=%226.776%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22/%3E%3Cpath%20class=%22st1%22%20id=%22line17%22%20fill=%22none%22%20stroke=%22#303030%22%20stroke-width=%226.776%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20d=%22M184.865%20207.591L41.298%20262.802%22/%3E%3Cpath%20d=%22M185.448%20175.07l.37.154c2.52.831%204.718%202.386%206.634%204.249%202.02%202.322%203.694%204.777%204.423%208.713%201.496%208.074-3.286%2016.05-10.95%2018.997l-1.06.408L41.298%20262.8l-.733.283c-8.003%203.077-17.551.461-21.82-6.975-3.3-5.748-2.736-12.198.418-21.613%203.155-9.414%202.86-21.856-1.644-33.55l.041.003-12.507-32.667c-12.88-33.415-.747-70.376%2027.41-90.31l-1.102-2.749c-3.685-9.583%201.14-20.438%2010.723-24.124%209.583-3.685%2020.439%201.14%2024.124%2010.723l1.654%203.239c34.881-3.556%2068.594%2015.855%2081.318%2049.33l15.24%2038.432c4.795%208.723%2011.831%2015.955%2021.028%2022.248z%22%20id=%22path21-3%22%20fill=%22#fff%22%20stroke=%22#303030%22%20stroke-width=%227%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22/%3E%3Cpath%20id=%22path826%22%20d=%22M64.268%20268.838l45.015-17.115s7.963%2024.296-14.427%2030.38c-22.39%206.086-30.588-13.265-30.588-13.265z%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%227%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3C/g%3E%3Cg%20id=%22layer3%22%3E%3Crect%20ry=%2219.847%22%20y=%223.671%22%20x=%2295.783%22%20height=%22135.189%22%20width=%22135.189%22%20id=%22rect845%22%20fill=%22#55acee%22%20stroke=%22#303030%22%20stroke-width=%227%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22/%3E%3C/g%3E%3Cg%20id=%22layer4%22%3E%3Cpath%20id=%22path7-6%22%20d=%22M172.724%2052.533V27.647h-9.888L144.047%2037.7l2.308%208.9%2014.833-8.076h.33v74.824H172.724V52.533z%22%20class=%22st2%22%20fill=%22#303030%22%20stroke-width=%2214.425%22/%3E%3C/g%3E%3C/g%3E%3Cg%20id=%22g992-5-7%22%20transform=%22matrix(3.23542%200%200%203.23542%20-57.653%2011.124)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20id=%22path992-2-62-5%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20id=%22path1773-2-3-1-8-9-9-3%22%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "0d991cee-b329-439b-b9e7-5712d2db539d", + "type": "basic.output", + "data": { + "name": "state" + }, + "position": { + "x": 960, + "y": 8 + } + }, + { + "id": "89a5da53-cc8b-4099-a5e3-b9cf281619b1", + "type": "basic.output", + "data": { + "name": "rst" + }, + "position": { + "x": 960, + "y": 120 + } + }, + { + "id": "046501b8-4427-4d4d-af97-7fe807774f33", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 408, + "y": 184 + } + }, + { + "id": "aefe9248-3b3d-441b-9e65-33cda65b99dd", + "type": "basic.output", + "data": { + "name": "on" + }, + "position": { + "x": 960, + "y": 256 + } + }, + { + "id": "88176871-35ac-42bf-bf62-36c81a4b4b47", + "type": "basic.input", + "data": { + "name": "start", + "clock": false + }, + "position": { + "x": 424, + "y": 288 + } + }, + { + "id": "ba15eacb-1e03-4580-932b-3231703481e5", + "type": "basic.input", + "data": { + "name": "stop", + "clock": false + }, + "position": { + "x": 424, + "y": 352 + } + }, + { + "id": "3802390d-8417-4369-b93c-dda647ccb0c6", + "type": "basic.output", + "data": { + "name": "off" + }, + "position": { + "x": 960, + "y": 360 + } + }, + { + "id": "66f5f40c-d14b-4be3-96b6-6cea8d96b738", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 600, + "y": 272 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "03835a1e-c674-4fa3-927b-0511beff772c", + "type": "c386a7076c0569a15326b30b6748ca284426424d", + "position": { + "x": 776, + "y": 272 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "de860182-e038-4198-b4a4-505dd7a6fa9e", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 736, + "y": 120 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "42f19387-aa1f-4514-88aa-adca9bf9f03b", + "type": "basic.info", + "data": { + "info": "**Tic de apagado**", + "readonly": true + }, + "position": { + "x": 960, + "y": 344 + }, + "size": { + "width": 168, + "height": 40 + } + }, + { + "id": "eaab4880-4c6d-422f-a8ab-c06e579aa7c6", + "type": "basic.info", + "data": { + "info": "**Tic de encendido**", + "readonly": true + }, + "position": { + "x": 952, + "y": 240 + }, + "size": { + "width": 168, + "height": 40 + } + }, + { + "id": "4e85996b-c40e-4f84-bfbc-ff87d4bc425d", + "type": "basic.info", + "data": { + "info": "**Inicializar**", + "readonly": true + }, + "position": { + "x": 968, + "y": 96 + }, + "size": { + "width": 168, + "height": 40 + } + }, + { + "id": "130f81c9-ce87-47a8-b393-762b31a724fc", + "type": "basic.info", + "data": { + "info": "**Estado de la máquina**", + "readonly": true + }, + "position": { + "x": 936, + "y": -16 + }, + "size": { + "width": 168, + "height": 40 + } + } + ], + "wires": [ + { + "source": { + "block": "66f5f40c-d14b-4be3-96b6-6cea8d96b738", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "03835a1e-c674-4fa3-927b-0511beff772c", + "port": "9ca5353b-32fd-4f1f-af0b-5339bd50b1ff" + } + }, + { + "source": { + "block": "66f5f40c-d14b-4be3-96b6-6cea8d96b738", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "0d991cee-b329-439b-b9e7-5712d2db539d", + "port": "in" + }, + "vertices": [ + { + "x": 720, + "y": 144 + } + ] + }, + { + "source": { + "block": "66f5f40c-d14b-4be3-96b6-6cea8d96b738", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "de860182-e038-4198-b4a4-505dd7a6fa9e", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + } + }, + { + "source": { + "block": "de860182-e038-4198-b4a4-505dd7a6fa9e", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "89a5da53-cc8b-4099-a5e3-b9cf281619b1", + "port": "in" + } + }, + { + "source": { + "block": "88176871-35ac-42bf-bf62-36c81a4b4b47", + "port": "out" + }, + "target": { + "block": "66f5f40c-d14b-4be3-96b6-6cea8d96b738", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + } + }, + { + "source": { + "block": "ba15eacb-1e03-4580-932b-3231703481e5", + "port": "out" + }, + "target": { + "block": "66f5f40c-d14b-4be3-96b6-6cea8d96b738", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + } + }, + { + "source": { + "block": "03835a1e-c674-4fa3-927b-0511beff772c", + "port": "1c25e08e-e664-4fab-9b30-cedc1f8a3739" + }, + "target": { + "block": "aefe9248-3b3d-441b-9e65-33cda65b99dd", + "port": "in" + } + }, + { + "source": { + "block": "03835a1e-c674-4fa3-927b-0511beff772c", + "port": "3ada5999-55ba-4c4e-9877-a3e9ed82308c" + }, + "target": { + "block": "3802390d-8417-4369-b93c-dda647ccb0c6", + "port": "in" + } + }, + { + "source": { + "block": "046501b8-4427-4d4d-af97-7fe807774f33", + "port": "out" + }, + "target": { + "block": "66f5f40c-d14b-4be3-96b6-6cea8d96b738", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + } + }, + { + "source": { + "block": "046501b8-4427-4d4d-af97-7fe807774f33", + "port": "out" + }, + "target": { + "block": "03835a1e-c674-4fa3-927b-0511beff772c", + "port": "2708468d-1088-4570-be63-fb0d4799a941" + } + } + ] + } + } + }, + "1c7dae7144d376f2ee4896fcc502a29110e2db37": { + "package": { + "name": "Biestable-D", + "version": "0.1", + "description": "Biestable de datos (Tipo D). Cuando se recibe un tic por load se captura el dato", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22156.57%22%20height=%22216.83%22%20viewBox=%220%200%2041.425941%2057.369679%22%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M25.682%2040.152L39.29%2056.824%2032.372%2036.29%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%22/%3E%3Cpath%20d=%22M18.298%2032.088L9.066%2012.475l-6.45%203.724-2.07-3.583L21.451.546%2023.52%204.13l-6.092%203.517%2012.03%2018.223s5.399-2.025%208.535.74c3.137%202.766%202.52%204.92%202.887%204.772L17.192%2045.02s-2.848-3.695-2.16-6.795c.688-3.1%203.266-6.137%203.266-6.137z%22%20fill=%22red%22%20stroke-width=%221.0924880399999999%22/%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "3943e194-090b-4553-9df3-88bc4b17abc2", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 192, + "y": 136 + } + }, + { + "id": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 680, + "y": 184 + } + }, + { + "id": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", + "type": "basic.input", + "data": { + "name": "", + "clock": false + }, + "position": { + "x": 192, + "y": 232 + } + }, + { + "id": "65194b18-5d2a-41b2-bd86-01be99978ad6", + "type": "basic.constant", + "data": { + "name": "", + "value": "0", + "local": false + }, + "position": { + "x": 456, + "y": 64 + } + }, + { + "id": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "type": "basic.code", + "data": { + "code": "reg q = INI;\nalways @(posedge clk)\n q <= d;", + "params": [ + { + "name": "INI" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "d" + } + ], + "out": [ + { + "name": "q" + } + ] + } + }, + "position": { + "x": 384, + "y": 168 + }, + "size": { + "width": 232, + "height": 88 + } + } + ], + "wires": [ + { + "source": { + "block": "3943e194-090b-4553-9df3-88bc4b17abc2", + "port": "out" + }, + "target": { + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "clk" + } + }, + { + "source": { + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "q" + }, + "target": { + "block": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", + "port": "in" + } + }, + { + "source": { + "block": "65194b18-5d2a-41b2-bd86-01be99978ad6", + "port": "constant-out" + }, + "target": { + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "INI" + } + }, + { + "source": { + "block": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", + "port": "out" + }, + "target": { + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "d" + } + } + ] + } + } + }, + "3048aac04179d3c8aa21b28da9ad8bff04ce2899": { + "package": { + "name": "Registro", + "version": "0.1", + "description": "Registro de 3 bits con entrada de reset", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22519.236%22%20height=%22279.911%22%20viewBox=%220%200%20137.38127%2074.059853%22%3E%3Cpath%20d=%22M41.506%2040.152l13.608%2016.672-6.918-20.534%22%20fill=%22#ccc%22%20stroke=%22#000%22%20stroke-width=%221.092%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M34.122%2032.088L24.89%2012.475l-6.45%203.724-2.07-3.583L37.276.546l2.07%203.584-6.093%203.517%2012.03%2018.223s5.4-2.025%208.536.74c3.136%202.766%202.52%204.92%202.887%204.772L33.017%2045.02s-2.849-3.695-2.16-6.795c.687-3.1%203.265-6.137%203.265-6.137z%22%20fill=%22red%22%20stroke=%22#000%22%20stroke-width=%221.092%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cg%20transform=%22translate(-93.518%20-22.665)%20scale(1.09073)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20cx=%22100.602%22%20cy=%2273.815%22%20r=%2214.559%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M81.95%2040.152l13.607%2016.672L88.64%2036.29%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%22/%3E%3Cpath%20d=%22M74.566%2032.088l-9.232-19.613-6.451%203.724-2.069-3.583L77.719.546l2.069%203.584-6.092%203.517%2012.03%2018.223s5.399-2.025%208.535.74c3.137%202.766%202.52%204.92%202.887%204.772L73.46%2045.02s-2.848-3.695-2.16-6.795c.688-3.1%203.266-6.137%203.266-6.137z%22%20fill=%22red%22%20stroke-width=%221.0924880399999999%22/%3E%3C/g%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M121.637%2040.152l13.608%2016.672-6.918-20.534%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%22/%3E%3Cpath%20d=%22M114.253%2032.088l-9.232-19.613-6.45%203.724-2.07-3.583L117.407.546l2.07%203.584-6.093%203.517%2012.03%2018.223s5.4-2.025%208.536.74c3.136%202.766%202.52%204.92%202.887%204.772L113.147%2045.02s-2.848-3.695-2.16-6.795c.688-3.1%203.266-6.137%203.266-6.137z%22%20fill=%22red%22%20stroke-width=%221.0924880399999999%22/%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "096f61b6-6d5c-4907-9512-e65b25969458", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 80, + "y": 168 + } + }, + { + "id": "a2b70876-c7c0-4208-a403-eed81e32fe5a", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false + }, + "position": { + "x": 80, + "y": 216 + } + }, + { + "id": "26cb5fd1-f03e-440e-add7-90181e93e0aa", + "type": "basic.output", + "data": { + "name": "q", + "range": "[2:0]", + "size": 3 + }, + "position": { + "x": 632, + "y": 248 + } + }, + { + "id": "2bbc1f45-0a7e-42a6-abc4-84077c5507b2", + "type": "basic.input", + "data": { + "name": "", + "range": "[2:0]", + "clock": false, + "size": 3 + }, + "position": { + "x": 80, + "y": 272 + } + }, + { + "id": "065ea371-8398-43b3-8341-287c234a3acb", + "type": "basic.input", + "data": { + "name": "load", + "clock": false + }, + "position": { + "x": 80, + "y": 320 + } + }, + { + "id": "f3b434e4-0c8f-4dd7-90c7-305189a807f1", + "type": "basic.constant", + "data": { + "name": "", + "value": "0", + "local": false + }, + "position": { + "x": 376, + "y": 56 + } + }, + { + "id": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "type": "basic.code", + "data": { + "code": "localparam N = 3;\n\nreg [N-1:0] q = INI;\n\nalways @(posedge clk)\n if (rst)\n q <= 0;\n else\n if (load)\n q <= d;", + "params": [ + { + "name": "INI" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "rst" + }, + { + "name": "d", + "range": "[2:0]", + "size": 3 + }, + { + "name": "load" + } + ], + "out": [ + { + "name": "q", + "range": "[2:0]", + "size": 3 + } + ] + } + }, + "position": { + "x": 280, + "y": 176 + }, + "size": { + "width": 288, + "height": 200 + } + } + ], + "wires": [ + { + "source": { + "block": "f3b434e4-0c8f-4dd7-90c7-305189a807f1", + "port": "constant-out" + }, + "target": { + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "INI" + }, + "vertices": [] + }, + { + "source": { + "block": "065ea371-8398-43b3-8341-287c234a3acb", + "port": "out" + }, + "target": { + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "load" + } + }, + { + "source": { + "block": "096f61b6-6d5c-4907-9512-e65b25969458", + "port": "out" + }, + "target": { + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "clk" + } + }, + { + "source": { + "block": "a2b70876-c7c0-4208-a403-eed81e32fe5a", + "port": "out" + }, + "target": { + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "rst" + } + }, + { + "source": { + "block": "2bbc1f45-0a7e-42a6-abc4-84077c5507b2", + "port": "out" + }, + "target": { + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "d" + }, + "size": 3 + }, + { + "source": { + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "q" + }, + "target": { + "block": "26cb5fd1-f03e-440e-add7-90181e93e0aa", + "port": "in" + }, + "size": 3 + } + ] + } + } + }, + "b40da6e557650abc55a25a2c69a6511959dc84e2": { + "package": { + "name": "Comparador de dos operandos", + "version": "0.1", + "description": "Comparador de dos operandos de 3 bits", + "author": "Juan Gonzalez-Gomez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22312.756%22%20height=%22168.82%22%20viewBox=%220%200%20293.20803%20158.26888%22%3E%3Ctext%20style=%22line-height:125%25%22%20x=%22178.324%22%20y=%22457.047%22%20font-size=%2296.3%22%20transform=%22matrix(4.864%200%200%204.864%20-916.998%20-1997.335)%22%20fill=%22#00f%22%20stroke-width=%22.057%22%20font-weight=%22400%22%20letter-spacing=%220%22%20word-spacing=%220%22%20font-family=%22sans-serif%22%3E%3Ctspan%20x=%22178.324%22%20y=%22457.047%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%20stroke-width=%22.206%22%3E=%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "0867b1bc-1cc5-4707-8ddb-40d0318d237c", + "type": "basic.input", + "data": { + "name": "", + "range": "[2:0]", + "clock": false, + "size": 3 + }, + "position": { + "x": 152, + "y": 104 + } + }, + { + "id": "0344dacc-8583-456b-b377-8cb4ab97cf94", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 616, + "y": 160 + } + }, + { + "id": "02895c3c-06cb-49d7-9e3f-012ee448d996", + "type": "basic.input", + "data": { + "name": "", + "range": "[2:0]", + "clock": false, + "size": 3 + }, + "position": { + "x": 152, + "y": 200 + } + }, + { + "id": "9c811723-c900-4ceb-9989-036b071ee3fe", + "type": "basic.code", + "data": { + "code": "assign eq = (a == b);", + "params": [], + "ports": { + "in": [ + { + "name": "a", + "range": "[2:0]", + "size": 3 + }, + { + "name": "b", + "range": "[2:0]", + "size": 3 + } + ], + "out": [ + { + "name": "eq" + } + ] + } + }, + "position": { + "x": 344, + "y": 160 + }, + "size": { + "width": 224, + "height": 64 + } + } + ], + "wires": [ + { + "source": { + "block": "9c811723-c900-4ceb-9989-036b071ee3fe", + "port": "eq" + }, + "target": { + "block": "0344dacc-8583-456b-b377-8cb4ab97cf94", + "port": "in" + } + }, + { + "source": { + "block": "02895c3c-06cb-49d7-9e3f-012ee448d996", + "port": "out" + }, + "target": { + "block": "9c811723-c900-4ceb-9989-036b071ee3fe", + "port": "b" + }, + "size": 3 + }, + { + "source": { + "block": "0867b1bc-1cc5-4707-8ddb-40d0318d237c", + "port": "out" + }, + "target": { + "block": "9c811723-c900-4ceb-9989-036b071ee3fe", + "port": "a" + }, + "size": 3 + } + ] + } + } + }, + "e81274ef9d736a1810cc627ec4f61d7016e01548": { + "package": { + "name": "Constante-3bits", + "version": "0.0.1", + "description": "Valor genérico constante (menos 1), de 3 bits. Su valor se introduce como parámetro. Por defecto vale 0", + "author": "Juan Gonzalez-Gomez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22489.056%22%20height=%22247.927%22%20viewBox=%220%200%20458.49013%20232.43134%22%3E%3Ctext%20style=%22line-height:0%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-weight=%22400%22%20font-family=%22Ubuntu%20Mono%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22green%22%20transform=%22translate(-316.929%20-415.913)%22%3E%3Ctspan%20x=%22293.115%22%20y=%22648.344%22%20style=%22line-height:1.25%22%20font-size=%22335.399%22%3Ek-1%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "29384483-ab1f-4cd5-a1dd-7aa7aec6e2d0", + "type": "basic.output", + "data": { + "name": "k", + "range": "[2:0]", + "size": 3 + }, + "position": { + "x": 960, + "y": 248 + } + }, + { + "id": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", + "type": "basic.constant", + "data": { + "name": "", + "value": "1", + "local": false + }, + "position": { + "x": 728, + "y": 112 + } + }, + { + "id": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", + "type": "basic.code", + "data": { + "code": "assign k = VALUE-1;", + "params": [ + { + "name": "VALUE" + } + ], + "ports": { + "in": [], + "out": [ + { + "name": "k", + "range": "[2:0]", + "size": 3 + } + ] + } + }, + "position": { + "x": 672, + "y": 248 + }, + "size": { + "width": 208, + "height": 64 + } + } + ], + "wires": [ + { + "source": { + "block": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", + "port": "constant-out" + }, + "target": { + "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", + "port": "VALUE" + } + }, + { + "source": { + "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", + "port": "k" + }, + "target": { + "block": "29384483-ab1f-4cd5-a1dd-7aa7aec6e2d0", + "port": "in" + }, + "size": 3 + } + ] + } + } + }, + "46aa41432f266626cbc7fbbbeb9fba9fe9be3d0f": { + "package": { + "name": "sum-1op-3bits", + "version": "0.1", + "description": "Sumador de un operando de 3 bits con una constante pasada como parámetro (No hay accarreo)", + "author": "Juan González-Gómez", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22208.285%22%20height=%22208.61%22%20viewBox=%220%200%20195.2669%20195.57218%22%3E%3Ctext%20style=%22line-height:125%25%22%20x=%22-33.052%22%20y=%22195.572%22%20font-weight=%22400%22%20font-size=%22311.941%22%20letter-spacing=%220%22%20word-spacing=%220%22%20font-family=%22sans-serif%22%20stroke-width=%224.441%22%3E%3Ctspan%20x=%22-33.052%22%20y=%22195.572%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%20fill=%22#00f%22%3E+%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "aff67440-6545-4e7f-96c7-f5cb83d6dc64", + "type": "basic.input", + "data": { + "name": "", + "range": "[2:0]", + "clock": false, + "size": 3 + }, + "position": { + "x": 208, + "y": 192 + } + }, + { + "id": "b4b26cea-7b9f-4fb2-ba10-3c9c3010df55", + "type": "basic.output", + "data": { + "name": "", + "range": "[2:0]", + "size": 3 + }, + "position": { + "x": 672, + "y": 192 + } + }, + { + "id": "c4eedeee-32b3-41da-834c-48f3a92cbaec", + "type": "basic.constant", + "data": { + "name": "", + "value": "1", + "local": false + }, + "position": { + "x": 448, + "y": 96 + } + }, + { + "id": "a8d15f9d-bba5-432f-b698-17964638c83a", + "type": "basic.code", + "data": { + "code": "assign s = a + k;", + "params": [ + { + "name": "k" + } + ], + "ports": { + "in": [ + { + "name": "a", + "range": "[2:0]", + "size": 3 + } + ], + "out": [ + { + "name": "s", + "range": "[2:0]", + "size": 3 + } + ] + } + }, + "position": { + "x": 384, + "y": 192 + }, + "size": { + "width": 216, + "height": 64 + } + } + ], + "wires": [ + { + "source": { + "block": "c4eedeee-32b3-41da-834c-48f3a92cbaec", + "port": "constant-out" + }, + "target": { + "block": "a8d15f9d-bba5-432f-b698-17964638c83a", + "port": "k" + } + }, + { + "source": { + "block": "aff67440-6545-4e7f-96c7-f5cb83d6dc64", + "port": "out" + }, + "target": { + "block": "a8d15f9d-bba5-432f-b698-17964638c83a", + "port": "a" + }, + "size": 3 + }, + { + "source": { + "block": "a8d15f9d-bba5-432f-b698-17964638c83a", + "port": "s" + }, + "target": { + "block": "b4b26cea-7b9f-4fb2-ba10-3c9c3010df55", + "port": "in" + }, + "size": 3 + } + ] + } + } + }, + "259ba4ac4c27d6d3ab8316419a0de7bf952a242e": { + "package": { + "name": "mi-tabla3-8", + "version": "0.1", + "description": "Circuito combinacional de 3 entradas y 8 salidas", + "author": "IceFactory 0.1", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22184.803%22%20height=%22197.944%22%20viewBox=%220%200%20173.25325%20185.57257%22%3E%3Cg%20transform=%22translate(-181.933%20-240.254)%22%20stroke=%22#000%22%3E%3Crect%20width=%22170.253%22%20height=%22182.573%22%20x=%22183.433%22%20y=%22241.754%22%20ry=%2219.969%22%20fill=%22#3e8db8%22%20stroke-width=%223%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Crect%20width=%2244.038%22%20height=%2231.478%22%20x=%22196.408%22%20y=%22274.019%22%20ry=%220%22%20fill=%22#e6e6e6%22%20stroke-width=%222%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Crect%20width=%2244.038%22%20height=%2231.478%22%20x=%22246.344%22%20y=%22274.413%22%20ry=%220%22%20fill=%22#e6e6e6%22%20stroke-width=%222%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Crect%20width=%2244.038%22%20height=%2231.478%22%20x=%22296.415%22%20y=%22274.413%22%20ry=%220%22%20fill=%22#e6e6e6%22%20stroke-width=%222%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Crect%20width=%2244.038%22%20height=%2231.478%22%20x=%22196.408%22%20y=%22381.832%22%20ry=%220%22%20fill=%22#e6e6e6%22%20stroke-width=%222%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Crect%20width=%2244.038%22%20height=%2231.478%22%20x=%22246.344%22%20y=%22382.225%22%20ry=%220%22%20fill=%22#e6e6e6%22%20stroke-width=%222%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Crect%20width=%2244.038%22%20height=%2231.478%22%20x=%22296.415%22%20y=%22382.225%22%20ry=%220%22%20fill=%22#e6e6e6%22%20stroke-width=%222%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20style=%22line-height:125%25;text-align:center%22%20x=%22267.708%22%20y=%22368.911%22%20font-weight=%22400%22%20font-size=%2212.5%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20text-anchor=%22middle%22%20fill=%22#ff0%22%20stroke-width=%223%22%3E%3Ctspan%20x=%22267.708%22%20y=%22368.911%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%20font-size=%2270%22%3EHEX%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "186c4116-7846-4c8e-98a0-7376675105f1", + "type": "basic.input", + "data": { + "name": "", + "range": "[2:0]", + "clock": false, + "size": 3 + }, + "position": { + "x": -8, + "y": 424 + } + }, + { + "id": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", + "type": "basic.output", + "data": { + "name": "", + "range": "[7:0]", + "size": 8 + }, + "position": { + "x": 632, + "y": 424 + } + }, + { + "id": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", + "type": "basic.memory", + "data": { + "name": "", + "list": "0\n0\n0\n0", + "local": false + }, + "position": { + "x": 328, + "y": 96 + }, + "size": { + "width": 96, + "height": 104 + } + }, + { + "id": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "type": "basic.code", + "data": { + "code": "\n//-- Bits del bus de entrada\nlocalparam N = 3;\n\n//-- Bits del bus de salida\nlocalparam M = 8;\n\n//-- Calcular tamaño de la tabla\n//-- (filas) segun los bits de entrada\nlocalparam TAM = 2 ** N;\n\n//-- Definición de la tabla\n//-- Tabla de TAM elementos de M bits\nreg [M-1:0] tabla[0:TAM-1];\n\n//-- Read the table\nassign q = tabla[i];\n\n//-- Init table from DATA parameters\ninitial begin\n if (DATA) $readmemh(DATA, tabla);\nend", + "params": [ + { + "name": "DATA" + } + ], + "ports": { + "in": [ + { + "name": "i", + "range": "[2:0]", + "size": 3 + } + ], + "out": [ + { + "name": "q", + "range": "[7:0]", + "size": 8 + } + ] + } + }, + "position": { + "x": 176, + "y": 264 + }, + "size": { + "width": 392, + "height": 384 + } + } + ], + "wires": [ + { + "source": { + "block": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", + "port": "memory-out" + }, + "target": { + "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "port": "DATA" + } + }, + { + "source": { + "block": "186c4116-7846-4c8e-98a0-7376675105f1", + "port": "out" + }, + "target": { + "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "port": "i" + }, + "size": 3 + }, + { + "source": { + "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "port": "q" + }, + "target": { + "block": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", + "port": "in" + }, + "size": 8 + } + ] + } + } + }, + "ec2da447d7f051eef8a0640ae0eaf0776c0f51e8": { + "package": { + "name": "Corazon-tic-ms-ena", + "version": "0.1", + "description": "Corazón de bombeo de tics con periodo paramétrico de milisegundos y entrada de enable", + "author": "Juan Gonzalez-Gomez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22197.514%22%20height=%22161.086%22%20viewBox=%220%200%2052.259014%2042.62059%22%3E%3Cpath%20d=%22M22.153%2040.47c-.727-1.25-1.853-2.474-3.987-4.332-1.156-1.006-1.86-1.565-5.863-4.658-3.138-2.425-4.704-3.77-6.519-5.601-1.813-1.831-2.88-3.29-3.794-5.191a15.321%2015.321%200%200%201-1.235-3.6c-.317-1.545-.36-2.067-.358-4.342.002-2.983.1-3.48%201.08-5.47.728-1.479%201.281-2.257%202.433-3.427C5.028%202.714%205.754%202.2%207.325%201.422%209.069.56%2010.33.333%2012.93.417c2.02.065%202.759.266%204.36%201.188%202.52%201.45%204.475%203.777%205.017%205.972.088.358.18.652.203.652.023%200%20.227-.42.453-.932.77-1.744%201.484-2.808%202.62-3.903C29.06.041%2034.542-.565%2038.974%201.912c1.81%201.012%203.283%202.485%204.425%204.424.898%201.527%201.358%203.555%201.436%206.34.113%204.035-.625%206.832-2.59%209.812-.779%201.182-1.355%201.899-2.437%203.028-1.745%201.823-3.318%203.162-7.033%205.988-2.344%201.782-3.734%202.929-5.745%204.74-1.611%201.452-4.108%203.98-4.349%204.402-.105.185-.2.336-.21.336-.012%200-.154-.23-.318-.512z%22%20fill=%22red%22/%3E%3Ctext%20y=%2262.314%22%20x=%2259.897%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%2215.216%22%20letter-spacing=%220%22%20word-spacing=%220%22%20transform=%22matrix(.99853%200%200%201.00147%20-50.645%20-44.99)%22%20font-family=%22sans-serif%22%20fill=%22#00f%22%20stroke-width=%22.282%22%3E%3Ctspan%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2262.314%22%20x=%2259.897%22%20font-weight=%22700%22%20font-size=%228.695%22%3Emsec%3C/tspan%3E%3C/text%3E%3Cg%20transform=%22matrix(.79321%200%200%20.79321%20-39.33%20-27.72)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "503869f1-ddfd-4d13-93ad-5f90281ba88c", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 104, + "y": 72 + } + }, + { + "id": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 912, + "y": 192 + } + }, + { + "id": "3ac5ff24-ed0a-4d08-bdaa-adbb8ce688ab", + "type": "basic.input", + "data": { + "name": "", + "clock": false + }, + "position": { + "x": 128, + "y": 304 + } + }, + { + "id": "136e8d6d-892a-4f14-8d6d-0c5bc6c3e844", + "type": "basic.constant", + "data": { + "name": "", + "value": "100", + "local": false + }, + "position": { + "x": 520, + "y": -128 + } + }, + { + "id": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", + "type": "basic.code", + "data": { + "code": "//localparam MS;\n\n//-- Constante para dividir y obtener una frecuencia de 1KHz\nlocalparam M = 12000*MS;\n\n//-- Calcular el numero de bits para almacenar M\nlocalparam N = $clog2(M);\n\n//-- Cable de reset para el contador\nwire reset;\n\n//-- Registro del divisor\nreg [N-1:0] divcounter;\n\n\n//-- Contador con reset\nalways @(posedge clk)\n if (reset)\n divcounter <= 0;\n else\n divcounter <= divcounter + 1;\n\nwire ov;\nassign ov = (divcounter == M-1);\n\n//-- Comparador que resetea el contador cuando se alcanza el tope\nassign reset = ov | (ena == 0);\n\n//-- La salida es la señal de overflow\nassign o = ov;\n\n\n\n", + "params": [ + { + "name": "MS" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "ena" + } + ], + "out": [ + { + "name": "o" + } + ] + } + }, + "position": { + "x": 296, + "y": -8 + }, + "size": { + "width": 544, + "height": 456 + } + } + ], + "wires": [ + { + "source": { + "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", + "port": "o" + }, + "target": { + "block": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c", + "port": "in" + } + }, + { + "source": { + "block": "503869f1-ddfd-4d13-93ad-5f90281ba88c", + "port": "out" + }, + "target": { + "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", + "port": "clk" + } + }, + { + "source": { + "block": "136e8d6d-892a-4f14-8d6d-0c5bc6c3e844", + "port": "constant-out" + }, + "target": { + "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", + "port": "MS" + } + }, + { + "source": { + "block": "3ac5ff24-ed0a-4d08-bdaa-adbb8ce688ab", + "port": "out" + }, + "target": { + "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", + "port": "ena" + } + } + ] + } + } + }, + "8348632101cd9c30c865f27521f47b4892d5e7db": { + "package": { + "name": "RS-FF-reset CLONE", + "version": "0.1-c1655052552164", + "description": "RS-FF-reset. RS Flip-flop with priority reset", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20312.54461%20289.77628%22%20id=%22svg30%22%20width=%22312.545%22%20height=%22289.776%22%3E%3Cdefs%20id=%22defs34%22%3E%3Cmarker%20id=%22TriangleOutM%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20id=%22path988%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.4pt%22/%3E%3C/marker%3E%3Cmarker%20id=%22Arrow2Mend%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-5.231-2.42L1.324-.01-5.23%202.401c1.047-1.423%201.041-3.37%200-4.821z%22%20id=%22path870%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3C/defs%3E%3Cstyle%20id=%22style2%22%3E.st0%7Bdisplay:none%7D.st1%7Bfill:none;stroke:#303030;stroke-width:.7;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10%7D.st2%7Bfill:#303030%7D%3C/style%3E%3Cg%20id=%22layer1%22%20transform=%22translate(81.543%203.027)%22%3E%3Cpath%20id=%22line17%22%20class=%22st1%22%20fill=%22none%22%20stroke=%22#303030%22%20stroke-width=%226.776%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20d=%22M184.865%20207.591L41.298%20262.802%22/%3E%3Cpath%20id=%22path21-3%22%20d=%22M185.448%20175.07l.37.154c2.52.831%204.718%202.386%206.634%204.249%202.02%202.322%203.694%204.777%204.423%208.713%201.496%208.074-3.286%2016.05-10.95%2018.997l-1.06.408L41.298%20262.8l-.733.283c-8.003%203.077-17.551.461-21.82-6.975-3.3-5.748-2.736-12.198.418-21.613%203.155-9.414%202.86-21.856-1.644-33.55l.041.003-12.507-32.667c-12.88-33.415-.747-70.376%2027.41-90.31l-1.102-2.749c-3.685-9.583%201.14-20.438%2010.723-24.124%209.583-3.685%2020.439%201.14%2024.124%2010.723l1.654%203.239c34.881-3.556%2068.594%2015.855%2081.318%2049.33l15.24%2038.432c4.795%208.723%2011.831%2015.955%2021.028%2022.248z%22%20fill=%22#fff%22%20stroke=%22#303030%22%20stroke-width=%227%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22/%3E%3Cpath%20d=%22M64.268%20268.838l45.015-17.115s7.963%2024.296-14.427%2030.38c-22.39%206.086-30.588-13.265-30.588-13.265z%22%20id=%22path826%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%227%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3C/g%3E%3Cg%20id=%22layer3%22%20transform=%22translate(78.072%20-.17)%22%3E%3Crect%20id=%22rect845%22%20width=%22135.189%22%20height=%22135.189%22%20x=%2295.783%22%20y=%223.671%22%20ry=%2219.847%22%20fill=%22#55acee%22%20stroke=%22#303030%22%20stroke-width=%227%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22/%3E%3C/g%3E%3Cg%20id=%22layer4%22%20transform=%22translate(78.072%20-.17)%22%3E%3Cellipse%20id=%22path1211%22%20cx=%22-39.888%22%20cy=%22250.466%22%20rx=%2235.684%22%20ry=%2237.984%22%20fill=%22#fff6d5%22%20stroke=%22#000%22%20stroke-width=%225%22%20stroke-linecap=%22round%22/%3E%3Cpath%20class=%22st2%22%20d=%22M172.724%2052.533V27.647h-9.888L144.047%2037.7l2.308%208.9%2014.833-8.076h.33v74.824H172.724V52.533z%22%20id=%22path7%22%20fill=%22#303030%22%20stroke-width=%2214.425%22/%3E%3Cpath%20d=%22M-38.915%20277.098v-39.72%22%20id=%22path841%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%225%22%20marker-end=%22url(#TriangleOutM)%22/%3E%3C/g%3E%3C/svg%3E", + "otid": 1621864223514 + }, + "design": { + "graph": { + "blocks": [ + { + "id": "ca7c5f10-efb6-43f9-9364-52d751fc0bc6", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 216, + "y": -40 + } + }, + { + "id": "0a772657-8018-424d-8f04-75d3ffff3692", + "type": "basic.inputLabel", + "data": { + "blockColor": "yellow", + "name": "clk", + "pins": [ + { + "index": "0", + "name": "", + "value": "" + } + ], + "virtual": true + }, + "position": { + "x": 368, + "y": -40 + } + }, + { + "id": "4e8afe74-8f38-4873-97ee-f7585d99a4aa", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 1496, + "y": 40 + } + }, + { + "id": "97800965-0802-4a8f-9ed0-e61db33ae442", + "type": "basic.outputLabel", + "data": { + "blockColor": "fuchsia", + "name": "q", + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 1352, + "y": 40 + } + }, + { + "id": "b9359b10-b14f-4dd7-adf9-3f4f22bc65e6", + "type": "basic.outputLabel", + "data": { + "blockColor": "yellow", + "name": "clk", + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 1008, + "y": 136 + } + }, + { + "id": "adf3a6ae-71e2-43dd-b504-c2cdbc14dab7", + "type": "basic.input", + "data": { + "name": "set", + "clock": false + }, + "position": { + "x": 216, + "y": 136 + } + }, + { + "id": "7e1bf901-73cb-4a29-8843-27b3cc756bb1", + "type": "basic.inputLabel", + "data": { + "blockColor": "royalblue", + "name": "set", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 384, + "y": 136 + } + }, + { + "id": "2378a6da-a057-4c61-9eb0-e36b6861059f", + "type": "basic.inputLabel", + "data": { + "blockColor": "navy", + "name": "reset", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 384, + "y": 216 + } + }, + { + "id": "fc243ba8-9abb-4a22-81c4-fabdf043cd01", + "type": "basic.input", + "data": { + "name": "reset", + "clock": false + }, + "position": { + "x": 224, + "y": 216 + } + }, + { + "id": "fe2e7470-5890-4c51-b71e-8ff89b4db797", + "type": "basic.inputLabel", + "data": { + "blockColor": "fuchsia", + "name": "q", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 1304, + "y": 232 + } + }, + { + "id": "833a07bb-6153-48fe-bb7a-f24fcd38ed65", + "type": "basic.outputLabel", + "data": { + "blockColor": "fuchsia", + "name": "q", + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 640, + "y": 248 + } + }, + { + "id": "7e57f319-38cf-4c3a-ac16-f37a05f8de19", + "type": "basic.outputLabel", + "data": { + "blockColor": "royalblue", + "name": "set", + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 640, + "y": 336 + } + }, + { + "id": "38e515cf-4953-42f4-9cbc-7e4e17f605ee", + "type": "basic.outputLabel", + "data": { + "blockColor": "navy", + "name": "reset", + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 824, + "y": 336 + } + }, + { + "id": "bc3416e4-576f-40fb-85a9-5058b9f85395", + "type": "basic.constant", + "data": { + "name": "", + "value": "0", + "local": false + }, + "position": { + "x": 1176, + "y": 136 + } + }, + { + "id": "3c8c3d3d-8a1f-45a1-8ba9-0d019e0c041c", + "type": "d0c4e5ca28edb32eb88f24d610c7a2782d8bc697", + "position": { + "x": 968, + "y": 232 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "8d656647-f4ea-475e-b4c1-54787973b618", + "type": "febcfed8636b8ee9a98750b96ed9e53a165dd4a8", + "position": { + "x": 640, + "y": 136 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "5929fa8c-d037-406b-b5aa-9e52e71f2832", + "type": "d0c4e5ca28edb32eb88f24d610c7a2782d8bc697", + "position": { + "x": 800, + "y": 232 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "4eb098a5-9671-4946-b827-ce276e6a94f2", + "type": "d30ca9ee4f35f6cb76d5e5701447fc2b739bc640", + "position": { + "x": 840, + "y": 136 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "864d85b3-242c-408a-9e20-fb4931e68f70", + "type": "basic.info", + "data": { + "info": "Priority for the reset", + "readonly": true + }, + "position": { + "x": 1000, + "y": 344 + }, + "size": { + "width": 184, + "height": 32 + } + }, + { + "id": "0dfeca45-559f-4525-93b5-a3a19b81d546", + "type": "db33ba62b645fbf5ad349b666b64662512b13cdd", + "position": { + "x": 1176, + "y": 232 + }, + "size": { + "width": 96, + "height": 64 + } + } + ], + "wires": [ + { + "source": { + "block": "ca7c5f10-efb6-43f9-9364-52d751fc0bc6", + "port": "out" + }, + "target": { + "block": "0a772657-8018-424d-8f04-75d3ffff3692", + "port": "inlabel" + }, + "vertices": [] + }, + { + "source": { + "block": "0dfeca45-559f-4525-93b5-a3a19b81d546", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + }, + "target": { + "block": "fe2e7470-5890-4c51-b71e-8ff89b4db797", + "port": "inlabel" + }, + "vertices": [] + }, + { + "source": { + "block": "833a07bb-6153-48fe-bb7a-f24fcd38ed65", + "port": "outlabel" + }, + "target": { + "block": "5929fa8c-d037-406b-b5aa-9e52e71f2832", + "port": "d4a339a0-7bdb-4695-8f6b-93ea4a70b36a" + }, + "vertices": [] + }, + { + "source": { + "block": "b9359b10-b14f-4dd7-adf9-3f4f22bc65e6", + "port": "outlabel" + }, + "target": { + "block": "0dfeca45-559f-4525-93b5-a3a19b81d546", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + }, + "vertices": [ + { + "x": 1128, + "y": 208 + } + ] + }, + { + "source": { + "block": "adf3a6ae-71e2-43dd-b504-c2cdbc14dab7", + "port": "out" + }, + "target": { + "block": "7e1bf901-73cb-4a29-8843-27b3cc756bb1", + "port": "inlabel" + } + }, + { + "source": { + "block": "fc243ba8-9abb-4a22-81c4-fabdf043cd01", + "port": "out" + }, + "target": { + "block": "2378a6da-a057-4c61-9eb0-e36b6861059f", + "port": "inlabel" + } + }, + { + "source": { + "block": "97800965-0802-4a8f-9ed0-e61db33ae442", + "port": "outlabel" + }, + "target": { + "block": "4e8afe74-8f38-4873-97ee-f7585d99a4aa", + "port": "in" + } + }, + { + "source": { + "block": "38e515cf-4953-42f4-9cbc-7e4e17f605ee", + "port": "outlabel" + }, + "target": { + "block": "3c8c3d3d-8a1f-45a1-8ba9-0d019e0c041c", + "port": "08fac044-f451-4fb7-9668-f5bce3b40c2c" + } + }, + { + "source": { + "block": "7e57f319-38cf-4c3a-ac16-f37a05f8de19", + "port": "outlabel" + }, + "target": { + "block": "5929fa8c-d037-406b-b5aa-9e52e71f2832", + "port": "08fac044-f451-4fb7-9668-f5bce3b40c2c" + } + }, + { + "source": { + "block": "bc3416e4-576f-40fb-85a9-5058b9f85395", + "port": "constant-out" + }, + "target": { + "block": "0dfeca45-559f-4525-93b5-a3a19b81d546", + "port": "65194b18-5d2a-41b2-bd86-01be99978ad6" + }, + "vertices": [] + }, + { + "source": { + "block": "3c8c3d3d-8a1f-45a1-8ba9-0d019e0c041c", + "port": "0e6a9a81-8521-4ade-8012-71915b39ae41" + }, + "target": { + "block": "0dfeca45-559f-4525-93b5-a3a19b81d546", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + }, + "vertices": [] + }, + { + "source": { + "block": "5929fa8c-d037-406b-b5aa-9e52e71f2832", + "port": "0e6a9a81-8521-4ade-8012-71915b39ae41" + }, + "target": { + "block": "3c8c3d3d-8a1f-45a1-8ba9-0d019e0c041c", + "port": "d4a339a0-7bdb-4695-8f6b-93ea4a70b36a" + }, + "vertices": [] + }, + { + "source": { + "block": "4eb098a5-9671-4946-b827-ce276e6a94f2", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "3c8c3d3d-8a1f-45a1-8ba9-0d019e0c041c", + "port": "adf3a6ae-71e2-43dd-b504-c2cdbc14dab7" + } + }, + { + "source": { + "block": "8d656647-f4ea-475e-b4c1-54787973b618", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "5929fa8c-d037-406b-b5aa-9e52e71f2832", + "port": "adf3a6ae-71e2-43dd-b504-c2cdbc14dab7" + } + } + ] + } + } + }, + "d0c4e5ca28edb32eb88f24d610c7a2782d8bc697": { + "package": { + "name": "Mux-2-1", + "version": "0.1", + "description": "2-to-1 Multplexer (1-bit channels)", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2280.833%22%20height=%22158.56%22%20viewBox=%220%200%2075.781585%20148.65066%22%3E%3Cpath%20d=%22M74.375%2036.836c0-12.691-6.99-24.413-18.326-30.729-11.335-6.316-25.284-6.262-36.568.141C8.198%2012.652%201.304%2024.427%201.407%2037.118v74.415c-.103%2012.69%206.79%2024.466%2018.074%2030.87%2011.284%206.403%2025.233%206.457%2036.568.14%2011.336-6.316%2018.326-18.037%2018.326-30.728z%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%222.813%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20style=%22line-height:125%25%22%20x=%227.448%22%20y=%2291.518%22%20transform=%22matrix(1.00472%200%200%20.9953%2020.25%2033.697)%22%20font-weight=%22400%22%20font-size=%2233.509%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctspan%20x=%227.448%22%20y=%2291.518%22%3E0%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25%22%20x=%227.359%22%20y=%2214.582%22%20transform=%22matrix(1.00472%200%200%20.9953%2020.25%2033.697)%22%20font-weight=%22400%22%20font-size=%2233.509%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctspan%20x=%227.359%22%20y=%2214.582%22%3E1%3C/tspan%3E%3C/text%3E%3C/svg%3E", + "otid": 1618922858665 + }, + "design": { + "graph": { + "blocks": [ + { + "id": "a0fa1754-f66a-4772-adc6-07f9549ae9fe", + "type": "basic.outputLabel", + "data": { + "blockColor": "fuchsia", + "name": "a" + }, + "position": { + "x": 456, + "y": 360 + } + }, + { + "id": "0e6a9a81-8521-4ade-8012-71915b39ae41", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 1096, + "y": 392 + } + }, + { + "id": "adf3a6ae-71e2-43dd-b504-c2cdbc14dab7", + "type": "basic.input", + "data": { + "name": "1", + "clock": false + }, + "position": { + "x": 136, + "y": 416 + } + }, + { + "id": "d80dfce7-c76f-40a0-91ff-5e55863fe5da", + "type": "basic.inputLabel", + "data": { + "blockColor": "fuchsia", + "name": "a", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 272, + "y": 416 + } + }, + { + "id": "a14a9465-c4d0-4c20-aa1a-458b40aa8b70", + "type": "basic.inputLabel", + "data": { + "blockColor": "fuchsia", + "name": "b", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 272, + "y": 528 + } + }, + { + "id": "d4a339a0-7bdb-4695-8f6b-93ea4a70b36a", + "type": "basic.input", + "data": { + "name": "0", + "clock": false + }, + "position": { + "x": 136, + "y": 528 + } + }, + { + "id": "8d94a294-a698-43c5-9777-874fd39b8586", + "type": "basic.outputLabel", + "data": { + "blockColor": "fuchsia", + "name": "b", + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 616, + "y": 552 + } + }, + { + "id": "08fac044-f451-4fb7-9668-f5bce3b40c2c", + "type": "basic.input", + "data": { + "name": "sel", + "clock": false + }, + "position": { + "x": 376, + "y": 656 + } + }, + { + "id": "ec23e0ef-db5d-46b0-b1fd-452e0dc46a0b", + "type": "873425949b2a80f1a7f66f320796bcd068a59889", + "position": { + "x": 952, + "y": 392 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "cbd20301-0f38-49ce-bd16-b5d27a8ad6e8", + "type": "ba518ee261a2be13a9739cd3a01cdcebe0ef63c0", + "position": { + "x": 600, + "y": 376 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "4f537b92-d51a-4e53-808b-0730bd2424dd", + "type": "3676a00f3a70e406487ed14b901daf3e4984e63d", + "position": { + "x": 624, + "y": 656 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "6219285f-76c0-4fdf-8f60-bd5afeef0e52", + "type": "ba518ee261a2be13a9739cd3a01cdcebe0ef63c0", + "position": { + "x": 784, + "y": 568 + }, + "size": { + "width": 96, + "height": 64 + } + } + ], + "wires": [ + { + "source": { + "block": "a0fa1754-f66a-4772-adc6-07f9549ae9fe", + "port": "outlabel" + }, + "target": { + "block": "cbd20301-0f38-49ce-bd16-b5d27a8ad6e8", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "8d94a294-a698-43c5-9777-874fd39b8586", + "port": "outlabel" + }, + "target": { + "block": "6219285f-76c0-4fdf-8f60-bd5afeef0e52", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "adf3a6ae-71e2-43dd-b504-c2cdbc14dab7", + "port": "out" + }, + "target": { + "block": "d80dfce7-c76f-40a0-91ff-5e55863fe5da", + "port": "inlabel" + } + }, + { + "source": { + "block": "d4a339a0-7bdb-4695-8f6b-93ea4a70b36a", + "port": "out" + }, + "target": { + "block": "a14a9465-c4d0-4c20-aa1a-458b40aa8b70", + "port": "inlabel" + } + }, + { + "source": { + "block": "ec23e0ef-db5d-46b0-b1fd-452e0dc46a0b", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "0e6a9a81-8521-4ade-8012-71915b39ae41", + "port": "in" + }, + "vertices": [] + }, + { + "source": { + "block": "cbd20301-0f38-49ce-bd16-b5d27a8ad6e8", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "ec23e0ef-db5d-46b0-b1fd-452e0dc46a0b", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "08fac044-f451-4fb7-9668-f5bce3b40c2c", + "port": "out" + }, + "target": { + "block": "cbd20301-0f38-49ce-bd16-b5d27a8ad6e8", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] + }, + { + "source": { + "block": "08fac044-f451-4fb7-9668-f5bce3b40c2c", + "port": "out" + }, + "target": { + "block": "4f537b92-d51a-4e53-808b-0730bd2424dd", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "6219285f-76c0-4fdf-8f60-bd5afeef0e52", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "ec23e0ef-db5d-46b0-b1fd-452e0dc46a0b", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] + }, + { + "source": { + "block": "4f537b92-d51a-4e53-808b-0730bd2424dd", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "6219285f-76c0-4fdf-8f60-bd5afeef0e52", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] + } + ] + } + } + }, + "873425949b2a80f1a7f66f320796bcd068a59889": { + "package": { + "name": "OR2", + "version": "1.0.2", + "description": "OR2: Two bits input OR gate", + "author": "Jesús Arroyo, Juan González", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20height=%22192.718%22%20width=%22383.697%22%20version=%221%22%3E%3Cpath%20d=%22M175.56%20188.718H84.527s30.345-42.538%2031.086-94.03c.743-51.49-31.821-90.294-31.821-90.294L176.109%204c46.445%201.948%20103.899%2053.44%20123.047%2093.678-32.601%2067.503-92.158%2089.79-123.596%2091.04z%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M4.057%2047.292h99.605M4.883%20145.168h100.981M298.57%2098.89h81.07%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22/%3E%3Ctext%20style=%22line-height:125%25%22%20font-weight=%22400%22%20font-size=%2266.317%22%20y=%22121.28%22%20x=%22131.572%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#00f%22%3E%3Ctspan%20font-weight=%22700%22%20y=%22121.28%22%20x=%22131.572%22%3EOR%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 112, + "y": 40 + } + }, + { + "id": "664caf9e-5f40-4df4-800a-b626af702e62", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 608, + "y": 72 + } + }, + { + "id": "97b51945-d716-4b6c-9db9-970d08541249", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 112, + "y": 96 + } + }, + { + "id": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "type": "basic.code", + "data": { + "code": "//-- OR Gate\n//-- Verilog implementation\n\nassign c = a | b;\n\n", + "params": [], + "ports": { + "in": [ + { + "name": "a" + }, + { + "name": "b" + } + ], + "out": [ + { + "name": "c" + } + ] + } + }, + "position": { + "x": 256, + "y": 48 + }, + "size": { + "width": 312, + "height": 104 + } + } + ], + "wires": [ + { + "source": { + "block": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "port": "out" + }, + "target": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "a" + } + }, + { + "source": { + "block": "97b51945-d716-4b6c-9db9-970d08541249", + "port": "out" + }, + "target": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "b" + } + }, + { + "source": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "c" + }, + "target": { + "block": "664caf9e-5f40-4df4-800a-b626af702e62", + "port": "in" + } + } + ] + } + } + }, + "ba518ee261a2be13a9739cd3a01cdcebe0ef63c0": { + "package": { + "name": "AND2", + "version": "1.0.2", + "description": "Two bits input And gate", + "author": "Jesús Arroyo, Juan González", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22336.09%22%20height=%22194.045%22%20version=%221%22%3E%3Cpath%20d=%22M174.656%20190.045H78.304V4h96.352s87.463%208.625%2087.463%2091.94c0%2083.311-87.463%2094.105-87.463%2094.105z%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M4.057%2045.668h74.018M4.057%20144.812h74.018m184.632-50.034h69.326%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22/%3E%3Ctext%20style=%22line-height:125%25%22%20x=%2292.894%22%20y=%22114.587%22%20font-weight=%22400%22%20font-size=%2258.054%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#00f%22%3E%3Ctspan%20x=%2292.894%22%20y=%22114.587%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%3EAND%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 96, + "y": 56 + } + }, + { + "id": "664caf9e-5f40-4df4-800a-b626af702e62", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 600, + "y": 96 + } + }, + { + "id": "97b51945-d716-4b6c-9db9-970d08541249", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 96, + "y": 128 + } + }, + { + "id": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "type": "basic.code", + "data": { + "code": "//-- AND gate\n//-- Verilog implementation\n\nassign c = a & b;\n", + "params": [], + "ports": { + "in": [ + { + "name": "a" + }, + { + "name": "b" + } + ], + "out": [ + { + "name": "c" + } + ] + } + }, + "position": { + "x": 256, + "y": 48 + }, + "size": { + "width": 304, + "height": 152 + } + } + ], + "wires": [ + { + "source": { + "block": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "port": "out" + }, + "target": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "a" + } + }, + { + "source": { + "block": "97b51945-d716-4b6c-9db9-970d08541249", + "port": "out" + }, + "target": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "b" + } + }, + { + "source": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "c" + }, + "target": { + "block": "664caf9e-5f40-4df4-800a-b626af702e62", + "port": "in" + } + } + ] + } + } + }, + "3676a00f3a70e406487ed14b901daf3e4984e63d": { + "package": { + "name": "NOT", + "version": "2.0", + "description": "NOT gate (Verilog implementation)", + "author": "Jesús Arroyo, Juan González", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22317.651%22%20height=%22194.058%22%20version=%221%22%3E%3Cpath%20d=%22M69.246%204l161.86%2093.027-161.86%2093.031V4z%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linejoin=%22round%22/%3E%3Cellipse%20cx=%22253.352%22%20cy=%2296.736%22%20rx=%2221.393%22%20ry=%2221.893%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M4.057%2097.49h65.262m205.796%200h38.48%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22/%3E%3Ctext%20style=%22line-height:125%25%22%20x=%2281.112%22%20y=%22111.734%22%20transform=%22scale(.99532%201.0047)%22%20font-weight=%22400%22%20font-size=%2249.675%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#00f%22%3E%3Ctspan%20x=%2281.112%22%20y=%22111.734%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%3ENot%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 112, + "y": 72 + } + }, + { + "id": "664caf9e-5f40-4df4-800a-b626af702e62", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 560, + "y": 72 + } + }, + { + "id": "5365ed8c-e5db-4445-938f-8d689830ea5c", + "type": "basic.code", + "data": { + "code": "//-- NOT Gate\nassign q = ~a;\n\n", + "params": [], + "ports": { + "in": [ + { + "name": "a" + } + ], + "out": [ + { + "name": "q" + } + ] + } + }, + "position": { + "x": 256, + "y": 48 + }, + "size": { + "width": 256, + "height": 104 + } + }, + { + "id": "e3bb41e3-1944-4946-9675-c2dbe2e49fcf", + "type": "basic.info", + "data": { + "info": "Input", + "readonly": true + }, + "position": { + "x": 128, + "y": 32 + }, + "size": { + "width": 80, + "height": 40 + } + }, + { + "id": "8408dd5f-945f-4a89-9790-7752813d4e91", + "type": "basic.info", + "data": { + "info": "Output", + "readonly": true + }, + "position": { + "x": 576, + "y": 40 + }, + "size": { + "width": 80, + "height": 40 + } + } + ], + "wires": [ + { + "source": { + "block": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "port": "out" + }, + "target": { + "block": "5365ed8c-e5db-4445-938f-8d689830ea5c", + "port": "a" + } + }, + { + "source": { + "block": "5365ed8c-e5db-4445-938f-8d689830ea5c", + "port": "q" + }, + "target": { + "block": "664caf9e-5f40-4df4-800a-b626af702e62", + "port": "in" + } + } + ] + } + } + }, + "febcfed8636b8ee9a98750b96ed9e53a165dd4a8": { + "package": { + "name": "bit-1", + "version": "0.2", + "description": "Constant bit 1", + "author": "Jesus Arroyo", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2289.79%22%20height=%22185.093%22%20viewBox=%220%200%2084.179064%20173.52585%22%3E%3Cpath%20d=%22M7.702%2032.42L49.972%200l34.207%207.725-27.333%20116.736-26.607-6.01L51.26%2025.273%2020.023%2044.2z%22%20fill=%22green%22%20fill-rule=%22evenodd%22/%3E%3Cpath%20d=%22M46.13%20117.28l21.355%2028.258-17.91%2021.368%206.198%205.513m-14.033-54.45l-12.4%2028.26-28.242%205.512%202.067%208.959%22%20fill=%22none%22%20stroke=%22green%22%20stroke-width=%222.196%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "3d584b0a-29eb-47af-8c43-c0822282ef05", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 456, + "y": 120 + } + }, + { + "id": "61331ec5-2c56-4cdd-b607-e63b1502fa65", + "type": "basic.code", + "data": { + "code": "//-- Constant bit-1\nassign q = 1'b1;\n\n", + "params": [], + "ports": { + "in": [], + "out": [ + { + "name": "q" + } + ] + } + }, + "position": { + "x": 168, + "y": 112 + }, + "size": { + "width": 248, + "height": 80 + } + } + ], + "wires": [ + { + "source": { + "block": "61331ec5-2c56-4cdd-b607-e63b1502fa65", + "port": "q" + }, + "target": { + "block": "3d584b0a-29eb-47af-8c43-c0822282ef05", + "port": "in" + } + } + ] + } + } + }, + "d30ca9ee4f35f6cb76d5e5701447fc2b739bc640": { + "package": { + "name": "bit-0", + "version": "0.2", + "description": "Constant bit 0", + "author": "Jesus Arroyo", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22125.776%22%20height=%22197.727%22%20viewBox=%220%200%20110.54641%20173.78236%22%3E%3Cpath%20d=%22M69.664%20107.353l13.494%2029.374L70.719%20168.5l13.788%204.283m-42.761-62.916S38.148%20136.825%2033.22%20139C28.298%20141.18%201%20161.403%201%20161.403l8.729%2010.636%22%20fill=%22none%22%20stroke=%22green%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cg%20style=%22line-height:0%25%22%3E%3Cpath%20d=%22M65.536%2024.562q-9.493%200-15.876%208.251-6.303%208.156-8.855%2023.604-2.553%2015.448%201.037%2023.7%203.59%208.155%2013.084%208.155%209.334%200%2015.636-8.155%206.383-8.252%208.936-23.7%202.553-15.448-1.037-23.604-3.59-8.251-12.925-8.251zm4.07-24.564q23.056%200%2033.507%2014.969%2010.53%2014.968%206.143%2041.45-4.388%2026.482-19.865%2041.45-15.478%2014.968-38.534%2014.968-23.136%200-33.667-14.968Q6.659%2082.9%2011.047%2056.417q4.387-26.482%2019.865-41.45Q46.469-.002%2069.605-.002z%22%20style=%22line-height:1.25;-inkscape-font-specification:'sans-serif%20Bold%20Italic'%22%20font-style=%22italic%22%20font-weight=%22700%22%20font-size=%22179.184%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22green%22/%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "3d584b0a-29eb-47af-8c43-c0822282ef05", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 456, + "y": 120 + } + }, + { + "id": "61331ec5-2c56-4cdd-b607-e63b1502fa65", + "type": "basic.code", + "data": { + "code": "//-- Constant bit-0\nassign q = 1'b0;\n\n", + "params": [], + "ports": { + "in": [], + "out": [ + { + "name": "q" + } + ] + } + }, + "position": { + "x": 168, + "y": 112 + }, + "size": { + "width": 248, + "height": 80 + } + } + ], + "wires": [ + { + "source": { + "block": "61331ec5-2c56-4cdd-b607-e63b1502fa65", + "port": "q" + }, + "target": { + "block": "3d584b0a-29eb-47af-8c43-c0822282ef05", + "port": "in" + } + } + ] + } + } + }, + "db33ba62b645fbf5ad349b666b64662512b13cdd": { + "package": { + "name": "sys-DFF", + "version": "2.1", + "description": "System - D Flip-flop. Capture data every system clock cycle", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20width=%22196.313%22%20height=%22216.83%22%20viewBox=%220%200%2051.941051%2057.369679%22%20xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cg%20transform=%22translate(-52.22%20-48.028)%22%3E%3Crect%20width=%2224.412%22%20height=%2213.185%22%20x=%2279.352%22%20y=%2253.67%22%20ry=%222.247%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%22.794%22%20stroke-linecap=%22round%22/%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M77.902%2088.18l13.607%2016.672-6.918-20.534%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%22/%3E%3Cpath%20d=%22M70.517%2080.116l-9.232-19.613-6.45%203.725-2.07-3.584%2020.905-12.07%202.07%203.584-6.093%203.518%2012.03%2018.222s5.4-2.025%208.536.74c3.136%202.766%202.52%204.92%202.887%204.773L69.412%2093.049s-2.848-3.696-2.16-6.796c.687-3.1%203.265-6.137%203.265-6.137z%22%20fill=%22red%22%20stroke-width=%221.0924880399999999%22/%3E%3C/g%3E%3Ctext%20style=%22line-height:1.25%22%20x=%2281.296%22%20y=%2263.239%22%20font-weight=%22400%22%20font-size=%2210.583%22%20font-family=%22sans-serif%22%20fill=%22#00f%22%20stroke-width=%22.265%22%3E%3Ctspan%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20x=%2281.296%22%20y=%2263.239%22%20font-weight=%22700%22%3ESys%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "3943e194-090b-4553-9df3-88bc4b17abc2", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 208, + "y": 160 + } + }, + { + "id": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 816, + "y": 224 + } + }, + { + "id": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", + "type": "basic.input", + "data": { + "name": "", + "clock": false + }, + "position": { + "x": 208, + "y": 304 + } + }, + { + "id": "65194b18-5d2a-41b2-bd86-01be99978ad6", + "type": "basic.constant", + "data": { + "name": "", + "value": "0", + "local": false + }, + "position": { + "x": 512, + "y": 64 + } + }, + { + "id": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "type": "basic.code", + "data": { + "code": "//-- Initial value\nreg q = INI;\n\n//-- Capture the input data \n//-- on the rising edge of \n//-- the system clock\nalways @(posedge clk)\n q <= d;", + "params": [ + { + "name": "INI" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "d" + } + ], + "out": [ + { + "name": "q" + } + ] + } + }, + "position": { + "x": 384, + "y": 168 + }, + "size": { + "width": 344, + "height": 176 + } + }, + { + "id": "53d11290-50b3-40fb-b253-222cb296b075", + "type": "basic.info", + "data": { + "info": "Parameter: Initial value", + "readonly": true + }, + "position": { + "x": 488, + "y": 32 + }, + "size": { + "width": 208, + "height": 40 + } + }, + { + "id": "c25a29cd-d5ed-435e-b375-e6d5557660d8", + "type": "basic.info", + "data": { + "info": "System clock", + "readonly": true + }, + "position": { + "x": 208, + "y": 136 + }, + "size": { + "width": 120, + "height": 32 + } + }, + { + "id": "ecafc6fa-330b-4ba7-aa67-40b3ea48f1f1", + "type": "basic.info", + "data": { + "info": "Input data", + "readonly": true + }, + "position": { + "x": 224, + "y": 280 + }, + "size": { + "width": 112, + "height": 40 + } + }, + { + "id": "df95c331-682d-4733-a62d-ad9fcd75f96a", + "type": "basic.info", + "data": { + "info": "Output", + "readonly": true + }, + "position": { + "x": 840, + "y": 200 + }, + "size": { + "width": 80, + "height": 40 + } + }, + { + "id": "dd8217df-b56d-49a9-ae94-f5e0c96e1460", + "type": "basic.info", + "data": { + "info": "# D Flip-Flop (system)\n\nIt stores the input data that arrives at cycle n \nIts output is shown in the cycle n+1", + "readonly": true + }, + "position": { + "x": 144, + "y": -136 + }, + "size": { + "width": 488, + "height": 104 + } + } + ], + "wires": [ + { + "source": { + "block": "3943e194-090b-4553-9df3-88bc4b17abc2", + "port": "out" + }, + "target": { + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "clk" + } + }, + { + "source": { + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "q" + }, + "target": { + "block": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", + "port": "in" + } + }, + { + "source": { + "block": "65194b18-5d2a-41b2-bd86-01be99978ad6", + "port": "constant-out" + }, + "target": { + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "INI" + } + }, + { + "source": { + "block": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", + "port": "out" + }, + "target": { + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "d" + } + } + ] + } + } + }, + "380790bc9e7c906de7879e82d221e75fc090f9d4": { + "package": { + "name": "iniTic_250ms", + "version": "0.1", + "description": "Initial tic. 258 ms aprox.", + "author": "Democrito", + "image": "%3Csvg%20viewBox=%220%200%2041.539585%2036.512501%22%20height=%22138%22%20width=%22157%22%20xmlns:xlink=%22http://www.w3.org/1999/xlink%22%20xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cimage%20width=%2241.54%22%20height=%2236.513%22%20preserveAspectRatio=%22none%22%20xlink:href=%22data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJ0AAACKCAIAAAA/l9+iAAAABGdBTUEAALGPC/xhBQAAAAlwSFlz%20AAAOwwAADsMBx2+oZAAAB9JJREFUeF7tnc2ZpSoQQG9cBmQcE4K7F8VsDWCC6I0hdBC+AvEqUIX8%20lNwr1PlYTCtSdh1BRPub1yq0iHhtE/EazetVtZSBHc/UdFO8c1KtlOEdz9p6OzhpqVDKKPa6LPM0%20DjsvC/jRbB+neVnMESjz+IKSzjibBhDg1Laz0ydoDtCoE1Pndnlab5y0VChlFHldIGEmU1EME5XE%20ZRpeUNKhvKoGY6FP68BJS4VSRr7XlMwdEDlUfTWnu+Je57TLDbhUG52WfFhDZHvNGjUVWAr1NZJz%20mWBe887swmxsWgpgDZHpleyswzhv+VlUp0H7DZLB7IsE8Uq15Yb1Tm00O1Di0lIEa4hMr17ytv5m%20526Z8I7oucCvkoseREBo9Rvzg5odKOechGtmwxoi1StkRxWYZQLbXFenB7KpimWs0CsyxF6DaVWn%20gFwjXtTQhXSRFg5YQ6R6TQDyhgrz04f2sWGa9RMUPI6YLZuh7eGEej7BmvIuOINXN3Al8aWFhDXE%20bV7RnqqIGRGjeN/Kd+AnrKlhgmKqWHiV8WoarrQEYA1xj1faFDbWEbfEGKweRno1+zFMnQ3xGiDU%20+9A7WOiAa05mi70GpsTFabmGNQSXV5XTC0XUtAQO0rMvZ6lP3UZNDagzky0fYkmvZGjHq/RXC53M%20rVDQifVRerDaarjGRmwlVrslvJLzJq+yeD0IrNkNo+p1y5rgNITSgGrbvSpkPrxR5pWWuk1WeYQa%20CK96KHgHwjosbMHGC7+qeFVgKdxIGXWtFQ6AboIYhx0ZxOTaby9Ja0JasmENke2VtnrJPpHRmSbb%20sR5P6XmTJ4MQCyHtx12vPdUSaTY2LQWwhsj1SmUvBstraVOWK03mFRfqrd14LXHhes02gVpVZLQX%20ttqL1yKtvldgmcaEry/0TNtZRbRJ+ZTjoilNVFrKYA2R5bXg3qrAvO7AjXSC4n6QpBgGmF+N1nJF%20GPL7pm0RBLaNECyutZi0FMIaIstrh1RIC2sI8RpHhbSwhhCvcVRIC2sI8RpHhbSwhhCvcVRIC2sI%208RpHhbSwhhCvcVRIC2sI8RpHhbSwhhCvcVRIC2uIm726K1NmRVevAh177G9eYK+1k17m21aTrKUk%20BWxxWiyHNy0orCE+4JV4Gb8pp5YovXX5mAVgcxVxwJsWFNYQtb2OARvBnbbZ6BcPV+9pYuFNCwpr%20iMpeSzgU+aOAGXSx1+88ZnnTgsIa4kFej1HVbVV9HLej9qn7q3pVMy+Rf41+DW9aUFhDfMCrmQZh%20fevoejB3MlsO3j0PvVq0TPUaj1PnG960oLCGqO71PJfx3Z0GTf/Q086Y+2tgIp0Ob1pQWEPU9mpN%20UT07571Br2p31AcR4NYcUAZvWlBYQzzWqwbGcutBGIXFLG9aUFhDPNvrGbipzrhmDrG8aUFhDfFQ%20r7vEbbXJatRvVrwCrK3f49U7TB24T5H8aTaHVua0oLCGeKJXZBeN05dz4U0LCmuIR3oFAn/Gd6D/%20mo8H3rSgsIZ4qlfF/jrHrbctN/E9uyp404LCGuJmr81QIS2sIcRrHBXSwhpCvMZRIS2sIcRrHBXS%20whpCvMZRIS2sIcRrHBXSwhriyqsUtNwBawjxmlXugDWEeM0qd+CEKCviNb3chBOlrIjXxHIfTqCy%20cuVVqImT/IIiXr8MJ/+5Rby2iXhtE/HaJuK1TcRrm4jXNhGvbSJe20S8tol4bRPx2ibitU3Ea5uI%201zYRr21S5nW26p7/pGoarF3Un6Ba1c7/SyfVsr09tgzo/xERR0lEOj8uyzpP62AnDX4cp8wzr+SV%20+p9VxSswjVY1v4DdVGp5JX6r3r0u63CqECqJv0I9r2iX7dprvNStEGMeSkWvMJ54t9lkryhJlVmI%20jBis5qcI8nNUWZDx2U8gRVWvfr/p16u9CzKDKlsmu1p0l63r1bviuvXq5Cdwzk7NyB5b2yuU85l1%206tW5s4Z7ITQyrMO4TjBKR/9qVbzCab3/DY9lp1l7p17t7fF3zXiqeB3X2Z4CvH+RPr06d807TriS%20V2B8/7hvAfr06lzld5xwPa/oRSpez9sZqecV8LuseD1vZ6SqV6c+zBf69NrU/XXD2j6sY5dene0X%2082H9UPSVzzm0MKv04zXl+dXp3JEPRdW9wkHesqcp/Xh18hM8Z2tS8l3rTc71SL3H6Mmru/BLrA87%20feC8pBPmE17932orPXkFnC4LBcbYdxW4lVqTD10iOyvwGa+AM7y41TrwSo5bRElabvyYV6TL9uYV%20iFYbPwJvfMwr4A5EHXrVXH/flNJTNz7p1Tm8W68K4ntE9cxqaqRR5lX4VsRrm4jXNunDq3Mjjy41%20btX30EePFK9tIl6FNhCvbSJe28Tz+jtPf4fhz+tlyjD8nZdfs1N4CpbX5d+w63TKMP48dgrRJYdX%20Wqop44+pKXw/u9ff6TT2UiXjvYLwGYzX+a+lcB91l9nuxMM/GY2fweZ1Hml5lvL/nvuk3hfaqzUI%20D5Mz+/0ZD68yFD8E7TVsLmxd+EqUV2smjIy01igts+JHoLxe3UHF6/NI9ipT4kcgXttEvLaJ3F/b%20RHmV+XB7KK/y/Noe2qusNzWH9hqcGV3dfYVvZPNqy5P3Oc/HeJX3r42xe5XvJdri8ArI903NYHlV%20yPeITeB5FZpAvLaJeG0T8dom4rVF1vV/33Z0kWZpBisAAAAASUVORK5CYII=%22/%3E%3C/svg%3E", + "otid": 1597009188444 + }, + "design": { + "graph": { + "blocks": [ + { + "id": "c6f3777e-34fc-4df9-962c-86fc1696da43", + "type": "basic.input", + "data": { + "name": "", + "pins": [ + { + "index": "0", + "name": "CLK", + "value": "49" + } + ], + "virtual": false, + "clock": true + }, + "position": { + "x": 1528, + "y": 336 + } + }, + { + "id": "a4a65abf-83bf-4843-b78f-c992f03483d5", + "type": "basic.output", + "data": { + "name": "", + "pins": [ + { + "index": "0", + "name": "D0", + "value": "2" + } + ], + "virtual": false + }, + "position": { + "x": 2360, + "y": 432 + } + }, + { + "id": "08832548-0c84-496e-a0f6-d0ddeaa52e02", + "type": "basic.constant", + "data": { + "name": "Limit", + "value": "3100000", + "local": true + }, + "position": { + "x": 2160, + "y": 256 + } + }, + { + "id": "e608f1a1-99ae-4bc6-bf9c-e88acd46a43c", + "type": "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542", + "position": { + "x": 1528, + "y": 408 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "6320eea0-9789-4aa0-999b-ec6dcd4d6817", + "type": "8348632101cd9c30c865f27521f47b4892d5e7db", + "position": { + "x": 1776, + "y": 576 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "0890a184-b49c-42a2-8879-b1190e971acd", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 1952, + "y": 592 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "8a7871a1-9198-4981-b9c4-659475cb8ff5", + "type": "5bf32cd17a0d6a6780304e687c3e73c99cf4473b", + "position": { + "x": 2160, + "y": 392 + }, + "size": { + "width": 96, + "height": 96 + } + } + ], + "wires": [ + { + "source": { + "block": "e608f1a1-99ae-4bc6-bf9c-e88acd46a43c", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "6320eea0-9789-4aa0-999b-ec6dcd4d6817", + "port": "fc243ba8-9abb-4a22-81c4-fabdf043cd01" + }, + "vertices": [ + { + "x": 1696, + "y": 528 + } + ] + }, + { + "source": { + "block": "6320eea0-9789-4aa0-999b-ec6dcd4d6817", + "port": "4e8afe74-8f38-4873-97ee-f7585d99a4aa" + }, + "target": { + "block": "0890a184-b49c-42a2-8879-b1190e971acd", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "c6f3777e-34fc-4df9-962c-86fc1696da43", + "port": "out" + }, + "target": { + "block": "6320eea0-9789-4aa0-999b-ec6dcd4d6817", + "port": "ca7c5f10-efb6-43f9-9364-52d751fc0bc6" + }, + "vertices": [] + }, + { + "source": { + "block": "8a7871a1-9198-4981-b9c4-659475cb8ff5", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + }, + "target": { + "block": "6320eea0-9789-4aa0-999b-ec6dcd4d6817", + "port": "adf3a6ae-71e2-43dd-b504-c2cdbc14dab7" + }, + "vertices": [ + { + "x": 2288, + "y": 480 + }, + { + "x": 1728, + "y": 560 + } + ] + }, + { + "source": { + "block": "8a7871a1-9198-4981-b9c4-659475cb8ff5", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + }, + "target": { + "block": "a4a65abf-83bf-4843-b78f-c992f03483d5", + "port": "in" + }, + "vertices": [] + }, + { + "source": { + "block": "e608f1a1-99ae-4bc6-bf9c-e88acd46a43c", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "8a7871a1-9198-4981-b9c4-659475cb8ff5", + "port": "743b5299-2d89-4783-b7c9-12a5b36df406" + }, + "vertices": [] + }, + { + "source": { + "block": "0890a184-b49c-42a2-8879-b1190e971acd", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "8a7871a1-9198-4981-b9c4-659475cb8ff5", + "port": "26aba23f-8567-4e9b-bd45-c26724030f33" + }, + "vertices": [] + }, + { + "source": { + "block": "c6f3777e-34fc-4df9-962c-86fc1696da43", + "port": "out" + }, + "target": { + "block": "8a7871a1-9198-4981-b9c4-659475cb8ff5", + "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" + }, + "vertices": [] + }, + { + "source": { + "block": "08832548-0c84-496e-a0f6-d0ddeaa52e02", + "port": "constant-out" + }, + "target": { + "block": "8a7871a1-9198-4981-b9c4-659475cb8ff5", + "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" + }, + "vertices": [] + } + ] + } + } + }, + "5bf32cd17a0d6a6780304e687c3e73c99cf4473b": { + "package": { + "name": "32-bits-counter-rst", + "version": "0.1", + "description": "32-bits M module up counter, with reset ", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22327.118%22%20height=%22304.435%22%20viewBox=%220%200%2086.549973%2080.548402%22%3E%3Cdefs%3E%3Cmarker%20id=%22a%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3C/defs%3E%3Cg%20transform=%22translate(-59.162%20-4.54)%22%3E%3Cpath%20d=%22M138.803%2048.49V16.91%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%222.806%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20marker-end=%22url(#a)%22/%3E%3Crect%20rx=%222.807%22%20ry=%222.807%22%20y=%225.289%22%20x=%2299.747%22%20height=%2247.849%22%20width=%2229.538%22%20fill=%22#666%22%20stroke=%22#000%22%20stroke-width=%221.497%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20transform=%22scale(.94516%201.05802)%22%20y=%2240.921%22%20x=%22108.575%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%228.982%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%221.497%22%3E%3Ctspan%20style=%22line-height:1.25;-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2240.921%22%20x=%22108.575%22%20font-weight=%22700%22%20font-size=%2235.656%22%3E0%3C/tspan%3E%3C/text%3E%3Cpath%20d=%22M100.868%2030.283h27.764%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%222.245%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Crect%20rx=%222.807%22%20ry=%222.807%22%20y=%225.289%22%20x=%2266.333%22%20height=%2247.849%22%20width=%2229.538%22%20fill=%22#666%22%20stroke=%22#000%22%20stroke-width=%221.497%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20transform=%22scale(.94516%201.05802)%22%20y=%2240.921%22%20x=%2273.223%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%228.982%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%221.497%22%3E%3Ctspan%20style=%22line-height:1.25;-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2240.921%22%20x=%2273.223%22%20font-weight=%22700%22%20font-size=%2235.656%22%3E0%3C/tspan%3E%3C/text%3E%3Cpath%20d=%22M67.454%2030.283h27.764%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%222.245%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Cg%20transform=%22matrix(1.00937%200%200%201.00937%20-27.38%20-4.42)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3Cg%20transform=%22matrix(1.00937%200%200%201.00937%2028.939%20-4.42)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 264, + "y": 176 + } + }, + { + "id": "adab67f3-e062-405e-8498-1ea6bcad8ce2", + "type": "basic.output", + "data": { + "name": "", + "range": "[31:0]", + "size": 32 + }, + "position": { + "x": 816, + "y": 200 + } + }, + { + "id": "743b5299-2d89-4783-b7c9-12a5b36df406", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false + }, + "position": { + "x": 264, + "y": 280 + } + }, + { + "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "type": "basic.output", + "data": { + "name": "ov" + }, + "position": { + "x": 800, + "y": 352 + } + }, + { + "id": "26aba23f-8567-4e9b-bd45-c26724030f33", + "type": "basic.input", + "data": { + "name": "cnt", + "clock": false + }, + "position": { + "x": 264, + "y": 376 + } + }, + { + "id": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "type": "basic.constant", + "data": { + "name": "", + "value": "33'h10000_0000", + "local": false + }, + "position": { + "x": 528, + "y": 48 + } + }, + { + "id": "b35ae5de-a490-4f7b-9200-ac52cd3f333e", + "type": "basic.info", + "data": { + "info": "**Parámetro**: Módulo del contador", + "readonly": true + }, + "position": { + "x": 472, + "y": 32 + }, + "size": { + "width": 280, + "height": 56 + } + }, + { + "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "type": "basic.code", + "data": { + "code": "//-- Numero de bits del contador\nlocalparam N = 32; \n\n//-- En contadores de N bits:\n//-- M = 2 ** N\n\n//-- Internamente usamos un bit mas\n//-- (N+1) bits\nreg [N:0] qi = 0;\n\nalways @(posedge clk)\n if (rst | ov)\n qi <= 0;\n else\n if (cnt)\n qi <= qi + 1;\n \nassign q = qi;\n\n//-- Comprobar overflow\nassign ov = (qi == M);\n ", + "params": [ + { + "name": "M" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "rst" + }, + { + "name": "cnt" + } + ], + "out": [ + { + "name": "q", + "range": "[31:0]", + "size": 32 + }, + { + "name": "ov" + } + ] + } + }, + "position": { + "x": 408, + "y": 160 + }, + "size": { + "width": 336, + "height": 296 + } + } + ], + "wires": [ + { + "source": { + "block": "743b5299-2d89-4783-b7c9-12a5b36df406", + "port": "out" + }, + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "rst" + } + }, + { + "source": { + "block": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "port": "constant-out" + }, + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "M" + } + }, + { + "source": { + "block": "26aba23f-8567-4e9b-bd45-c26724030f33", + "port": "out" + }, + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "cnt" + } + }, + { + "source": { + "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "port": "out" + }, + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "clk" + } + }, + { + "source": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "ov" + }, + "target": { + "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "port": "in" + } + }, + { + "source": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "q" + }, + "target": { + "block": "adab67f3-e062-405e-8498-1ea6bcad8ce2", + "port": "in" + }, + "size": 32 + } + ] + } + } + }, + "56e0da7091190448826e12c0590f60e2927ced42": { + "package": { + "name": "Registro-desplazamiento", + "version": "0.1", + "description": "Registro de desplazamiento (izquierda) de 8 bits", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22519.236%22%20height=%22347.269%22%20viewBox=%220%200%20137.38127%2091.881653%22%3E%3Cdefs%3E%3Cmarker%20orient=%22auto%22%20id=%22a%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-5.231-2.42L1.324-.01-5.23%202.401c1.047-1.423%201.041-3.37%200-4.821z%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3C/defs%3E%3Cpath%20d=%22M41.506%2057.974l13.608%2016.672-6.918-20.535%22%20fill=%22#ccc%22%20stroke=%22#000%22%20stroke-width=%221.092%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M34.122%2049.91L24.89%2030.296l-6.45%203.724-2.07-3.584%2020.905-12.069%202.07%203.584-6.093%203.517%2012.03%2018.223s5.4-2.025%208.536.74c3.136%202.766%202.52%204.92%202.887%204.772L33.017%2062.842s-2.849-3.696-2.16-6.796c.687-3.1%203.265-6.136%203.265-6.136z%22%20fill=%22red%22%20stroke=%22#000%22%20stroke-width=%221.092%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cg%20transform=%22translate(-93.518%20-4.843)%20scale(1.09073)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20cx=%22100.602%22%20cy=%2273.815%22%20r=%2214.559%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M81.95%2057.974l13.607%2016.671-6.918-20.534%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%22/%3E%3Cpath%20d=%22M74.566%2049.91l-9.232-19.613-6.451%203.724-2.069-3.584%2020.905-12.069%202.069%203.584-6.092%203.517%2012.03%2018.223s5.399-2.025%208.535.74c3.137%202.766%202.52%204.92%202.887%204.772L73.46%2062.842s-2.848-3.696-2.16-6.796c.688-3.1%203.266-6.137%203.266-6.137z%22%20fill=%22red%22%20stroke-width=%221.0924880399999999%22/%3E%3C/g%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M121.637%2057.974l13.608%2016.671-6.918-20.534%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%22/%3E%3Cpath%20d=%22M114.253%2049.91l-9.232-19.613-6.45%203.724-2.07-3.584%2020.905-12.069%202.07%203.584-6.093%203.517%2012.03%2018.223s5.4-2.025%208.536.74c3.136%202.766%202.52%204.92%202.887%204.772l-23.689%2013.638s-2.848-3.696-2.16-6.796c.688-3.1%203.266-6.137%203.266-6.137z%22%20fill=%22red%22%20stroke-width=%221.0924880399999999%22/%3E%3C/g%3E%3Cpath%20d=%22M197.304%20102.342H88.824%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%222.646%22%20marker-end=%22url(#a)%22%20transform=%22translate(-69.649%20-95.494)%22/%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "53ae64df-468f-4f52-b3d9-99da065d5a22", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 224, + "y": 248 + } + }, + { + "id": "21039c06-c932-498c-968d-879a68d66795", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 920, + "y": 264 + } + }, + { + "id": "ed62d7ef-27fb-44ef-99e8-a19bad6342dd", + "type": "basic.input", + "data": { + "name": "", + "clock": false + }, + "position": { + "x": 224, + "y": 312 + } + }, + { + "id": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", + "type": "basic.output", + "data": { + "name": "q", + "range": "[7:0]", + "size": 8 + }, + "position": { + "x": 928, + "y": 352 + } + }, + { + "id": "e6088243-1d79-4783-ac0f-528d9700b6df", + "type": "basic.input", + "data": { + "name": "shift", + "clock": false + }, + "position": { + "x": 224, + "y": 368 + } + }, + { + "id": "5a757228-e2d2-45fb-9241-ebecb5a14315", + "type": "basic.constant", + "data": { + "name": "", + "value": "0", + "local": false + }, + "position": { + "x": 576, + "y": 144 + } + }, + { + "id": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "type": "basic.code", + "data": { + "code": "//-- Numero de bits el registros de desplazamiento\nlocalparam N = 8;\n\nreg [N-1:0] q = INI;\n\nalways @(posedge clk)\n if (shift)\n q <= {q[N-2:0], si};\n \n//-- Sacar el bit de mayor peso por serial-out \nassign so = q[N-1];", + "params": [ + { + "name": "INI" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "si" + }, + { + "name": "shift" + } + ], + "out": [ + { + "name": "so" + }, + { + "name": "q", + "range": "[7:0]", + "size": 8 + } + ] + } + }, + "position": { + "x": 384, + "y": 248 + }, + "size": { + "width": 480, + "height": 184 + } + } + ], + "wires": [ + { + "source": { + "block": "5a757228-e2d2-45fb-9241-ebecb5a14315", + "port": "constant-out" + }, + "target": { + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "port": "INI" + }, + "vertices": [] + }, + { + "source": { + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "port": "so" + }, + "target": { + "block": "21039c06-c932-498c-968d-879a68d66795", + "port": "in" + } + }, + { + "source": { + "block": "ed62d7ef-27fb-44ef-99e8-a19bad6342dd", + "port": "out" + }, + "target": { + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "port": "si" + } + }, + { + "source": { + "block": "e6088243-1d79-4783-ac0f-528d9700b6df", + "port": "out" + }, + "target": { + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "port": "shift" + } + }, + { + "source": { + "block": "53ae64df-468f-4f52-b3d9-99da065d5a22", + "port": "out" + }, + "target": { + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "port": "clk" + } + }, + { + "source": { + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "port": "q" + }, + "target": { + "block": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", + "port": "in" + }, + "size": 8 + } + ] + } + } + }, + "89d2342d9664348db3e70e823cacbc8eb24ea3d0": { + "package": { + "name": "Registro", + "version": "0.1", + "description": "Registro de 8 bits", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22519.236%22%20height=%22279.911%22%20viewBox=%220%200%20137.38127%2074.059853%22%3E%3Cpath%20d=%22M41.506%2040.152l13.608%2016.672-6.918-20.534%22%20fill=%22#ccc%22%20stroke=%22#000%22%20stroke-width=%221.092%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M34.122%2032.088L24.89%2012.475l-6.45%203.724-2.07-3.583L37.276.546l2.07%203.584-6.093%203.517%2012.03%2018.223s5.4-2.025%208.536.74c3.136%202.766%202.52%204.92%202.887%204.772L33.017%2045.02s-2.849-3.695-2.16-6.795c.687-3.1%203.265-6.137%203.265-6.137z%22%20fill=%22red%22%20stroke=%22#000%22%20stroke-width=%221.092%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cg%20transform=%22translate(-93.518%20-22.665)%20scale(1.09073)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20cx=%22100.602%22%20cy=%2273.815%22%20r=%2214.559%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M81.95%2040.152l13.607%2016.672L88.64%2036.29%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%22/%3E%3Cpath%20d=%22M74.566%2032.088l-9.232-19.613-6.451%203.724-2.069-3.583L77.719.546l2.069%203.584-6.092%203.517%2012.03%2018.223s5.399-2.025%208.535.74c3.137%202.766%202.52%204.92%202.887%204.772L73.46%2045.02s-2.848-3.695-2.16-6.795c.688-3.1%203.266-6.137%203.266-6.137z%22%20fill=%22red%22%20stroke-width=%221.0924880399999999%22/%3E%3C/g%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M121.637%2040.152l13.608%2016.672-6.918-20.534%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%22/%3E%3Cpath%20d=%22M114.253%2032.088l-9.232-19.613-6.45%203.724-2.07-3.583L117.407.546l2.07%203.584-6.093%203.517%2012.03%2018.223s5.4-2.025%208.536.74c3.136%202.766%202.52%204.92%202.887%204.772L113.147%2045.02s-2.848-3.695-2.16-6.795c.688-3.1%203.266-6.137%203.266-6.137z%22%20fill=%22red%22%20stroke-width=%221.0924880399999999%22/%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "096f61b6-6d5c-4907-9512-e65b25969458", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 80, + "y": 176 + } + }, + { + "id": "d3e4f800-c611-4f65-88e7-8b7d2def0021", + "type": "basic.output", + "data": { + "name": "q", + "range": "[7:0]", + "size": 8 + }, + "position": { + "x": 632, + "y": 248 + } + }, + { + "id": "42b35cc2-aa64-4e66-be42-169958246799", + "type": "basic.input", + "data": { + "name": "", + "range": "[7:0]", + "clock": false, + "size": 8 + }, + "position": { + "x": 80, + "y": 248 + } + }, + { + "id": "065ea371-8398-43b3-8341-287c234a3acb", + "type": "basic.input", + "data": { + "name": "load", + "clock": false + }, + "position": { + "x": 80, + "y": 312 + } + }, + { + "id": "f3b434e4-0c8f-4dd7-90c7-305189a807f1", + "type": "basic.constant", + "data": { + "name": "", + "value": "0", + "local": false + }, + "position": { + "x": 376, + "y": 56 + } + }, + { + "id": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "type": "basic.code", + "data": { + "code": "localparam N = 8;\n\nreg [N-1:0] q = INI;\n\nalways @(posedge clk)\n if (load)\n q <= d;", + "params": [ + { + "name": "INI" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "d", + "range": "[7:0]", + "size": 8 + }, + { + "name": "load" + } + ], + "out": [ + { + "name": "q", + "range": "[7:0]", + "size": 8 + } + ] + } + }, + "position": { + "x": 280, + "y": 176 + }, + "size": { + "width": 288, + "height": 200 + } + } + ], + "wires": [ + { + "source": { + "block": "f3b434e4-0c8f-4dd7-90c7-305189a807f1", + "port": "constant-out" + }, + "target": { + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "INI" + }, + "vertices": [] + }, + { + "source": { + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "q" + }, + "target": { + "block": "d3e4f800-c611-4f65-88e7-8b7d2def0021", + "port": "in" + }, + "size": 8 + }, + { + "source": { + "block": "42b35cc2-aa64-4e66-be42-169958246799", + "port": "out" + }, + "target": { + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "d" + }, + "size": 8 + }, + { + "source": { + "block": "065ea371-8398-43b3-8341-287c234a3acb", + "port": "out" + }, + "target": { + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "load" + } + }, + { + "source": { + "block": "096f61b6-6d5c-4907-9512-e65b25969458", + "port": "out" + }, + "target": { + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "clk" + } + } + ] + } + } + }, + "e174ec6faeae0fd10cec0c7a57204c72912025ec": { + "package": { + "name": "ControlLogic", + "version": "0.1", + "description": "Logical of control Alhambra's ADC", + "author": "Democrito", + "image": "", + "otid": 1662243271599 + }, + "design": { + "graph": { + "blocks": [ + { + "id": "4e8afe74-8f38-4873-97ee-f7585d99a4aa", + "type": "basic.output", + "data": { + "name": "stop", + "virtual": true + }, + "position": { + "x": 1280, + "y": 80 + } + }, + { + "id": "8817202f-fd82-4c55-a61e-73bfce814fa8", + "type": "basic.output", + "data": { + "name": "rw", + "virtual": true + }, + "position": { + "x": 1280, + "y": 192 + } + }, + { + "id": "7747f9e3-368a-411c-97c9-ec1c85616509", + "type": "basic.input", + "data": { + "name": "", + "range": "[2:0]", + "pins": [ + { + "index": "2", + "name": "", + "value": "" + }, + { + "index": "1", + "name": "", + "value": "" + }, + { + "index": "0", + "name": "", + "value": "" + } + ], + "virtual": true, + "clock": false + }, + "position": { + "x": 456, + "y": 192 + } + }, + { + "id": "adf3a6ae-71e2-43dd-b504-c2cdbc14dab7", + "type": "basic.input", + "data": { + "name": "next", + "clock": false, + "virtual": true + }, + "position": { + "x": 456, + "y": 264 + } + }, + { + "id": "e139c44c-2aca-4af3-8986-6c35a5f79d6e", + "type": "basic.memory", + "data": { + "name": "Logical", + "list": "0 // I2C start\n0\n1 // I2C stop\n0 // I2C start\n1 // I2C stop\n0 // I2C start\n1 // I2C stop", + "local": true, + "format": 10 + }, + "position": { + "x": 592, + "y": -144 + }, + "size": { + "width": 248, + "height": 176 + } + }, + { + "id": "33bdc695-0a50-4977-ba94-cbe259c0b231", + "type": "ed3b21e6ea15ab430ae4c30939039afef1346814", + "position": { + "x": 672, + "y": 64 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "d08c2320-b86e-42e1-bfbe-c0eebdfa9488", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 944, + "y": 80 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "a5913f61-fe30-4135-a443-de739603a433", + "type": "9690bd0ae8d2722170a71c4a94c996a56fc9ab73", + "position": { + "x": 672, + "y": 176 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "30b63614-2d5b-49e5-8b14-282aedcd9a75", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 944, + "y": 248 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "8bf4a162-e1d2-4931-a412-ce5532a8ed4f", + "type": "f6999aabbb09164c482a3efc5e308b9e1e95a6f6", + "position": { + "x": 1136, + "y": 176 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "bc2cee37-abb0-4255-aadb-0b92402476aa", + "type": "basic.info", + "data": { + "info": "**We need to cut the 7 bytes of the table (not this table) into 3 packets for the I2C protocol. The first packet consists of 3 bytes, the second of 2, and the third of 2.**", + "readonly": true + }, + "position": { + "x": 896, + "y": -136 + }, + "size": { + "width": 360, + "height": 32 + } + }, + { + "id": "771e87cf-23ae-4283-b847-36a44470f20a", + "type": "basic.info", + "data": { + "info": "According to the account of the counting machine, the corresponding actions will be carried out.", + "readonly": true + }, + "position": { + "x": 432, + "y": 88 + }, + "size": { + "width": 176, + "height": 32 + } + }, + { + "id": "1541260f-8f7e-4ce8-8899-c2c0ae3ac923", + "type": "basic.info", + "data": { + "info": "When the I2C finishes sending a byte, it produces a \"next\" tick. We take that tick and if the table gives us a 1 on that account, it means that it has to produce a stop tick", + "readonly": true + }, + "position": { + "x": 1056, + "y": 16 + }, + "size": { + "width": 368, + "height": 32 + } + }, + { + "id": "69edea63-9572-4329-a5da-be046bcef3e6", + "type": "basic.info", + "data": { + "info": "When the counter has a value of 6, it means that we have to do a read (RW) and since it is only one byte, NACK must also be set to 1.", + "readonly": true + }, + "position": { + "x": 1256, + "y": 256 + }, + "size": { + "width": 216, + "height": 32 + } + } + ], + "wires": [ + { + "source": { + "block": "e139c44c-2aca-4af3-8986-6c35a5f79d6e", + "port": "memory-out" + }, + "target": { + "block": "33bdc695-0a50-4977-ba94-cbe259c0b231", + "port": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377" + }, + "vertices": [] + }, + { + "source": { + "block": "a5913f61-fe30-4135-a443-de739603a433", + "port": "bf5dcadd-4527-4356-abe6-325b2d789dbe" + }, + "target": { + "block": "30b63614-2d5b-49e5-8b14-282aedcd9a75", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": 904, + "y": 272 + } + ] + }, + { + "source": { + "block": "30b63614-2d5b-49e5-8b14-282aedcd9a75", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "8bf4a162-e1d2-4931-a412-ce5532a8ed4f", + "port": "bba45940-204d-4df3-821d-1e22a0f97376" + }, + "vertices": [ + { + "x": 1080, + "y": 264 + } + ] + }, + { + "source": { + "block": "a5913f61-fe30-4135-a443-de739603a433", + "port": "b0353398-ce8e-40c5-8bc6-7d4512496311" + }, + "target": { + "block": "8bf4a162-e1d2-4931-a412-ce5532a8ed4f", + "port": "47c857ed-d983-4682-9c65-4a673c44ca22" + }, + "vertices": [] + }, + { + "source": { + "block": "a5913f61-fe30-4135-a443-de739603a433", + "port": "404b8a3c-1c48-483f-9349-f34a9a1d195b" + }, + "target": { + "block": "8bf4a162-e1d2-4931-a412-ce5532a8ed4f", + "port": "a403027d-8092-40a2-a89d-899be83aa5d5" + }, + "vertices": [] + }, + { + "source": { + "block": "33bdc695-0a50-4977-ba94-cbe259c0b231", + "port": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5" + }, + "target": { + "block": "d08c2320-b86e-42e1-bfbe-c0eebdfa9488", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + } + }, + { + "source": { + "block": "adf3a6ae-71e2-43dd-b504-c2cdbc14dab7", + "port": "out" + }, + "target": { + "block": "d08c2320-b86e-42e1-bfbe-c0eebdfa9488", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [ + { + "x": 840, + "y": 176 + } + ] + }, + { + "source": { + "block": "d08c2320-b86e-42e1-bfbe-c0eebdfa9488", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "4e8afe74-8f38-4873-97ee-f7585d99a4aa", + "port": "in" + } + }, + { + "source": { + "block": "8bf4a162-e1d2-4931-a412-ce5532a8ed4f", + "port": "99726a23-1918-4281-a387-8f79b3753a74" + }, + "target": { + "block": "8817202f-fd82-4c55-a61e-73bfce814fa8", + "port": "in" + } + }, + { + "source": { + "block": "7747f9e3-368a-411c-97c9-ec1c85616509", + "port": "out" + }, + "target": { + "block": "a5913f61-fe30-4135-a443-de739603a433", + "port": "fd3449b1-bc90-4312-8654-0a9d34f90f72" + }, + "size": 3 + }, + { + "source": { + "block": "7747f9e3-368a-411c-97c9-ec1c85616509", + "port": "out" + }, + "target": { + "block": "33bdc695-0a50-4977-ba94-cbe259c0b231", + "port": "186c4116-7846-4c8e-98a0-7376675105f1" + }, + "size": 3 + } + ] + } + } + }, + "ed3b21e6ea15ab430ae4c30939039afef1346814": { + "package": { + "name": "mi-tabla3-1", + "version": "0.1", + "description": "Circuito combinacional de 3 entradas y 1 salidas", + "author": "IceFactory 0.1", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22184.803%22%20height=%22197.944%22%20viewBox=%220%200%20173.25325%20185.57257%22%3E%3Cg%20transform=%22translate(-181.933%20-240.254)%22%20stroke=%22#000%22%3E%3Crect%20width=%22170.253%22%20height=%22182.573%22%20x=%22183.433%22%20y=%22241.754%22%20ry=%2219.969%22%20fill=%22#3e8db8%22%20stroke-width=%223%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Crect%20width=%2244.038%22%20height=%2231.478%22%20x=%22196.408%22%20y=%22274.019%22%20ry=%220%22%20fill=%22#e6e6e6%22%20stroke-width=%222%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Crect%20width=%2244.038%22%20height=%2231.478%22%20x=%22246.344%22%20y=%22274.413%22%20ry=%220%22%20fill=%22#e6e6e6%22%20stroke-width=%222%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Crect%20width=%2244.038%22%20height=%2231.478%22%20x=%22296.415%22%20y=%22274.413%22%20ry=%220%22%20fill=%22#e6e6e6%22%20stroke-width=%222%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Crect%20width=%2244.038%22%20height=%2231.478%22%20x=%22196.408%22%20y=%22381.832%22%20ry=%220%22%20fill=%22#e6e6e6%22%20stroke-width=%222%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Crect%20width=%2244.038%22%20height=%2231.478%22%20x=%22246.344%22%20y=%22382.225%22%20ry=%220%22%20fill=%22#e6e6e6%22%20stroke-width=%222%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Crect%20width=%2244.038%22%20height=%2231.478%22%20x=%22296.415%22%20y=%22382.225%22%20ry=%220%22%20fill=%22#e6e6e6%22%20stroke-width=%222%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20style=%22line-height:125%25;text-align:center%22%20x=%22267.708%22%20y=%22368.911%22%20font-weight=%22400%22%20font-size=%2212.5%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20text-anchor=%22middle%22%20fill=%22#ff0%22%20stroke-width=%223%22%3E%3Ctspan%20x=%22267.708%22%20y=%22368.911%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%20font-size=%2270%22%3EHEX%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "186c4116-7846-4c8e-98a0-7376675105f1", + "type": "basic.input", + "data": { + "name": "", + "range": "[2:0]", + "clock": false, + "size": 3 + }, + "position": { + "x": -8, + "y": 424 + } + }, + { + "id": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", + "type": "basic.output", + "data": { + "name": "", + "range": "[0:0]" + }, + "position": { + "x": 632, + "y": 424 + } + }, + { + "id": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", + "type": "basic.memory", + "data": { + "name": "", + "list": "0\n0\n0\n0", + "local": false + }, + "position": { + "x": 328, + "y": 96 + }, + "size": { + "width": 96, + "height": 104 + } + }, + { + "id": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "type": "basic.code", + "data": { + "code": "\n//-- Bits del bus de entrada\nlocalparam N = 3;\n\n//-- Bits del bus de salida\nlocalparam M = 1;\n\n//-- Calcular tamaño de la tabla\n//-- (filas) segun los bits de entrada\nlocalparam TAM = 2 ** N;\n\n//-- Definición de la tabla\n//-- Tabla de TAM elementos de M bits\nreg [M-1:0] tabla[0:TAM-1];\n\n//-- Read the table\nassign q = tabla[i];\n\n//-- Init table from DATA parameters\ninitial begin\n if (DATA) $readmemh(DATA, tabla);\nend", + "params": [ + { + "name": "DATA" + } + ], + "ports": { + "in": [ + { + "name": "i", + "range": "[2:0]", + "size": 3 + } + ], + "out": [ + { + "name": "q", + "range": "[0:0]", + "size": 1 + } + ] + } + }, + "position": { + "x": 176, + "y": 264 + }, + "size": { + "width": 392, + "height": 384 + } + } + ], + "wires": [ + { + "source": { + "block": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", + "port": "memory-out" + }, + "target": { + "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "port": "DATA" + } + }, + { + "source": { + "block": "186c4116-7846-4c8e-98a0-7376675105f1", + "port": "out" + }, + "target": { + "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "port": "i" + }, + "size": 3 + }, + { + "source": { + "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "port": "q" + }, + "target": { + "block": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", + "port": "in" + }, + "size": 1 + } + ] + } + } + }, + "9690bd0ae8d2722170a71c4a94c996a56fc9ab73": { + "package": { + "name": "Separador-bus", + "version": "0.1", + "description": "Separador de bus de 3-bits", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22354.768%22%20height=%22241.058%22%20viewBox=%220%200%20332.59497%20225.99201%22%3E%3Cpath%20d=%22M168.377%2077.643l61.147-60.938C240.21%206.25%20254.56.461%20269.484.5h62.611v26.186l-61.698.046c-8.012-.043-15.705%203.133-21.47%208.81L187.48%2096.857a57.292%2057.292%200%200%201-39.993%2016.139%2057.292%2057.292%200%200%201%2039.993%2016.14l61.448%2061.314c5.765%205.677%2013.458%208.853%2021.47%208.81l61.698.046v26.186h-62.612c-14.924.039-29.463-5.9-40.204-16.28l-60.902-60.863a29.857%2029.857%200%200%200-21.347-8.81L.5%20139.427V86.457h146.524a29.884%2029.884%200%200%200%2021.353-8.814z%22%20fill=%22green%22%20stroke=%22#000%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "404b8a3c-1c48-483f-9349-f34a9a1d195b", + "type": "basic.output", + "data": { + "name": "o2" + }, + "position": { + "x": 584, + "y": 144 + } + }, + { + "id": "fd3449b1-bc90-4312-8654-0a9d34f90f72", + "type": "basic.input", + "data": { + "name": "i", + "range": "[2:0]", + "clock": false, + "size": 3 + }, + "position": { + "x": 120, + "y": 200 + } + }, + { + "id": "b0353398-ce8e-40c5-8bc6-7d4512496311", + "type": "basic.output", + "data": { + "name": "o1" + }, + "position": { + "x": 584, + "y": 200 + } + }, + { + "id": "bf5dcadd-4527-4356-abe6-325b2d789dbe", + "type": "basic.output", + "data": { + "name": "o0" + }, + "position": { + "x": 584, + "y": 256 + } + }, + { + "id": "16e78204-213e-4833-9096-89d735307ec2", + "type": "basic.code", + "data": { + "code": "assign o2 = i[2];\nassign o1 = i[1];\nassign o0 = i[0];", + "params": [], + "ports": { + "in": [ + { + "name": "i", + "range": "[2:0]", + "size": 3 + } + ], + "out": [ + { + "name": "o2" + }, + { + "name": "o1" + }, + { + "name": "o0" + } + ] + } + }, + "position": { + "x": 296, + "y": 176 + }, + "size": { + "width": 208, + "height": 112 + } + } + ], + "wires": [ + { + "source": { + "block": "16e78204-213e-4833-9096-89d735307ec2", + "port": "o2" + }, + "target": { + "block": "404b8a3c-1c48-483f-9349-f34a9a1d195b", + "port": "in" + } + }, + { + "source": { + "block": "16e78204-213e-4833-9096-89d735307ec2", + "port": "o1" + }, + "target": { + "block": "b0353398-ce8e-40c5-8bc6-7d4512496311", + "port": "in" + } + }, + { + "source": { + "block": "16e78204-213e-4833-9096-89d735307ec2", + "port": "o0" + }, + "target": { + "block": "bf5dcadd-4527-4356-abe6-325b2d789dbe", + "port": "in" + } + }, + { + "source": { + "block": "fd3449b1-bc90-4312-8654-0a9d34f90f72", + "port": "out" + }, + "target": { + "block": "16e78204-213e-4833-9096-89d735307ec2", + "port": "i" + }, + "size": 3 + } + ] + } + } + }, + "f6999aabbb09164c482a3efc5e308b9e1e95a6f6": { + "package": { + "name": "AND3", + "version": "0.1", + "description": "Puerta AND de 3 entradas", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22336.09%22%20height=%22194.045%22%20version=%221%22%3E%3Cpath%20d=%22M174.656%20190.045H78.304V4h96.352s87.463%208.625%2087.463%2091.94c0%2083.311-87.463%2094.105-87.463%2094.105z%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M4.057%2045.668h74.018M4.057%20144.812h74.018M262.707%2094.778h69.326%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22/%3E%3Ctext%20style=%22line-height:125%25%22%20x=%2292.894%22%20y=%22114.587%22%20font-weight=%22400%22%20font-size=%2258.054%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#00f%22%3E%3Ctspan%20x=%2292.894%22%20y=%22114.587%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%3EAND%3C/tspan%3E%3C/text%3E%3Cpath%20d=%22M4.057%2094.729h74.018%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22/%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "a403027d-8092-40a2-a89d-899be83aa5d5", + "type": "basic.input", + "data": { + "name": "", + "clock": false + }, + "position": { + "x": 64, + "y": 104 + } + }, + { + "id": "99726a23-1918-4281-a387-8f79b3753a74", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 504, + "y": 152 + } + }, + { + "id": "47c857ed-d983-4682-9c65-4a673c44ca22", + "type": "basic.input", + "data": { + "name": "", + "clock": false + }, + "position": { + "x": 64, + "y": 168 + } + }, + { + "id": "bba45940-204d-4df3-821d-1e22a0f97376", + "type": "basic.input", + "data": { + "name": "", + "clock": false + }, + "position": { + "x": 64, + "y": 248 + } + }, + { + "id": "21ea9173-964c-4841-982b-ff450d28fdca", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 248, + "y": 136 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "9831a992-a617-4ec4-a4e7-f99c431061a8", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 376, + "y": 152 + }, + "size": { + "width": 96, + "height": 64 + } + } + ], + "wires": [ + { + "source": { + "block": "21ea9173-964c-4841-982b-ff450d28fdca", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "9831a992-a617-4ec4-a4e7-f99c431061a8", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + } + }, + { + "source": { + "block": "9831a992-a617-4ec4-a4e7-f99c431061a8", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "99726a23-1918-4281-a387-8f79b3753a74", + "port": "in" + } + }, + { + "source": { + "block": "a403027d-8092-40a2-a89d-899be83aa5d5", + "port": "out" + }, + "target": { + "block": "21ea9173-964c-4841-982b-ff450d28fdca", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + } + }, + { + "source": { + "block": "47c857ed-d983-4682-9c65-4a673c44ca22", + "port": "out" + }, + "target": { + "block": "21ea9173-964c-4841-982b-ff450d28fdca", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + } + }, + { + "source": { + "block": "bba45940-204d-4df3-821d-1e22a0f97376", + "port": "out" + }, + "target": { + "block": "9831a992-a617-4ec4-a4e7-f99c431061a8", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + } + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/examples/I2C/I2C_Read_Write_module.ice b/examples/I2C/I2C_Read_Write_module.ice new file mode 100644 index 0000000..f111e79 --- /dev/null +++ b/examples/I2C/I2C_Read_Write_module.ice @@ -0,0 +1,7143 @@ +{ + "version": "1.2", + "package": { + "name": "I2C-Read_&_Write", + "version": "0.1", + "description": "I2C read and write.", + "author": "Democrito", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2278.128%22%20height=%22158.752%22%20viewBox=%220%200%2073.2451%20148.83252%22%3E%3Cpath%20d=%22M22.722%2090.97a12.161%2012.161%200%200%201-2.118-.807c-1.344-.702-3.332-2.71-4.051-4.09l-.556-1.067-1.712-.046c-1.368-.036-1.925-.125-2.77-.44-2.98-1.112-5.217-3.415-6.123-6.304-.435-1.39-.46-3.63-.054-4.987.15-.504.252-.93.225-.945-2.14-1.24-4.028-3.672-4.69-6.043-.326-1.167-.26-3.51.134-4.775.583-1.87%201.933-3.8%203.478-4.968.433-.327.503-.452.356-.628-.357-.43-.964-2.302-1.061-3.276-.333-3.32%202.195-6.876%205.615-7.9l.9-.27-.095-1.03c-.441-4.73%204.034-8.883%208.792-8.157.916.14%201.274.145%201.316.018.122-.364%201.286-1.712%201.946-2.25.91-.745%202.532-1.49%203.628-1.668%202.928-.476%206.38%201.552%207.889%204.63l.604%201.236.042%2022.364c.045%2024.05.06%2023.5-.75%2025.66-1.617%204.316-6.535%206.896-10.945%205.743zm21.797.077c-2.924-.634-5.726-3.036-6.76-5.794-.826-2.203-.803-1.41-.758-25.614l.04-22.452.61-1.233c1.51-3.05%204.938-5.09%207.779-4.634%201.12.18%202.076.56%203.1%201.227.863.563%202.163%201.9%202.444%202.514.154.337.222.354.96.235.436-.07%201.322-.118%201.97-.105%204.173.08%207.7%204.047%207.312%208.22l-.097%201.046.51.106c1.982.41%204.256%202.248%205.22%204.217.783%201.596.99%203.02.66%204.537-.143.654-.442%201.552-.666%201.997l-.408.81.518.39c1.519%201.147%202.872%203.083%203.462%204.952.397%201.26.46%203.584.129%204.775-.58%202.08-2.194%204.35-3.927%205.517-.393.265-.736.498-.763.518-.027.02.075.45.226.953.405%201.356.38%203.598-.055%204.987-.902%202.875-3.158%205.198-6.123%206.304-.845.315-1.402.404-2.77.44l-1.712.046-.556%201.066c-.718%201.38-2.707%203.39-4.048%204.09-1.96%201.023-4.202%201.338-6.297.885z%22%20fill=%22#ff0%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M22.578%2091.606a12.161%2012.161%200%200%201-2.117-.808c-1.344-.702-3.332-2.71-4.052-4.09l-.555-1.066-1.712-.046c-1.368-.036-1.925-.125-2.77-.44-2.98-1.112-5.217-3.415-6.123-6.305-.436-1.39-.46-3.63-.055-4.986.15-.505.252-.93.226-.945-2.14-1.24-4.028-3.672-4.69-6.044-.327-1.166-.26-3.508.133-4.774.583-1.872%201.934-3.8%203.479-4.97.432-.325.503-.45.356-.626-.358-.43-.964-2.302-1.062-3.277-.332-3.32%202.196-6.876%205.616-7.9l.9-.27-.096-1.028c-.44-4.733%204.035-8.885%208.792-8.158.917.14%201.274.145%201.317.018.12-.365%201.286-1.712%201.946-2.252.909-.743%202.532-1.49%203.628-1.667%202.927-.475%206.38%201.553%207.888%204.632l.605%201.235.042%2022.363c.045%2024.05.06%2023.5-.75%2025.662-1.617%204.315-6.535%206.895-10.946%205.742zm4.125-2.4c2.45-.654%204.236-2.5%204.822-4.98.154-.65.197-5.87.197-23.533V37.995l-.46-.83c-.575-1.035-1.437-1.823-2.58-2.358-1.253-.586-2.884-.573-4.063.033-1.1.565-1.94%201.458-2.573%202.73-.312.627-.686%201.135-.94%201.276-.385.215-.491.203-1.332-.152-1.356-.573-3.24-.552-4.465.048a5.034%205.034%200%200%200-2.481%202.71c-.286.755-.34%201.158-.287%202.182.037.73.168%201.45.313%201.722.137.256.469.934.738%201.506%201.436%203.06%205.58%204.902%208.783%203.907%201.323-.41%202.31-1.084%203.589-2.45.873-.932%201.184-1.166%201.547-1.166%201.022%200%201.555.95%201.065%201.895-.467.902-2.43%202.684-3.677%203.338l-1.16.61.384.235c.21.13.985.84%201.718%201.58%201.654%201.664%202.427%203.034%202.59%204.59.13%201.222.042%201.315-1.088%201.146-.674-.1-.705-.132-1.45-1.462-1.532-2.74-3.818-4.537-7.111-5.588-1.925-.614-3.188-1.145-4.038-1.698-1.11-.72-2.576-2.292-3.161-3.388l-.517-.968-.651.1c-.995.152-2.542.96-3.076%201.608-.905%201.094-1.166%201.852-1.175%203.402-.01%201.605.247%202.34%201.223%203.498.902%201.07.724%201.738-.652%202.45-1.062.548-2.526%201.948-2.992%202.86-.784%201.533-.998%203.45-.568%205.096.534%202.046%201.665%203.403%203.627%204.35%201.71.827%201.77%201.01.98%203.035-.503%201.294-.51%203.643-.015%204.988%201.24%203.363%204.82%205.04%208.59%204.024a12.888%2012.888%200%200%200%202.375-.954c3.909-2.154%205.068-5.6%203.31-9.83-1.132-2.73-3.72-4.344-6.765-4.224-.837.033-.958-.004-1.297-.397-.476-.552-.474-1.065.005-1.62.366-.426.425-.44%201.845-.427%204.5.04%207.807%202.715%209.08%207.344.403%201.47.434%203.64.07%204.995-.728%202.72-2.954%205.28-5.853%206.734-.951.476-.96.578-.163%201.84.872%201.378%202.517%202.58%204.013%202.933.904.212%202.852.19%203.726-.043zm17.672%202.476c-2.923-.633-5.726-3.035-6.76-5.794-.826-2.203-.802-1.41-.758-25.613l.04-22.453.61-1.232c1.512-3.05%204.939-5.09%207.78-4.634%201.119.18%202.076.56%203.099%201.226.864.564%202.163%201.9%202.445%202.515.154.337.22.354.96.235.436-.07%201.322-.118%201.969-.105%204.174.08%207.7%204.046%207.313%208.22l-.098%201.046.51.105c1.982.41%204.257%202.25%205.22%204.218.783%201.596.99%203.02.66%204.537-.142.653-.442%201.552-.666%201.997l-.407.81.518.39c1.518%201.146%202.872%203.083%203.46%204.952.399%201.26.46%203.584.13%204.774-.58%202.08-2.194%204.35-3.926%205.518a85.5%2085.5%200%200%200-.763.518c-.027.02.075.448.225.953.406%201.356.38%203.597-.054%204.986-.902%202.876-3.158%205.2-6.124%206.305-.845.315-1.401.404-2.77.44l-1.712.046-.555%201.066c-.72%201.38-2.708%203.388-4.05%204.09-1.96%201.023-4.201%201.338-6.296.884zm4.878-2.85c1.88-.88%202.957-2.155%203.729-4.42.526-1.548.785-1.706%202.317-1.418%201.385.26%203.113.142%204.265-.293%201.759-.664%203.273-2.262%203.87-4.084.336-1.023.384-3.355.09-4.318l-.194-.64-2.158-.016c-2.26-.017-3.944-.265-5.658-.835-.892-.296-1.116-.313-2.145-.16-.632.094-1.535.315-2.006.49-1.918.717-3.663%202.476-4.367%204.402-.373%201.022-.753%201.39-1.434%201.39-.561%200-1.213-.633-1.213-1.177%200-.225.155-.774.343-1.22%201.156-2.73%203.426-4.927%206.034-5.837l.81-.283-.673-.868c-.946-1.223-1.412-2.09-1.888-3.514-.74-2.206-.734-5.714.009-6.456.473-.47%201.256-.49%201.736-.038.338.317.35.407.266%202.23-.068%201.5-.03%202.115.18%202.918.616%202.346%202.367%204.57%204.299%205.458%201.675.77%203.046%201.013%205.746%201.017%202.214.003%202.405-.02%203.257-.41%201.038-.476%202.43-1.783%202.922-2.746%201.037-2.03%201.036-4.61-.002-6.643-.455-.89-1.913-2.292-2.962-2.85-.474-.252-.948-.57-1.054-.703-.35-.45-.223-1.05.372-1.757.975-1.158%201.232-1.893%201.223-3.498-.01-1.55-.27-2.308-1.175-3.402-.532-.645-2.08-1.456-3.066-1.607l-.642-.098-.691%201.067c-.97%201.494-2.681%203.157-3.83%203.716-1.201.586-3.051.72-4.688.336-1.368-.32-3.62-1.365-3.845-1.785-.28-.522-.197-1.11.214-1.52.486-.487%201.028-.488%201.86-.006%201.726%201%204.075%201.322%205.362.738.853-.388%201.976-1.51%202.79-2.793%201.11-1.743%201.288-2.28%201.288-3.878%200-1.228-.057-1.528-.436-2.3a5.227%205.227%200%200%200-2.446-2.377c-1.05-.484-3.25-.474-4.285.018-.405.193-.83.35-.946.35-.431%200-.91-.51-1.361-1.452-1.191-2.483-3.54-3.678-5.92-3.012-1.661.466-3.251%201.998-3.666%203.536-.252.934-.123%2045.394.134%2046.306.672%202.386%202.387%204.13%204.73%204.813.44.128%201.306.188%202.289.16%201.383-.042%201.712-.11%202.616-.53z%22%20stroke=%22#000%22/%3E%3Ctext%20stroke-width=%221.05%22%20fill=%22#00f%22%20font-family=%22Arial%22%20style=%22line-height:1.25;-inkscape-font-specification:'Arial%20Bold'%22%20x=%22-.438%22%20y=%2232.083%22%20transform=%22scale(1.15054%20.86915)%22%20font-weight=%22700%22%20font-size=%2241.984%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctspan%20x=%22-.438%22%20y=%2232.083%22%20style=%22-inkscape-font-specification:'Arial%20Bold'%22%3EI2C%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:'Arial%20Bold'%22%20x=%22-.867%22%20y=%22132.347%22%20transform=%22scale(1.19282%20.83835)%22%20font-weight=%22700%22%20font-size=%2225.689%22%20letter-spacing=%220%22%20word-spacing=%220%22%20font-family=%22Arial%22%20fill=%22red%22%20stroke-width=%22.643%22%3E%3Ctspan%20x=%22-.867%22%20y=%22132.347%22%20style=%22-inkscape-font-specification:'Arial%20Bold'%22%3ERead%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:'Arial%20Bold'%22%20x=%22-.087%22%20y=%22175.465%22%20transform=%22scale(1.18094%20.84678)%22%20font-weight=%22700%22%20font-size=%2225.434%22%20letter-spacing=%220%22%20word-spacing=%220%22%20font-family=%22Arial%22%20fill=%22red%22%20stroke-width=%22.636%22%3E%3Ctspan%20x=%22-.087%22%20y=%22175.465%22%20style=%22-inkscape-font-specification:'Arial%20Bold'%22%3EWrite%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:'Arial%20Bold'%22%20x=%2223.689%22%20y=%22154.728%22%20transform=%22scale(1.19282%20.83835)%22%20font-weight=%22700%22%20font-size=%2225.689%22%20letter-spacing=%220%22%20word-spacing=%220%22%20font-family=%22Arial%22%20fill=%22#f60%22%20stroke-width=%22.643%22%3E%3Ctspan%20x=%2223.689%22%20y=%22154.728%22%20style=%22-inkscape-font-specification:'Arial%20Bold'%22%3E&%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "board": "alhambra-ii", + "graph": { + "blocks": [ + { + "id": "4de17236-2bd6-4226-8b46-73a1b20627c6", + "type": "basic.input", + "data": { + "name": "", + "virtual": true, + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "clock": true + }, + "position": { + "x": 440, + "y": 144 + } + }, + { + "id": "54bc7810-601b-438b-84fe-7c6ccfb0b1ac", + "type": "basic.inputLabel", + "data": { + "blockColor": "yellow", + "name": "clk", + "pins": [ + { + "index": "0", + "name": "", + "value": "" + } + ], + "virtual": true + }, + "position": { + "x": 2968, + "y": 144 + } + }, + { + "id": "e1eba2ec-135a-4d54-b07d-ca74864c7517", + "type": "basic.output", + "data": { + "name": "sda_test", + "virtual": true + }, + "position": { + "x": 2968, + "y": 296 + } + }, + { + "id": "acf5f905-8262-4e28-830d-15ba2d0b599f", + "type": "basic.outputLabel", + "data": { + "blockColor": "fuchsia", + "name": "sda_test", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 2472, + "y": 296 + } + }, + { + "id": "ddd6e425-039b-4704-9197-436dee4c94a0", + "type": "basic.outputLabel", + "data": { + "blockColor": "olivedrab", + "name": "wr", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 1584, + "y": 296 + } + }, + { + "id": "4a8226f0-0861-4f61-8026-3a760afcae3f", + "type": "basic.inputLabel", + "data": { + "blockColor": "lightgray", + "name": "fq", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 1376, + "y": 304 + } + }, + { + "id": "4037b68b-6615-42d5-9d2a-00fce8e77f0d", + "type": "basic.outputLabel", + "data": { + "blockColor": "fuchsia", + "name": "hold", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 944, + "y": 320 + } + }, + { + "id": "98843c67-e0c7-4fa6-83e2-541957f2bb84", + "type": "basic.output", + "data": { + "name": "scl_test", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 2968, + "y": 344 + } + }, + { + "id": "1f349d8f-03af-4194-9010-0118499c8dec", + "type": "basic.outputLabel", + "data": { + "blockColor": "fuchsia", + "name": "scl_test", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 2472, + "y": 344 + } + }, + { + "id": "9e29102c-bdc7-4b28-8407-66ce468dcee8", + "type": "basic.input", + "data": { + "name": "d", + "virtual": true, + "range": "[7:0]", + "pins": [ + { + "index": "7", + "name": "NULL", + "value": "NULL" + }, + { + "index": "6", + "name": "NULL", + "value": "NULL" + }, + { + "index": "5", + "name": "NULL", + "value": "NULL" + }, + { + "index": "4", + "name": "NULL", + "value": "NULL" + }, + { + "index": "3", + "name": "NULL", + "value": "NULL" + }, + { + "index": "2", + "name": "NULL", + "value": "NULL" + }, + { + "index": "1", + "name": "NULL", + "value": "NULL" + }, + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "clock": false + }, + "position": { + "x": 448, + "y": 456 + } + }, + { + "id": "8e724fcf-2c8f-48ba-91c0-36a764e4c830", + "type": "basic.output", + "data": { + "name": "rw_test", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 2968, + "y": 472 + } + }, + { + "id": "86f31e6a-12b5-44e9-b7f2-bf5c8e950f17", + "type": "basic.output", + "data": { + "name": "sdata", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 2968, + "y": 512 + } + }, + { + "id": "6f2956f2-156d-44a1-960b-364ebc0333f8", + "type": "basic.inputLabel", + "data": { + "blockColor": "fuchsia", + "name": "sda_test", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 2968, + "y": 552 + } + }, + { + "id": "0ee095fe-f99f-417d-9dbe-b56034c55fb2", + "type": "basic.outputLabel", + "data": { + "name": "sel", + "range": "[1:0]", + "oldBlockColor": "fuchsia", + "blockColor": "springgreen", + "size": 2, + "virtual": true + }, + "position": { + "x": 1792, + "y": 576 + } + }, + { + "id": "396aa3b6-a380-43ce-aa0a-857411996213", + "type": "basic.output", + "data": { + "name": "shift", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 2968, + "y": 608 + } + }, + { + "id": "fe87b2fb-b9bb-4dd6-9048-1e8781d13df9", + "type": "basic.outputLabel", + "data": { + "blockColor": "yellow", + "name": "clk", + "oldBlockColor": "yellow", + "virtual": true + }, + "position": { + "x": 448, + "y": 608 + } + }, + { + "id": "a37f224d-8152-4876-a864-42ed09950ef2", + "type": "basic.outputLabel", + "data": { + "blockColor": "fuchsia", + "name": "scl_shift", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 1792, + "y": 640 + } + }, + { + "id": "e727dfbe-0a00-4b2f-80fb-9cf53db2e434", + "type": "basic.outputLabel", + "data": { + "blockColor": "yellow", + "name": "clk", + "oldBlockColor": "yellow", + "virtual": true + }, + "position": { + "x": 1792, + "y": 672 + } + }, + { + "id": "ec7e8050-cc0c-4101-bc2e-3501416ea3dc", + "type": "basic.inputLabel", + "data": { + "name": "sel", + "range": "[1:0]", + "pins": [ + { + "index": "1", + "name": "", + "value": "" + }, + { + "index": "0", + "name": "", + "value": "" + } + ], + "virtual": true, + "blockColor": "springgreen" + }, + "position": { + "x": 2968, + "y": 680 + } + }, + { + "id": "928a8622-9680-4589-8cbc-320038779b65", + "type": "basic.outputLabel", + "data": { + "blockColor": "lightgray", + "name": "fq", + "oldBlockColor": "indianred", + "virtual": true + }, + "position": { + "x": 944, + "y": 696 + } + }, + { + "id": "c0905169-37e4-4c29-9375-d0cbac9239e1", + "type": "basic.input", + "data": { + "name": "start", + "virtual": true, + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "clock": false + }, + "position": { + "x": 448, + "y": 728 + } + }, + { + "id": "56ff916e-da54-4252-b7aa-962d610e0fd0", + "type": "basic.outputLabel", + "data": { + "blockColor": "darkorange", + "name": "end", + "oldBlockColor": "fuchsia", + "virtual": true + }, + "position": { + "x": 2472, + "y": 792 + } + }, + { + "id": "b41e240b-57b7-45a4-a3c5-920bd3a4f968", + "type": "basic.output", + "data": { + "name": "done", + "virtual": true + }, + "position": { + "x": 2968, + "y": 792 + } + }, + { + "id": "e63ee61e-5a33-4647-a17e-3809a3a5ad1b", + "type": "basic.inputLabel", + "data": { + "blockColor": "fuchsia", + "name": "start", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 752, + "y": 792 + } + }, + { + "id": "17c9ae37-d89d-4d5a-8044-755662ccad97", + "type": "basic.outputLabel", + "data": { + "blockColor": "red", + "name": "rst", + "oldBlockColor": "red", + "virtual": true + }, + "position": { + "x": 1144, + "y": 808 + } + }, + { + "id": "88a01632-9b78-4ea9-9b19-4311c1ec92ca", + "type": "basic.inputLabel", + "data": { + "blockColor": "olivedrab", + "name": "wr", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "oldBlockColor": "olivedrab" + }, + "position": { + "x": 2968, + "y": 856 + } + }, + { + "id": "689be50d-5acb-4f9c-b41a-ecea9ddae103", + "type": "basic.outputLabel", + "data": { + "blockColor": "fuchsia", + "name": "start", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 2016, + "y": 880 + } + }, + { + "id": "5338a294-ba59-44fa-8642-ad8aaf7025a4", + "type": "basic.outputLabel", + "data": { + "blockColor": "greenyellow", + "name": "RW", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "oldBlockColor": "darkorange" + }, + "position": { + "x": 2272, + "y": 920 + } + }, + { + "id": "313a7e97-f6cd-455e-b056-b55632092f7b", + "type": "basic.inputLabel", + "data": { + "blockColor": "darkorange", + "name": "end", + "pins": [ + { + "index": "0", + "name": "", + "value": "" + } + ], + "virtual": true, + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 1792, + "y": 920 + } + }, + { + "id": "4868a582-148d-4510-a223-b11bbf8ac42f", + "type": "basic.input", + "data": { + "name": "stop", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "clock": false + }, + "position": { + "x": 448, + "y": 960 + } + }, + { + "id": "9a83f916-b044-40f7-9d7d-c45b108b1d59", + "type": "basic.output", + "data": { + "name": "next", + "virtual": true + }, + "position": { + "x": 2968, + "y": 968 + } + }, + { + "id": "917f6db0-6c3c-4eb2-83bf-985467b0ab41", + "type": "basic.inputLabel", + "data": { + "blockColor": "red", + "name": "rst", + "pins": [ + { + "index": "0", + "name": "", + "value": "" + } + ], + "virtual": true, + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 2272, + "y": 968 + } + }, + { + "id": "c3901bd8-dd31-401b-b90c-931acd97960b", + "type": "basic.outputLabel", + "data": { + "blockColor": "lightgray", + "name": "fq", + "virtual": true + }, + "position": { + "x": 1792, + "y": 992 + } + }, + { + "id": "2245a729-9992-4b15-9ac5-b923235680b3", + "type": "basic.outputLabel", + "data": { + "blockColor": "yellow", + "name": "clk", + "oldBlockColor": "yellow", + "virtual": true + }, + "position": { + "x": 2272, + "y": 1016 + } + }, + { + "id": "d8d9425f-381a-4850-b961-b16858e08ea2", + "type": "basic.output", + "data": { + "name": "sda", + "virtual": true + }, + "position": { + "x": 2968, + "y": 1072 + } + }, + { + "id": "1454227a-43d8-4994-8a3a-82a0ca663303", + "type": "basic.output", + "data": { + "name": "scl", + "virtual": true + }, + "position": { + "x": 2968, + "y": 1144 + } + }, + { + "id": "15d0b086-6b89-4489-9750-f4887b5a6b74", + "type": "basic.outputLabel", + "data": { + "name": "sel", + "range": "[1:0]", + "blockColor": "springgreen", + "size": 2, + "virtual": true + }, + "position": { + "x": 1792, + "y": 1152 + } + }, + { + "id": "803f0643-ffcf-4a19-bc72-424be0056ad0", + "type": "basic.input", + "data": { + "name": "RW", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "clock": false + }, + "position": { + "x": 448, + "y": 1176 + } + }, + { + "id": "97291f1d-7207-43b4-912e-fc9dd099bc37", + "type": "basic.inputLabel", + "data": { + "blockColor": "greenyellow", + "name": "RW", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "oldBlockColor": "slateblue" + }, + "position": { + "x": 752, + "y": 1176 + } + }, + { + "id": "92ff0749-052d-403f-83cd-fde6eb3bb3cb", + "type": "basic.inputLabel", + "data": { + "blockColor": "fuchsia", + "name": "scl_test", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 2968, + "y": 1216 + } + }, + { + "id": "e3150378-2a08-48ec-99b4-843f77d90eed", + "type": "basic.inputLabel", + "data": { + "blockColor": "fuchsia", + "name": "scl_shift", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "oldBlockColor": "fuchsia" + }, + "position": { + "x": 2472, + "y": 1264 + } + }, + { + "id": "eac204d5-eff2-43b2-90c3-547f8a27ce85", + "type": "basic.input", + "data": { + "name": "nack", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "clock": false + }, + "position": { + "x": 448, + "y": 1272 + } + }, + { + "id": "381fd431-f0e1-4481-907b-248c94aa573d", + "type": "basic.inputLabel", + "data": { + "blockColor": "fuchsia", + "name": "hold", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 2968, + "y": 1288 + } + }, + { + "id": "524107ba-b1fe-420c-92e6-a3e191d57f3b", + "type": "basic.outputLabel", + "data": { + "blockColor": "yellow", + "name": "clk", + "oldBlockColor": "yellow", + "virtual": true + }, + "position": { + "x": 1376, + "y": 1312 + } + }, + { + "id": "4ca26524-fc46-4e39-b5a6-960adfb02b48", + "type": "basic.constant", + "data": { + "name": "Hz", + "value": "100_000", + "local": false + }, + "position": { + "x": 1144, + "y": 200 + } + }, + { + "id": "03295ab4-c1f1-4c75-b4b9-7c6c2316ce4a", + "type": "basic.constant", + "data": { + "name": "max", + "value": "9", + "local": true + }, + "position": { + "x": 1584, + "y": 1224 + } + }, + { + "id": "21c35f4a-8baf-495c-a097-8f80093b6fbf", + "type": "basic.constant", + "data": { + "name": "eight", + "value": "8", + "local": true + }, + "position": { + "x": 1792, + "y": 1224 + } + }, + { + "id": "166bf8df-1004-4b13-8dcd-e7c3119ce0a1", + "type": "725b7e2cb9666b5ed3183537d9c898f096dab82a", + "position": { + "x": 1792, + "y": 504 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "f142edec-fc11-4d66-bfad-2ec10b401293", + "type": "725b7e2cb9666b5ed3183537d9c898f096dab82a", + "position": { + "x": 1792, + "y": 1064 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "77d75ca1-b198-43f3-964f-4afc199bb13c", + "type": "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542", + "position": { + "x": 1792, + "y": 376 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "3bf62d7b-0192-44f0-abe6-7773adf50004", + "type": "e79148d23652be6d5149f8f6881f7f47bd958497", + "position": { + "x": 2472, + "y": 688 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "69cb8815-c65b-4782-8302-d26de5cacd06", + "type": "2ddbb26d71094c8d654eb6b642054e1d9f5ba734", + "position": { + "x": 1584, + "y": 1328 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "25f4d001-6984-4f5d-aa45-ea857f6daf77", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "position": { + "x": 2272, + "y": 736 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "06f31bd9-a018-4347-92a9-ccabb58bc101", + "type": "e33ecba0f1fbe8ecdf043e2ed5d88a553fff19e8", + "position": { + "x": 2016, + "y": 424 + }, + "size": { + "width": 96, + "height": 160 + } + }, + { + "id": "95956d9b-2396-48bb-9dcd-607a3cd254fb", + "type": "e33ecba0f1fbe8ecdf043e2ed5d88a553fff19e8", + "position": { + "x": 2016, + "y": 1096 + }, + "size": { + "width": 96, + "height": 160 + } + }, + { + "id": "a9c7c14f-2d02-4bcd-94b9-6e9e6f175145", + "type": "d7e6ff61e136e0120db6aaabf8b34ea6fd14c159", + "position": { + "x": 2272, + "y": 456 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "c9de0dcd-9539-4aa1-b8d8-30e19ace13e3", + "type": "d976e4d8f32b931eedc3e12fe125a464cbb9238d", + "position": { + "x": 1376, + "y": 504 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "892037e4-b713-4f22-b260-44c1e79aeb7e", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 1792, + "y": 440 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "5c4f6e0b-26dc-4320-9a58-67b8df6f4ff8", + "type": "2cc41a5382c79d4e650316c0bbb9c0ffee453add", + "position": { + "x": 1144, + "y": 680 + }, + "size": { + "width": 96, + "height": 128 + } + }, + { + "id": "7d93597c-6d34-414e-8596-eb936af89ddb", + "type": "b8135e59508d20a0f5ed1e8dfb123d695afe65b9", + "position": { + "x": 1376, + "y": 680 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "c937d31e-0145-4993-9e5d-b02415c2750b", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 2272, + "y": 296 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "40d105fc-5855-470e-b441-14767470a5a9", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 2272, + "y": 840 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "3fc6d02e-2613-4f6b-8a7e-7eca71951d32", + "type": "0b4097a1c6ac2a5e6e6f03e1930cb2e46d222f05", + "position": { + "x": 1792, + "y": 1320 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "c9308253-7d03-49df-8323-788cdadcb8a5", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 2472, + "y": 608 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "4bcf0819-a351-4dca-9c87-f7648a2f4bf4", + "type": "d7e6ff61e136e0120db6aaabf8b34ea6fd14c159", + "position": { + "x": 2472, + "y": 1160 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "a85bb61a-c18b-4602-90a7-8fac14232cd0", + "type": "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542", + "position": { + "x": 2272, + "y": 1216 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "c2def9b7-70ba-4df6-9319-6afd359fc33b", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 2272, + "y": 1144 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "2bb660d1-82b9-490c-881c-22806a75d950", + "type": "53847c98bfef0fe28fbef1f4f65042911f361c44", + "position": { + "x": 1584, + "y": 408 + }, + "size": { + "width": 96, + "height": 160 + } + }, + { + "id": "6375bc2d-fb0b-45c1-807d-7e4db91cb218", + "type": "1420082f26891895ac20bd3f92bae423a80f7669", + "position": { + "x": 2472, + "y": 856 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "a19090a3-0754-40ee-b8ff-b7b853623505", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 2648, + "y": 1240 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "e0badec5-0a64-43db-8101-73c493ff5b57", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 2800, + "y": 1288 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "2c05c075-2971-4df4-9af4-dbee695394b8", + "type": "7b1b18c562dd91a11b875e640993a8c004d75533", + "position": { + "x": 1144, + "y": 304 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "efdaa97f-c65b-443e-80d6-a02b11468e6c", + "type": "b70dd9c39fe3c51faff4233d2dde462fc53c7e38", + "position": { + "x": 2472, + "y": 936 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "c4e3df0e-3048-4c22-94b5-f72e08286531", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 2472, + "y": 1032 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "44b23d7d-5267-465c-8ca4-acd2838186bf", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "position": { + "x": 2272, + "y": 1080 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "30b00924-6fe1-4151-9c98-7e7ba357189b", + "type": "8e2728307baccbf26c01cdb87bcfba8ca64a435c", + "position": { + "x": 2016, + "y": 808 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "baa4f214-f5f5-4087-893e-fc92ec8403c9", + "type": "7eacdff4ce248b009935725889c8ae3339817d76", + "position": { + "x": 2016, + "y": 624 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "09e898a7-18c1-41e1-ab86-199e14503bc6", + "type": "fae75666c16ceda511dc194c49e012b7019d8032", + "position": { + "x": 2016, + "y": 944 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "dcfc3587-80ee-49f5-b55c-b219d1d7d92e", + "type": "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542", + "position": { + "x": 1376, + "y": 1240 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "1ff4b383-47b7-4861-95bb-bb31b52d33e3", + "type": "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542", + "position": { + "x": 2272, + "y": 576 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "49951405-46f1-45e8-814d-3aaf6e1c279f", + "type": "basic.info", + "data": { + "info": "start tick", + "readonly": true + }, + "position": { + "x": 464, + "y": 704 + }, + "size": { + "width": 64, + "height": 32 + } + }, + { + "id": "acc3a8e0-b164-4b77-8f2c-247526862d4c", + "type": "basic.info", + "data": { + "info": "Sending the first byte will produce automatically the I2C protocol \"start\" signal, we send the address and data we need, and a tick the \"stop\" input pin will produce the I2C protocol \"stop\" signal.", + "readonly": true + }, + "position": { + "x": 448, + "y": 808 + }, + "size": { + "width": 264, + "height": 32 + } + }, + { + "id": "e264709a-737b-45e1-b0f6-3635a81493e4", + "type": "basic.info", + "data": { + "info": "stop tick", + "readonly": true + }, + "position": { + "x": 464, + "y": 936 + }, + "size": { + "width": 64, + "height": 32 + } + }, + { + "id": "e5bfd82d-ecb7-4c30-aaf2-63f43c4bdf8e", + "type": "basic.info", + "data": { + "info": "RW = 1 Read \nRW = 0 Write", + "readonly": true + }, + "position": { + "x": 448, + "y": 1136 + }, + "size": { + "width": 104, + "height": 32 + } + }, + { + "id": "46486ec1-6908-4673-8ff3-de0cd32c5b45", + "type": "basic.info", + "data": { + "info": "The \"nack\" input pin normally has to be at 0. Only when we do a reading and it is the last byte we read, it will be then when nack has to be 1. There are sensors and peripherals that will accept that it is always 0, but others require strict adherence to the I2C protocol.", + "readonly": true + }, + "position": { + "x": 928, + "y": 1200 + }, + "size": { + "width": 352, + "height": 32 + } + }, + { + "id": "8238f17f-b1a0-465f-bcc8-7d8fe02f4e94", + "type": "basic.info", + "data": { + "info": "It will produce two ticks in the counter for the I2C protocol START sequence to occur. After these two cycles there will be no more for this output.", + "readonly": true + }, + "position": { + "x": 1376, + "y": 784 + }, + "size": { + "width": 160, + "height": 32 + } + }, + { + "id": "dae835e1-c0d9-4785-8418-5627105c8295", + "type": "basic.info", + "data": { + "info": "After the 2 ticks in the counter it will start to mark this pin to shift the bits in the shift register.", + "readonly": true + }, + "position": { + "x": 1544, + "y": 608 + }, + "size": { + "width": 200, + "height": 32 + } + }, + { + "id": "b219248c-9e31-4b2d-b6b0-206d2b35f7a6", + "type": "basic.info", + "data": { + "info": "The \"start\" signal starts at one cycle low of the input frequency, and It is ensured that it is started at the beginning of a cycle of the I2C frequency.", + "readonly": true + }, + "position": { + "x": 936, + "y": 552 + }, + "size": { + "width": 320, + "height": 32 + } + }, + { + "id": "0497c67f-258c-4ccc-9173-16f510c5bd83", + "type": "basic.info", + "data": { + "info": "Frequency in Hz of the I2C", + "readonly": true + }, + "position": { + "x": 1376, + "y": 272 + }, + "size": { + "width": 168, + "height": 32 + } + }, + { + "id": "7f0ad177-608b-4d99-8341-faffbdd94204", + "type": "basic.info", + "data": { + "info": "Load first, then shift", + "readonly": true + }, + "position": { + "x": 1384, + "y": 416 + }, + "size": { + "width": 128, + "height": 32 + } + }, + { + "id": "ad434e81-9be2-4189-a75b-bbc3daf00155", + "type": "basic.info", + "data": { + "info": "Sequence start, send/receive and stop.", + "readonly": true + }, + "position": { + "x": 1952, + "y": 360 + }, + "size": { + "width": 240, + "height": 32 + } + }, + { + "id": "10d69e3d-2fe8-4476-899c-e98fa79bccd3", + "type": "basic.info", + "data": { + "info": "Sequence start, send/receive and stop.", + "readonly": true + }, + "position": { + "x": 1944, + "y": 1256 + }, + "size": { + "width": 240, + "height": 32 + } + }, + { + "id": "08016e50-cad6-48bd-96e6-7f7b4fc5184a", + "type": "basic.info", + "data": { + "info": "The accountant decides what has to happen at each moment.", + "readonly": true + }, + "position": { + "x": 2656, + "y": 736 + }, + "size": { + "width": 200, + "height": 32 + } + }, + { + "id": "99f9a1b8-3922-42d3-a04b-7473d8791a90", + "type": "basic.info", + "data": { + "info": "SDA sequence", + "readonly": true + }, + "position": { + "x": 2016, + "y": 392 + }, + "size": { + "width": 96, + "height": 32 + } + }, + { + "id": "42e41ef6-410d-4200-b7c5-16100fa28bab", + "type": "basic.info", + "data": { + "info": "SCL sequence", + "readonly": true + }, + "position": { + "x": 2008, + "y": 1280 + }, + "size": { + "width": 96, + "height": 32 + } + }, + { + "id": "d691684e-fe89-4018-a827-a79b206ac52d", + "type": "basic.info", + "data": { + "info": "For testing with PulseView only", + "readonly": true + }, + "position": { + "x": 2688, + "y": 296 + }, + "size": { + "width": 200, + "height": 32 + } + }, + { + "id": "874dc6ca-91a0-4b95-b6ad-f23817a645e4", + "type": "basic.info", + "data": { + "info": "For testing with PulseView only", + "readonly": true + }, + "position": { + "x": 2688, + "y": 344 + }, + "size": { + "width": 200, + "height": 32 + } + }, + { + "id": "a7ba228f-79ac-4d10-b4b7-bae324f0cc21", + "type": "basic.info", + "data": { + "info": "For testing with PulseView only", + "readonly": true + }, + "position": { + "x": 2696, + "y": 472 + }, + "size": { + "width": 200, + "height": 32 + } + }, + { + "id": "cb6babd9-14ea-431a-908b-cb26870047a9", + "type": "basic.info", + "data": { + "info": "Serial bits of a read", + "readonly": true + }, + "position": { + "x": 2744, + "y": 552 + }, + "size": { + "width": 120, + "height": 32 + } + }, + { + "id": "22db6832-41a9-469e-be7f-f158877bdbb3", + "type": "basic.info", + "data": { + "info": "ticks of a reading", + "readonly": true + }, + "position": { + "x": 2744, + "y": 608 + }, + "size": { + "width": 112, + "height": 32 + } + }, + { + "id": "a97770dc-6dd7-4cd2-9e64-2bd0134d2a33", + "type": "basic.info", + "data": { + "info": "done tick", + "readonly": true + }, + "position": { + "x": 2984, + "y": 776 + }, + "size": { + "width": 64, + "height": 32 + } + }, + { + "id": "d6279318-bd66-4b1e-a8ad-2afe977afd23", + "type": "basic.info", + "data": { + "info": "Next tick", + "readonly": true + }, + "position": { + "x": 2984, + "y": 952 + }, + "size": { + "width": 64, + "height": 32 + } + }, + { + "id": "26f102b3-4821-4ca0-9ed3-cd440b4c2094", + "type": "basic.info", + "data": { + "info": "SDA pin", + "readonly": true + }, + "position": { + "x": 2992, + "y": 1056 + }, + "size": { + "width": 64, + "height": 32 + } + }, + { + "id": "2bb4b22e-241b-488f-a40b-452d1cebcd07", + "type": "basic.info", + "data": { + "info": "SCL pin", + "readonly": true + }, + "position": { + "x": 2992, + "y": 1128 + }, + "size": { + "width": 64, + "height": 32 + } + }, + { + "id": "6c6de663-598f-46ad-baec-0e3ba14da186", + "type": "basic.info", + "data": { + "info": "**The read bits will be output by \"sdata\" pin with their corresponding tick by \"shift\" pin. Add the necessary shift registers on the outside.**", + "readonly": true + }, + "position": { + "x": 2664, + "y": 944 + }, + "size": { + "width": 248, + "height": 40 + } + }, + { + "id": "482c911e-6754-4922-a9d8-ef089410030b", + "type": "basic.info", + "data": { + "info": "8-bits data input.", + "readonly": true + }, + "position": { + "x": 448, + "y": 424 + }, + "size": { + "width": 112, + "height": 32 + } + } + ], + "wires": [ + { + "source": { + "block": "4de17236-2bd6-4226-8b46-73a1b20627c6", + "port": "out" + }, + "target": { + "block": "54bc7810-601b-438b-84fe-7c6ccfb0b1ac", + "port": "inlabel" + }, + "vertices": [] + }, + { + "source": { + "block": "acf5f905-8262-4e28-830d-15ba2d0b599f", + "port": "outlabel" + }, + "target": { + "block": "e1eba2ec-135a-4d54-b07d-ca74864c7517", + "port": "in" + }, + "vertices": [ + { + "x": 2792, + "y": 328 + } + ] + }, + { + "source": { + "block": "1f349d8f-03af-4194-9010-0118499c8dec", + "port": "outlabel" + }, + "target": { + "block": "98843c67-e0c7-4fa6-83e2-541957f2bb84", + "port": "in" + }, + "vertices": [ + { + "x": 2792, + "y": 376 + } + ] + }, + { + "source": { + "block": "56ff916e-da54-4252-b7aa-962d610e0fd0", + "port": "outlabel" + }, + "target": { + "block": "b41e240b-57b7-45a4-a3c5-920bd3a4f968", + "port": "in" + }, + "vertices": [] + }, + { + "source": { + "block": "c0905169-37e4-4c29-9375-d0cbac9239e1", + "port": "out" + }, + "target": { + "block": "e63ee61e-5a33-4647-a17e-3809a3a5ad1b", + "port": "inlabel" + }, + "vertices": [] + }, + { + "source": { + "block": "4868a582-148d-4510-a223-b11bbf8ac42f", + "port": "out" + }, + "target": { + "block": "313a7e97-f6cd-455e-b056-b55632092f7b", + "port": "inlabel" + }, + "vertices": [] + }, + { + "source": { + "block": "803f0643-ffcf-4a19-bc72-424be0056ad0", + "port": "out" + }, + "target": { + "block": "97291f1d-7207-43b4-912e-fc9dd099bc37", + "port": "inlabel" + }, + "vertices": [] + }, + { + "source": { + "block": "3bf62d7b-0192-44f0-abe6-7773adf50004", + "port": "7a982450-c842-4aa2-8e77-43cc628266e0" + }, + "target": { + "block": "ec7e8050-cc0c-4101-bc2e-3501416ea3dc", + "port": "inlabel" + }, + "vertices": [], + "size": 2 + }, + { + "source": { + "block": "e727dfbe-0a00-4b2f-80fb-9cf53db2e434", + "port": "outlabel" + }, + "target": { + "block": "3bf62d7b-0192-44f0-abe6-7773adf50004", + "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" + }, + "vertices": [] + }, + { + "source": { + "block": "69cb8815-c65b-4782-8302-d26de5cacd06", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + }, + "target": { + "block": "9a83f916-b044-40f7-9d7d-c45b108b1d59", + "port": "in" + }, + "vertices": [ + { + "x": 2936, + "y": 1032 + } + ] + }, + { + "source": { + "block": "524107ba-b1fe-420c-92e6-a3e191d57f3b", + "port": "outlabel" + }, + "target": { + "block": "69cb8815-c65b-4782-8302-d26de5cacd06", + "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" + }, + "vertices": [] + }, + { + "source": { + "block": "03295ab4-c1f1-4c75-b4b9-7c6c2316ce4a", + "port": "constant-out" + }, + "target": { + "block": "69cb8815-c65b-4782-8302-d26de5cacd06", + "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" + }, + "vertices": [] + }, + { + "source": { + "block": "25f4d001-6984-4f5d-aa45-ea857f6daf77", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "3bf62d7b-0192-44f0-abe6-7773adf50004", + "port": "26aba23f-8567-4e9b-bd45-c26724030f33" + }, + "vertices": [] + }, + { + "source": { + "block": "0ee095fe-f99f-417d-9dbe-b56034c55fb2", + "port": "outlabel" + }, + "target": { + "block": "06f31bd9-a018-4347-92a9-ccabb58bc101", + "port": "94142d6d-263f-4f11-9418-5578d56bcbb1" + }, + "vertices": [ + { + "x": 1912, + "y": 592 + } + ], + "size": 2 + }, + { + "source": { + "block": "166bf8df-1004-4b13-8dcd-e7c3119ce0a1", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "06f31bd9-a018-4347-92a9-ccabb58bc101", + "port": "db089906-4326-4b59-8aa5-ebb61116a4cd" + }, + "vertices": [] + }, + { + "source": { + "block": "77d75ca1-b198-43f3-964f-4afc199bb13c", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "06f31bd9-a018-4347-92a9-ccabb58bc101", + "port": "5898179a-7390-429b-ac3c-b7a0df673610" + }, + "vertices": [] + }, + { + "source": { + "block": "77d75ca1-b198-43f3-964f-4afc199bb13c", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "06f31bd9-a018-4347-92a9-ccabb58bc101", + "port": "fa311466-9b3b-455f-9a73-efb56fcc06d2" + }, + "vertices": [] + }, + { + "source": { + "block": "95956d9b-2396-48bb-9dcd-607a3cd254fb", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" + }, + "target": { + "block": "e3150378-2a08-48ec-99b4-843f77d90eed", + "port": "inlabel" + }, + "vertices": [ + { + "x": 2232, + "y": 1296 + } + ] + }, + { + "source": { + "block": "15d0b086-6b89-4489-9750-f4887b5a6b74", + "port": "outlabel" + }, + "target": { + "block": "95956d9b-2396-48bb-9dcd-607a3cd254fb", + "port": "94142d6d-263f-4f11-9418-5578d56bcbb1" + }, + "vertices": [ + { + "x": 1920, + "y": 1216 + } + ], + "size": 2 + }, + { + "source": { + "block": "f142edec-fc11-4d66-bfad-2ec10b401293", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "95956d9b-2396-48bb-9dcd-607a3cd254fb", + "port": "db089906-4326-4b59-8aa5-ebb61116a4cd" + }, + "vertices": [] + }, + { + "source": { + "block": "f142edec-fc11-4d66-bfad-2ec10b401293", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "95956d9b-2396-48bb-9dcd-607a3cd254fb", + "port": "5898179a-7390-429b-ac3c-b7a0df673610" + }, + "vertices": [] + }, + { + "source": { + "block": "f142edec-fc11-4d66-bfad-2ec10b401293", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "95956d9b-2396-48bb-9dcd-607a3cd254fb", + "port": "fa311466-9b3b-455f-9a73-efb56fcc06d2" + }, + "vertices": [] + }, + { + "source": { + "block": "a9c7c14f-2d02-4bcd-94b9-6e9e6f175145", + "port": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058" + }, + "target": { + "block": "6f2956f2-156d-44a1-960b-364ebc0333f8", + "port": "inlabel" + }, + "vertices": [ + { + "x": 2392, + "y": 552 + } + ] + }, + { + "source": { + "block": "a9c7c14f-2d02-4bcd-94b9-6e9e6f175145", + "port": "6459ba21-608e-4f77-8235-c8c1b08ba775" + }, + "target": { + "block": "d8d9425f-381a-4850-b961-b16858e08ea2", + "port": "in" + }, + "vertices": [ + { + "x": 2632, + "y": 808 + } + ] + }, + { + "source": { + "block": "a9c7c14f-2d02-4bcd-94b9-6e9e6f175145", + "port": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058" + }, + "target": { + "block": "86f31e6a-12b5-44e9-b7f2-bf5c8e950f17", + "port": "in" + }, + "vertices": [ + { + "x": 2392, + "y": 544 + }, + { + "x": 2808, + "y": 584 + } + ] + }, + { + "source": { + "block": "ddd6e425-039b-4704-9197-436dee4c94a0", + "port": "outlabel" + }, + "target": { + "block": "a9c7c14f-2d02-4bcd-94b9-6e9e6f175145", + "port": "f96a1baf-fc8b-4c25-b132-12552605743f" + }, + "vertices": [ + { + "x": 2224, + "y": 384 + } + ] + }, + { + "source": { + "block": "06f31bd9-a018-4347-92a9-ccabb58bc101", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" + }, + "target": { + "block": "a9c7c14f-2d02-4bcd-94b9-6e9e6f175145", + "port": "04fdb7a7-2740-4ff1-ad26-56407ef5b958" + }, + "vertices": [] + }, + { + "source": { + "block": "4de17236-2bd6-4226-8b46-73a1b20627c6", + "port": "out" + }, + "target": { + "block": "c9de0dcd-9539-4aa1-b8d8-30e19ace13e3", + "port": "039b063c-fded-4d25-87f0-5b4030b7485e" + }, + "vertices": [] + }, + { + "source": { + "block": "892037e4-b713-4f22-b260-44c1e79aeb7e", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "06f31bd9-a018-4347-92a9-ccabb58bc101", + "port": "6ff164c2-5a24-45ee-b357-7b83df4dbbec" + }, + "vertices": [] + }, + { + "source": { + "block": "ddd6e425-039b-4704-9197-436dee4c94a0", + "port": "outlabel" + }, + "target": { + "block": "892037e4-b713-4f22-b260-44c1e79aeb7e", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": 1768, + "y": 376 + } + ] + }, + { + "source": { + "block": "5c4f6e0b-26dc-4320-9a58-67b8df6f4ff8", + "port": "420956ba-1684-4e55-b6dc-3cda190e7fc3" + }, + "target": { + "block": "c9de0dcd-9539-4aa1-b8d8-30e19ace13e3", + "port": "7a49a58e-e51d-43b5-bba9-f1732fb448ca" + }, + "vertices": [ + { + "x": 1288, + "y": 656 + } + ] + }, + { + "source": { + "block": "5c4f6e0b-26dc-4320-9a58-67b8df6f4ff8", + "port": "95d3bdd3-b557-46bc-a467-783f9e297504" + }, + "target": { + "block": "95956d9b-2396-48bb-9dcd-607a3cd254fb", + "port": "6ff164c2-5a24-45ee-b357-7b83df4dbbec" + }, + "vertices": [ + { + "x": 1288, + "y": 1040 + } + ] + }, + { + "source": { + "block": "928a8622-9680-4589-8cbc-320038779b65", + "port": "outlabel" + }, + "target": { + "block": "5c4f6e0b-26dc-4320-9a58-67b8df6f4ff8", + "port": "bcef1c12-a59c-48f2-a462-320d500235a9" + }, + "vertices": [] + }, + { + "source": { + "block": "fe87b2fb-b9bb-4dd6-9048-1e8781d13df9", + "port": "outlabel" + }, + "target": { + "block": "5c4f6e0b-26dc-4320-9a58-67b8df6f4ff8", + "port": "7f0c5ba5-d35f-42f2-b75f-01659f5c74d6" + }, + "vertices": [] + }, + { + "source": { + "block": "c0905169-37e4-4c29-9375-d0cbac9239e1", + "port": "out" + }, + "target": { + "block": "5c4f6e0b-26dc-4320-9a58-67b8df6f4ff8", + "port": "11029c6c-1062-49a6-8f7a-8185e00ec776" + }, + "vertices": [ + { + "x": 992, + "y": 760 + } + ] + }, + { + "source": { + "block": "69cb8815-c65b-4782-8302-d26de5cacd06", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + }, + "target": { + "block": "5c4f6e0b-26dc-4320-9a58-67b8df6f4ff8", + "port": "02212078-e676-42fd-9b74-e4444529e1d2" + }, + "vertices": [ + { + "x": 1040, + "y": 936 + } + ] + }, + { + "source": { + "block": "7d93597c-6d34-414e-8596-eb936af89ddb", + "port": "8f348e4f-94ee-47ad-abeb-6eaf5e71c3f7" + }, + "target": { + "block": "25f4d001-6984-4f5d-aa45-ea857f6daf77", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "7d93597c-6d34-414e-8596-eb936af89ddb", + "port": "64deaccd-9457-4a20-b2b1-288e4de4e10d" + }, + "target": { + "block": "c9de0dcd-9539-4aa1-b8d8-30e19ace13e3", + "port": "1c6df57e-a2ac-4f8f-bae8-8cda9faada90" + }, + "vertices": [ + { + "x": 1432, + "y": 640 + } + ] + }, + { + "source": { + "block": "7d93597c-6d34-414e-8596-eb936af89ddb", + "port": "64deaccd-9457-4a20-b2b1-288e4de4e10d" + }, + "target": { + "block": "69cb8815-c65b-4782-8302-d26de5cacd06", + "port": "26aba23f-8567-4e9b-bd45-c26724030f33" + }, + "vertices": [] + }, + { + "source": { + "block": "fe87b2fb-b9bb-4dd6-9048-1e8781d13df9", + "port": "outlabel" + }, + "target": { + "block": "7d93597c-6d34-414e-8596-eb936af89ddb", + "port": "4b1fc7a3-c946-485a-8a6e-fb48ab711489" + }, + "vertices": [ + { + "x": 1328, + "y": 680 + } + ] + }, + { + "source": { + "block": "17c9ae37-d89d-4d5a-8044-755662ccad97", + "port": "outlabel" + }, + "target": { + "block": "7d93597c-6d34-414e-8596-eb936af89ddb", + "port": "6bedf67d-24d7-48c8-95b7-840f9b8ee694" + }, + "vertices": [] + }, + { + "source": { + "block": "5c4f6e0b-26dc-4320-9a58-67b8df6f4ff8", + "port": "95d3bdd3-b557-46bc-a467-783f9e297504" + }, + "target": { + "block": "7d93597c-6d34-414e-8596-eb936af89ddb", + "port": "3775a420-c70b-40c6-9620-3334fb35a526" + }, + "vertices": [ + { + "x": 1328, + "y": 744 + } + ] + }, + { + "source": { + "block": "c937d31e-0145-4993-9e5d-b02415c2750b", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "8e724fcf-2c8f-48ba-91c0-36a764e4c830", + "port": "in" + }, + "vertices": [ + { + "x": 2456, + "y": 496 + }, + { + "x": 2792, + "y": 504 + } + ] + }, + { + "source": { + "block": "ddd6e425-039b-4704-9197-436dee4c94a0", + "port": "outlabel" + }, + "target": { + "block": "c937d31e-0145-4993-9e5d-b02415c2750b", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "3fc6d02e-2613-4f6b-8a7e-7eca71951d32", + "port": "0344dacc-8583-456b-b377-8cb4ab97cf94" + }, + "target": { + "block": "40d105fc-5855-470e-b441-14767470a5a9", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": 2200, + "y": 1264 + } + ] + }, + { + "source": { + "block": "21c35f4a-8baf-495c-a097-8f80093b6fbf", + "port": "constant-out" + }, + "target": { + "block": "3fc6d02e-2613-4f6b-8a7e-7eca71951d32", + "port": "bde24908-c5bf-4286-b7e3-e42a11ca5c68" + }, + "vertices": [] + }, + { + "source": { + "block": "69cb8815-c65b-4782-8302-d26de5cacd06", + "port": "c659caa2-1cf7-4da3-855a-2b0c0ecc7510" + }, + "target": { + "block": "3fc6d02e-2613-4f6b-8a7e-7eca71951d32", + "port": "426de53f-e3cf-433b-bb21-00c5d207b946" + }, + "vertices": [], + "size": 4 + }, + { + "source": { + "block": "c9308253-7d03-49df-8323-788cdadcb8a5", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "396aa3b6-a380-43ce-aa0a-857411996213", + "port": "in" + }, + "vertices": [ + { + "x": 2808, + "y": 640 + } + ] + }, + { + "source": { + "block": "c937d31e-0145-4993-9e5d-b02415c2750b", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "c9308253-7d03-49df-8323-788cdadcb8a5", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "4bcf0819-a351-4dca-9c87-f7648a2f4bf4", + "port": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058" + }, + "target": { + "block": "92ff0749-052d-403f-83cd-fde6eb3bb3cb", + "port": "inlabel" + }, + "vertices": [ + { + "x": 2784, + "y": 1232 + } + ] + }, + { + "source": { + "block": "4bcf0819-a351-4dca-9c87-f7648a2f4bf4", + "port": "6459ba21-608e-4f77-8235-c8c1b08ba775" + }, + "target": { + "block": "1454227a-43d8-4994-8a3a-82a0ca663303", + "port": "in" + }, + "vertices": [] + }, + { + "source": { + "block": "a85bb61a-c18b-4602-90a7-8fac14232cd0", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "4bcf0819-a351-4dca-9c87-f7648a2f4bf4", + "port": "04fdb7a7-2740-4ff1-ad26-56407ef5b958" + }, + "vertices": [] + }, + { + "source": { + "block": "c2def9b7-70ba-4df6-9319-6afd359fc33b", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "4bcf0819-a351-4dca-9c87-f7648a2f4bf4", + "port": "f96a1baf-fc8b-4c25-b132-12552605743f" + }, + "vertices": [] + }, + { + "source": { + "block": "95956d9b-2396-48bb-9dcd-607a3cd254fb", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" + }, + "target": { + "block": "c2def9b7-70ba-4df6-9319-6afd359fc33b", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "2bb660d1-82b9-490c-881c-22806a75d950", + "port": "21039c06-c932-498c-968d-879a68d66795" + }, + "target": { + "block": "892037e4-b713-4f22-b260-44c1e79aeb7e", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [ + { + "x": 1728, + "y": 472 + } + ] + }, + { + "source": { + "block": "c9de0dcd-9539-4aa1-b8d8-30e19ace13e3", + "port": "c8a8a08a-91c1-4677-a6bb-3064297e3555" + }, + "target": { + "block": "2bb660d1-82b9-490c-881c-22806a75d950", + "port": "ec65c3cd-0951-4d74-bbfc-c37f87a78e66" + }, + "vertices": [] + }, + { + "source": { + "block": "4de17236-2bd6-4226-8b46-73a1b20627c6", + "port": "out" + }, + "target": { + "block": "2bb660d1-82b9-490c-881c-22806a75d950", + "port": "a265c13d-af7a-437b-97ae-424872381a93" + }, + "vertices": [] + }, + { + "source": { + "block": "c9de0dcd-9539-4aa1-b8d8-30e19ace13e3", + "port": "0c1ce6d1-6158-4976-88df-cfa404d416c3" + }, + "target": { + "block": "2bb660d1-82b9-490c-881c-22806a75d950", + "port": "b916c09a-8848-4500-a1a0-0cc09e8f23c1" + }, + "vertices": [] + }, + { + "source": { + "block": "9e29102c-bdc7-4b28-8407-66ce468dcee8", + "port": "out" + }, + "target": { + "block": "2bb660d1-82b9-490c-881c-22806a75d950", + "port": "05394100-6c4a-4bd5-b479-739c16ede30c" + }, + "vertices": [], + "size": 8 + }, + { + "source": { + "block": "eac204d5-eff2-43b2-90c3-547f8a27ce85", + "port": "out" + }, + "target": { + "block": "2bb660d1-82b9-490c-881c-22806a75d950", + "port": "02007399-7499-4b76-ad4f-91094344d055" + }, + "vertices": [ + { + "x": 896, + "y": 600 + } + ] + }, + { + "source": { + "block": "6375bc2d-fb0b-45c1-807d-7e4db91cb218", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "88a01632-9b78-4ea9-9b19-4311c1ec92ca", + "port": "inlabel" + }, + "vertices": [] + }, + { + "source": { + "block": "40d105fc-5855-470e-b441-14767470a5a9", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "6375bc2d-fb0b-45c1-807d-7e4db91cb218", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "4bcf0819-a351-4dca-9c87-f7648a2f4bf4", + "port": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058" + }, + "target": { + "block": "a19090a3-0754-40ee-b8ff-b7b853623505", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "e0badec5-0a64-43db-8101-73c493ff5b57", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "381fd431-f0e1-4481-907b-248c94aa573d", + "port": "inlabel" + }, + "vertices": [] + }, + { + "source": { + "block": "a19090a3-0754-40ee-b8ff-b7b853623505", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "e0badec5-0a64-43db-8101-73c493ff5b57", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "95956d9b-2396-48bb-9dcd-607a3cd254fb", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" + }, + "target": { + "block": "e0badec5-0a64-43db-8101-73c493ff5b57", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [ + { + "x": 2232, + "y": 1336 + } + ] + }, + { + "source": { + "block": "2c05c075-2971-4df4-9af4-dbee695394b8", + "port": "70887b0b-826c-4150-a873-605b77da8272" + }, + "target": { + "block": "4a8226f0-0861-4f61-8026-3a760afcae3f", + "port": "inlabel" + }, + "vertices": [] + }, + { + "source": { + "block": "4037b68b-6615-42d5-9d2a-00fce8e77f0d", + "port": "outlabel" + }, + "target": { + "block": "2c05c075-2971-4df4-9af4-dbee695394b8", + "port": "38f0d8e4-3d8b-4998-87af-0d8cf7c1fd6a" + }, + "vertices": [] + }, + { + "source": { + "block": "4ca26524-fc46-4e39-b5a6-960adfb02b48", + "port": "constant-out" + }, + "target": { + "block": "2c05c075-2971-4df4-9af4-dbee695394b8", + "port": "319cdca8-e777-4c8b-88ca-f885ba96ad06" + }, + "vertices": [] + }, + { + "source": { + "block": "4de17236-2bd6-4226-8b46-73a1b20627c6", + "port": "out" + }, + "target": { + "block": "2c05c075-2971-4df4-9af4-dbee695394b8", + "port": "4656865c-bcf1-4668-8e13-9221e32222d3" + }, + "vertices": [] + }, + { + "source": { + "block": "efdaa97f-c65b-443e-80d6-a02b11468e6c", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "6375bc2d-fb0b-45c1-807d-7e4db91cb218", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] + }, + { + "source": { + "block": "5338a294-ba59-44fa-8642-ad8aaf7025a4", + "port": "outlabel" + }, + "target": { + "block": "efdaa97f-c65b-443e-80d6-a02b11468e6c", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "c4e3df0e-3048-4c22-94b5-f72e08286531", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "efdaa97f-c65b-443e-80d6-a02b11468e6c", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] + }, + { + "source": { + "block": "2245a729-9992-4b15-9ac5-b923235680b3", + "port": "outlabel" + }, + "target": { + "block": "c4e3df0e-3048-4c22-94b5-f72e08286531", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + }, + "vertices": [] + }, + { + "source": { + "block": "69cb8815-c65b-4782-8302-d26de5cacd06", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + }, + "target": { + "block": "c4e3df0e-3048-4c22-94b5-f72e08286531", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + }, + "vertices": [ + { + "x": 2416, + "y": 1296 + } + ] + }, + { + "source": { + "block": "44b23d7d-5267-465c-8ca4-acd2838186bf", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "c4e3df0e-3048-4c22-94b5-f72e08286531", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + }, + "vertices": [] + }, + { + "source": { + "block": "689be50d-5acb-4f9c-b41a-ecea9ddae103", + "port": "outlabel" + }, + "target": { + "block": "44b23d7d-5267-465c-8ca4-acd2838186bf", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": 2224, + "y": 1040 + } + ] + }, + { + "source": { + "block": "30b00924-6fe1-4151-9c98-7e7ba357189b", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" + }, + "target": { + "block": "44b23d7d-5267-465c-8ca4-acd2838186bf", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [ + { + "x": 2176, + "y": 1048 + } + ] + }, + { + "source": { + "block": "e727dfbe-0a00-4b2f-80fb-9cf53db2e434", + "port": "outlabel" + }, + "target": { + "block": "30b00924-6fe1-4151-9c98-7e7ba357189b", + "port": "4196184b-4a60-493b-bcc6-c95958483683" + }, + "vertices": [ + { + "x": 1944, + "y": 776 + } + ] + }, + { + "source": { + "block": "95956d9b-2396-48bb-9dcd-607a3cd254fb", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" + }, + "target": { + "block": "30b00924-6fe1-4151-9c98-7e7ba357189b", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + }, + "vertices": [ + { + "x": 2000, + "y": 1064 + } + ] + }, + { + "source": { + "block": "baa4f214-f5f5-4087-893e-fc92ec8403c9", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" + }, + "target": { + "block": "c9308253-7d03-49df-8323-788cdadcb8a5", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] + }, + { + "source": { + "block": "a37f224d-8152-4876-a864-42ed09950ef2", + "port": "outlabel" + }, + "target": { + "block": "baa4f214-f5f5-4087-893e-fc92ec8403c9", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + }, + "vertices": [] + }, + { + "source": { + "block": "e727dfbe-0a00-4b2f-80fb-9cf53db2e434", + "port": "outlabel" + }, + "target": { + "block": "baa4f214-f5f5-4087-893e-fc92ec8403c9", + "port": "4196184b-4a60-493b-bcc6-c95958483683" + }, + "vertices": [ + { + "x": 1944, + "y": 680 + } + ] + }, + { + "source": { + "block": "09e898a7-18c1-41e1-ab86-199e14503bc6", + "port": "85cff7d0-bfed-43a4-989c-9788a21aa439" + }, + "target": { + "block": "917f6db0-6c3c-4eb2-83bf-985467b0ab41", + "port": "inlabel" + }, + "vertices": [] + }, + { + "source": { + "block": "09e898a7-18c1-41e1-ab86-199e14503bc6", + "port": "b77bd433-38d0-4ec7-9c21-7e1b7bf4743e" + }, + "target": { + "block": "25f4d001-6984-4f5d-aa45-ea857f6daf77", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [ + { + "x": 2152, + "y": 912 + } + ] + }, + { + "source": { + "block": "c3901bd8-dd31-401b-b90c-931acd97960b", + "port": "outlabel" + }, + "target": { + "block": "09e898a7-18c1-41e1-ab86-199e14503bc6", + "port": "9bb84a42-9ee0-4d22-aec1-1b9c60278ed5" + }, + "vertices": [] + }, + { + "source": { + "block": "e727dfbe-0a00-4b2f-80fb-9cf53db2e434", + "port": "outlabel" + }, + "target": { + "block": "09e898a7-18c1-41e1-ab86-199e14503bc6", + "port": "5b6c2879-1b2f-42ad-a627-77ab5818e651" + }, + "vertices": [ + { + "x": 1944, + "y": 808 + } + ] + }, + { + "source": { + "block": "4868a582-148d-4510-a223-b11bbf8ac42f", + "port": "out" + }, + "target": { + "block": "09e898a7-18c1-41e1-ab86-199e14503bc6", + "port": "17a6513b-054c-44d6-8010-11470eb5b29a" + }, + "vertices": [ + { + "x": 1848, + "y": 992 + } + ] + }, + { + "source": { + "block": "dcfc3587-80ee-49f5-b55c-b219d1d7d92e", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "69cb8815-c65b-4782-8302-d26de5cacd06", + "port": "743b5299-2d89-4783-b7c9-12a5b36df406" + }, + "vertices": [ + { + "x": 1512, + "y": 1304 + } + ] + }, + { + "source": { + "block": "1ff4b383-47b7-4861-95bb-bb31b52d33e3", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "3bf62d7b-0192-44f0-abe6-7773adf50004", + "port": "743b5299-2d89-4783-b7c9-12a5b36df406" + }, + "vertices": [ + { + "x": 2392, + "y": 672 + } + ] + } + ] + } + }, + "dependencies": { + "725b7e2cb9666b5ed3183537d9c898f096dab82a": { + "package": { + "name": "1", + "version": "0.1", + "description": "Un bit constante a 1", + "author": "Jesus Arroyo", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2233.632%22%20height=%2269.34%22%20viewBox=%220%200%2031.530464%2065.006656%22%3E%3Cpath%20d=%22M3.517%2012.015L19%200l12.53%202.863-10.012%2043.262-9.746-2.227%207.7-34.532L8.03%2016.38z%22%20fill=%22green%22%20fill-rule=%22evenodd%22/%3E%3Cpath%20d=%22M17.593%2043.464l7.822%2010.472-6.56%207.919%202.27%202.043m-5.14-20.179l-4.542%2010.473-10.345%202.043.757%203.32%22%20fill=%22none%22%20stroke=%22green%22%20stroke-width=%222.196%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "3d584b0a-29eb-47af-8c43-c0822282ef05", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 512, + "y": 160 + } + }, + { + "id": "61331ec5-2c56-4cdd-b607-e63b1502fa65", + "type": "basic.code", + "data": { + "code": "//-- Bit constante a 1\nassign q = 1'b1;\n\n", + "params": [], + "ports": { + "in": [], + "out": [ + { + "name": "q" + } + ] + } + }, + "position": { + "x": 168, + "y": 112 + }, + "size": { + "width": 256, + "height": 160 + } + } + ], + "wires": [ + { + "source": { + "block": "61331ec5-2c56-4cdd-b607-e63b1502fa65", + "port": "q" + }, + "target": { + "block": "3d584b0a-29eb-47af-8c43-c0822282ef05", + "port": "in" + } + } + ] + } + } + }, + "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542": { + "package": { + "name": "0", + "version": "0.1", + "description": "Un bit constante a 0", + "author": "Jesus Arroyo", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2233.563%22%20height=%2257.469%22%20viewBox=%220%200%2031.465601%2053.876499%22%3E%3Cpath%20d=%22M21.822%2032.843l4.092%208.992-3.772%209.727%204.181%201.31m-12.967-19.26s-1.091%208.253-2.585%208.919C9.278%2043.198%201%2049.389%201%2049.389l2.647%203.256%22%20fill=%22none%22%20stroke=%22green%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20style=%22line-height:125%25%22%20x=%22-.863%22%20y=%2230.575%22%20transform=%22scale(.90756%201.10186)%22%20font-weight=%22400%22%20font-size=%2254.594%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22green%22%3E%3Ctspan%20x=%22-.863%22%20y=%2230.575%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold%20Italic'%22%20font-style=%22italic%22%20font-weight=%22700%22%3Eo%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "3d584b0a-29eb-47af-8c43-c0822282ef05", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 512, + "y": 160 + } + }, + { + "id": "61331ec5-2c56-4cdd-b607-e63b1502fa65", + "type": "basic.code", + "data": { + "code": "//-- Bit constante a 0\nassign q = 1'b0;\n\n", + "params": [], + "ports": { + "in": [], + "out": [ + { + "name": "q" + } + ] + } + }, + "position": { + "x": 168, + "y": 112 + }, + "size": { + "width": 256, + "height": 160 + } + } + ], + "wires": [ + { + "source": { + "block": "61331ec5-2c56-4cdd-b607-e63b1502fa65", + "port": "q" + }, + "target": { + "block": "3d584b0a-29eb-47af-8c43-c0822282ef05", + "port": "in" + } + } + ] + } + } + }, + "e79148d23652be6d5149f8f6881f7f47bd958497": { + "package": { + "name": "Contador-2bits-up-rst", + "version": "0.1", + "description": "Contador módulo M, ascendente, de 2 bits, con reset ", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22327.118%22%20height=%22304.435%22%20viewBox=%220%200%2086.549973%2080.548402%22%3E%3Cdefs%3E%3Cmarker%20id=%22a%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3C/defs%3E%3Cg%20transform=%22translate(-59.162%20-4.54)%22%3E%3Cpath%20d=%22M138.803%2048.49V16.91%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%222.806%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20marker-end=%22url(#a)%22/%3E%3Crect%20rx=%222.807%22%20ry=%222.807%22%20y=%225.289%22%20x=%2299.747%22%20height=%2247.849%22%20width=%2229.538%22%20fill=%22#666%22%20stroke=%22#000%22%20stroke-width=%221.497%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20transform=%22scale(.94516%201.05802)%22%20y=%2240.921%22%20x=%22108.575%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%228.982%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%221.497%22%3E%3Ctspan%20style=%22line-height:1.25;-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2240.921%22%20x=%22108.575%22%20font-weight=%22700%22%20font-size=%2235.656%22%3E0%3C/tspan%3E%3C/text%3E%3Cpath%20d=%22M100.868%2030.283h27.764%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%222.245%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Crect%20rx=%222.807%22%20ry=%222.807%22%20y=%225.289%22%20x=%2266.333%22%20height=%2247.849%22%20width=%2229.538%22%20fill=%22#666%22%20stroke=%22#000%22%20stroke-width=%221.497%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20transform=%22scale(.94516%201.05802)%22%20y=%2240.921%22%20x=%2273.223%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%228.982%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%221.497%22%3E%3Ctspan%20style=%22line-height:1.25;-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2240.921%22%20x=%2273.223%22%20font-weight=%22700%22%20font-size=%2235.656%22%3E0%3C/tspan%3E%3C/text%3E%3Cpath%20d=%22M67.454%2030.283h27.764%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%222.245%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Cg%20transform=%22matrix(1.00937%200%200%201.00937%20-27.38%20-4.42)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3Cg%20transform=%22matrix(1.00937%200%200%201.00937%2028.939%20-4.42)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 264, + "y": 176 + } + }, + { + "id": "7a982450-c842-4aa2-8e77-43cc628266e0", + "type": "basic.output", + "data": { + "name": "", + "range": "[1:0]", + "size": 2 + }, + "position": { + "x": 800, + "y": 200 + } + }, + { + "id": "743b5299-2d89-4783-b7c9-12a5b36df406", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false + }, + "position": { + "x": 264, + "y": 280 + } + }, + { + "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "type": "basic.output", + "data": { + "name": "ov" + }, + "position": { + "x": 800, + "y": 352 + } + }, + { + "id": "26aba23f-8567-4e9b-bd45-c26724030f33", + "type": "basic.input", + "data": { + "name": "cnt", + "clock": false + }, + "position": { + "x": 264, + "y": 376 + } + }, + { + "id": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "type": "basic.constant", + "data": { + "name": "", + "value": "4", + "local": false + }, + "position": { + "x": 528, + "y": 48 + } + }, + { + "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "type": "basic.code", + "data": { + "code": "//-- Numero de bits del contador\nlocalparam N = 2; \n\n//-- En contadores de N bits:\n//-- M = 2 ** N\n\n//-- Internamente usamos un bit mas\n//-- (N+1) bits\nreg [N:0] qi = 0;\n\nalways @(posedge clk)\n if (rst | ov)\n qi <= 2'b00;\n else\n if (cnt)\n qi <= qi + 1;\n \nassign q = qi;\n\n//-- Comprobar overflow\nassign ov = (qi == M);\n ", + "params": [ + { + "name": "M" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "rst" + }, + { + "name": "cnt" + } + ], + "out": [ + { + "name": "q", + "range": "[1:0]", + "size": 2 + }, + { + "name": "ov" + } + ] + } + }, + "position": { + "x": 408, + "y": 160 + }, + "size": { + "width": 336, + "height": 296 + } + }, + { + "id": "b35ae5de-a490-4f7b-9200-ac52cd3f333e", + "type": "basic.info", + "data": { + "info": "**Parámetro**: Módulo del contador", + "readonly": true + }, + "position": { + "x": 472, + "y": 32 + }, + "size": { + "width": 280, + "height": 56 + } + } + ], + "wires": [ + { + "source": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "q" + }, + "target": { + "block": "7a982450-c842-4aa2-8e77-43cc628266e0", + "port": "in" + }, + "size": 2 + }, + { + "source": { + "block": "743b5299-2d89-4783-b7c9-12a5b36df406", + "port": "out" + }, + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "rst" + } + }, + { + "source": { + "block": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "port": "constant-out" + }, + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "M" + } + }, + { + "source": { + "block": "26aba23f-8567-4e9b-bd45-c26724030f33", + "port": "out" + }, + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "cnt" + } + }, + { + "source": { + "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "port": "out" + }, + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "clk" + } + }, + { + "source": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "ov" + }, + "target": { + "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "port": "in" + } + } + ] + } + } + }, + "2ddbb26d71094c8d654eb6b642054e1d9f5ba734": { + "package": { + "name": "Contador-4bits-up-rst", + "version": "0.1", + "description": "Contador módulo M, ascendente, de 4 bits, con reset ", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22327.118%22%20height=%22304.435%22%20viewBox=%220%200%2086.549973%2080.548402%22%3E%3Cdefs%3E%3Cmarker%20id=%22a%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3C/defs%3E%3Cg%20transform=%22translate(-59.162%20-4.54)%22%3E%3Cpath%20d=%22M138.803%2048.49V16.91%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%222.806%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20marker-end=%22url(#a)%22/%3E%3Crect%20rx=%222.807%22%20ry=%222.807%22%20y=%225.289%22%20x=%2299.747%22%20height=%2247.849%22%20width=%2229.538%22%20fill=%22#666%22%20stroke=%22#000%22%20stroke-width=%221.497%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20transform=%22scale(.94516%201.05802)%22%20y=%2240.921%22%20x=%22108.575%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%228.982%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%221.497%22%3E%3Ctspan%20style=%22line-height:1.25;-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2240.921%22%20x=%22108.575%22%20font-weight=%22700%22%20font-size=%2235.656%22%3E0%3C/tspan%3E%3C/text%3E%3Cpath%20d=%22M100.868%2030.283h27.764%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%222.245%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Crect%20rx=%222.807%22%20ry=%222.807%22%20y=%225.289%22%20x=%2266.333%22%20height=%2247.849%22%20width=%2229.538%22%20fill=%22#666%22%20stroke=%22#000%22%20stroke-width=%221.497%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20transform=%22scale(.94516%201.05802)%22%20y=%2240.921%22%20x=%2273.223%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%228.982%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%221.497%22%3E%3Ctspan%20style=%22line-height:1.25;-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2240.921%22%20x=%2273.223%22%20font-weight=%22700%22%20font-size=%2235.656%22%3E0%3C/tspan%3E%3C/text%3E%3Cpath%20d=%22M67.454%2030.283h27.764%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%222.245%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Cg%20transform=%22matrix(1.00937%200%200%201.00937%20-27.38%20-4.42)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3Cg%20transform=%22matrix(1.00937%200%200%201.00937%2028.939%20-4.42)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 264, + "y": 184 + } + }, + { + "id": "c659caa2-1cf7-4da3-855a-2b0c0ecc7510", + "type": "basic.output", + "data": { + "name": "", + "range": "[3:0]", + "size": 4 + }, + "position": { + "x": 800, + "y": 208 + } + }, + { + "id": "743b5299-2d89-4783-b7c9-12a5b36df406", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false + }, + "position": { + "x": 264, + "y": 288 + } + }, + { + "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "type": "basic.output", + "data": { + "name": "ov" + }, + "position": { + "x": 800, + "y": 368 + } + }, + { + "id": "26aba23f-8567-4e9b-bd45-c26724030f33", + "type": "basic.input", + "data": { + "name": "cnt", + "clock": false + }, + "position": { + "x": 264, + "y": 392 + } + }, + { + "id": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "type": "basic.constant", + "data": { + "name": "", + "value": "16", + "local": false + }, + "position": { + "x": 536, + "y": 64 + } + }, + { + "id": "b35ae5de-a490-4f7b-9200-ac52cd3f333e", + "type": "basic.info", + "data": { + "info": "**Parámetro**: Módulo del contador", + "readonly": true + }, + "position": { + "x": 472, + "y": 32 + }, + "size": { + "width": 280, + "height": 56 + } + }, + { + "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "type": "basic.code", + "data": { + "code": "//-- Numero de bits del contador\nlocalparam N = 4; \n\n//-- En contadores de N bits:\n//-- M = 2 ** N\n\n//-- Internamente usamos un bit mas\n//-- (N+1) bits\nreg [N:0] qi = 0;\n\nalways @(posedge clk)\n if (rst | ov)\n qi <= 0;\n else\n if (cnt)\n qi <= qi + 1;\n\n//-- Comprobar overflow\nassign ov = (qi == M);\n\n//-- En cuanto haya overflow\n//-- se saca 0 por la salida\nassign q = ov ? 0 : qi;\n\n\n ", + "params": [ + { + "name": "M" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "rst" + }, + { + "name": "cnt" + } + ], + "out": [ + { + "name": "q", + "range": "[3:0]", + "size": 4 + }, + { + "name": "ov" + } + ] + } + }, + "position": { + "x": 408, + "y": 160 + }, + "size": { + "width": 344, + "height": 320 + } + } + ], + "wires": [ + { + "source": { + "block": "743b5299-2d89-4783-b7c9-12a5b36df406", + "port": "out" + }, + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "rst" + } + }, + { + "source": { + "block": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "port": "constant-out" + }, + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "M" + } + }, + { + "source": { + "block": "26aba23f-8567-4e9b-bd45-c26724030f33", + "port": "out" + }, + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "cnt" + } + }, + { + "source": { + "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "port": "out" + }, + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "clk" + } + }, + { + "source": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "ov" + }, + "target": { + "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "port": "in" + } + }, + { + "source": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "q" + }, + "target": { + "block": "c659caa2-1cf7-4da3-855a-2b0c0ecc7510", + "port": "in" + }, + "size": 4 + } + ] + } + } + }, + "81613874c6152f06c06ed7014bf4235900cfcc30": { + "package": { + "name": "OR", + "version": "1.0.1", + "description": "Puerta OR", + "author": "Jesús Arroyo, Juan González", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20height=%22192.718%22%20width=%22383.697%22%20version=%221%22%3E%3Cpath%20d=%22M175.56%20188.718H84.527s30.345-42.538%2031.086-94.03c.743-51.49-31.821-90.294-31.821-90.294L176.109%204c46.445%201.948%20103.899%2053.44%20123.047%2093.678-32.601%2067.503-92.158%2089.79-123.596%2091.04z%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M4.057%2047.292h99.605M4.883%20145.168h100.981M298.57%2098.89h81.07%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22/%3E%3Ctext%20style=%22line-height:125%25%22%20font-weight=%22400%22%20font-size=%2266.317%22%20y=%22121.28%22%20x=%22131.572%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#00f%22%3E%3Ctspan%20font-weight=%22700%22%20y=%22121.28%22%20x=%22131.572%22%3EOR%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 64, + "y": 88 + } + }, + { + "id": "664caf9e-5f40-4df4-800a-b626af702e62", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 784, + "y": 152 + } + }, + { + "id": "97b51945-d716-4b6c-9db9-970d08541249", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 64, + "y": 224 + } + }, + { + "id": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "type": "basic.code", + "data": { + "code": "//-- Puerta OR\n\n//-- module and (input wire a, input wire b,\n//-- output wire c);\n\nassign c = a | b;\n\n//-- endmodule", + "params": [], + "ports": { + "in": [ + { + "name": "a" + }, + { + "name": "b" + } + ], + "out": [ + { + "name": "c" + } + ] + } + }, + "position": { + "x": 256, + "y": 48 + }, + "size": { + "width": 464, + "height": 272 + } + } + ], + "wires": [ + { + "source": { + "block": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "port": "out" + }, + "target": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "a" + } + }, + { + "source": { + "block": "97b51945-d716-4b6c-9db9-970d08541249", + "port": "out" + }, + "target": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "b" + } + }, + { + "source": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "c" + }, + "target": { + "block": "664caf9e-5f40-4df4-800a-b626af702e62", + "port": "in" + } + } + ] + } + } + }, + "e33ecba0f1fbe8ecdf043e2ed5d88a553fff19e8": { + "package": { + "name": "Mux_4_1_bus", + "version": "0.1.4", + "description": "Multiplexor de 4 a 1, bus. Implementado en verilog.", + "author": "Juan Gonzalez-Gomez (obijuan) [Modificado por otro usuario.]", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2246.347%22%20height=%22182.066%22%20viewBox=%220%200%2043.450545%20170.68778%22%3E%3Cpath%20d=%22M42.044%2021.324c0-7.134-3.893-13.724-10.206-17.275a20.674%2020.674%200%200%200-20.365.08C5.189%207.728%201.349%2014.347%201.407%2021.481v127.723c-.058%207.135%203.782%2013.755%2010.066%2017.355a20.674%2020.674%200%200%200%2020.365.079c6.313-3.551%2010.206-10.14%2010.206-17.275z%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%222.813%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20style=%22line-height:125%25%22%20x=%2216.068%22%20y=%2270.768%22%20font-weight=%22400%22%20font-size=%2218.75%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctspan%20x=%2216.068%22%20y=%2270.768%22%3E2%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25%22%20x=%2216.018%22%20y=%2227.719%22%20font-weight=%22400%22%20font-size=%2218.75%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctspan%20x=%2216.018%22%20y=%2227.719%22%3E3%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25%22%20x=%2216.068%22%20y=%22113.534%22%20font-weight=%22400%22%20font-size=%2218.75%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctspan%20x=%2216.068%22%20y=%22113.534%22%3E1%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25%22%20x=%2216.068%22%20y=%22156.655%22%20font-weight=%22400%22%20font-size=%2218.75%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctspan%20x=%2216.068%22%20y=%22156.655%22%3E0%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "fa311466-9b3b-455f-9a73-efb56fcc06d2", + "type": "basic.input", + "data": { + "name": "i3", + "clock": false + }, + "position": { + "x": -720, + "y": -112 + } + }, + { + "id": "6ff164c2-5a24-45ee-b357-7b83df4dbbec", + "type": "basic.input", + "data": { + "name": "i2", + "clock": false + }, + "position": { + "x": -720, + "y": -56 + } + }, + { + "id": "5898179a-7390-429b-ac3c-b7a0df673610", + "type": "basic.input", + "data": { + "name": "i1", + "clock": false + }, + "position": { + "x": -720, + "y": 0 + } + }, + { + "id": "0ef557c8-5378-43b3-80af-176f129f1a07", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": -24, + "y": 0 + } + }, + { + "id": "db089906-4326-4b59-8aa5-ebb61116a4cd", + "type": "basic.input", + "data": { + "name": "i0", + "clock": false + }, + "position": { + "x": -720, + "y": 56 + } + }, + { + "id": "94142d6d-263f-4f11-9418-5578d56bcbb1", + "type": "basic.input", + "data": { + "name": "sel", + "range": "[1:0]", + "pins": [ + { + "index": "1", + "name": "", + "value": "" + }, + { + "index": "0", + "name": "", + "value": "" + } + ], + "virtual": true, + "clock": false + }, + "position": { + "x": -720, + "y": 112 + } + }, + { + "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "type": "basic.code", + "data": { + "code": "\nassign o = (sel == 0) ? i0 :\n (sel == 1) ? i1 :\n (sel == 2) ? i2 : i3;\n", + "params": [], + "ports": { + "in": [ + { + "name": "i3" + }, + { + "name": "i2" + }, + { + "name": "i1" + }, + { + "name": "i0" + }, + { + "name": "sel", + "range": "[1:0]", + "size": 2 + } + ], + "out": [ + { + "name": "o" + } + ] + } + }, + "position": { + "x": -464, + "y": -104 + }, + "size": { + "width": 368, + "height": 272 + } + } + ], + "wires": [ + { + "source": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "o" + }, + "target": { + "block": "0ef557c8-5378-43b3-80af-176f129f1a07", + "port": "in" + } + }, + { + "source": { + "block": "db089906-4326-4b59-8aa5-ebb61116a4cd", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i0" + } + }, + { + "source": { + "block": "5898179a-7390-429b-ac3c-b7a0df673610", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i1" + }, + "vertices": [] + }, + { + "source": { + "block": "6ff164c2-5a24-45ee-b357-7b83df4dbbec", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i2" + }, + "vertices": [] + }, + { + "source": { + "block": "fa311466-9b3b-455f-9a73-efb56fcc06d2", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i3" + }, + "vertices": [] + }, + { + "source": { + "block": "94142d6d-263f-4f11-9418-5578d56bcbb1", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "sel" + }, + "size": 2 + } + ] + } + } + }, + "d7e6ff61e136e0120db6aaabf8b34ea6fd14c159": { + "package": { + "name": "In-out-right", + "version": "0.1", + "description": "Bloque inout, con conexión de pin por la derecha", + "author": "Salvador E. Tropea", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22770.821%22%20height=%22624.079%22%20viewBox=%220%200%20203.94649%20165.12089%22%20id=%22svg8%22%3E%3Cdefs%20id=%22defs2%22%3E%3Cmarker%20orient=%22auto%22%20id=%22Arrow2Mstart%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path899%22%20d=%22M5.231%202.42L-1.324.01%205.23-2.401C4.184-.978%204.19.969%205.231%202.42z%22%20fill=%22green%22%20fill-rule=%22evenodd%22%20stroke=%22green%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22Arrow1Mstart%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path881%22%20d=%22M4%200l2-2-7%202%207%202z%22%20fill=%22green%22%20fill-rule=%22evenodd%22%20stroke=%22green%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22Arrow2Mend%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path902%22%20d=%22M-5.231-2.42L1.324-.01-5.23%202.401c1.047-1.423%201.041-3.37%200-4.821z%22%20fill=%22green%22%20fill-rule=%22evenodd%22%20stroke=%22green%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22TriangleOutS%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path1023%22%20d=%22M1.154%200l-1.73%201v-2z%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.2666%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22Arrow1Send%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path890%22%20d=%22M-1.2%200l-1%201%203.5-1-3.5-1z%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.2666%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22Arrow2Mend-2%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path902-9%22%20d=%22M-5.231-2.42L1.324-.01-5.23%202.401c1.047-1.423%201.041-3.37%200-4.821z%22%20fill=%22green%22%20fill-rule=%22evenodd%22%20stroke=%22green%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22Arrow2Mend-2-2%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path902-9-7%22%20d=%22M-5.231-2.42L1.324-.01-5.23%202.401c1.047-1.423%201.041-3.37%200-4.821z%22%20fill=%22green%22%20fill-rule=%22evenodd%22%20stroke=%22green%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3C/defs%3E%3Cg%20id=%22layer1%22%20transform=%22translate(-29.4%20-56.943)%22%3E%3Cpath%20d=%22M230.796%20196.941h-77.954V76.847%22%20id=%22path873-6-3%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%222.646%22%20stroke-linecap=%22round%22/%3E%3Cpath%20id=%22path855-5%22%20d=%22M130.88%20159.638l-27.214-45.357-27.214%2045.357z%22%20fill=%22#f2f2f2%22%20stroke=%22#000%22%20stroke-width=%222.646%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M103.666%20114.28V76.77%22%20id=%22path873%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%222.646%22%20stroke-linecap=%22round%22/%3E%3Cpath%20d=%22M104.086%2076.77h127.918%22%20id=%22path1157%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%222.646%22%20stroke-linecap=%22round%22/%3E%3Ccircle%20id=%22path1159%22%20cx=%22153.191%22%20cy=%2276.77%22%20r=%223.742%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%222.646%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M105.27%20159.904v37.511H35.547%22%20id=%22path873-6%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%222.646%22%20stroke-linecap=%22round%22/%3E%3Cpath%20d=%22M39.021%20210.405h57.196%22%20id=%22path1195%22%20fill=%22green%22%20stroke=%22green%22%20stroke-width=%222.646%22%20marker-end=%22url(#Arrow2Mend)%22/%3E%3Cpath%20d=%22M164.857%20109.77v57.195%22%20id=%22path1195-1%22%20fill=%22green%22%20stroke=%22green%22%20stroke-width=%222.646%22%20marker-end=%22url(#Arrow2Mend-2)%22/%3E%3Cpath%20d=%22M163.814%2063.843h57.195%22%20id=%22path1195-1-0%22%20fill=%22green%22%20stroke=%22green%22%20stroke-width=%222.646%22%20marker-start=%22url(#Arrow2Mstart)%22%20marker-end=%22url(#Arrow2Mend-2-2)%22/%3E%3Cpath%20d=%22M90.694%20135.035H51.459%22%20id=%22path873-9%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%222.646%22%20stroke-linecap=%22round%22/%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:ubuntu;text-align:start%22%20x=%2238.628%22%20y=%22126.356%22%20id=%22text2352%22%20font-weight=%22400%22%20font-size=%2232.91%22%20font-family=%22ubuntu%22%20letter-spacing=%220%22%20word-spacing=%220%22%20stroke-width=%222.057%22%3E%3Ctspan%20id=%22tspan2350%22%20x=%2238.628%22%20y=%22126.356%22%3Eoe%3C/tspan%3E%3C/text%3E%3C/g%3E%3Cstyle%20id=%22style3%22/%3E%3C/svg%3E" + }, + "design": { + "config": "true", + "graph": { + "blocks": [ + { + "id": "f96a1baf-fc8b-4c25-b132-12552605743f", + "type": "basic.input", + "data": { + "name": "oe" + }, + "position": { + "x": 40, + "y": 64 + } + }, + { + "id": "6459ba21-608e-4f77-8235-c8c1b08ba775", + "type": "basic.output", + "data": { + "name": "pin" + }, + "position": { + "x": 704, + "y": 64 + } + }, + { + "id": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058", + "type": "basic.output", + "data": { + "name": "din" + }, + "position": { + "x": 720, + "y": 192 + } + }, + { + "id": "04fdb7a7-2740-4ff1-ad26-56407ef5b958", + "type": "basic.input", + "data": { + "name": "dout", + "clock": false + }, + "position": { + "x": 40, + "y": 192 + } + }, + { + "id": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", + "type": "basic.code", + "data": { + "code": " SB_IO #(\n .PIN_TYPE(6'b1010_01),\n .PULLUP(1'b0)\n ) triState (\n .PACKAGE_PIN(pin),\n .OUTPUT_ENABLE(oe),\n .D_OUT_0(dout),\n .D_IN_0(din)\n );", + "params": [], + "ports": { + "in": [ + { + "name": "oe" + }, + { + "name": "dout" + } + ], + "out": [ + { + "name": "pin" + }, + { + "name": "din" + } + ] + } + }, + "position": { + "x": 248, + "y": 32 + }, + "size": { + "width": 384, + "height": 256 + } + } + ], + "wires": [ + { + "source": { + "block": "f96a1baf-fc8b-4c25-b132-12552605743f", + "port": "out" + }, + "target": { + "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", + "port": "oe" + } + }, + { + "source": { + "block": "04fdb7a7-2740-4ff1-ad26-56407ef5b958", + "port": "out" + }, + "target": { + "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", + "port": "dout" + } + }, + { + "source": { + "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", + "port": "din" + }, + "target": { + "block": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058", + "port": "in" + } + }, + { + "source": { + "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", + "port": "pin" + }, + "target": { + "block": "6459ba21-608e-4f77-8235-c8c1b08ba775", + "port": "in" + } + } + ] + } + } + }, + "d976e4d8f32b931eedc3e12fe125a464cbb9238d": { + "package": { + "name": "double_delay", + "version": "0.1", + "description": "Double delay", + "author": "FPGAwars", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22512%22%20height=%22512%22%20viewBox=%220%200%20512%20512%22%3E%3Cpath%20d=%22M512%20256C512%20114.625%20397.375%200%20256%200S0%20114.625%200%20256s114.625%20256%20256%20256%20256-114.625%20256-256zm-480%200C32%20132.469%20132.5%2032%20256%2032s224%20100.469%20224%20224c0%20123.5-100.5%20224-224%20224S32%20379.5%2032%20256zm224%200V64c106.031%200%20192%2085.969%20192%20192H256zm-130.562-93.875l-16%2027.719-27.719-16%2016-27.719%2027.719%2016zm261.124%20187.719l16-27.688%2027.72%2016-16%2027.688-27.72-16zM189.844%20109.438l-27.719%2016-16-27.719%2027.719-16%2016%2027.719zm132.281%20293.124l27.719-16%2016%2027.72-27.688%2016-16.031-27.72zM272%20416v32l-32%20.031V416h32zm-82.156-13.438l-16%2027.72-27.719-15.97%2016.031-27.75%2027.688%2016zm-64.406-52.718l-27.719%2016.031-16.031-27.688%2027.75-16.031%2016%2027.688zM96%20272l-32%20.031-.063-32H96V272z%22/%3E%3C/svg%3E", + "otid": 1603759838283 + }, + "design": { + "graph": { + "blocks": [ + { + "id": "039b063c-fded-4d25-87f0-5b4030b7485e", + "type": "basic.input", + "data": { + "name": "", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "clock": true + }, + "position": { + "x": 272, + "y": 120 + } + }, + { + "id": "0c1ce6d1-6158-4976-88df-cfa404d416c3", + "type": "basic.output", + "data": { + "name": "b0", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 720, + "y": 168 + } + }, + { + "id": "7a49a58e-e51d-43b5-bba9-f1732fb448ca", + "type": "basic.input", + "data": { + "name": "a0", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "clock": false + }, + "position": { + "x": 272, + "y": 184 + } + }, + { + "id": "c8a8a08a-91c1-4677-a6bb-3064297e3555", + "type": "basic.output", + "data": { + "name": "b1", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 720, + "y": 256 + } + }, + { + "id": "1c6df57e-a2ac-4f8f-bae8-8cda9faada90", + "type": "basic.input", + "data": { + "name": "a1", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "clock": false + }, + "position": { + "x": 272, + "y": 272 + } + }, + { + "id": "f8975657-1ea2-4bda-8005-0ce4446979f2", + "type": "basic.output", + "data": { + "name": "nc", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 720, + "y": 336 + } + }, + { + "id": "5d4716e9-c580-40a9-8b56-28cc3d8663ef", + "type": "90b966c5dc7f2a6d216911bfaa6e95b57c2ab4f8", + "position": { + "x": 504, + "y": 168 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "b3141652-d650-4fc8-88de-4f8f14039c65", + "type": "90b966c5dc7f2a6d216911bfaa6e95b57c2ab4f8", + "position": { + "x": 504, + "y": 256 + }, + "size": { + "width": 96, + "height": 64 + } + } + ], + "wires": [ + { + "source": { + "block": "7a49a58e-e51d-43b5-bba9-f1732fb448ca", + "port": "out" + }, + "target": { + "block": "5d4716e9-c580-40a9-8b56-28cc3d8663ef", + "port": "50fee72b-b3e5-4390-a0d5-465be5620cf8" + } + }, + { + "source": { + "block": "1c6df57e-a2ac-4f8f-bae8-8cda9faada90", + "port": "out" + }, + "target": { + "block": "b3141652-d650-4fc8-88de-4f8f14039c65", + "port": "50fee72b-b3e5-4390-a0d5-465be5620cf8" + } + }, + { + "source": { + "block": "5d4716e9-c580-40a9-8b56-28cc3d8663ef", + "port": "fc0b1f10-38aa-4eb8-a929-7d0996614ad4" + }, + "target": { + "block": "0c1ce6d1-6158-4976-88df-cfa404d416c3", + "port": "in" + } + }, + { + "source": { + "block": "b3141652-d650-4fc8-88de-4f8f14039c65", + "port": "fc0b1f10-38aa-4eb8-a929-7d0996614ad4" + }, + "target": { + "block": "c8a8a08a-91c1-4677-a6bb-3064297e3555", + "port": "in" + } + }, + { + "source": { + "block": "039b063c-fded-4d25-87f0-5b4030b7485e", + "port": "out" + }, + "target": { + "block": "5d4716e9-c580-40a9-8b56-28cc3d8663ef", + "port": "eade65d1-cc62-48fa-a5b4-c622d6c0974a" + } + }, + { + "source": { + "block": "039b063c-fded-4d25-87f0-5b4030b7485e", + "port": "out" + }, + "target": { + "block": "b3141652-d650-4fc8-88de-4f8f14039c65", + "port": "eade65d1-cc62-48fa-a5b4-c622d6c0974a" + } + } + ] + } + } + }, + "90b966c5dc7f2a6d216911bfaa6e95b57c2ab4f8": { + "package": { + "name": "Delay3", + "version": "0.1", + "description": "Retrasa la señal de entrada 3 ciclos de reloj.", + "author": "FPGAwars", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22512%22%20height=%22512%22%20viewBox=%220%200%20512%20512%22%3E%3Cpath%20d=%22M512%20256C512%20114.625%20397.375%200%20256%200S0%20114.625%200%20256s114.625%20256%20256%20256%20256-114.625%20256-256zm-480%200C32%20132.469%20132.5%2032%20256%2032s224%20100.469%20224%20224c0%20123.5-100.5%20224-224%20224S32%20379.5%2032%20256zm224%200V64c106.031%200%20192%2085.969%20192%20192H256zm-130.562-93.875l-16%2027.719-27.719-16%2016-27.719%2027.719%2016zm261.124%20187.719l16-27.688%2027.72%2016-16%2027.688-27.72-16zM189.844%20109.438l-27.719%2016-16-27.719%2027.719-16%2016%2027.719zm132.281%20293.124l27.719-16%2016%2027.72-27.688%2016-16.031-27.72zM272%20416v32l-32%20.031V416h32zm-82.156-13.438l-16%2027.72-27.719-15.97%2016.031-27.75%2027.688%2016zm-64.406-52.718l-27.719%2016.031-16.031-27.688%2027.75-16.031%2016%2027.688zM96%20272l-32%20.031-.063-32H96V272z%22/%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "eade65d1-cc62-48fa-a5b4-c622d6c0974a", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 136, + "y": 80 + } + }, + { + "id": "fc0b1f10-38aa-4eb8-a929-7d0996614ad4", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 880, + "y": 136 + } + }, + { + "id": "50fee72b-b3e5-4390-a0d5-465be5620cf8", + "type": "basic.input", + "data": { + "name": "", + "clock": false + }, + "position": { + "x": 136, + "y": 152 + } + }, + { + "id": "b5571d49-7c43-4698-af7c-27d0b8f7619e", + "type": "af48ebc63c0bdb7fd04dc2a9583c4ebb2248168f", + "position": { + "x": 368, + "y": 136 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "2c54348d-c541-4739-875d-8b08283f773c", + "type": "af48ebc63c0bdb7fd04dc2a9583c4ebb2248168f", + "position": { + "x": 536, + "y": 136 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "8a315cd2-d7e5-4016-aa70-0ed7b5571017", + "type": "af48ebc63c0bdb7fd04dc2a9583c4ebb2248168f", + "position": { + "x": 712, + "y": 136 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "f758fb58-4504-4f3f-af58-a9b7accc7e37", + "type": "basic.info", + "data": { + "info": "**Retrasa la señal de entrada varios ciclos de reloj.**", + "readonly": true + }, + "position": { + "x": 360, + "y": 24 + }, + "size": { + "width": 528, + "height": 32 + } + } + ], + "wires": [ + { + "source": { + "block": "b5571d49-7c43-4698-af7c-27d0b8f7619e", + "port": "73f2857d-3f7f-45c2-92f5-c550285b4e71" + }, + "target": { + "block": "2c54348d-c541-4739-875d-8b08283f773c", + "port": "3e08d30f-4cc5-4c7b-a1ea-009d5795aaed" + } + }, + { + "source": { + "block": "2c54348d-c541-4739-875d-8b08283f773c", + "port": "73f2857d-3f7f-45c2-92f5-c550285b4e71" + }, + "target": { + "block": "8a315cd2-d7e5-4016-aa70-0ed7b5571017", + "port": "3e08d30f-4cc5-4c7b-a1ea-009d5795aaed" + } + }, + { + "source": { + "block": "50fee72b-b3e5-4390-a0d5-465be5620cf8", + "port": "out" + }, + "target": { + "block": "b5571d49-7c43-4698-af7c-27d0b8f7619e", + "port": "3e08d30f-4cc5-4c7b-a1ea-009d5795aaed" + } + }, + { + "source": { + "block": "eade65d1-cc62-48fa-a5b4-c622d6c0974a", + "port": "out" + }, + "target": { + "block": "b5571d49-7c43-4698-af7c-27d0b8f7619e", + "port": "3eab6a54-662e-4398-81a1-e4c1d7285191" + } + }, + { + "source": { + "block": "eade65d1-cc62-48fa-a5b4-c622d6c0974a", + "port": "out" + }, + "target": { + "block": "2c54348d-c541-4739-875d-8b08283f773c", + "port": "3eab6a54-662e-4398-81a1-e4c1d7285191" + } + }, + { + "source": { + "block": "eade65d1-cc62-48fa-a5b4-c622d6c0974a", + "port": "out" + }, + "target": { + "block": "8a315cd2-d7e5-4016-aa70-0ed7b5571017", + "port": "3eab6a54-662e-4398-81a1-e4c1d7285191" + } + }, + { + "source": { + "block": "8a315cd2-d7e5-4016-aa70-0ed7b5571017", + "port": "73f2857d-3f7f-45c2-92f5-c550285b4e71" + }, + "target": { + "block": "fc0b1f10-38aa-4eb8-a929-7d0996614ad4", + "port": "in" + } + } + ] + } + } + }, + "af48ebc63c0bdb7fd04dc2a9583c4ebb2248168f": { + "package": { + "name": "DFF ini = 0", + "version": "1.0", + "description": "DFF ini = 0", + "author": "FPGA WARS", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2263.799%22%20height=%2257.366%22%20viewBox=%220%200%2059.811602%2053.780232%22%3E%3Cg%20transform=%22translate(-310.54%20-373.968)%22%3E%3Cpath%20d=%22M353.401%20407.803l3.157%2019.445%203.914-19.445%22%20fill=%22#ccc%22%20stroke=%22#000%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20style=%22line-height:125%25%22%20x=%22310.844%22%20y=%22395.812%22%20font-weight=%22400%22%20font-size=%2227.335%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctspan%20x=%22310.844%22%20y=%22395.812%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%3ED%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25%22%20x=%22316.916%22%20y=%22420.476%22%20font-weight=%22400%22%20font-size=%2220%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#00f%22%3E%3Ctspan%20x=%22316.916%22%20y=%22420.476%22%3E0%3C/tspan%3E%3C/text%3E%3Crect%20width=%2223.595%22%20height=%2221.484%22%20x=%22311.539%22%20y=%22402.712%22%20ry=%223.545%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M351.238%20398.03l1.658-19.774h-6.818v-3.788h22.097v3.788h-6.44l1.196%2019.953s5.208.866%206.428%204.494c1.221%203.628-.254%205.053.105%205.104l-25.022-.03s-.566-4.234%201.398-6.377c1.965-2.142%205.398-3.37%205.398-3.37z%22%20fill=%22red%22%20stroke=%22#000%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "3eab6a54-662e-4398-81a1-e4c1d7285191", + "type": "basic.input", + "data": { + "name": "", + "clock": true, + "virtual": true + }, + "position": { + "x": 192, + "y": 56 + } + }, + { + "id": "73f2857d-3f7f-45c2-92f5-c550285b4e71", + "type": "basic.output", + "data": { + "name": "Q" + }, + "position": { + "x": 776, + "y": 88 + } + }, + { + "id": "3e08d30f-4cc5-4c7b-a1ea-009d5795aaed", + "type": "basic.input", + "data": { + "name": "D", + "clock": false + }, + "position": { + "x": 192, + "y": 120 + } + }, + { + "id": "1b06d9f0-d794-4cc0-9643-a1a5f32ebaec", + "type": "basic.code", + "data": { + "code": "reg Q = 0;\n\nalways @(posedge Clock)\nbegin\n Q <= D;\nend", + "params": [], + "ports": { + "in": [ + { + "name": "Clock" + }, + { + "name": "D" + } + ], + "out": [ + { + "name": "Q" + } + ] + } + }, + "position": { + "x": 408, + "y": 56 + }, + "size": { + "width": 272, + "height": 128 + } + } + ], + "wires": [ + { + "source": { + "block": "3eab6a54-662e-4398-81a1-e4c1d7285191", + "port": "out" + }, + "target": { + "block": "1b06d9f0-d794-4cc0-9643-a1a5f32ebaec", + "port": "Clock" + } + }, + { + "source": { + "block": "3e08d30f-4cc5-4c7b-a1ea-009d5795aaed", + "port": "out" + }, + "target": { + "block": "1b06d9f0-d794-4cc0-9643-a1a5f32ebaec", + "port": "D" + } + }, + { + "source": { + "block": "1b06d9f0-d794-4cc0-9643-a1a5f32ebaec", + "port": "Q" + }, + "target": { + "block": "73f2857d-3f7f-45c2-92f5-c550285b4e71", + "port": "in" + } + } + ] + } + } + }, + "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6": { + "package": { + "name": "AND", + "version": "1.0.1", + "description": "Puerta AND", + "author": "Jesús Arroyo, Juan González", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22336.09%22%20height=%22194.045%22%20version=%221%22%3E%3Cpath%20d=%22M174.656%20190.045H78.304V4h96.352s87.463%208.625%2087.463%2091.94c0%2083.311-87.463%2094.105-87.463%2094.105z%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M4.057%2045.668h74.018M4.057%20144.812h74.018m184.632-50.034h69.326%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22/%3E%3Ctext%20style=%22line-height:125%25%22%20x=%2292.894%22%20y=%22114.587%22%20font-weight=%22400%22%20font-size=%2258.054%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#00f%22%3E%3Ctspan%20x=%2292.894%22%20y=%22114.587%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%3EAND%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 64, + "y": 88 + } + }, + { + "id": "664caf9e-5f40-4df4-800a-b626af702e62", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 784, + "y": 152 + } + }, + { + "id": "97b51945-d716-4b6c-9db9-970d08541249", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 64, + "y": 224 + } + }, + { + "id": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "type": "basic.code", + "data": { + "code": "//-- Puerta AND\n\n//-- module and (input wire a, input wire b,\n//-- output wire c);\n\nassign c = a & b;\n\n//-- endmodule", + "params": [], + "ports": { + "in": [ + { + "name": "a" + }, + { + "name": "b" + } + ], + "out": [ + { + "name": "c" + } + ] + } + }, + "position": { + "x": 256, + "y": 48 + }, + "size": { + "width": 464, + "height": 272 + } + } + ], + "wires": [ + { + "source": { + "block": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "port": "out" + }, + "target": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "a" + } + }, + { + "source": { + "block": "97b51945-d716-4b6c-9db9-970d08541249", + "port": "out" + }, + "target": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "b" + } + }, + { + "source": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "c" + }, + "target": { + "block": "664caf9e-5f40-4df4-800a-b626af702e62", + "port": "in" + } + } + ] + } + } + }, + "2cc41a5382c79d4e650316c0bbb9c0ffee453add": { + "package": { + "name": "StartWave", + "version": "0.1", + "description": "It enables the I2C frequency within the circuit and will always do so when there is a falling edge.", + "author": "Democrito", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2279.658%22%20height=%22110.457%22%20viewBox=%220%200%2021.07615%2029.22487%22%3E%3Cpath%20d=%22M3.393%2023.17l3.785-.023v-4.01l3.317-.007.024%203.883h3.608%22%20fill=%22none%22%20stroke=%22#0000a1%22%20stroke-width=%22.765%22/%3E%3Cpath%20d=%22M10.745%2012.154l-.024%205.76.496-1.274h-1.04l.544%201.273%22%20fill=%22none%22%20stroke=%22red%22%20stroke-width=%22.527%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M10.342%2023.037l3.785-.024v-4.01l3.317-.007.024%203.883h3.608%22%20fill=%22none%22%20stroke=%22#0000a1%22%20stroke-width=%22.765%22/%3E%3Cg%20transform=%22matrix(.16834%200%200%20.17685%20-14.34%203.795)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:'sans-serif%20Bold'%22%20x=%223.648%22%20y=%2211.13%22%20font-weight=%22700%22%20font-size=%224.939%22%20letter-spacing=%220%22%20word-spacing=%220%22%20font-family=%22sans-serif%22%20fill=%22#ff844c%22%20stroke=%22#004600%22%20stroke-width=%22.265%22%3E%3Ctspan%20x=%223.648%22%20y=%2211.13%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%3EStart%3C/tspan%3E%3C/text%3E%3Cpath%20d=%22M1.309%207.416c0%201.456.056%201.456.056%201.456%22%20fill=%22none%22%20stroke=%22#0ff%22%20stroke-width=%22.1%22%20stroke-opacity=%22.151%22/%3E%3Cg%20transform=%22matrix(.16834%200%200%20.17685%20-14.343%2013.542)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3Cpath%20d=%22M8.974.132h4.558%22%20fill=%22none%22/%3E%3C/svg%3E", + "otid": 1603920128880 + }, + "design": { + "graph": { + "blocks": [ + { + "id": "7f0c5ba5-d35f-42f2-b75f-01659f5c74d6", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 536, + "y": 192 + } + }, + { + "id": "420956ba-1684-4e55-b6dc-3cda190e7fc3", + "type": "basic.output", + "data": { + "name": "ld", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 1664, + "y": 208 + } + }, + { + "id": "95d3bdd3-b557-46bc-a467-783f9e297504", + "type": "basic.output", + "data": { + "name": "fo" + }, + "position": { + "x": 1664, + "y": 344 + } + }, + { + "id": "bcef1c12-a59c-48f2-a462-320d500235a9", + "type": "basic.input", + "data": { + "name": "fi", + "clock": false + }, + "position": { + "x": 536, + "y": 360 + } + }, + { + "id": "11029c6c-1062-49a6-8f7a-8185e00ec776", + "type": "basic.input", + "data": { + "name": "start", + "clock": false, + "virtual": true + }, + "position": { + "x": 536, + "y": 488 + } + }, + { + "id": "02212078-e676-42fd-9b74-e4444529e1d2", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false + }, + "position": { + "x": 536, + "y": 552 + } + }, + { + "id": "39f417fc-095b-496f-b0eb-7b3b850171ab", + "type": "7eacdff4ce248b009935725889c8ae3339817d76", + "position": { + "x": 1064, + "y": 360 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "d4bb1bba-e144-4b52-88e1-315b5da15a68", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 1272, + "y": 344 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "c65a5eb2-bea3-4922-8e43-aa9d8e419b20", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 1480, + "y": 344 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "502520a6-6c6a-4812-ac53-a4c8e53133cb", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 728, + "y": 472 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "21a64767-5f53-4df0-a4a1-9df7744e9c53", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 896, + "y": 376 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "8ccda512-8480-4bc6-a590-da96030f9ebb", + "type": "basic.info", + "data": { + "info": "Hitting the \"set\" will allow the frequency \"fi\" to pass to \"fo\" but always starting with a falling edge of that signal. Hitting \"rst\" prevents the input frequency from passing. It is about the always output frequency cycle low.", + "readonly": true + }, + "position": { + "x": 1304, + "y": 488 + }, + "size": { + "width": 472, + "height": 32 + } + }, + { + "id": "588b8c02-87e4-4e77-851a-d8b3c3c83d55", + "type": "8e2728307baccbf26c01cdb87bcfba8ca64a435c", + "position": { + "x": 1480, + "y": 208 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "5fa036e4-cf53-4cd9-b303-fead461ef2bf", + "type": "basic.info", + "data": { + "info": "With this pulse it will memorize the input in another module (\"Data\").", + "readonly": true + }, + "position": { + "x": 1424, + "y": 128 + }, + "size": { + "width": 168, + "height": 32 + } + }, + { + "id": "00c4cb9e-df4a-4a5b-8d26-3f8ef4662d43", + "type": "basic.info", + "data": { + "info": "### It enables the I2C frequency within the circuit and will always do so when there is a falling edge.", + "readonly": true + }, + "position": { + "x": 856, + "y": 128 + }, + "size": { + "width": 408, + "height": 32 + } + } + ], + "wires": [ + { + "source": { + "block": "7f0c5ba5-d35f-42f2-b75f-01659f5c74d6", + "port": "out" + }, + "target": { + "block": "39f417fc-095b-496f-b0eb-7b3b850171ab", + "port": "4196184b-4a60-493b-bcc6-c95958483683" + }, + "vertices": [] + }, + { + "source": { + "block": "39f417fc-095b-496f-b0eb-7b3b850171ab", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" + }, + "target": { + "block": "d4bb1bba-e144-4b52-88e1-315b5da15a68", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + }, + "vertices": [] + }, + { + "source": { + "block": "02212078-e676-42fd-9b74-e4444529e1d2", + "port": "out" + }, + "target": { + "block": "d4bb1bba-e144-4b52-88e1-315b5da15a68", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + }, + "vertices": [] + }, + { + "source": { + "block": "7f0c5ba5-d35f-42f2-b75f-01659f5c74d6", + "port": "out" + }, + "target": { + "block": "d4bb1bba-e144-4b52-88e1-315b5da15a68", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + }, + "vertices": [] + }, + { + "source": { + "block": "c65a5eb2-bea3-4922-8e43-aa9d8e419b20", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "95d3bdd3-b557-46bc-a467-783f9e297504", + "port": "in" + }, + "vertices": [] + }, + { + "source": { + "block": "d4bb1bba-e144-4b52-88e1-315b5da15a68", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "c65a5eb2-bea3-4922-8e43-aa9d8e419b20", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] + }, + { + "source": { + "block": "bcef1c12-a59c-48f2-a462-320d500235a9", + "port": "out" + }, + "target": { + "block": "c65a5eb2-bea3-4922-8e43-aa9d8e419b20", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": 648, + "y": 304 + } + ] + }, + { + "source": { + "block": "11029c6c-1062-49a6-8f7a-8185e00ec776", + "port": "out" + }, + "target": { + "block": "502520a6-6c6a-4812-ac53-a4c8e53133cb", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + }, + "vertices": [] + }, + { + "source": { + "block": "02212078-e676-42fd-9b74-e4444529e1d2", + "port": "out" + }, + "target": { + "block": "502520a6-6c6a-4812-ac53-a4c8e53133cb", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + }, + "vertices": [] + }, + { + "source": { + "block": "7f0c5ba5-d35f-42f2-b75f-01659f5c74d6", + "port": "out" + }, + "target": { + "block": "502520a6-6c6a-4812-ac53-a4c8e53133cb", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + }, + "vertices": [] + }, + { + "source": { + "block": "21a64767-5f53-4df0-a4a1-9df7744e9c53", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "39f417fc-095b-496f-b0eb-7b3b850171ab", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + }, + "vertices": [] + }, + { + "source": { + "block": "bcef1c12-a59c-48f2-a462-320d500235a9", + "port": "out" + }, + "target": { + "block": "21a64767-5f53-4df0-a4a1-9df7744e9c53", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "502520a6-6c6a-4812-ac53-a4c8e53133cb", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "21a64767-5f53-4df0-a4a1-9df7744e9c53", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] + }, + { + "source": { + "block": "588b8c02-87e4-4e77-851a-d8b3c3c83d55", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" + }, + "target": { + "block": "420956ba-1684-4e55-b6dc-3cda190e7fc3", + "port": "in" + }, + "vertices": [] + }, + { + "source": { + "block": "7f0c5ba5-d35f-42f2-b75f-01659f5c74d6", + "port": "out" + }, + "target": { + "block": "588b8c02-87e4-4e77-851a-d8b3c3c83d55", + "port": "4196184b-4a60-493b-bcc6-c95958483683" + }, + "vertices": [] + }, + { + "source": { + "block": "d4bb1bba-e144-4b52-88e1-315b5da15a68", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "588b8c02-87e4-4e77-851a-d8b3c3c83d55", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + }, + "vertices": [ + { + "x": 1416, + "y": 312 + } + ] + } + ] + } + } + }, + "7eacdff4ce248b009935725889c8ae3339817d76": { + "package": { + "name": "Bajada", + "version": "0.1", + "description": "Detector de flanco de bajada. Emite un tic cuando detecta un flanco descendente", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22396.685%22%20height=%22254.461%22%20viewBox=%220%200%20104.95637%2067.326178%22%3E%3Cdefs%3E%3Cmarker%20orient=%22auto%22%20id=%22a%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20fill=%22red%22%20fill-rule=%22evenodd%22%20stroke=%22red%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3C/defs%3E%3Cg%20transform=%22translate(-54.29%20-50.022)%22%3E%3Cpath%20d=%22M123.88%2069.103c2.17%203.317%204.013%202.718%205.68%200%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%22.529%22%20stroke-linecap=%22round%22/%3E%3Cpath%20d=%22M132.326%2095.38V51.614h-11.225v43.497%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%221.323%22%20stroke-linecap=%22round%22/%3E%3Cellipse%20cx=%22112.489%22%20cy=%2297.866%22%20rx=%227.009%22%20ry=%222.635%22%20transform=%22rotate(-1.418)%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%22.265%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cellipse%20cx=%22-140.807%22%20cy=%2291.678%22%20rx=%227.009%22%20ry=%222.635%22%20transform=%22scale(-1%201)%20rotate(-1.418)%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%22.265%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M124.8%2059.416v3.875M128.39%2059.416v3.875%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%22.529%22/%3E%3Cpath%20d=%22M85.794%2074.097h21.381%22%20fill=%22red%22%20stroke=%22red%22%20stroke-width=%222.646%22%20marker-end=%22url(#a)%22/%3E%3Cg%20transform=%22matrix(.842%200%200%20.842%2062.024%2042.68)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3Cg%20fill=%22none%22%20stroke=%22#00f%22%20stroke-linecap=%22round%22%3E%3Cpath%20d=%22M67.528%2082.456l6.026%207.975-5.054%206.03%201.749%201.556m-3.96-15.367l-3.5%207.976-7.97%201.555.583%202.529%22%20stroke-width=%221.058%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M67.258%2052.035v29.942%22%20stroke-width=%223.969%22/%3E%3Cpath%20d=%22M56.469%2072.226L67.157%2082.68l10.351-10.453%22%20stroke-width=%223.969%22%20stroke-linejoin=%22round%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "4196184b-4a60-493b-bcc6-c95958483683", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 152, + "y": 176 + } + }, + { + "id": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 624, + "y": 200 + } + }, + { + "id": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", + "type": "basic.input", + "data": { + "name": "", + "clock": false + }, + "position": { + "x": 152, + "y": 232 + } + }, + { + "id": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "type": "basic.code", + "data": { + "code": "reg q = 0;\n\nalways @(posedge clk)\n q <= i;\n \nassign o = (q & ~i); ", + "params": [], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "i" + } + ], + "out": [ + { + "name": "o" + } + ] + } + }, + "position": { + "x": 336, + "y": 176 + }, + "size": { + "width": 232, + "height": 112 + } + } + ], + "wires": [ + { + "source": { + "block": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", + "port": "out" + }, + "target": { + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "i" + } + }, + { + "source": { + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "o" + }, + "target": { + "block": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", + "port": "in" + } + }, + { + "source": { + "block": "4196184b-4a60-493b-bcc6-c95958483683", + "port": "out" + }, + "target": { + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "clk" + } + } + ] + } + } + }, + "b959c256104d1064a5ef7b38632ffb6eed3b396f": { + "package": { + "name": "Biestable-Set-Reset", + "version": "0.1", + "description": "Biestable con entradas de Set y Reset síncronas, para poner y quitar notaficaciones de eventos", + "author": "Juan Gonzalez-Gomez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20234.62951%20290.44458%22%20id=%22svg30%22%20width=%22234.63%22%20height=%22290.445%22%3E%3Cstyle%20id=%22style2%22%3E.st0%7Bdisplay:none%7D.st1%7Bfill:none;stroke:#303030;stroke-width:.7;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10%7D.st2%7Bfill:#303030%7D%3C/style%3E%3Cg%20id=%22layer1%22%20transform=%22translate(3.47%203.198)%22%3E%3Cpath%20class=%22st1%22%20d=%22M21.358%20145.947a63.75%2063.75%200%200%200%201.152%2011.049%22%20id=%22path9%22%20fill=%22none%22%20stroke=%22#303030%22%20stroke-width=%226.776%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22/%3E%3Cpath%20class=%22st1%22%20d=%22M48.702%2092.116a64.784%2064.784%200%200%200-12.559%2011.68%2064.99%2064.99%200%200%200-12.69%2024.809%22%20id=%22path11%22%20fill=%22none%22%20stroke=%22#303030%22%20stroke-width=%226.776%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22/%3E%3Cpath%20id=%22line17%22%20class=%22st1%22%20fill=%22none%22%20stroke=%22#303030%22%20stroke-width=%226.776%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22%20d=%22M184.865%20207.591L41.298%20262.802%22/%3E%3Cpath%20id=%22path21-3%22%20d=%22M185.448%20175.07l.37.154c2.52.831%204.718%202.386%206.634%204.249%202.02%202.322%203.694%204.777%204.423%208.713%201.496%208.074-3.286%2016.05-10.95%2018.997l-1.06.408L41.298%20262.8l-.733.283c-8.003%203.077-17.551.461-21.82-6.975-3.3-5.748-2.736-12.198.418-21.613%203.155-9.414%202.86-21.856-1.644-33.55l.041.003-12.507-32.667c-12.88-33.415-.747-70.376%2027.41-90.31l-1.102-2.749c-3.685-9.583%201.14-20.438%2010.723-24.124%209.583-3.685%2020.439%201.14%2024.124%2010.723l1.654%203.239c34.881-3.556%2068.594%2015.855%2081.318%2049.33l15.24%2038.432c4.795%208.723%2011.831%2015.955%2021.028%2022.248z%22%20fill=%22#fff%22%20stroke=%22#303030%22%20stroke-width=%227%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22/%3E%3Cpath%20d=%22M64.268%20268.838l45.015-17.115s7.963%2024.296-14.427%2030.38c-22.39%206.086-30.588-13.265-30.588-13.265z%22%20id=%22path826%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%227%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3C/g%3E%3Cg%20id=%22layer3%22%3E%3Crect%20id=%22rect845%22%20width=%22135.189%22%20height=%22135.189%22%20x=%2295.783%22%20y=%223.671%22%20ry=%2219.847%22%20fill=%22#55acee%22%20stroke=%22#303030%22%20stroke-width=%227%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20stroke-miterlimit=%2210%22/%3E%3C/g%3E%3Cg%20id=%22layer4%22%3E%3Cpath%20class=%22st2%22%20d=%22M172.724%2052.533V27.647h-9.888L144.047%2037.7l2.308%208.9%2014.833-8.076h.33v74.824H172.724V52.533z%22%20id=%22path7%22%20fill=%22#303030%22%20stroke-width=%2214.425%22/%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "9f09a4af-8f7a-45c3-af7b-293a244e76d9", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 200, + "y": 64 + } + }, + { + "id": "3ae2d46d-7981-497a-899f-b60bfae0f43e", + "type": "basic.input", + "data": { + "name": "set", + "clock": false + }, + "position": { + "x": 200, + "y": 152 + } + }, + { + "id": "1cb167a4-9e2a-416b-803e-da7b6151eaa5", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 720, + "y": 152 + } + }, + { + "id": "86eb8c81-17fc-4371-bd21-51f429191f3c", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false + }, + "position": { + "x": 200, + "y": 232 + } + }, + { + "id": "bf12a800-db30-4289-a7c5-8c08438f9a39", + "type": "basic.constant", + "data": { + "name": "", + "value": "0", + "local": false + }, + "position": { + "x": 464, + "y": 0 + } + }, + { + "id": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", + "type": "basic.code", + "data": { + "code": "reg q = INI;\n\nalways @(posedge clk)\n if (set)\n q <= 1'b1;\n else if (rst)\n q<=1'b0;", + "params": [ + { + "name": "INI" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "set" + }, + { + "name": "rst" + } + ], + "out": [ + { + "name": "q" + } + ] + } + }, + "position": { + "x": 400, + "y": 120 + }, + "size": { + "width": 224, + "height": 128 + } + } + ], + "wires": [ + { + "source": { + "block": "9f09a4af-8f7a-45c3-af7b-293a244e76d9", + "port": "out" + }, + "target": { + "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", + "port": "clk" + }, + "vertices": [ + { + "x": 336, + "y": 104 + } + ] + }, + { + "source": { + "block": "3ae2d46d-7981-497a-899f-b60bfae0f43e", + "port": "out" + }, + "target": { + "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", + "port": "set" + } + }, + { + "source": { + "block": "86eb8c81-17fc-4371-bd21-51f429191f3c", + "port": "out" + }, + "target": { + "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", + "port": "rst" + }, + "vertices": [ + { + "x": 344, + "y": 248 + } + ] + }, + { + "source": { + "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", + "port": "q" + }, + "target": { + "block": "1cb167a4-9e2a-416b-803e-da7b6151eaa5", + "port": "in" + } + }, + { + "source": { + "block": "bf12a800-db30-4289-a7c5-8c08438f9a39", + "port": "constant-out" + }, + "target": { + "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", + "port": "INI" + } + } + ] + } + } + }, + "8e2728307baccbf26c01cdb87bcfba8ca64a435c": { + "package": { + "name": "Subida", + "version": "0.1", + "description": "Detector de flanco de subida. Emite un tic cuando detecta un flanco ascendente", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22363.337%22%20height=%22251.136%22%20viewBox=%220%200%2096.132868%2066.446441%22%3E%3Cdefs%3E%3Cmarker%20orient=%22auto%22%20id=%22a%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20fill=%22red%22%20fill-rule=%22evenodd%22%20stroke=%22red%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3C/defs%3E%3Cg%20transform=%22translate(-63.113%20-50.902)%22%3E%3Cg%20fill=%22none%22%20stroke=%22#00f%22%20stroke-linecap=%22round%22%3E%3Cpath%20d=%22M76.611%2083.336l6.027%207.974-5.055%206.03%201.75%201.557M75.371%2083.53l-3.5%207.975-7.97%201.556.583%202.528%22%20stroke-width=%221.058%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M75.907%2083.53V53.588%22%20stroke-width=%223.969%22/%3E%3Cpath%20d=%22M65.118%2063.338l10.688-10.452%2010.351%2010.452%22%20stroke-width=%223.969%22%20stroke-linejoin=%22round%22/%3E%3C/g%3E%3Cpath%20d=%22M123.88%2069.103c2.17%203.317%204.013%202.718%205.68%200%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%22.529%22%20stroke-linecap=%22round%22/%3E%3Cpath%20d=%22M132.326%2095.38V51.614h-11.225v43.497%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%221.323%22%20stroke-linecap=%22round%22/%3E%3Cellipse%20cx=%22112.489%22%20cy=%2297.866%22%20rx=%227.009%22%20ry=%222.635%22%20transform=%22rotate(-1.418)%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%22.265%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cellipse%20cx=%22-140.807%22%20cy=%2291.678%22%20rx=%227.009%22%20ry=%222.635%22%20transform=%22scale(-1%201)%20rotate(-1.418)%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%22.265%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M124.8%2059.416v3.875M128.39%2059.416v3.875%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%22.529%22/%3E%3Cpath%20d=%22M85.794%2074.097h21.381%22%20fill=%22red%22%20stroke=%22red%22%20stroke-width=%222.646%22%20marker-end=%22url(#a)%22/%3E%3Cg%20transform=%22matrix(.842%200%200%20.842%2062.024%2042.68)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "4196184b-4a60-493b-bcc6-c95958483683", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 152, + "y": 176 + } + }, + { + "id": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 624, + "y": 200 + } + }, + { + "id": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", + "type": "basic.input", + "data": { + "name": "", + "clock": false + }, + "position": { + "x": 152, + "y": 232 + } + }, + { + "id": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "type": "basic.code", + "data": { + "code": "reg q = 0;\n\nalways @(posedge clk)\n q <= i;\n \nassign o = (~q & i); ", + "params": [], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "i" + } + ], + "out": [ + { + "name": "o" + } + ] + } + }, + "position": { + "x": 336, + "y": 176 + }, + "size": { + "width": 232, + "height": 112 + } + } + ], + "wires": [ + { + "source": { + "block": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", + "port": "out" + }, + "target": { + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "i" + } + }, + { + "source": { + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "o" + }, + "target": { + "block": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", + "port": "in" + } + }, + { + "source": { + "block": "4196184b-4a60-493b-bcc6-c95958483683", + "port": "out" + }, + "target": { + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "clk" + } + } + ] + } + } + }, + "b8135e59508d20a0f5ed1e8dfb123d695afe65b9": { + "package": { + "name": "TwoPulses", + "version": "0.1", + "description": "With the first cycle it creates 2 pulses for start I2C & load data to send.", + "author": "Democrito", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20125.6999%2038.953771%22%20height=%2241.551%22%20width=%22134.079%22%3E%3Cpath%20d=%22M104.674%2032.058l9.04-.095V4.972h4.684v27.032h5.12%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%222.158%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22bevel%22/%3E%3Cpath%20d=%22M2.067%2031.324h10.706l-.089-25.228%2034.904-.178.356%2025.444h12.854%22%20fill=%22none%22%20stroke=%22#0000e4%22%20stroke-width=%221.875%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22bevel%22/%3E%3Cpath%20d=%22M49.5%2018.282l26.583-.13-4.139-6.698.046%2014.502%205.335-7.219%22%20fill=%22red%22%20stroke=%22red%22%20stroke-width=%221.628%22/%3E%3Cpath%20d=%22M74.496%2032.017h6.01V5.027h4.684v27.03h19.484%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%222.158%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22bevel%22/%3E%3C/svg%3E", + "otid": 1603920898763 + }, + "design": { + "graph": { + "blocks": [ + { + "id": "64deaccd-9457-4a20-b2b1-288e4de4e10d", + "type": "basic.output", + "data": { + "name": "shift" + }, + "position": { + "x": 1264, + "y": 128 + } + }, + { + "id": "8f348e4f-94ee-47ad-abeb-6eaf5e71c3f7", + "type": "basic.output", + "data": { + "name": "Tics2" + }, + "position": { + "x": 1264, + "y": 248 + } + }, + { + "id": "4b1fc7a3-c946-485a-8a6e-fb48ab711489", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 272, + "y": 296 + } + }, + { + "id": "3775a420-c70b-40c6-9620-3334fb35a526", + "type": "basic.input", + "data": { + "name": "fi", + "clock": false + }, + "position": { + "x": 272, + "y": 432 + } + }, + { + "id": "6bedf67d-24d7-48c8-95b7-840f9b8ee694", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false + }, + "position": { + "x": 272, + "y": 504 + } + }, + { + "id": "484b07f3-b73d-4d0a-9cef-e2cda1039f03", + "type": "c386a7076c0569a15326b30b6748ca284426424d", + "position": { + "x": 440, + "y": 416 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "185f1e7a-430c-4b32-a892-5efed37a4c20", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 648, + "y": 384 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "adab6675-08ae-4118-aa7e-e9c192f03206", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 952, + "y": 368 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "51d12177-857b-41ea-9e40-6fa027883e51", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 1120, + "y": 128 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "3f5b132a-14c2-4128-8f51-707ac1e4bc3d", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 1120, + "y": 384 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "f299eabe-f3d2-47b8-841d-50aacfdb937a", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 1120, + "y": 248 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "cf2b751b-df7e-42db-823a-9aa35a91e65e", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "position": { + "x": 648, + "y": 232 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "443a4d94-2132-482a-8cc2-e6deb916decd", + "type": "7eacdff4ce248b009935725889c8ae3339817d76", + "position": { + "x": 800, + "y": 384 + }, + "size": { + "width": 96, + "height": 64 + } + } + ], + "wires": [ + { + "source": { + "block": "3775a420-c70b-40c6-9620-3334fb35a526", + "port": "out" + }, + "target": { + "block": "484b07f3-b73d-4d0a-9cef-e2cda1039f03", + "port": "9ca5353b-32fd-4f1f-af0b-5339bd50b1ff" + }, + "vertices": [] + }, + { + "source": { + "block": "4b1fc7a3-c946-485a-8a6e-fb48ab711489", + "port": "out" + }, + "target": { + "block": "484b07f3-b73d-4d0a-9cef-e2cda1039f03", + "port": "2708468d-1088-4570-be63-fb0d4799a941" + }, + "vertices": [] + }, + { + "source": { + "block": "4b1fc7a3-c946-485a-8a6e-fb48ab711489", + "port": "out" + }, + "target": { + "block": "185f1e7a-430c-4b32-a892-5efed37a4c20", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + }, + "vertices": [] + }, + { + "source": { + "block": "484b07f3-b73d-4d0a-9cef-e2cda1039f03", + "port": "3ada5999-55ba-4c4e-9877-a3e9ed82308c" + }, + "target": { + "block": "185f1e7a-430c-4b32-a892-5efed37a4c20", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + }, + "vertices": [] + }, + { + "source": { + "block": "484b07f3-b73d-4d0a-9cef-e2cda1039f03", + "port": "1c25e08e-e664-4fab-9b30-cedc1f8a3739" + }, + "target": { + "block": "185f1e7a-430c-4b32-a892-5efed37a4c20", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + }, + "vertices": [] + }, + { + "source": { + "block": "6bedf67d-24d7-48c8-95b7-840f9b8ee694", + "port": "out" + }, + "target": { + "block": "adab6675-08ae-4118-aa7e-e9c192f03206", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + }, + "vertices": [] + }, + { + "source": { + "block": "4b1fc7a3-c946-485a-8a6e-fb48ab711489", + "port": "out" + }, + "target": { + "block": "adab6675-08ae-4118-aa7e-e9c192f03206", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + }, + "vertices": [] + }, + { + "source": { + "block": "51d12177-857b-41ea-9e40-6fa027883e51", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "64deaccd-9457-4a20-b2b1-288e4de4e10d", + "port": "in" + }, + "vertices": [] + }, + { + "source": { + "block": "adab6675-08ae-4118-aa7e-e9c192f03206", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "51d12177-857b-41ea-9e40-6fa027883e51", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [ + { + "x": 1080, + "y": 328 + } + ] + }, + { + "source": { + "block": "484b07f3-b73d-4d0a-9cef-e2cda1039f03", + "port": "3ada5999-55ba-4c4e-9877-a3e9ed82308c" + }, + "target": { + "block": "51d12177-857b-41ea-9e40-6fa027883e51", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": 584, + "y": 200 + } + ] + }, + { + "source": { + "block": "adab6675-08ae-4118-aa7e-e9c192f03206", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "3f5b132a-14c2-4128-8f51-707ac1e4bc3d", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "f299eabe-f3d2-47b8-841d-50aacfdb937a", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "8f348e4f-94ee-47ad-abeb-6eaf5e71c3f7", + "port": "in" + }, + "vertices": [] + }, + { + "source": { + "block": "3f5b132a-14c2-4128-8f51-707ac1e4bc3d", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "f299eabe-f3d2-47b8-841d-50aacfdb937a", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [ + { + "x": 1224, + "y": 352 + }, + { + "x": 1136, + "y": 352 + } + ] + }, + { + "source": { + "block": "cf2b751b-df7e-42db-823a-9aa35a91e65e", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "f299eabe-f3d2-47b8-841d-50aacfdb937a", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "484b07f3-b73d-4d0a-9cef-e2cda1039f03", + "port": "1c25e08e-e664-4fab-9b30-cedc1f8a3739" + }, + "target": { + "block": "cf2b751b-df7e-42db-823a-9aa35a91e65e", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [ + { + "x": 608, + "y": 360 + } + ] + }, + { + "source": { + "block": "484b07f3-b73d-4d0a-9cef-e2cda1039f03", + "port": "3ada5999-55ba-4c4e-9877-a3e9ed82308c" + }, + "target": { + "block": "cf2b751b-df7e-42db-823a-9aa35a91e65e", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": 584, + "y": 320 + } + ] + }, + { + "source": { + "block": "443a4d94-2132-482a-8cc2-e6deb916decd", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" + }, + "target": { + "block": "adab6675-08ae-4118-aa7e-e9c192f03206", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + }, + "vertices": [] + }, + { + "source": { + "block": "185f1e7a-430c-4b32-a892-5efed37a4c20", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "443a4d94-2132-482a-8cc2-e6deb916decd", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + }, + "vertices": [] + }, + { + "source": { + "block": "4b1fc7a3-c946-485a-8a6e-fb48ab711489", + "port": "out" + }, + "target": { + "block": "443a4d94-2132-482a-8cc2-e6deb916decd", + "port": "4196184b-4a60-493b-bcc6-c95958483683" + }, + "vertices": [] + } + ] + } + } + }, + "c386a7076c0569a15326b30b6748ca284426424d": { + "package": { + "name": "Detector-flancos", + "version": "0.1", + "description": "Detector de flancos de subida y bajada. Emite tic por las salidas correspondientes al detecta los flancos", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22375.877%22%20height=%22399.413%22%20viewBox=%220%200%2099.450701%20105.67809%22%3E%3Cdefs%3E%3Cmarker%20orient=%22auto%22%20id=%22a%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20fill=%22red%22%20fill-rule=%22evenodd%22%20stroke=%22red%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22b%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20fill=%22red%22%20fill-rule=%22evenodd%22%20stroke=%22red%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3C/defs%3E%3Cg%20transform=%22translate(-61.727%20-50.902)%22%3E%3Cg%20fill=%22none%22%20stroke=%22#00f%22%20stroke-linecap=%22round%22%3E%3Cpath%20d=%22M76.611%2083.336l6.027%207.974-5.055%206.03%201.75%201.557M75.371%2083.53l-3.5%207.975-7.97%201.556.583%202.528%22%20stroke-width=%221.058%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M75.907%2083.53V53.588%22%20stroke-width=%223.969%22/%3E%3Cpath%20d=%22M65.118%2063.338l10.688-10.452%2010.351%2010.452%22%20stroke-width=%223.969%22%20stroke-linejoin=%22round%22/%3E%3C/g%3E%3Cpath%20d=%22M123.88%2069.103c2.17%203.317%204.013%202.718%205.68%200%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%22.529%22%20stroke-linecap=%22round%22/%3E%3Cpath%20d=%22M132.326%2095.38V51.614h-11.225v43.497%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%221.323%22%20stroke-linecap=%22round%22/%3E%3Cellipse%20cx=%22112.489%22%20cy=%2297.866%22%20rx=%227.009%22%20ry=%222.635%22%20transform=%22rotate(-1.418)%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%22.265%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cellipse%20cx=%22-140.807%22%20cy=%2291.678%22%20rx=%227.009%22%20ry=%222.635%22%20transform=%22scale(-1%201)%20rotate(-1.418)%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%22.265%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M124.8%2059.416v3.875M128.39%2059.416v3.875%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%22.529%22/%3E%3Cpath%20d=%22M85.794%2074.097h21.381%22%20fill=%22red%22%20stroke=%22red%22%20stroke-width=%222.646%22%20marker-end=%22url(#a)%22/%3E%3Cg%20transform=%22matrix(.842%200%200%20.842%2062.826%2011.41)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3Cpath%20d=%22M74.965%20140.485l6.027%207.974-5.055%206.03%201.75%201.557m-3.96-15.367l-3.5%207.975-7.97%201.556.582%202.528%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%221.058%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M74.695%20110.063v29.943%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%223.969%22%20stroke-linecap=%22round%22/%3E%3Cpath%20d=%22M63.906%20130.255l10.689%2010.452%2010.35-10.452%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%223.969%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M124.208%20120.573c2.17%203.317%204.013%202.718%205.68%200%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%22.529%22%20stroke-linecap=%22round%22/%3E%3Cpath%20d=%22M132.654%20146.85v-43.764H121.43v43.496%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%221.323%22%20stroke-linecap=%22round%22/%3E%3Cellipse%20cx=%22111.543%22%20cy=%22149.329%22%20rx=%227.009%22%20ry=%222.635%22%20transform=%22rotate(-1.418)%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%22.265%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cellipse%20cx=%22-142.409%22%20cy=%22143.124%22%20rx=%227.009%22%20ry=%222.635%22%20transform=%22scale(-1%201)%20rotate(-1.418)%22%20fill=%22#00f%22%20stroke=%22#00f%22%20stroke-width=%22.265%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M125.128%20110.887v3.874M128.718%20110.887v3.874%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%22.529%22/%3E%3Cpath%20d=%22M86.122%20125.567h21.381%22%20fill=%22red%22%20stroke=%22red%22%20stroke-width=%222.646%22%20marker-end=%22url(#b)%22/%3E%3Cg%20transform=%22matrix(.842%200%200%20.842%2063.956%2061.544)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "2708468d-1088-4570-be63-fb0d4799a941", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 152, + "y": 160 + } + }, + { + "id": "1c25e08e-e664-4fab-9b30-cedc1f8a3739", + "type": "basic.output", + "data": { + "name": "up" + }, + "position": { + "x": 672, + "y": 160 + } + }, + { + "id": "9ca5353b-32fd-4f1f-af0b-5339bd50b1ff", + "type": "basic.input", + "data": { + "name": "", + "clock": false + }, + "position": { + "x": 152, + "y": 248 + } + }, + { + "id": "3ada5999-55ba-4c4e-9877-a3e9ed82308c", + "type": "basic.output", + "data": { + "name": "down" + }, + "position": { + "x": 672, + "y": 248 + } + }, + { + "id": "49c0a94e-2687-4aa4-8cba-327b2942095f", + "type": "basic.info", + "data": { + "info": "## Detector doble: flancos de subida y bajada\n\nSe detectan tanto los flancos de subida como de bajada y se emite los \ntics por sus salidas correspondientes", + "readonly": true + }, + "position": { + "x": 144, + "y": -24 + }, + "size": { + "width": 568, + "height": 80 + } + }, + { + "id": "a6ea5e17-d259-4272-8d1c-87a6a7fe3235", + "type": "basic.info", + "data": { + "info": "Señal de \nentrada", + "readonly": true + }, + "position": { + "x": 168, + "y": 216 + }, + "size": { + "width": 96, + "height": 56 + } + }, + { + "id": "d0d6c668-3c03-42f5-9244-9a0431f11a87", + "type": "basic.info", + "data": { + "info": "Reloj del \nsistema", + "readonly": true + }, + "position": { + "x": 168, + "y": 120 + }, + "size": { + "width": 96, + "height": 48 + } + }, + { + "id": "73c2239c-1050-4d9f-ae49-0299d50982af", + "type": "basic.code", + "data": { + "code": "reg q = 0;\n\nalways @(posedge clk)\n q <= i;\n \nassign up = (~q & i); \nassign down = (q & ~i); ", + "params": [], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "i" + } + ], + "out": [ + { + "name": "up" + }, + { + "name": "down" + } + ] + } + }, + "position": { + "x": 336, + "y": 152 + }, + "size": { + "width": 264, + "height": 168 + } + } + ], + "wires": [ + { + "source": { + "block": "2708468d-1088-4570-be63-fb0d4799a941", + "port": "out" + }, + "target": { + "block": "73c2239c-1050-4d9f-ae49-0299d50982af", + "port": "clk" + } + }, + { + "source": { + "block": "9ca5353b-32fd-4f1f-af0b-5339bd50b1ff", + "port": "out" + }, + "target": { + "block": "73c2239c-1050-4d9f-ae49-0299d50982af", + "port": "i" + } + }, + { + "source": { + "block": "73c2239c-1050-4d9f-ae49-0299d50982af", + "port": "up" + }, + "target": { + "block": "1c25e08e-e664-4fab-9b30-cedc1f8a3739", + "port": "in" + } + }, + { + "source": { + "block": "73c2239c-1050-4d9f-ae49-0299d50982af", + "port": "down" + }, + "target": { + "block": "3ada5999-55ba-4c4e-9877-a3e9ed82308c", + "port": "in" + } + } + ] + } + } + }, + "35f267d0df6ffcb7fc33753bc9df9cf083642cca": { + "package": { + "name": "NOT", + "version": "1.0.3", + "description": "Puerta NOT", + "author": "Jesús Arroyo, Juan González", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22317.651%22%20height=%22194.058%22%20version=%221%22%3E%3Cpath%20d=%22M69.246%204l161.86%2093.027-161.86%2093.031V4z%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linejoin=%22round%22/%3E%3Cellipse%20cx=%22253.352%22%20cy=%2296.736%22%20rx=%2221.393%22%20ry=%2221.893%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M4.057%2097.49h65.262m205.796%200h38.48%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22/%3E%3Ctext%20style=%22line-height:125%25%22%20x=%2281.112%22%20y=%22111.734%22%20transform=%22scale(.99532%201.0047)%22%20font-weight=%22400%22%20font-size=%2249.675%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#00f%22%3E%3Ctspan%20x=%2281.112%22%20y=%22111.734%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%3ENot%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 64, + "y": 144 + } + }, + { + "id": "664caf9e-5f40-4df4-800a-b626af702e62", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 752, + "y": 144 + } + }, + { + "id": "5365ed8c-e5db-4445-938f-8d689830ea5c", + "type": "basic.code", + "data": { + "code": "//-- Puerta NOT\n\n//-- module (input wire a, output wire c);\n\n\nassign c = ~a;\n\n\n//-- endmodule\n", + "params": [], + "ports": { + "in": [ + { + "name": "a" + } + ], + "out": [ + { + "name": "c" + } + ] + } + }, + "position": { + "x": 256, + "y": 48 + }, + "size": { + "width": 400, + "height": 256 + } + } + ], + "wires": [ + { + "source": { + "block": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "port": "out" + }, + "target": { + "block": "5365ed8c-e5db-4445-938f-8d689830ea5c", + "port": "a" + } + }, + { + "source": { + "block": "5365ed8c-e5db-4445-938f-8d689830ea5c", + "port": "c" + }, + "target": { + "block": "664caf9e-5f40-4df4-800a-b626af702e62", + "port": "in" + } + } + ] + } + } + }, + "0b4097a1c6ac2a5e6e6f03e1930cb2e46d222f05": { + "package": { + "name": "Comparador", + "version": "0.1", + "description": "Comparador de un operando de 4 bits. Se compara si el operando es igual al parámetro", + "author": "Juan Gonzalez-Gomez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22312.756%22%20height=%22168.82%22%20viewBox=%220%200%20293.20803%20158.26888%22%3E%3Ctext%20style=%22line-height:125%25%22%20x=%22178.324%22%20y=%22457.047%22%20font-size=%2296.3%22%20transform=%22matrix(4.864%200%200%204.864%20-916.998%20-1997.335)%22%20fill=%22#00f%22%20stroke-width=%22.057%22%20font-weight=%22400%22%20letter-spacing=%220%22%20word-spacing=%220%22%20font-family=%22sans-serif%22%3E%3Ctspan%20x=%22178.324%22%20y=%22457.047%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%20stroke-width=%22.206%22%3E=%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "0344dacc-8583-456b-b377-8cb4ab97cf94", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 616, + "y": 160 + } + }, + { + "id": "426de53f-e3cf-433b-bb21-00c5d207b946", + "type": "basic.input", + "data": { + "name": "", + "range": "[3:0]", + "clock": false, + "size": 4 + }, + "position": { + "x": 168, + "y": 160 + } + }, + { + "id": "bde24908-c5bf-4286-b7e3-e42a11ca5c68", + "type": "basic.constant", + "data": { + "name": "", + "value": "0", + "local": false + }, + "position": { + "x": 408, + "y": 48 + } + }, + { + "id": "9c811723-c900-4ceb-9989-036b071ee3fe", + "type": "basic.code", + "data": { + "code": "assign eq = (a == K);", + "params": [ + { + "name": "K" + } + ], + "ports": { + "in": [ + { + "name": "a", + "range": "[3:0]", + "size": 4 + } + ], + "out": [ + { + "name": "eq" + } + ] + } + }, + "position": { + "x": 344, + "y": 160 + }, + "size": { + "width": 224, + "height": 64 + } + } + ], + "wires": [ + { + "source": { + "block": "9c811723-c900-4ceb-9989-036b071ee3fe", + "port": "eq" + }, + "target": { + "block": "0344dacc-8583-456b-b377-8cb4ab97cf94", + "port": "in" + } + }, + { + "source": { + "block": "bde24908-c5bf-4286-b7e3-e42a11ca5c68", + "port": "constant-out" + }, + "target": { + "block": "9c811723-c900-4ceb-9989-036b071ee3fe", + "port": "K" + } + }, + { + "source": { + "block": "426de53f-e3cf-433b-bb21-00c5d207b946", + "port": "out" + }, + "target": { + "block": "9c811723-c900-4ceb-9989-036b071ee3fe", + "port": "a" + }, + "size": 4 + } + ] + } + } + }, + "53847c98bfef0fe28fbef1f4f65042911f361c44": { + "package": { + "name": "Registro-desplazamiento", + "version": "0.1", + "description": "Registro de desplazamiento (izquierda) de 8 bits", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22600.51%22%20height=%22391.803%22%20viewBox=%220%200%20158.8849%20103.66459%22%3E%3Cdefs%3E%3Cmarker%20orient=%22auto%22%20id=%22a%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-5.231-2.42L1.324-.01-5.23%202.401c1.047-1.423%201.041-3.37%200-4.821z%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3C/defs%3E%3Cpath%20d=%22M63.01%2076.938L76.618%2093.61%2069.7%2073.076%22%20fill=%22#ccc%22%20stroke=%22#000%22%20stroke-width=%221.092%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M55.626%2068.874L46.394%2049.26l-6.45%203.724-2.07-3.583%2020.905-12.07%202.069%203.584-6.092%203.517%2012.03%2018.223s5.399-2.025%208.535.74c3.137%202.766%202.52%204.92%202.887%204.773L54.52%2081.807s-2.848-3.696-2.16-6.796c.688-3.1%203.266-6.137%203.266-6.137z%22%20fill=%22red%22%20stroke=%22#000%22%20stroke-width=%221.092%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cg%20transform=%22translate(-93.18%206.94)%20scale(1.09073)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20cx=%22100.602%22%20cy=%2273.815%22%20r=%2214.559%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M103.454%2076.938L117.06%2093.61l-6.918-20.534%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%22/%3E%3Cpath%20d=%22M96.07%2068.874L86.836%2049.26l-6.45%203.724-2.07-3.583%2020.905-12.07%202.07%203.584-6.093%203.517%2012.03%2018.223s5.4-2.025%208.536.74c3.136%202.766%202.52%204.92%202.887%204.773L94.964%2081.807s-2.848-3.696-2.16-6.796c.687-3.1%203.265-6.137%203.265-6.137z%22%20fill=%22red%22%20stroke-width=%221.0924880399999999%22/%3E%3C/g%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M143.141%2076.938l13.607%2016.672-6.917-20.534%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%22/%3E%3Cpath%20d=%22M135.757%2068.874l-9.232-19.613-6.45%203.724-2.07-3.583%2020.905-12.07%202.069%203.584-6.092%203.517%2012.03%2018.223s5.399-2.025%208.535.74c3.137%202.766%202.52%204.92%202.887%204.773l-23.688%2013.638s-2.848-3.696-2.16-6.796c.688-3.1%203.266-6.137%203.266-6.137z%22%20fill=%22red%22%20stroke-width=%221.0924880399999999%22/%3E%3C/g%3E%3Cpath%20d=%22M184.452%2090.227H90.37%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%225.292%22%20marker-end=%22url(#a)%22%20transform=%22translate(-48.145%20-76.529)%22/%3E%3Cg%20transform=%22translate(-93.518%20-26.741)%20scale(1.09073)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20cx=%22100.602%22%20cy=%2273.815%22%20r=%2214.559%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "a265c13d-af7a-437b-97ae-424872381a93", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 224, + "y": 648 + } + }, + { + "id": "21039c06-c932-498c-968d-879a68d66795", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 952, + "y": 680 + } + }, + { + "id": "02007399-7499-4b76-ad4f-91094344d055", + "type": "basic.input", + "data": { + "name": "sin", + "clock": false + }, + "position": { + "x": 224, + "y": 696 + } + }, + { + "id": "05394100-6c4a-4bd5-b479-739c16ede30c", + "type": "basic.input", + "data": { + "name": "d", + "range": "[7:0]", + "clock": false, + "size": 8 + }, + "position": { + "x": 224, + "y": 744 + } + }, + { + "id": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", + "type": "basic.output", + "data": { + "name": "q", + "range": "[7:0]", + "size": 8 + }, + "position": { + "x": 968, + "y": 800 + } + }, + { + "id": "b916c09a-8848-4500-a1a0-0cc09e8f23c1", + "type": "basic.input", + "data": { + "name": "load", + "clock": false + }, + "position": { + "x": 224, + "y": 800 + } + }, + { + "id": "ec65c3cd-0951-4d74-bbfc-c37f87a78e66", + "type": "basic.input", + "data": { + "name": "shift", + "clock": false + }, + "position": { + "x": 224, + "y": 856 + } + }, + { + "id": "4fef4dd0-ce33-42df-96b7-6c92c543f8eb", + "type": "basic.constant", + "data": { + "name": "", + "value": "0", + "local": false + }, + "position": { + "x": 624, + "y": 544 + } + }, + { + "id": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "type": "basic.code", + "data": { + "code": "//-- Numero de bits el registros de desplazamiento\nlocalparam N = 8;\n\nreg [N-1:0] q = INI;\n\nalways @(posedge clk)\n if (load)\n q <= d;\n else if (shift)\n q <= {q[N-2:0], si};\n \n//-- Sacar el bit de mayor peso por serial-out \nassign so = q[N-1];", + "params": [ + { + "name": "INI" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "si" + }, + { + "name": "d", + "range": "[7:0]", + "size": 8 + }, + { + "name": "load" + }, + { + "name": "shift" + } + ], + "out": [ + { + "name": "so" + }, + { + "name": "q", + "range": "[7:0]", + "size": 8 + } + ] + } + }, + "position": { + "x": 440, + "y": 656 + }, + "size": { + "width": 464, + "height": 232 + } + } + ], + "wires": [ + { + "source": { + "block": "4fef4dd0-ce33-42df-96b7-6c92c543f8eb", + "port": "constant-out" + }, + "target": { + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "INI" + } + }, + { + "source": { + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "q" + }, + "target": { + "block": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", + "port": "in" + }, + "size": 8 + }, + { + "source": { + "block": "a265c13d-af7a-437b-97ae-424872381a93", + "port": "out" + }, + "target": { + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "clk" + } + }, + { + "source": { + "block": "02007399-7499-4b76-ad4f-91094344d055", + "port": "out" + }, + "target": { + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "si" + } + }, + { + "source": { + "block": "05394100-6c4a-4bd5-b479-739c16ede30c", + "port": "out" + }, + "target": { + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "d" + }, + "size": 8 + }, + { + "source": { + "block": "ec65c3cd-0951-4d74-bbfc-c37f87a78e66", + "port": "out" + }, + "target": { + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "shift" + } + }, + { + "source": { + "block": "b916c09a-8848-4500-a1a0-0cc09e8f23c1", + "port": "out" + }, + "target": { + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "load" + } + }, + { + "source": { + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "so" + }, + "target": { + "block": "21039c06-c932-498c-968d-879a68d66795", + "port": "in" + } + } + ] + } + } + }, + "1420082f26891895ac20bd3f92bae423a80f7669": { + "package": { + "name": "NAND", + "version": "1.0.1", + "description": "Puerta NAND", + "author": "Jesús Arroyo, Juan González", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22360.218%22%20height=%22194.045%22%20version=%221%22%3E%3Cpath%20d=%22M174.656%20190.045H78.304V4h96.352s87.463%208.625%2087.463%2091.94c0%2083.311-87.463%2094.105-87.463%2094.105z%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M4.057%2045.668h74.018M4.057%20144.812h74.018m228.708-50.034h49.378%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22/%3E%3Ctext%20style=%22line-height:125%25%22%20x=%2293.046%22%20y=%22111.175%22%20font-weight=%22400%22%20font-size=%2244.012%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#00f%22%3E%3Ctspan%20x=%2293.046%22%20y=%22111.175%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%3ENAND%3C/tspan%3E%3C/text%3E%3Cellipse%20cx=%22284.476%22%20cy=%2294.796%22%20rx=%2221.393%22%20ry=%2221.893%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 64, + "y": 88 + } + }, + { + "id": "664caf9e-5f40-4df4-800a-b626af702e62", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 784, + "y": 152 + } + }, + { + "id": "97b51945-d716-4b6c-9db9-970d08541249", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 64, + "y": 224 + } + }, + { + "id": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "type": "basic.code", + "data": { + "code": "//-- Puerta NAND\n\n//-- module nand (input wire a, input wire b,\n//-- output wire c);\n\nassign c = ~(a & b);\n\n//-- endmodule", + "params": [], + "ports": { + "in": [ + { + "name": "a" + }, + { + "name": "b" + } + ], + "out": [ + { + "name": "c" + } + ] + } + }, + "position": { + "x": 256, + "y": 48 + }, + "size": { + "width": 464, + "height": 272 + } + } + ], + "wires": [ + { + "source": { + "block": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "port": "out" + }, + "target": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "a" + } + }, + { + "source": { + "block": "97b51945-d716-4b6c-9db9-970d08541249", + "port": "out" + }, + "target": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "b" + } + }, + { + "source": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "c" + }, + "target": { + "block": "664caf9e-5f40-4df4-800a-b626af702e62", + "port": "in" + } + } + ] + } + } + }, + "7b1b18c562dd91a11b875e640993a8c004d75533": { + "package": { + "name": "Corazon_Hz CLONE", + "version": "0.1-c1619126144316", + "description": "Corazon genérico para bombear bits a la frecuencia fijada en Hz (por defecto 1Hz)", + "author": "Juan Gonzalez-Gomez (obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22177.215%22%20height=%22156.392%22%20viewBox=%220%200%20166.13943%20146.61829%22%3E%3Cpath%20d=%22M78.495%20143.399c-2.574-4.43-6.565-8.766-14.127-15.35-4.096-3.566-6.588-5.546-20.775-16.506-11.12-8.593-16.668-13.36-23.098-19.847C14.07%2085.208%2010.293%2080.04%207.052%2073.303%204.984%2069%203.562%2064.854%202.676%2060.547c-1.123-5.472-1.275-7.324-1.27-15.382.008-10.573.357-12.332%203.828-19.385%202.58-5.239%204.54-7.997%208.62-12.141%203.963-4.022%206.536-5.85%2012.1-8.6%206.18-3.057%2010.65-3.859%2019.86-3.562%207.157.232%209.776.943%2015.45%204.208%208.929%205.138%2015.858%2013.387%2017.776%2021.162.313%201.27.636%202.312.719%202.312.082%200%20.805-1.487%201.606-3.305%202.727-6.179%205.26-9.95%209.284-13.828%2012.32-11.88%2031.744-14.027%2047.45-5.25%206.414%203.584%2011.633%208.802%2015.676%2015.675%203.184%205.41%204.812%2012.595%205.09%2022.464.402%2014.298-2.214%2024.207-9.174%2034.766-2.763%204.19-4.806%206.73-8.638%2010.73-6.182%206.458-11.758%2011.205-24.92%2021.216-8.307%206.317-13.23%2010.378-20.355%2016.8-5.71%205.143-14.558%2014.1-15.41%2015.596-.372.655-.71%201.189-.749%201.189-.039%200-.544-.815-1.124-1.813z%22%20fill=%22red%22%20stroke=%22#000%22%20stroke-width=%222.813%22/%3E%3Ctext%20y=%22136.183%22%20x=%22124.113%22%20style=%22line-height:125%25%22%20font-weight=%22400%22%20font-size=%2253.914%22%20letter-spacing=%220%22%20word-spacing=%220%22%20transform=%22scale(.99853%201.00147)%22%20font-family=%22sans-serif%22%20fill=%22#00f%22%3E%3Ctspan%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%22136.183%22%20x=%22124.113%22%20font-weight=%22700%22%20font-size=%2230.808%22%3EHz%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "4656865c-bcf1-4668-8e13-9221e32222d3", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": -296, + "y": 0 + } + }, + { + "id": "70887b0b-826c-4150-a873-605b77da8272", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 560, + "y": 128 + } + }, + { + "id": "38f0d8e4-3d8b-4998-87af-0d8cf7c1fd6a", + "type": "basic.input", + "data": { + "name": "rst", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "clock": false + }, + "position": { + "x": -296, + "y": 264 + } + }, + { + "id": "319cdca8-e777-4c8b-88ca-f885ba96ad06", + "type": "basic.constant", + "data": { + "name": "", + "value": "1", + "local": false + }, + "position": { + "x": 112, + "y": -224 + } + }, + { + "id": "7e864797-b165-408f-a9ce-2e71dc63f8b8", + "type": "basic.code", + "data": { + "code": "\n//parameter HZ=1;\n\n//-- Constante para dividir y obtener una frecuencia de 1Hz\nlocalparam M = 12000000/HZ;\n\n//-- Calcular el numero de bits para almacenar M\nlocalparam N = $clog2(M);\n\n//-- Registro del divisor\nreg [N-1:0] divcounter;\n\n//-- Temporal clock\nreg clk_t = 0;\n\n//-- Se usa un contador modulo M/2 para luego\n//-- pasarlo por un biestable T y dividir la frecuencia\n//-- entre 2, para que el ciclo de trabajo sea del 50%\nalways @(posedge clk)\n if (rst)\n divcounter = 0;\n else if (divcounter == M/2) begin\n clk_t <= 1;\n divcounter = 0;\n end \n else begin\n divcounter <= divcounter + 1;\n clk_t = 0;\n end \n \nreg clk_o = 0; \n \n//-- Biestable T para obtener ciclo de trabajo del 50%\nalways @(posedge clk) begin\n if (clk_t) clk_o <= ~clk_o;\nend", + "params": [ + { + "name": "HZ" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "rst" + } + ], + "out": [ + { + "name": "clk_o" + } + ] + } + }, + "position": { + "x": -104, + "y": -104 + }, + "size": { + "width": 528, + "height": 528 + } + } + ], + "wires": [ + { + "source": { + "block": "7e864797-b165-408f-a9ce-2e71dc63f8b8", + "port": "clk_o" + }, + "target": { + "block": "70887b0b-826c-4150-a873-605b77da8272", + "port": "in" + } + }, + { + "source": { + "block": "4656865c-bcf1-4668-8e13-9221e32222d3", + "port": "out" + }, + "target": { + "block": "7e864797-b165-408f-a9ce-2e71dc63f8b8", + "port": "clk" + }, + "vertices": [] + }, + { + "source": { + "block": "319cdca8-e777-4c8b-88ca-f885ba96ad06", + "port": "constant-out" + }, + "target": { + "block": "7e864797-b165-408f-a9ce-2e71dc63f8b8", + "port": "HZ" + } + }, + { + "source": { + "block": "38f0d8e4-3d8b-4998-87af-0d8cf7c1fd6a", + "port": "out" + }, + "target": { + "block": "7e864797-b165-408f-a9ce-2e71dc63f8b8", + "port": "rst" + } + } + ] + } + } + }, + "b70dd9c39fe3c51faff4233d2dde462fc53c7e38": { + "package": { + "name": "XOR", + "version": "1.0.1", + "description": "Puerta XOR", + "author": "Jesús Arroyo, Juan González", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20height=%22193.047%22%20width=%22383.697%22%20version=%221%22%3E%3Cpath%20d=%22M175.56%20189.047H84.527s30.345-42.538%2031.086-94.03c.743-51.49-31.821-90.294-31.821-90.294l92.317-.394c46.445%201.948%20103.899%2053.44%20123.047%2093.678-32.601%2067.503-92.158%2089.79-123.596%2091.04z%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M4.057%2047.62h99.605M4.883%20145.497h100.981M298.57%2099.219h81.07%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22/%3E%3Ctext%20x=%22129.011%22%20y=%22115.285%22%20font-size=%2258.24%22%20font-weight=%22400%22%20style=%22line-height:125%25%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#00f%22%20transform=%22translate(0%20.329)%22%3E%3Ctspan%20x=%22129.011%22%20y=%22115.285%22%20font-weight=%22700%22%3EXOR%3C/tspan%3E%3C/text%3E%3Cpath%20d=%22M54.321%20188.368s30.345-42.538%2031.086-94.03c.742-51.49-31.821-90.294-31.821-90.294%22%20fill=%22none%22%20stroke=%22#000%22%20stroke-width=%228%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 64, + "y": 88 + } + }, + { + "id": "664caf9e-5f40-4df4-800a-b626af702e62", + "type": "basic.output", + "data": { + "name": "" + }, + "position": { + "x": 784, + "y": 152 + } + }, + { + "id": "97b51945-d716-4b6c-9db9-970d08541249", + "type": "basic.input", + "data": { + "name": "" + }, + "position": { + "x": 64, + "y": 224 + } + }, + { + "id": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "type": "basic.code", + "data": { + "code": "//-- Puerta XOR\n\n//-- module xor (input wire a, input wire b,\n//-- output wire c);\n\nassign c = a ^ b;\n\n//-- endmodule", + "params": [], + "ports": { + "in": [ + { + "name": "a" + }, + { + "name": "b" + } + ], + "out": [ + { + "name": "c" + } + ] + } + }, + "position": { + "x": 256, + "y": 48 + }, + "size": { + "width": 464, + "height": 272 + } + } + ], + "wires": [ + { + "source": { + "block": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "port": "out" + }, + "target": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "a" + } + }, + { + "source": { + "block": "97b51945-d716-4b6c-9db9-970d08541249", + "port": "out" + }, + "target": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "b" + } + }, + { + "source": { + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "c" + }, + "target": { + "block": "664caf9e-5f40-4df4-800a-b626af702e62", + "port": "in" + } + } + ] + } + } + }, + "fae75666c16ceda511dc194c49e012b7019d8032": { + "package": { + "name": "Wave_stop_ptk", + "version": "0.1", + "description": "It is responsible for giving two pulses to create the stop signal in the multiplexers and reset other modules.", + "author": "Democrito", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22157.458%22%20height=%22128.044%22%20viewBox=%220%200%2041.660765%2033.878045%22%3E%3Cpath%20d=%22M11.101%2010.207L11%2020.62l2.092-2.304H8.705L11%2020.618%22%20fill=%22none%22%20stroke=%22red%22%20stroke-width=%221.455%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M.005%2022.243l14.501.042v-6.787l13.702-.14%22%20fill=%22none%22%20stroke=%22#0000a1%22%20stroke-width=%221.426%22/%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:'sans-serif%20Bold'%22%20x=%224.364%22%20y=%229.319%22%20font-weight=%22700%22%20font-size=%2211.65%22%20letter-spacing=%220%22%20word-spacing=%220%22%20transform=%22scale(.89695%201.11489)%22%20font-family=%22sans-serif%22%20fill=%22#ff844c%22%20stroke=%22#004600%22%20stroke-width=%22.625%22%3E%3Ctspan%20x=%224.364%22%20y=%229.319%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%3EStop%3C/tspan%3E%3C/text%3E%3Cpath%20d=%22M7.508%206.688c0%201.456.056%201.456.056%201.456%22%20fill=%22none%22%20stroke=%22#0ff%22%20stroke-width=%22.1%22%20stroke-opacity=%22.151%22/%3E%3Cpath%20d=%22M15.438.132h4.558%22%20fill=%22none%22/%3E%3Cpath%20d=%22M.005%2033.165l12.318-.09-.066-6.788c5.404.004%2010.674.107%2016.077%200%22%20fill=%22none%22%20stroke=%22#0000a1%22%20stroke-width=%221.426%22/%3E%3Cg%20transform=%22matrix(.4277%200%200%20.33377%20-7.724%20-3.118)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2214.559%22%20cy=%2273.815%22%20cx=%22100.602%22%20fill=%22#ececec%22%20stroke-width=%22.608%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%221.521%22/%3E%3C/g%3E%3C/svg%3E", + "otid": 1603921862534 + }, + "design": { + "graph": { + "blocks": [ + { + "id": "5b6c2879-1b2f-42ad-a627-77ab5818e651", + "type": "basic.input", + "data": { + "name": "", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "clock": true + }, + "position": { + "x": 504, + "y": 48 + } + }, + { + "id": "b77bd433-38d0-4ec7-9c21-7e1b7bf4743e", + "type": "basic.output", + "data": { + "name": "two", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 1776, + "y": 168 + } + }, + { + "id": "17a6513b-054c-44d6-8010-11470eb5b29a", + "type": "basic.input", + "data": { + "name": "start", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "clock": false + }, + "position": { + "x": 496, + "y": 240 + } + }, + { + "id": "85cff7d0-bfed-43a4-989c-9788a21aa439", + "type": "basic.output", + "data": { + "name": "rst", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true + }, + "position": { + "x": 1776, + "y": 248 + } + }, + { + "id": "9bb84a42-9ee0-4d22-aec1-1b9c60278ed5", + "type": "basic.input", + "data": { + "name": "fq", + "pins": [ + { + "index": "0", + "name": "NULL", + "value": "NULL" + } + ], + "virtual": true, + "clock": false + }, + "position": { + "x": 504, + "y": 472 + } + }, + { + "id": "1b5553e0-14de-497c-871d-3777bbebe5d5", + "type": "basic.constant", + "data": { + "name": "", + "value": "2", + "local": true + }, + "position": { + "x": 1520, + "y": 80 + } + }, + { + "id": "1ecd4eda-3997-4bd0-9558-282d80be3257", + "type": "e79148d23652be6d5149f8f6881f7f47bd958497", + "position": { + "x": 1520, + "y": 208 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "74f13278-71af-4786-b736-dcf24af327d7", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 1280, + "y": 256 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "1de51b71-a2d9-4a3b-83e7-64f779a2e31f", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 1032, + "y": 224 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "82cc7fd9-2492-4491-9ae2-aa9d6f364aaf", + "type": "c386a7076c0569a15326b30b6748ca284426424d", + "position": { + "x": 784, + "y": 456 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "ffcc22ca-7cb0-4aef-958a-530c7efd93ce", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "position": { + "x": 1040, + "y": 456 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "edf9b5b0-a85c-49c6-bce6-0a5952c0031a", + "type": "basic.info", + "data": { + "info": "** Gives the last two pulses that make up the stop sign. **", + "readonly": true + }, + "position": { + "x": 1120, + "y": 128 + }, + "size": { + "width": 192, + "height": 32 + } + }, + { + "id": "873cde2a-1581-4a08-b4a1-709ae51320ce", + "type": "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542", + "position": { + "x": 1280, + "y": 176 + }, + "size": { + "width": 96, + "height": 64 + } + } + ], + "wires": [ + { + "source": { + "block": "1ecd4eda-3997-4bd0-9558-282d80be3257", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + }, + "target": { + "block": "85cff7d0-bfed-43a4-989c-9788a21aa439", + "port": "in" + }, + "vertices": [] + }, + { + "source": { + "block": "1b5553e0-14de-497c-871d-3777bbebe5d5", + "port": "constant-out" + }, + "target": { + "block": "1ecd4eda-3997-4bd0-9558-282d80be3257", + "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" + }, + "vertices": [] + }, + { + "source": { + "block": "5b6c2879-1b2f-42ad-a627-77ab5818e651", + "port": "out" + }, + "target": { + "block": "1ecd4eda-3997-4bd0-9558-282d80be3257", + "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" + }, + "vertices": [ + { + "x": 1456, + "y": 152 + } + ] + }, + { + "source": { + "block": "74f13278-71af-4786-b736-dcf24af327d7", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "1ecd4eda-3997-4bd0-9558-282d80be3257", + "port": "26aba23f-8567-4e9b-bd45-c26724030f33" + }, + "vertices": [] + }, + { + "source": { + "block": "74f13278-71af-4786-b736-dcf24af327d7", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "b77bd433-38d0-4ec7-9c21-7e1b7bf4743e", + "port": "in" + }, + "vertices": [ + { + "x": 1456, + "y": 328 + }, + { + "x": 1712, + "y": 304 + } + ] + }, + { + "source": { + "block": "1de51b71-a2d9-4a3b-83e7-64f779a2e31f", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "74f13278-71af-4786-b736-dcf24af327d7", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "5b6c2879-1b2f-42ad-a627-77ab5818e651", + "port": "out" + }, + "target": { + "block": "1de51b71-a2d9-4a3b-83e7-64f779a2e31f", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + }, + "vertices": [] + }, + { + "source": { + "block": "1ecd4eda-3997-4bd0-9558-282d80be3257", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + }, + "target": { + "block": "1de51b71-a2d9-4a3b-83e7-64f779a2e31f", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + }, + "vertices": [ + { + "x": 1656, + "y": 408 + } + ] + }, + { + "source": { + "block": "17a6513b-054c-44d6-8010-11470eb5b29a", + "port": "out" + }, + "target": { + "block": "1de51b71-a2d9-4a3b-83e7-64f779a2e31f", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + }, + "vertices": [] + }, + { + "source": { + "block": "5b6c2879-1b2f-42ad-a627-77ab5818e651", + "port": "out" + }, + "target": { + "block": "82cc7fd9-2492-4491-9ae2-aa9d6f364aaf", + "port": "2708468d-1088-4570-be63-fb0d4799a941" + }, + "vertices": [ + { + "x": 752, + "y": 352 + } + ] + }, + { + "source": { + "block": "9bb84a42-9ee0-4d22-aec1-1b9c60278ed5", + "port": "out" + }, + "target": { + "block": "82cc7fd9-2492-4491-9ae2-aa9d6f364aaf", + "port": "9ca5353b-32fd-4f1f-af0b-5339bd50b1ff" + }, + "vertices": [] + }, + { + "source": { + "block": "ffcc22ca-7cb0-4aef-958a-530c7efd93ce", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "74f13278-71af-4786-b736-dcf24af327d7", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] + }, + { + "source": { + "block": "82cc7fd9-2492-4491-9ae2-aa9d6f364aaf", + "port": "1c25e08e-e664-4fab-9b30-cedc1f8a3739" + }, + "target": { + "block": "ffcc22ca-7cb0-4aef-958a-530c7efd93ce", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "82cc7fd9-2492-4491-9ae2-aa9d6f364aaf", + "port": "3ada5999-55ba-4c4e-9877-a3e9ed82308c" + }, + "target": { + "block": "ffcc22ca-7cb0-4aef-958a-530c7efd93ce", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] + }, + { + "source": { + "block": "873cde2a-1581-4a08-b4a1-709ae51320ce", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "1ecd4eda-3997-4bd0-9558-282d80be3257", + "port": "743b5299-2d89-4783-b7c9-12a5b36df406" + }, + "vertices": [ + { + "x": 1416, + "y": 232 + } + ] + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/examples/I2C/readme.md b/examples/I2C/readme.md index caad17f..de28ac4 100644 --- a/examples/I2C/readme.md +++ b/examples/I2C/readme.md @@ -1,15 +1,55 @@ +# How the write-only I2C module works + ![](https://github.com/Democrito/repositorios/blob/master/Sensors/I2C/LCD/img/i2c%20only%20write.PNG) If we put an 8-bit data (d[7:0]) and we tick the "send" pin, this module will send that data through the I2C, and this is done with as many bytes as we want and with the size of packets of bytes that we want (it is to repeat this action). When we tick the "stop" pin, the data packet is closed. The first byte must always be the I2C address. If you know the I2C protocol, you should know that with the first byte it sends, the I2C protocol "start" signal is automatically produced (because it is the first), and when it has finished sending data (of any width), when emitting a tick on the "stop" pin creates the I2C protocol's "stop" signal. -For this I2C module, the address is treated like any other data (it is not different from the rest of the data you send), so the byte of the address (which is 7 bits) must be multiplied by 2 to add the bit RW and form the 8 bits. You don't have to worry about anything, this conversion is done by the module directly. The ACK bit of the I2C protocol is added inside the module automatically (everything is automated). +For this I2C module, the address is treated like any other data (it is not different from the rest of the data you send), so the byte of the address (which is 7 bits) must be multiplied by 2 to add the bit RW and form the 8 bits. Since this module only writes, RW will always be 0. ![](https://github.com/Democrito/repositorios/blob/master/Sensors/I2C/LCD/img/ejemplo%20simple%20i2c.PNG) -To illustrate how simple it is to make it work, I leave you with this image. It is about sending 2 bytes through the I2C. To send two bytes we need a 1-bit counting machine, since that bit (q) will give us 0 and then 1; these values are the ones that will address the table. The counter is in charge of sending first "55" and then "AA" and everything will remain as a 2-byte packet with its "start" and "stop" signal of the I2C protocol. At the end of the send, the "done" signal from the I2C module will let us know that it is ready for another send. For any other information packet (2, 1234 or 1,000,000,000 bytes), a counting machine must be installed that reaches that sending number. To get variable packets, the counting machine must have an input with a variable limit. +To illustrate how simple it is to make it work, I leave you with this image. It is about sending 2 bytes through the I2C. To send two bytes we need a 1-bit counting machine, since that bit (q) will give us 0 and then 1; these values are the ones that will address the table. The counter is in charge of sending first "55" and then "AA" and everything will remain as a 2-byte packet with its "start" and "stop" signal of the I2C protocol. At the end of the send, the "done" signal from the I2C module will let us know that it is ready for another send. For any other information packet (2, 1024 or 1,000,000,000 bytes), a counting machine must be installed that reaches that sending number. To get variable packets, the counting machine must have an input with a variable limit. If you view the signals through [PulseView](https://sigrok.org/doc/pulseview/0.4.1/manual.html), the first byte is always interpreted as an address, so it doesn't come out with the value 55 (in this example), but this doesn't mean it's wrong, just that it interprets the first byte as an address 7 bits instead of 8. ![](https://github.com/Democrito/repositorios/blob/master/Sensors/I2C/Signals%20i2c%20example.PNG) We can verify that the first byte, being the address, instead of "55" PulseWiew interprets it as "2A", however, if we read the binary part, we verify that it is "0101_0101", therefore it is "55". Everything's fine! + +# How the I2C read and write module works + +![](https://github.com/Democrito/repositorios/blob/master/Sensors/I2C/image_I2C_RW_module.PNG) + +Taking readings from an I2C is not trivial. A good knowledge of the I2C protocol is required. As a general rule, peripherals and sensors must be configured first in order to read the data later. + +Like the write-only I2C, through the input d[7:0] we will put the byte that we want to send and giving it a tick in "start" it will be sent. The "next" output pin will give us a tick once it has been sent. And when we're done sending the data packet, we tick "stop" and it will close the data packet and tick the "done" pin. We can check that so far it is exactly the same as the write-only I2C module. + +![](https://github.com/Democrito/I2C_only_write/blob/master/IMG/send_address.PNG) + +For this I2C master module, the address is treated like any other data (it is no different from the rest of the data it sends), so the byte of the address (which is 7 bits) must be multiplied by 2 to add the bit RW and form the 8 bits. And if it's going to read, then you have to multiply the I2C address by two and add 1 to it. Remember that the address byte is always assigned a 7-bit value. Adding the low bit RW makes it 8 bits, and the value of this low bit tells the I2C bus whether the I2C master (our module) will write or read. + +In the input pin "RW" we will tell it if we want to write or read. RW=0 write, RW=1 read. + +The "nack" input pin will normally be at 0 and some peripherals and sensors can accept it. However, there are peripherals and sensors that strictly adhere to the I2C protocol. Then this rule must be fulfilled: With the last byte read, the nack must be set to 1, which means that this is the last byte read. If we read a single byte, we must also set the nack pin to 1 (because it is the first and last at the same time). + +The "sdata" and "shift" output pins are the serial output through which we will get the I2C readings. Externally you need to drive them to a shift register, it connects directly to those two pins. The reason for not putting 8-bit direct output is because I have found cases in which I have to read 40 bits in a row and thus configure the output as it suits me best. + +The sda_test, scl_test and rw_test pins do not have a hardware utility per se, but they are used to see the signals through the [PulseView](https://sigrok.org/doc/pulseview/0.4.1/manual.html) program and verify that the design we are making works correctly, or if not, detect where it fails. And I don't mean that the I2C module fails, but that we are sending the data packets as expected. It can happen, for example, that before finishing a data packet another one wants to go out, and if it happens, we can see those inconsistencies through [PulseView](https://sigrok.org/doc/pulseview/0.4.1/manual.html). + +The "sda" and "scl" pins are obviously where we connect the I2C bus. + +![](https://github.com/Democrito/repositorios/blob/master/Sensors/I2C/image_example_I2C_RW_ADC.PNG) + +As an example, I have used the ADC that comes with the [Alhambras FPGA](https://alhambrabits.com/alhambra/). And to make it as simple as possible, it only reads channel 0. + +The counting machine is in charge of sending each one of the bytes of the table. But in the table there are actually 3 data packets: one 3-byte packet and two 2-byte packets. We need to create a control logic, to know what value the counting machine has and thus manage the "stop" pin (end of the packet) and the control of "RW" and "nack". Since we are only going to read 1 byte, "RW" and "nack" must be linked to the same control logic. + +If you double click on the "ControlLogic" module, you will see a control logic circuit and everything is explained inside. That part is out of the topic of this tutorial, however you should be able to handle this logic if you use this module (I2C-RW) in your projects. Anyway, the design that I have put here is one way of many, maybe you would do it differently. + +In the image you can see how the shift register is connected and, through another register, the retention of that read byte. + +On the left side of the schematic is a delayed start circuit. I put it on purpose to warn that when you do a design for a peripheral, many of them need a timeout before they get to work. When a circuit doesn't work the first time, this could be one of the problems. You can find the delay time in the datasheet. + +I leave an image of the signals that [PulseView](https://sigrok.org/doc/pulseview/0.4.1/manual.html) reads. + +![](https://github.com/Democrito/repositorios/blob/master/Sensors/I2C/ads7924_signals.png)