From 92e31a43fbb56bceb8dcabaeeb73dcea28eea1bb Mon Sep 17 00:00:00 2001 From: obijuan Date: Sun, 15 May 2022 17:45:32 +0200 Subject: [PATCH] ADC: Examples 3,4 and 5 updated to the new ADC --- examples/ADC/03-Potentiometer-servo.ice | 12310 +++++++++-------- examples/ADC/04-Potentiometer-BCD-7Seg.ice | 13832 ++++++++++--------- examples/ADC/05-Potentiometer-8LEDs.ice | 12136 ++++++++-------- 3 files changed, 19283 insertions(+), 18995 deletions(-) diff --git a/examples/ADC/03-Potentiometer-servo.ice b/examples/ADC/03-Potentiometer-servo.ice index c045494..5bb4c2f 100644 --- a/examples/ADC/03-Potentiometer-servo.ice +++ b/examples/ADC/03-Potentiometer-servo.ice @@ -8,7 +8,7 @@ "image": "" }, "design": { - "board": "icezum", + "board": "alhambra-ii", "graph": { "blocks": [ { @@ -21,42 +21,42 @@ { "index": "7", "name": "LED7", - "value": "104" + "value": "37" }, { "index": "6", "name": "LED6", - "value": "102" + "value": "38" }, { "index": "5", "name": "LED5", - "value": "101" + "value": "39" }, { "index": "4", "name": "LED4", - "value": "99" + "value": "41" }, { "index": "3", "name": "LED3", - "value": "98" + "value": "42" }, { "index": "2", "name": "LED2", - "value": "97" + "value": "43" }, { "index": "1", "name": "LED1", - "value": "96" + "value": "44" }, { "index": "0", "name": "LED0", - "value": "95" + "value": "45" } ], "virtual": false @@ -75,7 +75,7 @@ { "index": "0", "name": "ADC_SDA", - "value": "90" + "value": "83" } ], "virtual": false, @@ -95,14 +95,14 @@ { "index": "0", "name": "ADC_SCL", - "value": "91" + "value": "84" } ], "virtual": false }, "position": { - "x": -1704, - "y": -400 + "x": -1688, + "y": -392 } }, { @@ -114,7 +114,7 @@ { "index": "0", "name": "D0", - "value": "119" + "value": "2" } ], "virtual": false @@ -173,8 +173,8 @@ "readonly": true }, "position": { - "x": -1696, - "y": -416 + "x": -1672, + "y": -432 }, "size": { "width": 136, @@ -206,31 +206,19 @@ }, "position": { "x": -2104, - "y": -304 + "y": -320 }, "size": { "width": 136, "height": 56 } }, - { - "id": "1aa1089f-d81a-4699-a162-c100423720b6", - "type": "0851e7c0bc752c07a32e339ef30176e3180dca90", - "position": { - "x": -1872, - "y": -312 - }, - "size": { - "width": 96, - "height": 128 - } - }, { "id": "219023e3-d4b1-4ed0-9c5d-e93d6df062a3", "type": "18fd28fbb97a4fd982053988e015aa934dcd6014", "position": { "x": -2128, - "y": -264 + "y": -280 }, "size": { "width": 96, @@ -277,8 +265,8 @@ "readonly": true }, "position": { - "x": -1680, - "y": -304 + "x": -1672, + "y": -320 }, "size": { "width": 168, @@ -308,6 +296,18 @@ "width": 96, "height": 64 } + }, + { + "id": "aea2ed83-8519-48b9-b141-4a67137ec1d0", + "type": "fe216fc3f7e19209c184579380d23a46cb3ac1b5", + "position": { + "x": -1864, + "y": -328 + }, + "size": { + "width": 96, + "height": 128 + } } ], "wires": [ @@ -323,23 +323,22 @@ }, { "source": { - "block": "219023e3-d4b1-4ed0-9c5d-e93d6df062a3", - "port": "6a253ddf-22b2-43cd-ba6f-561bd1af6970" + "block": "e1f585f1-af23-40fd-a4e9-e5eaf604c0f4", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" }, "target": { - "block": "1aa1089f-d81a-4699-a162-c100423720b6", - "port": "09a84e89-0e4a-43cc-a5b9-6c8ac6ce5742" - }, - "size": 2 + "block": "95a1b9c4-4cac-40db-96a6-3b7031e184bc", + "port": "fac4aba8-78c9-4e9e-918b-3fb3a21c64a7" + } }, { "source": { - "block": "6901f9c0-d7de-4616-ac84-4fd92cc1d12f", - "port": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c" + "block": "95a1b9c4-4cac-40db-96a6-3b7031e184bc", + "port": "17cd3530-95be-4f0b-897e-1893c9831f1b" }, "target": { - "block": "1aa1089f-d81a-4699-a162-c100423720b6", - "port": "bfc6f0ec-0d3a-4caa-9d40-9f4e8f59f112" + "block": "2f61a4f4-3091-4195-8d1d-a0c6c3e80841", + "port": "in" } }, { @@ -348,13 +347,19 @@ "port": "out" }, "target": { - "block": "1aa1089f-d81a-4699-a162-c100423720b6", + "block": "aea2ed83-8519-48b9-b141-4a67137ec1d0", "port": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a" - } + }, + "vertices": [ + { + "x": -1952, + "y": -352 + } + ] }, { "source": { - "block": "1aa1089f-d81a-4699-a162-c100423720b6", + "block": "aea2ed83-8519-48b9-b141-4a67137ec1d0", "port": "43bc16ab-b91d-405c-bef0-887bd1a85fd7" }, "target": { @@ -364,67 +369,74 @@ }, { "source": { - "block": "1aa1089f-d81a-4699-a162-c100423720b6", + "block": "aea2ed83-8519-48b9-b141-4a67137ec1d0", "port": "2dd424a5-e616-4505-8a89-4982cdd7539d" }, "target": { "block": "2dd424a5-e616-4505-8a89-4982cdd7539d", "port": "in" }, - "vertices": [ - { - "x": -1520, - "y": -328 - } - ], "size": 8 }, { "source": { - "block": "1aa1089f-d81a-4699-a162-c100423720b6", - "port": "2dd424a5-e616-4505-8a89-4982cdd7539d" + "block": "219023e3-d4b1-4ed0-9c5d-e93d6df062a3", + "port": "6a253ddf-22b2-43cd-ba6f-561bd1af6970" }, "target": { - "block": "95a1b9c4-4cac-40db-96a6-3b7031e184bc", - "port": "fbd5aac5-ae58-4153-9a1e-a2bec9ce86b4" + "block": "aea2ed83-8519-48b9-b141-4a67137ec1d0", + "port": "09a84e89-0e4a-43cc-a5b9-6c8ac6ce5742" }, - "size": 8 + "size": 2 }, { "source": { - "block": "1aa1089f-d81a-4699-a162-c100423720b6", - "port": "f4f0b0cc-6b11-417f-b8de-933dd739752b" + "block": "6901f9c0-d7de-4616-ac84-4fd92cc1d12f", + "port": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c" }, "target": { - "block": "95a1b9c4-4cac-40db-96a6-3b7031e184bc", - "port": "9bd6b68b-84ad-4608-9891-47a8f989eb10" + "block": "aea2ed83-8519-48b9-b141-4a67137ec1d0", + "port": "bfc6f0ec-0d3a-4caa-9d40-9f4e8f59f112" }, "vertices": [ { - "x": -1744, - "y": -128 + "x": -1984, + "y": -120 } ] }, { "source": { - "block": "e1f585f1-af23-40fd-a4e9-e5eaf604c0f4", - "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + "block": "aea2ed83-8519-48b9-b141-4a67137ec1d0", + "port": "2dd424a5-e616-4505-8a89-4982cdd7539d" }, "target": { "block": "95a1b9c4-4cac-40db-96a6-3b7031e184bc", - "port": "fac4aba8-78c9-4e9e-918b-3fb3a21c64a7" - } + "port": "fbd5aac5-ae58-4153-9a1e-a2bec9ce86b4" + }, + "vertices": [ + { + "x": -1696, + "y": -208 + } + ], + "size": 8 }, { "source": { - "block": "95a1b9c4-4cac-40db-96a6-3b7031e184bc", - "port": "17cd3530-95be-4f0b-897e-1893c9831f1b" + "block": "aea2ed83-8519-48b9-b141-4a67137ec1d0", + "port": "f4f0b0cc-6b11-417f-b8de-933dd739752b" }, "target": { - "block": "2f61a4f4-3091-4195-8d1d-a0c6c3e80841", - "port": "in" - } + "block": "95a1b9c4-4cac-40db-96a6-3b7031e184bc", + "port": "9bd6b68b-84ad-4608-9891-47a8f989eb10" + }, + "vertices": [ + { + "x": -1736, + "y": -184 + } + ] } ] } @@ -545,1351 +557,1592 @@ } } }, - "0851e7c0bc752c07a32e339ef30176e3180dca90": { + "18fd28fbb97a4fd982053988e015aa934dcd6014": { "package": { - "name": "adc", - "version": "0.1", - "description": "Analog-to-digital-converter", - "author": "Juan Gonzalez-Gomez (Obiuan)", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20id=%22Ebene_1%22%20width=%22272.885%22%20height=%22360.534%22%20viewBox=%220%200%20272.88513%20360.53439%22%3E%3Cdefs%20id=%22defs25%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=%22path880%22%20d=%22M-58.3-45h653.6v640H-58.3z%22/%3E%3Cmarker%20id=%22TriangleInM%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-2.308%200l3.46-2v4z%22%20id=%22path4321%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22EmptyTriangleInM%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-.508%200l3.46-2v4z%22%20id=%22path4339%22%20fill=%22#fff%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22TriangleOutM-3%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20id=%22path4297%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22marker4456%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=%22path4458%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cmarker%20id=%22marker4428%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=%22path4430%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-67%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=%22path4179%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cpath%20id=%22path919%22%20d=%22M-58.3-45h653.6v640H-58.3z%22/%3E%3Cpath%20id=%22path998%22%20d=%22M-58.3-45h653.6v640H-58.3z%22/%3E%3Cmarker%20orient=%22auto%22%20id=%22TriangleOutM-4%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path972-7%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-2%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path836-4%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-0%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path854-62%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-99%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path854-6-0%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-8%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path836-3-1%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%20id=%22TriangleOutM-7-3%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20id=%22path972-5-1%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22Arrow1Mend-3-1%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-4%200l-2%202%207-2-7-2z%22%20id=%22path836-5-0%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22Arrow2Mend-6-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-2-4%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-9-0%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-1-3%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-2-9%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-4%200l-2%202%207-2-7-2z%22%20id=%22path836-3-7-1%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%20d=%22M-58.3-45h653.6v640H-58.3z%22%20id=%22a-6%22/%3E%3C/defs%3E%3Cpath%20d=%22M-58.3-45h653.6v640H-58.3z%22%20id=%22path880-9%22/%3E%3Cmarker%20orient=%22auto%22%20id=%22TriangleInM-3%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4321-3%22%20d=%22M-2.308%200l3.46-2v4z%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22EmptyTriangleInM-8%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4339-0%22%20d=%22M-.508%200l3.46-2v4z%22%20fill=%22#fff%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22TriangleOutM-3-5%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4297-6%22%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%3Cmarker%20orient=%22auto%22%20id=%22marker4456-6%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4458-4%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=%22marker4428-0%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4430-0%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-67-4%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4179-6%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%3Cpath%20d=%22M-58.3-45h653.6v640H-58.3z%22%20id=%22path1228%22/%3E%3C/defs%3E%3Ctitle%20id=%22title2%22%3EAnalogsignal%3C/title%3E%3Cg%20id=%22g6%22%20transform=%22matrix(2.66197%200%200%20-2.6081%20-266.143%20348.922)%22%20fill=%22#ff0%22%20stroke-width=%22.631%22%20stroke-linecap=%22round%22%3E%3Cpath%20id=%22path4%22%20d=%22M136.595%2057.528l14.719-12.747%2014.663%2012.747m-6.246-3.93v17.136h-15.754V53.598z%22/%3E%3C/g%3E%3Cg%20id=%22g992-3%22%20transform=%22matrix(2.49948%200%200%202.49948%20-213.902%20137.88)%22%20stroke-width=%221.526%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-6%22%20fill=%22#ececec%22%20stroke-width=%22.929%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20id=%22path1773-2-3-1-8-9-7%22%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%222.322%22/%3E%3C/g%3E%3Cpath%20id=%22path10%22%20d=%22M7.61%2080.976C14.27%2036.763%2021.114-7.26%2027.77%205.32c6.846%2012.575%2011.841%20145.026%2020.35%20151.315%208.324%206.291%2021.83-109.323%2030.34-113.58%208.324-4.066%2011.838%2094.531%2020.16%2088.238%208.512-6.288%2022.015-130.229%2030.337-125.973%208.51%204.253%2011.84%20149.098%2020.351%20151.315%208.326%202.037%2020.163-136.516%2030.339-138.738%209.99-2.034%2020.161%20119.69%2030.337%20125.978%2010.174%206.473%2023.676-79.732%2030.335-88.053%206.662-8.509%206.662%2031.447%2010.177%2037.734%203.33%206.293%206.66%203.147%209.99%200%22%20stroke-miterlimit=%2210%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%226.281%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:ubuntu;text-align:center%22%20x=%22131.832%22%20y=%22272.84%22%20id=%22text849%22%20font-weight=%22400%22%20font-size=%2247.637%22%20font-family=%22ubuntu%22%20letter-spacing=%220%22%20word-spacing=%220%22%20text-anchor=%22middle%22%20stroke-width=%221.662%22%20stroke-linecap=%22round%22%3E%3Ctspan%20id=%22tspan847%22%20x=%22131.832%22%20y=%22272.84%22%20style=%22-inkscape-font-specification:'ubuntu%20Medium'%22%20font-weight=%22500%22%20stroke-width=%22.928%22%20fill=%22green%22%3E01001100%3C/tspan%3E%3C/text%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=%22g992-3-2%22%20transform=%22matrix(2.49948%200%200%202.49948%20-16.118%20138.484)%22%20stroke-width=%221.526%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-6-67%22%20fill=%22#ececec%22%20stroke-width=%22.929%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20id=%22path1773-2-3-1-8-9-7-5%22%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%222.322%22/%3E%3C/g%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:ubuntu;text-align:center%22%20x=%22133.042%22%20y=%22334.844%22%20id=%22text849-6%22%20font-weight=%22400%22%20font-size=%2247.637%22%20font-family=%22ubuntu%22%20letter-spacing=%220%22%20word-spacing=%220%22%20text-anchor=%22middle%22%20stroke-width=%221.662%22%20stroke-linecap=%22round%22%3E%3Ctspan%20id=%22tspan847-9%22%20x=%22133.042%22%20y=%22334.844%22%20style=%22-inkscape-font-specification:'ubuntu%20Medium'%22%20font-weight=%22500%22%20stroke-width=%22.928%22%3EADC%3C/tspan%3E%3C/text%3E%3C/svg%3E" + "name": "Valor_0_2bits", + "version": "0.0.1", + "description": "Valor constante 0 para bus de 2 bits", + "author": "Juan Gonzalez-Gomez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22145.966%22%20height=%22305.779%22%20viewBox=%220%200%20136.8427%20286.66758%22%3E%3Cg%20font-weight=%22400%22%20font-family=%22Ubuntu%20Mono%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-size=%22335.399%22%20fill=%22green%22%20transform=%22translate(-308.544%20-436.037)%22%3E%3Ctspan%20x=%22293.115%22%20y=%22648.344%22%3E0%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22341.722%22%20y=%22721.624%22%20font-size=%2283.077%22%20transform=%22translate(-308.544%20-436.037)%22%3E%3Ctspan%20x=%22341.722%22%20y=%22721.624%22%3E00%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" }, "design": { "graph": { "blocks": [ { - "id": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "type": "basic.input", - "data": { - "name": "", - "clock": true - }, - "position": { - "x": -2048, - "y": -232 - } - }, - { - "id": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a", - "type": "basic.input", - "data": { - "name": "adc-sda", - "clock": false - }, - "position": { - "x": -544, - "y": -184 - } - }, - { - "id": "43bc16ab-b91d-405c-bef0-887bd1a85fd7", + "id": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", "type": "basic.output", "data": { - "name": "adc_scl" - }, - "position": { - "x": 24, - "y": -104 - } - }, - { - "id": "09a84e89-0e4a-43cc-a5b9-6c8ac6ce5742", - "type": "basic.input", - "data": { - "name": "ch", + "name": "k", "range": "[1:0]", - "clock": false, "size": 2 }, "position": { - "x": -2040, - "y": 88 + "x": 928, + "y": 256 } }, { - "id": "2dd424a5-e616-4505-8a89-4982cdd7539d", - "type": "basic.output", + "id": "ad7918eb-22dd-4b6c-949f-e428f5a55530", + "type": "basic.constant", "data": { "name": "", - "range": "[7:0]", - "size": 8 + "value": "0", + "local": true }, "position": { - "x": 208, - "y": 312 + "x": 728, + "y": 136 } }, { - "id": "bfc6f0ec-0d3a-4caa-9d40-9f4e8f59f112", - "type": "basic.input", - "data": { - "name": "start", - "clock": false - }, + "id": "ae9e32fe-296d-4700-a429-1178ece2609d", + "type": "1577535d38e0077281a8de7dc00933b07ec4f543", "position": { - "x": -2040, - "y": 696 + "x": 728, + "y": 256 + }, + "size": { + "width": 96, + "height": 64 } - }, + } + ], + "wires": [ { - "id": "f4f0b0cc-6b11-417f-b8de-933dd739752b", - "type": "basic.output", - "data": { - "name": "done" + "source": { + "block": "ae9e32fe-296d-4700-a429-1178ece2609d", + "port": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26" }, - "position": { - "x": -1280, - "y": 864 - } + "target": { + "block": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", + "port": "in" + }, + "size": 2 }, { - "id": "5d1a3bb7-8f31-4c17-9f0e-09fdcf7bd807", - "type": "basic.memory", - "data": { - "name": "Canal-reg", - "list": "02 //-- Canal 0\n04 //-- Canal 1\n06 //-- Canal 2\n08 //-- Canal 3", - "local": true, - "format": 10 - }, - "position": { - "x": -1728, - "y": -80 + "source": { + "block": "ad7918eb-22dd-4b6c-949f-e428f5a55530", + "port": "constant-out" }, - "size": { - "width": 224, - "height": 104 + "target": { + "block": "ae9e32fe-296d-4700-a429-1178ece2609d", + "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" } - }, + } + ] + } + } + }, + "1577535d38e0077281a8de7dc00933b07ec4f543": { + "package": { + "name": "Constante-2bits", + "version": "0.0.1", + "description": "Valor genérico constante, de 2 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=%22145.608%22%20height=%22247.927%22%20viewBox=%220%200%20136.50729%20232.43134%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-weight=%22400%22%20font-size=%22335.399%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%3Ek%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ { - "id": "3b4b7515-4e2b-46d2-8994-7ea4b3ad22e3", - "type": "basic.constant", + "id": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26", + "type": "basic.output", "data": { - "name": "", - "value": "3", - "local": true + "name": "k", + "range": "[1:0]", + "size": 2 }, "position": { - "x": -1416, + "x": 960, "y": 248 } }, { - "id": "9e7fbae9-cce7-42d1-b650-6e315c04c922", + "id": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", "type": "basic.constant", "data": { "name": "", - "value": "1", - "local": true + "value": "0", + "local": false }, "position": { - "x": -1216, - "y": 128 + "x": 728, + "y": 112 } }, { - "id": "22ab7ece-cc08-4d88-8169-0c27996f429f", - "type": "basic.memory", + "id": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", + "type": "basic.code", "data": { - "name": "Comandos i2c", - "list": "03_00_cc //-- Write. Reg 0 <-- CC. Modo Auto-scan\n01_02_00 //-- Sel Reg 2\n00_00_00 //-- Lectura!", - "local": true, - "format": 10 - }, - "position": { - "x": -1152, - "y": -64 + "code": "assign k = VALUE;", + "params": [ + { + "name": "VALUE" + } + ], + "ports": { + "in": [], + "out": [ + { + "name": "k", + "range": "[1:0]", + "size": 2 + } + ] + } + }, + "position": { + "x": 672, + "y": 248 }, "size": { - "width": 416, - "height": 120 + "width": 208, + "height": 64 } + } + ], + "wires": [ + { + "source": { + "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", + "port": "k" + }, + "target": { + "block": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26", + "port": "in" + }, + "size": 2 }, { - "id": "3f0866f0-c93f-4d57-9aab-b2e1ec7d135b", - "type": "basic.constant", + "source": { + "block": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", + "port": "constant-out" + }, + "target": { + "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", + "port": "VALUE" + } + } + ] + } + } + }, + "b0ff9e2bfc7cb15f6a8db0f0277dc257a3a8ca9f": { + "package": { + "name": "ServoPWM-8bits", + "version": "0.1", + "description": "Controlador de servos, de 8 bits. El periodo del PWM por defecto es de 20ms (Futaba 3003)", + "author": "Juan González-Gómez", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%22-252%20400.9%20226.81476%20226.82651%22%20width=%22226.815%22%20height=%22226.827%22%3E%3Cpath%20d=%22M-218.227%20501.253v-1.36h-27.991a2.4%202.332%200%200%201-2.4-2.332v-65.674a2.4%202.332%200%200%201%202.4-2.331h27.991v-1.36a2.4%202.332%200%200%201%202.4-2.332h156.352a2.4%202.332%200%200%201%202.4%202.332v1.36h27.99a2.4%202.332%200%200%201%202.4%202.331v65.674a2.4%202.332%200%200%201-2.4%202.332h-27.99v1.36a2.4%202.332%200%200%201-2.4%202.332h-156.353a2.4%202.332%200%200%201-2.399-2.332%22%20fill=%22gray%22%20fill-rule=%22evenodd%22%20stroke=%22#191919%22%20stroke-width=%223%22/%3E%3Cellipse%20cy=%22-445.1%22%20cx=%22-235.421%22%20transform=%22scale(1%20-1)%22%20rx=%228.597%22%20ry=%228.355%22%20fill=%22#fff%22%20stroke=%22#191919%22%20stroke-width=%223.443%22/%3E%3Cellipse%20cy=%22-484.349%22%20cx=%22-235.421%22%20transform=%22scale(1%20-1)%22%20rx=%228.597%22%20ry=%228.355%22%20fill=%22#fff%22%20stroke=%22#191919%22%20stroke-width=%223.443%22/%3E%3Cellipse%20cy=%22-445.1%22%20cx=%22-39.881%22%20transform=%22scale(1%20-1)%22%20rx=%228.597%22%20ry=%228.355%22%20fill=%22#fff%22%20stroke=%22#191919%22%20stroke-width=%223.443%22/%3E%3Cellipse%20cy=%22-484.349%22%20cx=%22-39.881%22%20transform=%22scale(1%20-1)%22%20rx=%228.597%22%20ry=%228.355%22%20fill=%22#fff%22%20stroke=%22#191919%22%20stroke-width=%223.443%22/%3E%3Ctext%20style=%22line-height:0%25%22%20x=%22-176.454%22%20y=%22539.346%22%20font-weight=%22400%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#00f%22%3E%3Ctspan%20x=%22-176.454%22%20y=%22539.346%22%20style=%22line-height:1.25;-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%20font-size=%2241.631%22%3Ems%3C/tspan%3E%3C/text%3E%3Cpath%20d=%22M-218.332%20429.341v70.264M-57.268%20429.341v70.264%22%20opacity=%22.54%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%223%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M-118.905%20443.988c-7.197%207.252-10.08%2017.69-7.545%2027.33%202.534%209.64%2010.093%2016.994%2019.791%2019.255%209.699%202.26%2020.04-.92%2027.077-8.33l35.68-79.843z%22%20fill=%22#4d4d4d%22%20stroke=%22#191919%22%20stroke-width=%223%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cg%20transform=%22matrix(2.3863%200%200%202.3863%20-456.494%20342.989)%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%20transform=%22matrix(3.09408%200%200%203.09408%20-550.829%2011.357)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2211.548%22%20cy=%22187.419%22%20cx=%22108.371%22%20fill=%22#ececec%22%20stroke-width=%22.483%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M116.477%20190.766h-1.325v-7.195h-13.576v7.139h-1.444%22%20fill=%22none%22%20stroke-width=%221.207%22/%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "e88d7ecc-7ac9-486a-bac1-6a5f116d8564", + "type": "basic.input", "data": { - "name": "Direccion-i2c", - "value": "7'h48", - "local": true + "name": "", + "clock": true }, "position": { - "x": -696, - "y": -128 + "x": 1328, + "y": 488 } }, { - "id": "3e21cde1-61ca-4036-b448-bdb96e3b7b43", - "type": "basic.info", + "id": "fbd5aac5-ae58-4153-9a1e-a2bec9ce86b4", + "type": "basic.input", "data": { - "info": "**SDA**\n(INOUT) ", - "readonly": true + "name": "pos", + "range": "[7:0]", + "clock": false, + "size": 8 }, "position": { - "x": -528, - "y": -272 + "x": 1320, + "y": 664 + } + }, + { + "id": "17cd3530-95be-4f0b-897e-1893c9831f1b", + "type": "basic.output", + "data": { + "name": "" }, - "size": { - "width": 104, - "height": 48 + "position": { + "x": 2296, + "y": 752 } }, { - "id": "bca7a427-a08f-48d3-807c-64a27a08db52", - "type": "89d2342d9664348db3e70e823cacbc8eb24ea3d0", + "id": "9bd6b68b-84ad-4608-9891-47a8f989eb10", + "type": "basic.input", + "data": { + "name": "write", + "clock": false + }, "position": { - "x": 0, + "x": 1336, + "y": 840 + } + }, + { + "id": "fac4aba8-78c9-4e9e-918b-3fb3a21c64a7", + "type": "basic.input", + "data": { + "name": "ena", + "clock": false + }, + "position": { + "x": 1344, + "y": 1016 + } + }, + { + "id": "12ca3dc3-ff2e-4cb5-989d-95b9451973ea", + "type": "basic.constant", + "data": { + "name": "ms", + "value": "20", + "local": false + }, + "position": { + "x": 1832, "y": 296 + } + }, + { + "id": "99406911-feb0-44f2-8cad-23292d259881", + "type": "basic.info", + "data": { + "info": "**Salida PWM**", + "readonly": true + }, + "position": { + "x": 2296, + "y": 736 }, "size": { - "width": 96, - "height": 96 + "width": 144, + "height": 40 } }, { - "id": "ada801ec-97ac-4d32-a9fd-a997ce0d2c16", - "type": "20b7dbadd419751f1658977d442517896b210c75", + "id": "55773a27-3324-4799-a8f4-27f5d9ab271b", + "type": "basic.info", + "data": { + "info": "Conectar directamente \nal servo", + "readonly": true + }, "position": { - "x": -696, - "y": -32 + "x": 2296, + "y": 816 }, "size": { - "width": 96, - "height": 64 + "width": 208, + "height": 56 } }, { - "id": "6465077c-afae-49b4-b488-7d920e4c7f61", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "id": "fdf5de4f-5efd-417b-a05f-d2ac04e566fe", + "type": "basic.info", + "data": { + "info": "Posición del servo. Indica el \nancho del pulso en unidades de \n10 usec. Así, un valor de 60 \nindica una anchura de 600 usec", + "readonly": true + }, "position": { - "x": -1776, - "y": 680 + "x": 1328, + "y": 584 }, "size": { - "width": 96, - "height": 96 + "width": 272, + "height": 80 } }, { - "id": "dd7d5998-c070-46ea-863f-49da091eda29", - "type": "8e2728307baccbf26c01cdb87bcfba8ca64a435c", + "id": "1b33e061-6b21-4aa2-9933-ce0f8d4b28f1", + "type": "basic.info", + "data": { + "info": "Tic de escritura de \nuna nueva posición", + "readonly": true + }, "position": { - "x": -1216, - "y": 680 + "x": 1336, + "y": 808 }, "size": { - "width": 96, - "height": 64 + "width": 176, + "height": 56 } }, { - "id": "f6118dec-faf4-4b86-8c20-aa0368015453", - "type": "1535f6f47d269b5d2de10c9fcd212e580a4d640c", + "id": "dba918eb-6102-4ff5-853c-2da5c14fe1f4", + "type": "basic.info", + "data": { + "info": "Habilitación del servo", + "readonly": true + }, "position": { - "x": -1208, - "y": 360 + "x": 1344, + "y": 1000 }, "size": { - "width": 96, - "height": 64 + "width": 200, + "height": 32 } }, { - "id": "665884f2-d123-4f55-9a11-4c8f431c3020", + "id": "07bd3ec7-7039-4695-a8b4-b437790b437b", "type": "basic.code", "data": { - "code": "assign op = i[17:16];\nassign regis = i[15:8];\nassign value = i[7:0];", - "params": [], + "code": "//--- Registro de posición\n\nreg [7:0] pos_r = 140;\n\nalways @(posedge clk)\n if (write)\n pos_r <= pos;\n \n \n//-- Registro de estado\n\nreg state = 0;\n\nalways @(posedge clk)\n state <= ena;\n \n//------------------- Temporizador en unidades de 10us\n\n//--------- Biestable de estado\n\nreg state2 = 0;\n\nwire rst;\n\nalways @(posedge clk)\n if (period)\n state2 <= 1'b1;\n else if (fin)\n state2<=1'b0;\n \n \n//------- Registro de espera\nreg [7:0] delay_r = 0;\n\nalways @(posedge clk)\n if (load)\n delay_r <= pos_r;\n \n//--- Carga del registro de espera en el arranque\nreg q0 = 0;\n\nalways @(posedge clk)\n q0 <= state2;\n \nwire load = (~q0 & state2); \n\n//-- La señal de busy es el estado\nwire busy = state2;\n\n//------------------------------ Corazon de micro-segundos\n\nlocalparam US = 10;\n\n//-- Constante para dividir y obtener una frec. de 1Mhz\nlocalparam M = 12*US;\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 = (divcounter == M-1);\n\n//-- Comparador que resetea el contador cuando se alcanza el tope\nassign reset = ov | (state2 == 0);\n\n//-- La salida es la señal de overflow\nwire heart_usec_o = ov;\n\n//------------------- Contador de tiempo (unidades de 10-usec)\n\nreg [7:0] tiempo = 0;\n\nalways @(posedge clk)\n if (!state2)\n tiempo <= 0;\n else\n if (heart_usec_o)\n tiempo <= tiempo + 1;\n \n//------------- Comparador\n\n//-- Cuando se alcanza el tiempo se emite la señal de fin\nwire fin = (delay_r == tiempo);\n\n\n//--------------------- Generador del periodo\n\n//-- Constante para dividir y obtener una frecuencia de 1KHz\nlocalparam M2 = 12000*MS;\n\n//-- Calcular el numero de bits para almacenar M\nlocalparam N2 = $clog2(M2);\n\n//-- Cable de reset para el contador\nwire reset2;\n\n//-- Registro del divisor\nreg [N2-1:0] divcounter2;\n\n\n//-- Contador con reset\nalways @(posedge clk)\n if (reset2)\n divcounter2 <= 0;\n else\n divcounter2 <= divcounter2 + 1;\n\nwire ov2 = (divcounter2 == M2-1);\n\n//-- Comparador que resetea el contador cuando se alcanza el tope\nassign reset2 = ov2 | (state == 0);\n\n//-- La salida es la señal de overflow\nwire period = ov2;\n\n//----------- Biestable final de salida\nreg q3 = 0;\nalways @(posedge clk)\n q3 <= busy;\n\nassign pwm = q3;\n\n\n\n", + "params": [ + { + "name": "MS" + } + ], "ports": { "in": [ { - "name": "i", - "range": "[17:0]", - "size": 18 - } - ], - "out": [ + "name": "clk" + }, { - "name": "regis", + "name": "pos", "range": "[7:0]", "size": 8 }, { - "name": "value", - "range": "[7:0]", - "size": 8 + "name": "write" }, { - "name": "op", - "range": "[1:0]", - "size": 2 + "name": "ena" + } + ], + "out": [ + { + "name": "pwm" } ] } }, "position": { - "x": -1032, - "y": 344 + "x": 1552, + "y": 432 }, "size": { - "width": 224, - "height": 96 + "width": 648, + "height": 704 } - }, + } + ], + "wires": [ { - "id": "032db993-b0ca-47dd-ba47-7e65fe70e0f3", - "type": "basic.info", - "data": { - "info": "Decoddificador", - "readonly": true - }, - "position": { - "x": -712, - "y": 88 + "source": { + "block": "07bd3ec7-7039-4695-a8b4-b437790b437b", + "port": "pwm" }, - "size": { - "width": 144, - "height": 40 + "target": { + "block": "17cd3530-95be-4f0b-897e-1893c9831f1b", + "port": "in" } }, { - "id": "056f271d-dcca-4550-aa60-083c7d9515e3", - "type": "117a3398e8b038aec02d56f0f0ebdd6197dd5305", - "position": { - "x": -1424, - "y": 360 + "source": { + "block": "fac4aba8-78c9-4e9e-918b-3fb3a21c64a7", + "port": "out" }, - "size": { - "width": 96, - "height": 96 + "target": { + "block": "07bd3ec7-7039-4695-a8b4-b437790b437b", + "port": "ena" } }, { - "id": "2223e693-de97-453c-8372-5df27eac1ef1", - "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", - "position": { - "x": -1608, - "y": 384 + "source": { + "block": "9bd6b68b-84ad-4608-9891-47a8f989eb10", + "port": "out" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "07bd3ec7-7039-4695-a8b4-b437790b437b", + "port": "write" } }, { - "id": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", - "type": "81613874c6152f06c06ed7014bf4235900cfcc30", - "position": { - "x": -784, - "y": 496 + "source": { + "block": "fbd5aac5-ae58-4153-9a1e-a2bec9ce86b4", + "port": "out" }, - "size": { - "width": 96, - "height": 64 - } + "target": { + "block": "07bd3ec7-7039-4695-a8b4-b437790b437b", + "port": "pos" + }, + "size": 8 }, { - "id": "e7415f08-799e-4142-a6a0-5543b49d8c73", - "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", - "position": { - "x": -1608, - "y": 592 + "source": { + "block": "e88d7ecc-7ac9-486a-bac1-6a5f116d8564", + "port": "out" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "07bd3ec7-7039-4695-a8b4-b437790b437b", + "port": "clk" } }, { - "id": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", - "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", - "position": { - "x": -648, - "y": 464 + "source": { + "block": "12ca3dc3-ff2e-4cb5-989d-95b9451973ea", + "port": "constant-out" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "07bd3ec7-7039-4695-a8b4-b437790b437b", + "port": "MS" } - }, + } + ] + } + } + }, + "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": "a594d32c-f8bc-4931-a350-e660f1754f7c", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", - "position": { - "x": -160, - "y": 616 + "id": "3d584b0a-29eb-47af-8c43-c0822282ef05", + "type": "basic.output", + "data": { + "name": "" }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": 512, + "y": 160 } }, { - "id": "f56d83b1-73c7-433d-810b-94107609ceb1", - "type": "2b27874a703dd0b148b08ecb5a00d1867eebe92c", + "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": -328, - "y": 216 + "x": 168, + "y": 112 }, "size": { - "width": 96, - "height": 256 + "width": 256, + "height": 160 } - }, + } + ], + "wires": [ { - "id": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", - "position": { - "x": 72, - "y": 600 + "source": { + "block": "61331ec5-2c56-4cdd-b607-e63b1502fa65", + "port": "q" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "3d584b0a-29eb-47af-8c43-c0822282ef05", + "port": "in" } - }, + } + ] + } + } + }, + "fe216fc3f7e19209c184579380d23a46cb3ac1b5": { + "package": { + "name": "adc", + "version": "0.2", + "description": "Analog-to-digital-converter", + "author": "Juan Gonzalez-Gomez (Obiuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20id=%22Ebene_1%22%20width=%22272.885%22%20height=%22360.534%22%20viewBox=%220%200%20272.88513%20360.53439%22%3E%3Cdefs%20id=%22defs25%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=%22path880%22%20d=%22M-58.3-45h653.6v640H-58.3z%22/%3E%3Cmarker%20id=%22TriangleInM%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-2.308%200l3.46-2v4z%22%20id=%22path4321%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22EmptyTriangleInM%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-.508%200l3.46-2v4z%22%20id=%22path4339%22%20fill=%22#fff%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22TriangleOutM-3%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20id=%22path4297%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22marker4456%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=%22path4458%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cmarker%20id=%22marker4428%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=%22path4430%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-67%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=%22path4179%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cpath%20id=%22path919%22%20d=%22M-58.3-45h653.6v640H-58.3z%22/%3E%3Cpath%20id=%22path998%22%20d=%22M-58.3-45h653.6v640H-58.3z%22/%3E%3Cmarker%20orient=%22auto%22%20id=%22TriangleOutM-4%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path972-7%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-2%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path836-4%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-0%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path854-62%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-99%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path854-6-0%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-8%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path836-3-1%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%20id=%22TriangleOutM-7-3%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20id=%22path972-5-1%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22Arrow1Mend-3-1%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-4%200l-2%202%207-2-7-2z%22%20id=%22path836-5-0%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22Arrow2Mend-6-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-2-4%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-9-0%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-1-3%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-2-9%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-4%200l-2%202%207-2-7-2z%22%20id=%22path836-3-7-1%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%20d=%22M-58.3-45h653.6v640H-58.3z%22%20id=%22a-6%22/%3E%3C/defs%3E%3Cpath%20d=%22M-58.3-45h653.6v640H-58.3z%22%20id=%22path880-9%22/%3E%3Cmarker%20orient=%22auto%22%20id=%22TriangleInM-3%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4321-3%22%20d=%22M-2.308%200l3.46-2v4z%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22EmptyTriangleInM-8%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4339-0%22%20d=%22M-.508%200l3.46-2v4z%22%20fill=%22#fff%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22TriangleOutM-3-5%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4297-6%22%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%3Cmarker%20orient=%22auto%22%20id=%22marker4456-6%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4458-4%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=%22marker4428-0%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4430-0%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-67-4%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4179-6%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%3Cpath%20d=%22M-58.3-45h653.6v640H-58.3z%22%20id=%22path1228%22/%3E%3C/defs%3E%3Ctitle%20id=%22title2%22%3EAnalogsignal%3C/title%3E%3Cg%20id=%22g6%22%20transform=%22matrix(2.66197%200%200%20-2.6081%20-266.143%20348.922)%22%20fill=%22#ff0%22%20stroke-width=%22.631%22%20stroke-linecap=%22round%22%3E%3Cpath%20id=%22path4%22%20d=%22M136.595%2057.528l14.719-12.747%2014.663%2012.747m-6.246-3.93v17.136h-15.754V53.598z%22/%3E%3C/g%3E%3Cg%20id=%22g992-3%22%20transform=%22matrix(2.49948%200%200%202.49948%20-213.902%20137.88)%22%20stroke-width=%221.526%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-6%22%20fill=%22#ececec%22%20stroke-width=%22.929%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20id=%22path1773-2-3-1-8-9-7%22%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%222.322%22/%3E%3C/g%3E%3Cpath%20id=%22path10%22%20d=%22M7.61%2080.976C14.27%2036.763%2021.114-7.26%2027.77%205.32c6.846%2012.575%2011.841%20145.026%2020.35%20151.315%208.324%206.291%2021.83-109.323%2030.34-113.58%208.324-4.066%2011.838%2094.531%2020.16%2088.238%208.512-6.288%2022.015-130.229%2030.337-125.973%208.51%204.253%2011.84%20149.098%2020.351%20151.315%208.326%202.037%2020.163-136.516%2030.339-138.738%209.99-2.034%2020.161%20119.69%2030.337%20125.978%2010.174%206.473%2023.676-79.732%2030.335-88.053%206.662-8.509%206.662%2031.447%2010.177%2037.734%203.33%206.293%206.66%203.147%209.99%200%22%20stroke-miterlimit=%2210%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%226.281%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:ubuntu;text-align:center%22%20x=%22131.832%22%20y=%22272.84%22%20id=%22text849%22%20font-weight=%22400%22%20font-size=%2247.637%22%20font-family=%22ubuntu%22%20letter-spacing=%220%22%20word-spacing=%220%22%20text-anchor=%22middle%22%20stroke-width=%221.662%22%20stroke-linecap=%22round%22%3E%3Ctspan%20id=%22tspan847%22%20x=%22131.832%22%20y=%22272.84%22%20style=%22-inkscape-font-specification:'ubuntu%20Medium'%22%20font-weight=%22500%22%20stroke-width=%22.928%22%20fill=%22green%22%3E01001100%3C/tspan%3E%3C/text%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=%22g992-3-2%22%20transform=%22matrix(2.49948%200%200%202.49948%20-16.118%20138.484)%22%20stroke-width=%221.526%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-6-67%22%20fill=%22#ececec%22%20stroke-width=%22.929%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20id=%22path1773-2-3-1-8-9-7-5%22%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%222.322%22/%3E%3C/g%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:ubuntu;text-align:center%22%20x=%22133.042%22%20y=%22334.844%22%20id=%22text849-6%22%20font-weight=%22400%22%20font-size=%2247.637%22%20font-family=%22ubuntu%22%20letter-spacing=%220%22%20word-spacing=%220%22%20text-anchor=%22middle%22%20stroke-width=%221.662%22%20stroke-linecap=%22round%22%3E%3Ctspan%20id=%22tspan847-9%22%20x=%22133.042%22%20y=%22334.844%22%20style=%22-inkscape-font-specification:'ubuntu%20Medium'%22%20font-weight=%22500%22%20stroke-width=%22.928%22%3EADC%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ { - "id": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", - "type": "359a555a147b0afd9d84e4a720ec84b7cdfbc034", - "position": { - "x": -704, - "y": 176 + "id": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "type": "basic.input", + "data": { + "name": "", + "clock": true }, - "size": { - "width": 96, - "height": 96 + "position": { + "x": -2048, + "y": -232 } }, { - "id": "fbdf2179-d67b-4d89-ae41-928932a492f9", - "type": "d9a3cf565602d237c50136543d558affa15c7654", - "position": { - "x": -1216, - "y": 232 + "id": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a", + "type": "basic.input", + "data": { + "name": "adc-sda", + "clock": false }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": -544, + "y": -184 } }, { - "id": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", - "type": "fbbede7f059cd50db81d1e80b2e575ed877c91a0", - "position": { - "x": -1664, - "y": 88 + "id": "43bc16ab-b91d-405c-bef0-887bd1a85fd7", + "type": "basic.output", + "data": { + "name": "adc_scl" }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": 24, + "y": -104 } }, { - "id": "94b801a2-93e1-4d50-984d-d366909343ea", - "type": "7eacdff4ce248b009935725889c8ae3339817d76", - "position": { - "x": -1456, - "y": 864 + "id": "09a84e89-0e4a-43cc-a5b9-6c8ac6ce5742", + "type": "basic.input", + "data": { + "name": "ch", + "range": "[1:0]", + "clock": false, + "size": 2 }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": -2040, + "y": 88 } - } - ], - "wires": [ + }, { - "source": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "d3e4f800-c611-4f65-88e7-8b7d2def0021" - }, - "target": { - "block": "2dd424a5-e616-4505-8a89-4982cdd7539d", - "port": "in" + "id": "2dd424a5-e616-4505-8a89-4982cdd7539d", + "type": "basic.output", + "data": { + "name": "", + "range": "[7:0]", + "size": 8 }, - "size": 8 + "position": { + "x": 208, + "y": 312 + } }, { - "source": { - "block": "3f0866f0-c93f-4d57-9aab-b2e1ec7d135b", - "port": "constant-out" + "id": "bfc6f0ec-0d3a-4caa-9d40-9f4e8f59f112", + "type": "basic.input", + "data": { + "name": "start", + "clock": false }, - "target": { - "block": "ada801ec-97ac-4d32-a9fd-a997ce0d2c16", - "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" + "position": { + "x": -2040, + "y": 696 } }, { - "source": { - "block": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a", - "port": "out" + "id": "f4f0b0cc-6b11-417f-b8de-933dd739752b", + "type": "basic.output", + "data": { + "name": "done" }, - "target": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a" + "position": { + "x": -1280, + "y": 864 } }, { - "source": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "43bc16ab-b91d-405c-bef0-887bd1a85fd7" + "id": "5d1a3bb7-8f31-4c17-9f0e-09fdcf7bd807", + "type": "basic.memory", + "data": { + "name": "Canal-reg", + "list": "02 //-- Canal 0\n04 //-- Canal 1\n06 //-- Canal 2\n08 //-- Canal 3", + "local": true, + "format": 10 }, - "target": { - "block": "43bc16ab-b91d-405c-bef0-887bd1a85fd7", - "port": "in" + "position": { + "x": -1728, + "y": -80 + }, + "size": { + "width": 224, + "height": 104 } }, { - "source": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "2dd424a5-e616-4505-8a89-4982cdd7539d" - }, - "target": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "42b35cc2-aa64-4e66-be42-169958246799" + "id": "3b4b7515-4e2b-46d2-8994-7ea4b3ad22e3", + "type": "basic.constant", + "data": { + "name": "", + "value": "3", + "local": true }, - "size": 8 + "position": { + "x": -1416, + "y": 248 + } }, { - "source": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "efa38a4c-7d36-47f9-82de-6cf99cf88c3d" + "id": "9e7fbae9-cce7-42d1-b650-6e315c04c922", + "type": "basic.constant", + "data": { + "name": "", + "value": "1", + "local": true }, - "target": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "065ea371-8398-43b3-8341-287c234a3acb" + "position": { + "x": -1216, + "y": 128 } }, { - "source": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "id": "22ab7ece-cc08-4d88-8169-0c27996f429f", + "type": "basic.memory", + "data": { + "name": "Comandos i2c", + "list": "03_00_cc //-- Write. Reg 0 <-- CC. Modo Auto-scan\n01_02_00 //-- Sel Reg 2\n00_00_00 //-- Lectura!", + "local": true, + "format": 10 }, - "target": { - "block": "dd7d5998-c070-46ea-863f-49da091eda29", - "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + "position": { + "x": -1152, + "y": -64 + }, + "size": { + "width": 416, + "height": 120 } }, { - "source": { - "block": "ada801ec-97ac-4d32-a9fd-a997ce0d2c16", - "port": "cf56e668-4c75-451d-ab35-b8457ab06e22" - }, - "target": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "17680ad1-ed73-4b6c-a31e-c96c61fc88ef" + "id": "3f0866f0-c93f-4d57-9aab-b2e1ec7d135b", + "type": "basic.constant", + "data": { + "name": "Direccion-i2c", + "value": "7'h48", + "local": true }, - "vertices": [ - { - "x": -552, - "y": 48 - } - ], - "size": 7 + "position": { + "x": -696, + "y": -128 + } }, { - "source": { - "block": "665884f2-d123-4f55-9a11-4c8f431c3020", - "port": "op" + "id": "3e21cde1-61ca-4036-b448-bdb96e3b7b43", + "type": "basic.info", + "data": { + "info": "**SDA**\n(INOUT) ", + "readonly": true }, - "target": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "fba9c594-4b64-4f48-8979-25c1a001e90a" + "position": { + "x": -528, + "y": -272 }, - "size": 2 + "size": { + "width": 104, + "height": 48 + } }, { - "source": { - "block": "22ab7ece-cc08-4d88-8169-0c27996f429f", - "port": "memory-out" + "id": "bca7a427-a08f-48d3-807c-64a27a08db52", + "type": "89d2342d9664348db3e70e823cacbc8eb24ea3d0", + "position": { + "x": 0, + "y": 296 }, - "target": { - "block": "f6118dec-faf4-4b86-8c20-aa0368015453", - "port": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377" + "size": { + "width": 96, + "height": 96 } }, { - "source": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "2223e693-de97-453c-8372-5df27eac1ef1", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "id": "ada801ec-97ac-4d32-a9fd-a997ce0d2c16", + "type": "20b7dbadd419751f1658977d442517896b210c75", + "position": { + "x": -696, + "y": -32 }, - "vertices": [ - { - "x": -1656, - "y": 552 - } - ] + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "dd7d5998-c070-46ea-863f-49da091eda29", - "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" - }, - "target": { - "block": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "id": "6465077c-afae-49b4-b488-7d920e4c7f61", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": -1776, + "y": 680 }, - "vertices": [ - { - "x": -936, - "y": 656 - } - ] + "size": { + "width": 96, + "height": 96 + } }, { - "source": { - "block": "3b4b7515-4e2b-46d2-8994-7ea4b3ad22e3", - "port": "constant-out" + "id": "dd7d5998-c070-46ea-863f-49da091eda29", + "type": "8e2728307baccbf26c01cdb87bcfba8ca64a435c", + "position": { + "x": -1216, + "y": 680 }, - "target": { - "block": "056f271d-dcca-4550-aa60-083c7d9515e3", - "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "f6118dec-faf4-4b86-8c20-aa0368015453", + "type": "1535f6f47d269b5d2de10c9fcd212e580a4d640c", + "position": { + "x": -1208, + "y": 360 }, - "target": { - "block": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", - "port": "97b51945-d716-4b6c-9db9-970d08541249" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "e7415f08-799e-4142-a6a0-5543b49d8c73", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" - }, - "vertices": [ - { - "x": -1656, - "y": 624 + "id": "665884f2-d123-4f55-9a11-4c8f431c3020", + "type": "basic.code", + "data": { + "code": "assign op = i[17:16];\nassign regis = i[15:8];\nassign value = i[7:0];", + "params": [], + "ports": { + "in": [ + { + "name": "i", + "range": "[17:0]", + "size": 18 + } + ], + "out": [ + { + "name": "regis", + "range": "[7:0]", + "size": 8 + }, + { + "name": "value", + "range": "[7:0]", + "size": 8 + }, + { + "name": "op", + "range": "[1:0]", + "size": 2 + } + ] } - ] - }, - { - "source": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "18dc0bf6-35be-4fad-9e92-79ae207ff435" }, - "target": { - "block": "a594d32c-f8bc-4931-a350-e660f1754f7c", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "position": { + "x": -1032, + "y": 344 }, - "vertices": [ - { - "x": -208, - "y": 560 - } - ] + "size": { + "width": 224, + "height": 96 + } }, { - "source": { - "block": "056f271d-dcca-4550-aa60-083c7d9515e3", - "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + "id": "032db993-b0ca-47dd-ba47-7e65fe70e0f3", + "type": "basic.info", + "data": { + "info": "Decoddificador", + "readonly": true }, - "target": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + "position": { + "x": -712, + "y": 88 }, - "vertices": [ - { - "x": -1344, - "y": 800 - } - ] + "size": { + "width": 144, + "height": 40 + } }, { - "source": { - "block": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "056f271d-dcca-4550-aa60-083c7d9515e3", + "type": "117a3398e8b038aec02d56f0f0ebdd6197dd5305", + "position": { + "x": -1424, + "y": 360 }, - "target": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "b882b07a-a45e-429f-b442-f6547b67e98e" + "size": { + "width": 96, + "height": 96 } }, { - "source": { - "block": "2223e693-de97-453c-8372-5df27eac1ef1", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "2223e693-de97-453c-8372-5df27eac1ef1", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": -1608, + "y": 384 }, - "target": { - "block": "056f271d-dcca-4550-aa60-083c7d9515e3", - "port": "743b5299-2d89-4783-b7c9-12a5b36df406" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "e7415f08-799e-4142-a6a0-5543b49d8c73", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "position": { + "x": -784, + "y": 496 }, - "target": { - "block": "056f271d-dcca-4550-aa60-083c7d9515e3", - "port": "26aba23f-8567-4e9b-bd45-c26724030f33" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "id": "e7415f08-799e-4142-a6a0-5543b49d8c73", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": -1608, + "y": 592 }, - "vertices": [ - { - "x": -1656, - "y": 624 - } - ] + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "18dc0bf6-35be-4fad-9e92-79ae207ff435" - }, - "target": { - "block": "e7415f08-799e-4142-a6a0-5543b49d8c73", - "port": "97b51945-d716-4b6c-9db9-970d08541249" + "id": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": -648, + "y": 464 }, - "vertices": [ - { - "x": -320, - "y": 568 - } - ] + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "a594d32c-f8bc-4931-a350-e660f1754f7c", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "id": "a594d32c-f8bc-4931-a350-e660f1754f7c", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", + "position": { + "x": -160, + "y": 616 }, - "target": { - "block": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" - }, - "target": { - "block": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", - "port": "97b51945-d716-4b6c-9db9-970d08541249" + "id": "f56d83b1-73c7-433d-810b-94107609ceb1", + "type": "2b27874a703dd0b148b08ecb5a00d1867eebe92c", + "position": { + "x": -328, + "y": 216 }, - "vertices": [ - { - "x": -520, - "y": 720 - }, - { - "x": -856, - "y": 648 - } - ] + "size": { + "width": 96, + "height": 256 + } }, { - "source": { - "block": "f6118dec-faf4-4b86-8c20-aa0368015453", - "port": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5" - }, - "target": { - "block": "665884f2-d123-4f55-9a11-4c8f431c3020", - "port": "i" + "id": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", + "position": { + "x": 72, + "y": 600 }, - "size": 18 + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "056f271d-dcca-4550-aa60-083c7d9515e3", - "port": "2124c987-5d1b-4335-858f-502559b11a26" - }, - "target": { - "block": "f6118dec-faf4-4b86-8c20-aa0368015453", - "port": "186c4116-7846-4c8e-98a0-7376675105f1" + "id": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", + "type": "359a555a147b0afd9d84e4a720ec84b7cdfbc034", + "position": { + "x": -704, + "y": 176 }, - "size": 3 + "size": { + "width": 96, + "height": 96 + } }, { - "source": { - "block": "056f271d-dcca-4550-aa60-083c7d9515e3", - "port": "2124c987-5d1b-4335-858f-502559b11a26" - }, - "target": { - "block": "fbdf2179-d67b-4d89-ae41-928932a492f9", - "port": "0867b1bc-1cc5-4707-8ddb-40d0318d237c" + "id": "fbdf2179-d67b-4d89-ae41-928932a492f9", + "type": "d9a3cf565602d237c50136543d558affa15c7654", + "position": { + "x": -1216, + "y": 232 }, - "vertices": [ - { - "x": -1264, - "y": 256 - } - ], - "size": 3 + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", + "type": "fbbede7f059cd50db81d1e80b2e575ed877c91a0", + "position": { + "x": -1664, + "y": 88 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "94b801a2-93e1-4d50-984d-d366909343ea", + "type": "7eacdff4ce248b009935725889c8ae3339817d76", + "position": { + "x": -1456, + "y": 864 + }, + "size": { + "width": 96, + "height": 64 + } + } + ], + "wires": [ + { + "source": { + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "d3e4f800-c611-4f65-88e7-8b7d2def0021" + }, + "target": { + "block": "2dd424a5-e616-4505-8a89-4982cdd7539d", + "port": "in" + }, + "size": 8 }, { "source": { - "block": "9e7fbae9-cce7-42d1-b650-6e315c04c922", + "block": "3f0866f0-c93f-4d57-9aab-b2e1ec7d135b", "port": "constant-out" }, "target": { - "block": "fbdf2179-d67b-4d89-ae41-928932a492f9", - "port": "437fac17-b8b4-4d9f-8d03-27300b3b9466" + "block": "ada801ec-97ac-4d32-a9fd-a997ce0d2c16", + "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" } }, { "source": { - "block": "fbdf2179-d67b-4d89-ae41-928932a492f9", - "port": "0344dacc-8583-456b-b377-8cb4ab97cf94" + "block": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a", + "port": "out" }, "target": { - "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", - "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a" } }, { "source": { - "block": "665884f2-d123-4f55-9a11-4c8f431c3020", - "port": "value" + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "43bc16ab-b91d-405c-bef0-887bd1a85fd7" }, "target": { + "block": "43bc16ab-b91d-405c-bef0-887bd1a85fd7", + "port": "in" + } + }, + { + "source": { "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "4f066abd-3ac4-45e9-ad20-d1eff038c986" + "port": "2dd424a5-e616-4505-8a89-4982cdd7539d" + }, + "target": { + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "42b35cc2-aa64-4e66-be42-169958246799" }, "size": 8 }, { "source": { - "block": "665884f2-d123-4f55-9a11-4c8f431c3020", - "port": "regis" + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "efa38a4c-7d36-47f9-82de-6cf99cf88c3d" }, "target": { - "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", - "port": "325fbba1-e929-4921-a644-95f918e6e4ee" + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "065ea371-8398-43b3-8341-287c234a3acb" + } + }, + { + "source": { + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, - "size": 8 + "target": { + "block": "dd7d5998-c070-46ea-863f-49da091eda29", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + } }, { "source": { - "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", - "port": "bf25756a-65a4-4b09-915d-494010d6f4ff" + "block": "ada801ec-97ac-4d32-a9fd-a997ce0d2c16", + "port": "cf56e668-4c75-451d-ab35-b8457ab06e22" }, "target": { "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "17ec9584-f1ef-4cd5-a0a5-850ecb89065c" + "port": "17680ad1-ed73-4b6c-a31e-c96c61fc88ef" }, "vertices": [ { - "x": -584, - "y": 336 + "x": -552, + "y": 48 } ], - "size": 8 + "size": 7 }, { "source": { - "block": "09a84e89-0e4a-43cc-a5b9-6c8ac6ce5742", - "port": "out" + "block": "665884f2-d123-4f55-9a11-4c8f431c3020", + "port": "op" }, "target": { - "block": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", - "port": "186c4116-7846-4c8e-98a0-7376675105f1" + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "fba9c594-4b64-4f48-8979-25c1a001e90a" }, "size": 2 }, { "source": { - "block": "5d1a3bb7-8f31-4c17-9f0e-09fdcf7bd807", + "block": "22ab7ece-cc08-4d88-8169-0c27996f429f", "port": "memory-out" }, "target": { - "block": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", + "block": "f6118dec-faf4-4b86-8c20-aa0368015453", "port": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377" } }, { "source": { - "block": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", - "port": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5" + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", - "port": "9f5a1c91-1b93-4609-877c-816ed8fd0871" + "block": "2223e693-de97-453c-8372-5df27eac1ef1", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, - "size": 8 + "vertices": [ + { + "x": -1656, + "y": 552 + } + ] }, { "source": { - "block": "bfc6f0ec-0d3a-4caa-9d40-9f4e8f59f112", - "port": "out" + "block": "dd7d5998-c070-46ea-863f-49da091eda29", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" }, "target": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" - } + "block": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": -936, + "y": 656 + } + ] }, { "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" + "block": "3b4b7515-4e2b-46d2-8994-7ea4b3ad22e3", + "port": "constant-out" }, "target": { "block": "056f271d-dcca-4550-aa60-083c7d9515e3", - "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" + "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" } }, { "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" + "block": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "block": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", + "port": "97b51945-d716-4b6c-9db9-970d08541249" } }, { "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "dd7d5998-c070-46ea-863f-49da091eda29", - "port": "4196184b-4a60-493b-bcc6-c95958483683" + "block": "e7415f08-799e-4142-a6a0-5543b49d8c73", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, "vertices": [ { - "x": -1296, - "y": 520 + "x": -1656, + "y": 624 } ] }, { "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "18dc0bf6-35be-4fad-9e92-79ae207ff435" + }, + "target": { + "block": "a594d32c-f8bc-4931-a350-e660f1754f7c", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + }, + "vertices": [ + { + "x": -208, + "y": 560 + } + ] + }, + { + "source": { + "block": "056f271d-dcca-4550-aa60-083c7d9515e3", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + }, + "target": { + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + }, + "vertices": [ + { + "x": -1344, + "y": 800 + } + ] + }, + { + "source": { + "block": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "6355398c-628e-42d2-86e8-f85762c31939" + "port": "b882b07a-a45e-429f-b442-f6547b67e98e" } }, { "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" + "block": "2223e693-de97-453c-8372-5df27eac1ef1", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "096f61b6-6d5c-4907-9512-e65b25969458" + "block": "056f271d-dcca-4550-aa60-083c7d9515e3", + "port": "743b5299-2d89-4783-b7c9-12a5b36df406" } }, { "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" + "block": "e7415f08-799e-4142-a6a0-5543b49d8c73", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "a594d32c-f8bc-4931-a350-e660f1754f7c", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "block": "056f271d-dcca-4550-aa60-083c7d9515e3", + "port": "26aba23f-8567-4e9b-bd45-c26724030f33" } }, { "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "block": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, "vertices": [ { - "x": -48, - "y": 464 + "x": -1656, + "y": 624 } ] }, { "source": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "18dc0bf6-35be-4fad-9e92-79ae207ff435" }, "target": { - "block": "94b801a2-93e1-4d50-984d-d366909343ea", - "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + "block": "e7415f08-799e-4142-a6a0-5543b49d8c73", + "port": "97b51945-d716-4b6c-9db9-970d08541249" }, "vertices": [ { - "x": -1648, - "y": 856 + "x": -320, + "y": 568 } ] }, { "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" + "block": "a594d32c-f8bc-4931-a350-e660f1754f7c", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "94b801a2-93e1-4d50-984d-d366909343ea", - "port": "4196184b-4a60-493b-bcc6-c95958483683" + "block": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" } }, { "source": { - "block": "94b801a2-93e1-4d50-984d-d366909343ea", - "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" + "block": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "f4f0b0cc-6b11-417f-b8de-933dd739752b", - "port": "in" - } - } - ] - } - } - }, - "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": [ + "block": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [ + { + "x": -520, + "y": 720 + }, + { + "x": -856, + "y": 648 + } + ] + }, { - "id": "096f61b6-6d5c-4907-9512-e65b25969458", - "type": "basic.input", - "data": { - "name": "", - "clock": true + "source": { + "block": "f6118dec-faf4-4b86-8c20-aa0368015453", + "port": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5" }, - "position": { - "x": 80, - "y": 176 - } + "target": { + "block": "665884f2-d123-4f55-9a11-4c8f431c3020", + "port": "i" + }, + "size": 18 }, { - "id": "d3e4f800-c611-4f65-88e7-8b7d2def0021", - "type": "basic.output", - "data": { - "name": "q", - "range": "[7:0]", - "size": 8 + "source": { + "block": "056f271d-dcca-4550-aa60-083c7d9515e3", + "port": "2124c987-5d1b-4335-858f-502559b11a26" }, - "position": { - "x": 632, - "y": 248 - } + "target": { + "block": "f6118dec-faf4-4b86-8c20-aa0368015453", + "port": "186c4116-7846-4c8e-98a0-7376675105f1" + }, + "size": 3 }, { - "id": "42b35cc2-aa64-4e66-be42-169958246799", - "type": "basic.input", - "data": { - "name": "", - "range": "[7:0]", - "clock": false, - "size": 8 + "source": { + "block": "056f271d-dcca-4550-aa60-083c7d9515e3", + "port": "2124c987-5d1b-4335-858f-502559b11a26" }, - "position": { - "x": 80, - "y": 248 - } + "target": { + "block": "fbdf2179-d67b-4d89-ae41-928932a492f9", + "port": "0867b1bc-1cc5-4707-8ddb-40d0318d237c" + }, + "vertices": [ + { + "x": -1264, + "y": 256 + } + ], + "size": 3 }, { - "id": "065ea371-8398-43b3-8341-287c234a3acb", - "type": "basic.input", - "data": { - "name": "load", - "clock": false + "source": { + "block": "9e7fbae9-cce7-42d1-b650-6e315c04c922", + "port": "constant-out" }, - "position": { - "x": 80, - "y": 312 + "target": { + "block": "fbdf2179-d67b-4d89-ae41-928932a492f9", + "port": "437fac17-b8b4-4d9f-8d03-27300b3b9466" } }, { - "id": "f3b434e4-0c8f-4dd7-90c7-305189a807f1", - "type": "basic.constant", - "data": { - "name": "", - "value": "0", - "local": false + "source": { + "block": "fbdf2179-d67b-4d89-ae41-928932a492f9", + "port": "0344dacc-8583-456b-b377-8cb4ab97cf94" }, - "position": { - "x": 376, - "y": 56 + "target": { + "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", + "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" } }, { - "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 - } - ] - } + "source": { + "block": "665884f2-d123-4f55-9a11-4c8f431c3020", + "port": "value" }, - "position": { - "x": 280, - "y": 176 + "target": { + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "4f066abd-3ac4-45e9-ad20-d1eff038c986" }, - "size": { - "width": 288, - "height": 200 - } - } - ], - "wires": [ + "size": 8 + }, { "source": { - "block": "f3b434e4-0c8f-4dd7-90c7-305189a807f1", - "port": "constant-out" + "block": "665884f2-d123-4f55-9a11-4c8f431c3020", + "port": "regis" }, "target": { - "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", - "port": "INI" + "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", + "port": "325fbba1-e929-4921-a644-95f918e6e4ee" }, - "vertices": [] + "size": 8 }, { "source": { - "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", - "port": "q" + "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", + "port": "bf25756a-65a4-4b09-915d-494010d6f4ff" }, "target": { - "block": "d3e4f800-c611-4f65-88e7-8b7d2def0021", - "port": "in" + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "17ec9584-f1ef-4cd5-a0a5-850ecb89065c" }, + "vertices": [ + { + "x": -584, + "y": 336 + } + ], "size": 8 }, { "source": { - "block": "42b35cc2-aa64-4e66-be42-169958246799", + "block": "09a84e89-0e4a-43cc-a5b9-6c8ac6ce5742", "port": "out" }, "target": { - "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", - "port": "d" + "block": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", + "port": "186c4116-7846-4c8e-98a0-7376675105f1" + }, + "size": 2 + }, + { + "source": { + "block": "5d1a3bb7-8f31-4c17-9f0e-09fdcf7bd807", + "port": "memory-out" + }, + "target": { + "block": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", + "port": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377" + } + }, + { + "source": { + "block": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", + "port": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5" + }, + "target": { + "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", + "port": "9f5a1c91-1b93-4609-877c-816ed8fd0871" }, "size": 8 }, { "source": { - "block": "065ea371-8398-43b3-8341-287c234a3acb", + "block": "bfc6f0ec-0d3a-4caa-9d40-9f4e8f59f112", "port": "out" }, "target": { - "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", - "port": "load" + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" } }, { "source": { - "block": "096f61b6-6d5c-4907-9512-e65b25969458", + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", "port": "out" }, "target": { - "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", - "port": "clk" + "block": "056f271d-dcca-4550-aa60-083c7d9515e3", + "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" } - } - ] - } - } - }, - "20b7dbadd419751f1658977d442517896b210c75": { - "package": { - "name": "Constante-7bits", - "version": "0.0.1", - "description": "Valor genérico constante, de 7 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=%22145.608%22%20height=%22247.927%22%20viewBox=%220%200%20136.50729%20232.43134%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-weight=%22400%22%20font-size=%22335.399%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%3Ek%3C/tspan%3E%3C/text%3E%3C/svg%3E" - }, - "design": { - "graph": { - "blocks": [ + }, { - "id": "cf56e668-4c75-451d-ab35-b8457ab06e22", - "type": "basic.output", - "data": { - "name": "k", - "range": "[6:0]", - "size": 7 + "source": { + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "port": "out" }, - "position": { - "x": 960, - "y": 248 + "target": { + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" } }, { - "id": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", - "type": "basic.constant", - "data": { - "name": "", - "value": "0", - "local": false + "source": { + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "port": "out" }, - "position": { - "x": 728, - "y": 128 + "target": { + "block": "dd7d5998-c070-46ea-863f-49da091eda29", + "port": "4196184b-4a60-493b-bcc6-c95958483683" + }, + "vertices": [ + { + "x": -1296, + "y": 520 + } + ] + }, + { + "source": { + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "port": "out" + }, + "target": { + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "6355398c-628e-42d2-86e8-f85762c31939" } }, { - "id": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", - "type": "basic.code", - "data": { - "code": "assign k = VALUE;", - "params": [ - { - "name": "VALUE" - } - ], - "ports": { - "in": [], - "out": [ - { - "name": "k", - "range": "[6:0]", - "size": 7 - } - ] - } + "source": { + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "port": "out" }, - "position": { - "x": 672, - "y": 248 + "target": { + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "096f61b6-6d5c-4907-9512-e65b25969458" + } + }, + { + "source": { + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "port": "out" }, - "size": { - "width": 208, - "height": 64 + "target": { + "block": "a594d32c-f8bc-4931-a350-e660f1754f7c", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" } - } - ], - "wires": [ + }, { "source": { - "block": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", - "port": "constant-out" + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "port": "out" }, "target": { - "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", - "port": "VALUE" + "block": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + }, + "vertices": [ + { + "x": -48, + "y": 464 + } + ] + }, + { + "source": { + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "94b801a2-93e1-4d50-984d-d366909343ea", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + }, + "vertices": [ + { + "x": -1648, + "y": 856 + } + ] + }, + { + "source": { + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "port": "out" + }, + "target": { + "block": "94b801a2-93e1-4d50-984d-d366909343ea", + "port": "4196184b-4a60-493b-bcc6-c95958483683" } }, { "source": { - "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", - "port": "k" + "block": "94b801a2-93e1-4d50-984d-d366909343ea", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" }, "target": { - "block": "cf56e668-4c75-451d-ab35-b8457ab06e22", + "block": "f4f0b0cc-6b11-417f-b8de-933dd739752b", "port": "in" - }, - "size": 7 + } } ] } } }, - "b959c256104d1064a5ef7b38632ffb6eed3b396f": { + "89d2342d9664348db3e70e823cacbc8eb24ea3d0": { "package": { - "name": "Biestable-Set-Reset", + "name": "Registro", "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" + "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": "9f09a4af-8f7a-45c3-af7b-293a244e76d9", + "id": "096f61b6-6d5c-4907-9512-e65b25969458", "type": "basic.input", "data": { "name": "", "clock": true }, "position": { - "x": 200, - "y": 64 + "x": 80, + "y": 176 } }, { - "id": "3ae2d46d-7981-497a-899f-b60bfae0f43e", - "type": "basic.input", + "id": "d3e4f800-c611-4f65-88e7-8b7d2def0021", + "type": "basic.output", "data": { - "name": "set", - "clock": false + "name": "q", + "range": "[7:0]", + "size": 8 }, "position": { - "x": 200, - "y": 152 + "x": 632, + "y": 248 } }, { - "id": "1cb167a4-9e2a-416b-803e-da7b6151eaa5", - "type": "basic.output", + "id": "42b35cc2-aa64-4e66-be42-169958246799", + "type": "basic.input", "data": { - "name": "" + "name": "", + "range": "[7:0]", + "clock": false, + "size": 8 }, "position": { - "x": 720, - "y": 152 + "x": 80, + "y": 248 } }, { - "id": "86eb8c81-17fc-4371-bd21-51f429191f3c", + "id": "065ea371-8398-43b3-8341-287c234a3acb", "type": "basic.input", "data": { - "name": "rst", + "name": "load", "clock": false }, "position": { - "x": 200, - "y": 232 + "x": 80, + "y": 312 } }, { - "id": "bf12a800-db30-4289-a7c5-8c08438f9a39", + "id": "f3b434e4-0c8f-4dd7-90c7-305189a807f1", "type": "basic.constant", "data": { "name": "", @@ -1897,15 +2150,15 @@ "local": false }, "position": { - "x": 464, - "y": 0 + "x": 376, + "y": 56 } }, { - "id": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", + "id": "32106310-bfdc-41db-9a7c-2dadd5016c3f", "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;", + "code": "localparam N = 8;\n\nreg [N-1:0] q = INI;\n\nalways @(posedge clk)\n if (load)\n q <= d;", "params": [ { "name": "INI" @@ -1917,330 +2170,596 @@ "name": "clk" }, { - "name": "set" + "name": "d", + "range": "[7:0]", + "size": 8 }, { - "name": "rst" + "name": "load" } ], "out": [ { - "name": "q" + "name": "q", + "range": "[7:0]", + "size": 8 } ] } }, "position": { - "x": 400, - "y": 120 + "x": 280, + "y": 176 }, "size": { - "width": 224, - "height": 128 + "width": 288, + "height": 200 } } ], "wires": [ { "source": { - "block": "9f09a4af-8f7a-45c3-af7b-293a244e76d9", - "port": "out" + "block": "f3b434e4-0c8f-4dd7-90c7-305189a807f1", + "port": "constant-out" }, "target": { - "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", - "port": "clk" + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "INI" }, - "vertices": [ - { - "x": 336, - "y": 104 - } - ] + "vertices": [] }, { "source": { - "block": "3ae2d46d-7981-497a-899f-b60bfae0f43e", - "port": "out" + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "q" }, "target": { - "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", - "port": "set" - } + "block": "d3e4f800-c611-4f65-88e7-8b7d2def0021", + "port": "in" + }, + "size": 8 }, { "source": { - "block": "86eb8c81-17fc-4371-bd21-51f429191f3c", + "block": "42b35cc2-aa64-4e66-be42-169958246799", "port": "out" }, "target": { - "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", - "port": "rst" + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "d" }, - "vertices": [ - { - "x": 344, - "y": 248 - } - ] + "size": 8 }, { "source": { - "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", - "port": "q" + "block": "065ea371-8398-43b3-8341-287c234a3acb", + "port": "out" }, "target": { - "block": "1cb167a4-9e2a-416b-803e-da7b6151eaa5", - "port": "in" + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "load" } }, { "source": { - "block": "bf12a800-db30-4289-a7c5-8c08438f9a39", - "port": "constant-out" + "block": "096f61b6-6d5c-4907-9512-e65b25969458", + "port": "out" }, "target": { - "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", - "port": "INI" + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "clk" } } ] } } }, - "8e2728307baccbf26c01cdb87bcfba8ca64a435c": { + "20b7dbadd419751f1658977d442517896b210c75": { "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" + "name": "Constante-7bits", + "version": "0.0.1", + "description": "Valor genérico constante, de 7 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=%22145.608%22%20height=%22247.927%22%20viewBox=%220%200%20136.50729%20232.43134%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-weight=%22400%22%20font-size=%22335.399%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%3Ek%3C/tspan%3E%3C/text%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", + "id": "cf56e668-4c75-451d-ab35-b8457ab06e22", "type": "basic.output", "data": { - "name": "" + "name": "k", + "range": "[6:0]", + "size": 7 }, "position": { - "x": 624, - "y": 200 + "x": 960, + "y": 248 } }, { - "id": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", - "type": "basic.input", + "id": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", + "type": "basic.constant", "data": { "name": "", - "clock": false + "value": "0", + "local": false }, "position": { - "x": 152, - "y": 232 + "x": 728, + "y": 128 } }, { - "id": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "id": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", "type": "basic.code", "data": { - "code": "reg q = 0;\n\nalways @(posedge clk)\n q <= i;\n \nassign o = (~q & i); ", - "params": [], + "code": "assign k = VALUE;", + "params": [ + { + "name": "VALUE" + } + ], "ports": { - "in": [ - { - "name": "clk" - }, - { - "name": "i" - } - ], + "in": [], "out": [ { - "name": "o" + "name": "k", + "range": "[6:0]", + "size": 7 } ] } }, "position": { - "x": 336, - "y": 176 + "x": 672, + "y": 248 }, "size": { - "width": 232, - "height": 112 + "width": 208, + "height": 64 } } ], "wires": [ { "source": { - "block": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", - "port": "out" + "block": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", + "port": "constant-out" }, "target": { - "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", - "port": "i" + "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", + "port": "VALUE" } }, { "source": { - "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", - "port": "o" + "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", + "port": "k" }, "target": { - "block": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", + "block": "cf56e668-4c75-451d-ab35-b8457ab06e22", "port": "in" - } - }, - { - "source": { - "block": "4196184b-4a60-493b-bcc6-c95958483683", - "port": "out" }, - "target": { - "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", - "port": "clk" - } + "size": 7 } ] } } }, - "1535f6f47d269b5d2de10c9fcd212e580a4d640c": { + "b959c256104d1064a5ef7b38632ffb6eed3b396f": { "package": { - "name": "mi-tabla3-18", + "name": "Biestable-Set-Reset", "version": "0.1", - "description": "Circuito combinacional de 3 entradas y 18 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" + "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": "186c4116-7846-4c8e-98a0-7376675105f1", + "id": "9f09a4af-8f7a-45c3-af7b-293a244e76d9", "type": "basic.input", "data": { "name": "", - "range": "[2:0]", - "clock": false, - "size": 3 + "clock": true }, "position": { - "x": -8, - "y": 424 + "x": 200, + "y": 64 } }, { - "id": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", + "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": "", - "range": "[17:0]", - "size": 18 + "name": "" }, "position": { - "x": 632, - "y": 424 + "x": 720, + "y": 152 } }, { - "id": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", - "type": "basic.memory", + "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": "", - "list": "0\n0\n0\n0", + "value": "0", "local": false }, "position": { - "x": 328, - "y": 96 - }, - "size": { - "width": 96, - "height": 104 + "x": 464, + "y": 0 } }, { - "id": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "id": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", "type": "basic.code", "data": { - "code": "\n//-- Bits del bus de entrada\nlocalparam N = 3;\n\n//-- Bits del bus de salida\nlocalparam M = 18;\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", + "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": "DATA" + "name": "INI" } ], "ports": { "in": [ { - "name": "i", - "range": "[2:0]", - "size": 3 + "name": "clk" + }, + { + "name": "set" + }, + { + "name": "rst" } ], "out": [ { - "name": "q", - "range": "[17:0]", - "size": 18 + "name": "q" } ] } }, "position": { - "x": 176, - "y": 264 + "x": 400, + "y": 120 }, "size": { - "width": 392, - "height": 384 + "width": 224, + "height": 128 } } ], "wires": [ { "source": { - "block": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", - "port": "memory-out" + "block": "9f09a4af-8f7a-45c3-af7b-293a244e76d9", + "port": "out" }, "target": { - "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", - "port": "DATA" + "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": "186c4116-7846-4c8e-98a0-7376675105f1", + "block": "86eb8c81-17fc-4371-bd21-51f429191f3c", "port": "out" }, "target": { - "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", - "port": "i" + "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", + "port": "rst" }, - "size": 3 + "vertices": [ + { + "x": 344, + "y": 248 + } + ] }, { "source": { - "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", "port": "q" }, "target": { - "block": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", + "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" + } + } + ] + } + } + }, + "1535f6f47d269b5d2de10c9fcd212e580a4d640c": { + "package": { + "name": "mi-tabla3-18", + "version": "0.1", + "description": "Circuito combinacional de 3 entradas y 18 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": "[17:0]", + "size": 18 + }, + "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 = 18;\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": "[17:0]", + "size": 18 + } + ] + } + }, + "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": 18 @@ -3527,2275 +4046,1919 @@ { "source": { "block": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a", - "port": "out" - }, - "target": { - "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", - "port": "076fd025-aa42-4f23-ae97-b65aec2298ce" - } - }, - { - "source": { - "block": "a3b7a6de-f60f-4b9b-b215-04dc02da40ef", - "port": "constant-out" - }, - "target": { - "block": "87a39423-9ce6-4036-8776-cb7f14be9458", - "port": "5dc401ee-7963-464f-8ab5-e8ddedf191e2" - } - }, - { - "source": { - "block": "87a39423-9ce6-4036-8776-cb7f14be9458", - "port": "e69a71cb-1e3d-49df-a1cc-81fa1126bbb9" - }, - "target": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "748fced1-f2be-412a-87de-a0d8276e6a06" - } - }, - { - "source": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "20e1709f-bff4-4373-a485-5af7052a37d7" - }, - "target": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "bcadfb63-1fdf-43bc-9899-675e5f3658cb" - } - }, - { - "source": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "9290b4c2-5520-4b99-97d3-a140a411a149" - }, - "target": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "dbf76d1d-8bfd-4200-b03e-eb455043634d" - } - }, - { - "source": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "7d9cf16e-b23e-4358-a2fb-baaa07df6deb" - }, - "target": { - "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", - "port": "04fdb7a7-2740-4ff1-ad26-56407ef5b958" - } - }, - { - "source": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "a405ecb1-98ac-4483-8159-6045ca825985" - }, - "target": { - "block": "43bc16ab-b91d-405c-bef0-887bd1a85fd7", - "port": "in" - } - }, - { - "source": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "b987c71e-d76f-43eb-8371-a2aa09d98d15" - }, - "target": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "0096caa8-5e84-418c-9f49-61cccdca8cc0" - }, - "vertices": [ - { - "x": 0, - "y": 432 - } - ] - }, - { - "source": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "de068252-1546-4d1a-8452-955530fdf5de" - }, - "target": { - "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", - "port": "f96a1baf-fc8b-4c25-b132-12552605743f" - }, - "vertices": [ - { - "x": 328, - "y": 408 - } - ] - }, - { - "source": { - "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", - "port": "0b3c9646-6557-423b-90de-df434a651a71" - }, - "target": { - "block": "11599aed-e7f9-4b50-9552-18a18327fe0a", - "port": "in" - } - }, - { - "source": { - "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", - "port": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058" - }, - "target": { - "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", - "port": "4f968b50-2b7d-4192-a522-aade138c8ae1" - }, - "vertices": [] - }, - { - "source": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "543d92bb-e56e-4aed-a598-1c40b3773841" - }, - "target": { - "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", - "port": "4889ff2d-1850-4fad-bae9-8c1cc8efcdea" - } - }, - { - "source": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "1d8c0dd2-96bc-462a-8a33-05472851522d" - }, - "target": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "3e14c77c-be98-43cb-aa0d-b1a391a5374e" - }, - "vertices": [ - { - "x": -72, - "y": 464 - } - ] - }, - { - "source": { - "block": "87a39423-9ce6-4036-8776-cb7f14be9458", - "port": "178cb827-993b-4cf3-b94f-282a9098fcd0" - }, - "target": { - "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "port": "0319df1a-5bd5-4abc-8681-6f3a8fa4e108" - }, - "vertices": [ - { - "x": -792, - "y": 528 - } - ] - }, - { - "source": { - "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "port": "162f5f2d-17dc-4d0e-b6f9-6ebdf74392f0" - }, - "target": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "cdf85427-0efe-4adb-b48d-dab3daccacce" - }, - "vertices": [ - { - "x": -424, - "y": 472 - } - ] - }, - { - "source": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "412c6872-b61e-4af8-8ece-577a8adb185c" - }, - "target": { - "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "port": "f966672f-ae05-4499-8a8d-3c9394a1119e" - }, - "vertices": [ - { - "x": -296, - "y": 656 - } - ] - }, - { - "source": { - "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "port": "5dc54e8b-49c1-4ddb-94ab-843b247b73c4" - }, - "target": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "58c39529-9934-4dc2-af86-ab5efe0bbad1" - }, - "vertices": [ - { - "x": -32, - "y": 448 - } - ] - }, - { - "source": { - "block": "87a39423-9ce6-4036-8776-cb7f14be9458", - "port": "3d54bf83-8d31-4eb5-bb7a-ccbe53ede036" - }, - "target": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "63a0f19e-1e7c-4e61-b89a-f6fc4eb74afb" - } - }, - { - "source": { - "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "port": "088c7d8e-99b1-4f2e-a6c0-a672e5239844" - }, - "target": { - "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", - "port": "a409d207-7594-4558-8e15-89712262cf5b" - }, - "size": 2 - }, - { - "source": { - "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", - "port": "0f7487e5-b070-4277-bba6-acf69934afca" - }, - "target": { - "block": "ff11ff86-a76f-4122-b288-7122c87583f9", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" - } - }, - { - "source": { - "block": "5fd0f75f-64b4-489d-94ba-466de809fa10", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", - "port": "97b51945-d716-4b6c-9db9-970d08541249" - } - }, - { - "source": { - "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", - "port": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7" - } - }, - { - "source": { - "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" - }, - "target": { - "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", - "port": "ed62d7ef-27fb-44ef-99e8-a19bad6342dd" - } - }, - { - "source": { - "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", - "port": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058" - }, - "target": { - "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" - }, - "vertices": [ - { - "x": 984, - "y": 32 - } - ] - }, - { - "source": { - "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", - "port": "e6088243-1d79-4783-ac0f-528d9700b6df" - } - }, - { - "source": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "b987c71e-d76f-43eb-8371-a2aa09d98d15" - }, - "target": { - "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" - }, - "vertices": [ - { - "x": -8, - "y": 136 - } - ] - }, - { - "source": { - "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", - "port": "90654ccb-afdd-41ec-aaf8-b9be5b51253b" - }, - "target": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "42b35cc2-aa64-4e66-be42-169958246799" - }, - "size": 8 - }, - { - "source": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52" - }, - "target": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "065ea371-8398-43b3-8341-287c234a3acb" - }, - "vertices": [ - { - "x": 576, - "y": 632 - }, - { - "x": 1232, - "y": 328 - } - ] - }, - { - "source": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "d3e4f800-c611-4f65-88e7-8b7d2def0021" - }, - "target": { - "block": "2dd424a5-e616-4505-8a89-4982cdd7539d", - "port": "in" - }, - "size": 8 - }, - { - "source": { - "block": "c7934725-89bb-4c91-a3e5-eeef6b921f11", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "7435a99e-3148-4748-aeb3-4bbe7cd9ee12", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" - } - }, - { - "source": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52" - }, - "target": { - "block": "c7934725-89bb-4c91-a3e5-eeef6b921f11", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" - }, - "vertices": [ - { - "x": 712, - "y": 576 - } - ] - }, - { - "source": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "18918c51-cad4-4993-b228-985afc99944e" - }, - "target": { - "block": "87a39423-9ce6-4036-8776-cb7f14be9458", - "port": "2d249745-5883-469d-bf5a-5526f4e2f8c9" - }, - "vertices": [ - { - "x": -40, - "y": 200 - }, - { - "x": -1216, - "y": 320 - } - ] - }, - { - "source": { - "block": "f69cff70-8365-4b3a-a4d9-1f0e211caaa0", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "c7934725-89bb-4c91-a3e5-eeef6b921f11", - "port": "97b51945-d716-4b6c-9db9-970d08541249" - } - }, - { - "source": { - "block": "83cb1364-e769-4b68-a090-a78237494c57", - "port": "0ef557c8-5378-43b3-80af-176f129f1a07" - }, - "target": { - "block": "f69cff70-8365-4b3a-a4d9-1f0e211caaa0", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" - }, - "vertices": [ - { - "x": 752, - "y": 760 - } - ] - }, - { - "source": { - "block": "ff11ff86-a76f-4122-b288-7122c87583f9", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "83cb1364-e769-4b68-a090-a78237494c57", - "port": "5898179a-7390-429b-ac3c-b7a0df673610" - } - }, - { - "source": { - "block": "83cb1364-e769-4b68-a090-a78237494c57", - "port": "0ef557c8-5378-43b3-80af-176f129f1a07" - }, - "target": { - "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", - "port": "90b13235-c3b7-46a1-bdfd-f9d3d6b7ddf5" - }, - "vertices": [ - { - "x": 752, - "y": 752 - } - ] + "port": "out" + }, + "target": { + "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", + "port": "076fd025-aa42-4f23-ae97-b65aec2298ce" + } }, { "source": { - "block": "83cb1364-e769-4b68-a090-a78237494c57", - "port": "0ef557c8-5378-43b3-80af-176f129f1a07" + "block": "a3b7a6de-f60f-4b9b-b215-04dc02da40ef", + "port": "constant-out" }, "target": { - "block": "5fd0f75f-64b4-489d-94ba-466de809fa10", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "block": "87a39423-9ce6-4036-8776-cb7f14be9458", + "port": "5dc401ee-7963-464f-8ab5-e8ddedf191e2" } }, { "source": { - "block": "83cb1364-e769-4b68-a090-a78237494c57", - "port": "0ef557c8-5378-43b3-80af-176f129f1a07" + "block": "87a39423-9ce6-4036-8776-cb7f14be9458", + "port": "e69a71cb-1e3d-49df-a1cc-81fa1126bbb9" }, "target": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "0f70b35b-6842-4890-8201-e9a5f2278150" - }, - "vertices": [ - { - "x": 56, - "y": 624 - } - ] + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "748fced1-f2be-412a-87de-a0d8276e6a06" + } }, { "source": { - "block": "6f59f402-ae30-4921-9b55-f979bb92b693", - "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "20e1709f-bff4-4373-a485-5af7052a37d7" }, "target": { - "block": "83cb1364-e769-4b68-a090-a78237494c57", - "port": "db089906-4326-4b59-8aa5-ebb61116a4cd" + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "bcadfb63-1fdf-43bc-9899-675e5f3658cb" } }, { "source": { - "block": "5cdc523e-a6fc-4c9d-bfa8-8311f1589fb2", - "port": "out" + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "9290b4c2-5520-4b99-97d3-a140a411a149" }, "target": { - "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", - "port": "40e65064-7137-4959-aa9e-f6111677c062" - }, - "vertices": [ - { - "x": 904, - "y": 360 - } - ] + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "dbf76d1d-8bfd-4200-b03e-eb455043634d" + } }, { "source": { - "block": "ca3f2050-c5d1-40e4-9e8b-063623625d02", - "port": "b" + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "7d9cf16e-b23e-4358-a2fb-baaa07df6deb" }, "target": { - "block": "43205473-b036-4e36-8371-f424b8d09581", - "port": "1f4c1c55-ee75-41d6-8590-b4e650d636cc" - }, - "vertices": [ - { - "x": -992, - "y": 1032 - } - ], - "size": 8 + "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", + "port": "04fdb7a7-2740-4ff1-ad26-56407ef5b958" + } }, { "source": { - "block": "43205473-b036-4e36-8371-f424b8d09581", - "port": "820e19c9-d979-418f-b2e5-d806fa3caca3" + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "a405ecb1-98ac-4483-8159-6045ca825985" }, "target": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "ed0e5489-e9b1-4b92-bcfb-22f3737d1c93" - }, - "vertices": [ - { - "x": -688, - "y": 776 - } - ], - "size": 8 + "block": "43bc16ab-b91d-405c-bef0-887bd1a85fd7", + "port": "in" + } }, { "source": { - "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", - "port": "0f7487e5-b070-4277-bba6-acf69934afca" + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "b987c71e-d76f-43eb-8371-a2aa09d98d15" }, "target": { - "block": "43205473-b036-4e36-8371-f424b8d09581", - "port": "2cd7e8ed-1ed2-4a5c-a72a-337d703c9712" + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "0096caa8-5e84-418c-9f49-61cccdca8cc0" }, "vertices": [ { - "x": -328, - "y": 1104 + "x": 0, + "y": 432 } ] }, { "source": { - "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", - "port": "f5a71d7b-de20-4527-80c8-0eb20de0dc77" + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "de068252-1546-4d1a-8452-955530fdf5de" }, "target": { - "block": "43205473-b036-4e36-8371-f424b8d09581", - "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" + "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", + "port": "f96a1baf-fc8b-4c25-b132-12552605743f" }, "vertices": [ { - "x": -256, - "y": 1136 - }, - { - "x": -920, - "y": 1048 + "x": 328, + "y": 408 } ] }, { "source": { - "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", - "port": "ca28abaf-359d-4f8f-a397-91d76dc936ec" - }, - "target": { - "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "port": "8a0d51b6-8ab0-4ca6-8d57-7fa7e713c738" - }, - "size": 2 - }, - { - "source": { - "block": "23836a37-4ae5-4e06-be42-1a6047af199d", - "port": "6a253ddf-22b2-43cd-ba6f-561bd1af6970" - }, - "target": { - "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", - "port": "8197e6c5-cf9d-42d6-a9e9-3ecccafa27c2" - }, - "size": 2 - }, - { - "source": { - "block": "3a242407-5ac7-4348-beb7-b08d6f8c66f4", - "port": "6a253ddf-22b2-43cd-ba6f-561bd1af6970" - }, - "target": { - "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", - "port": "d220e4a2-bec7-4852-84bd-2baf3df5ccdb" - }, - "size": 2 - }, - { - "source": { - "block": "fba9c594-4b64-4f48-8979-25c1a001e90a", - "port": "out" + "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", + "port": "0b3c9646-6557-423b-90de-df434a651a71" }, "target": { - "block": "5339e7e3-3097-4ee7-bf79-07c1d3172a8e", - "port": "186c4116-7846-4c8e-98a0-7376675105f1" - }, - "size": 2 + "block": "11599aed-e7f9-4b50-9552-18a18327fe0a", + "port": "in" + } }, { "source": { - "block": "5339e7e3-3097-4ee7-bf79-07c1d3172a8e", - "port": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5" + "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", + "port": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058" }, "target": { - "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", - "port": "a409d207-7594-4558-8e15-89712262cf5b" - }, - "size": 2 - }, - { - "source": { - "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", - "port": "0f7487e5-b070-4277-bba6-acf69934afca" + "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", + "port": "4f968b50-2b7d-4192-a522-aade138c8ae1" }, - "target": { - "block": "ca3f2050-c5d1-40e4-9e8b-063623625d02", - "port": "w" - } + "vertices": [] }, { "source": { - "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", - "port": "0f7487e5-b070-4277-bba6-acf69934afca" + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "543d92bb-e56e-4aed-a598-1c40b3773841" }, "target": { - "block": "83cb1364-e769-4b68-a090-a78237494c57", - "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" + "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", + "port": "4889ff2d-1850-4fad-bae9-8c1cc8efcdea" } }, { "source": { - "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", - "port": "f5a71d7b-de20-4527-80c8-0eb20de0dc77" + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "1d8c0dd2-96bc-462a-8a33-05472851522d" }, "target": { - "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", - "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "3e14c77c-be98-43cb-aa0d-b1a391a5374e" }, "vertices": [ { - "x": -1368, - "y": 920 + "x": -72, + "y": 464 } ] }, { "source": { - "block": "17680ad1-ed73-4b6c-a31e-c96c61fc88ef", - "port": "out" + "block": "87a39423-9ce6-4036-8776-cb7f14be9458", + "port": "178cb827-993b-4cf3-b94f-282a9098fcd0" }, "target": { - "block": "ca3f2050-c5d1-40e4-9e8b-063623625d02", - "port": "a" + "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "port": "0319df1a-5bd5-4abc-8681-6f3a8fa4e108" }, "vertices": [ { - "x": -1576, - "y": 976 + "x": -792, + "y": 528 } - ], - "size": 7 + ] }, { "source": { - "block": "17ec9584-f1ef-4cd5-a0a5-850ecb89065c", - "port": "out" + "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "port": "162f5f2d-17dc-4d0e-b6f9-6ebdf74392f0" }, "target": { - "block": "43205473-b036-4e36-8371-f424b8d09581", - "port": "bc9544e0-2199-4d6a-a6b9-6550b7dd7633" + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "cdf85427-0efe-4adb-b48d-dab3daccacce" }, "vertices": [ { - "x": -1616, - "y": 968 + "x": -424, + "y": 472 } - ], - "size": 8 + ] }, { "source": { - "block": "4f066abd-3ac4-45e9-ad20-d1eff038c986", - "port": "out" + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "412c6872-b61e-4af8-8ece-577a8adb185c" }, "target": { - "block": "43205473-b036-4e36-8371-f424b8d09581", - "port": "350946d5-2f29-4190-bcf2-e14e17224bb4" + "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "port": "f966672f-ae05-4499-8a8d-3c9394a1119e" }, "vertices": [ { - "x": -1672, - "y": 888 + "x": -296, + "y": 656 } - ], - "size": 8 + ] }, { "source": { - "block": "b882b07a-a45e-429f-b442-f6547b67e98e", - "port": "out" + "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "port": "5dc54e8b-49c1-4ddb-94ab-843b247b73c4" }, "target": { - "block": "87a39423-9ce6-4036-8776-cb7f14be9458", - "port": "779750dc-e68a-4a62-bb4a-a26b3b32c55c" + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "58c39529-9934-4dc2-af86-ab5efe0bbad1" }, "vertices": [ { - "x": -1520, - "y": 440 + "x": -32, + "y": 448 } ] }, { "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" - }, - "target": { "block": "87a39423-9ce6-4036-8776-cb7f14be9458", - "port": "84b853c2-3707-4f0b-b32b-484b03b19f61" - } - }, - { - "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "port": "3d54bf83-8d31-4eb5-bb7a-ccbe53ede036" }, "target": { "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "7861c061-e90b-46bb-a639-6399f55f7f11" + "port": "63a0f19e-1e7c-4e61-b89a-f6fc4eb74afb" } }, { "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "port": "088c7d8e-99b1-4f2e-a6c0-a672e5239844" }, "target": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "0f4f7955-4539-4804-a906-db4abd29fcac" - } + "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", + "port": "a409d207-7594-4558-8e15-89712262cf5b" + }, + "size": 2 }, { "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", + "port": "0f7487e5-b070-4277-bba6-acf69934afca" }, "target": { - "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "port": "9c68c5ce-2425-45f3-9f05-ee4581fa974d" + "block": "ff11ff86-a76f-4122-b288-7122c87583f9", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" } }, { "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "block": "5fd0f75f-64b4-489d-94ba-466de809fa10", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "72e82947-787f-49f6-b4a4-7fe8f68e573d" - }, - "vertices": [ - { - "x": 16, - "y": 216 - } - ] + "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + } }, { "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "port": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7" } }, { "source": { - "block": "7435a99e-3148-4748-aeb3-4bbe7cd9ee12", + "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "efa38a4c-7d36-47f9-82de-6cf99cf88c3d", - "port": "in" + "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", + "port": "ed62d7ef-27fb-44ef-99e8-a19bad6342dd" } }, { "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", + "port": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058" }, "target": { - "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", - "port": "53ae64df-468f-4f52-b3d9-99da065d5a22" - } + "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + }, + "vertices": [ + { + "x": 984, + "y": 32 + } + ] }, { "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "096f61b6-6d5c-4907-9512-e65b25969458" + "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", + "port": "e6088243-1d79-4783-ac0f-528d9700b6df" } }, { "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "b987c71e-d76f-43eb-8371-a2aa09d98d15" }, "target": { - "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", - "port": "b2c9360e-b412-4621-af8b-a8762be2b072" + "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, "vertices": [ { - "x": 1000, - "y": -80 + "x": -8, + "y": 136 } ] }, { "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", + "port": "90654ccb-afdd-41ec-aaf8-b9be5b51253b" }, "target": { - "block": "7435a99e-3148-4748-aeb3-4bbe7cd9ee12", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "42b35cc2-aa64-4e66-be42-169958246799" }, - "vertices": [ - { - "x": 1360, - "y": 200 - } - ] + "size": 8 }, { "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52" }, "target": { - "block": "9e57aa64-2990-4ff3-8244-9a70f77ff6f5", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "065ea371-8398-43b3-8341-287c234a3acb" }, "vertices": [ { - "x": 1360, - "y": 160 + "x": 576, + "y": 632 + }, + { + "x": 1232, + "y": 328 } ] }, { "source": { - "block": "9e57aa64-2990-4ff3-8244-9a70f77ff6f5", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "d3e4f800-c611-4f65-88e7-8b7d2def0021" }, "target": { - "block": "18dc0bf6-35be-4fad-9e92-79ae207ff435", + "block": "2dd424a5-e616-4505-8a89-4982cdd7539d", "port": "in" - } + }, + "size": 8 }, { "source": { - "block": "7d667955-709f-4725-8ce6-8e6383b19129", - "port": "memory-out" + "block": "c7934725-89bb-4c91-a3e5-eeef6b921f11", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "5339e7e3-3097-4ee7-bf79-07c1d3172a8e", - "port": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377" + "block": "7435a99e-3148-4748-aeb3-4bbe7cd9ee12", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" } }, { "source": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "18918c51-cad4-4993-b228-985afc99944e" + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52" }, "target": { - "block": "9e57aa64-2990-4ff3-8244-9a70f77ff6f5", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "block": "c7934725-89bb-4c91-a3e5-eeef6b921f11", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, "vertices": [ { - "x": 248, - "y": 944 + "x": 712, + "y": 576 } ] - } - ] - } - } - }, - "e1a052c716ee278ec9830939ef171d742c56eafe": { - "package": { - "name": "Tri-state", - "version": "1.0.1", - "description": "Tri-state logic block", - "author": "Salvador E. Tropea", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%22-265%20401.5%2063.5%2038.4%22%20id=%22svg2%22%3E%3Cstyle%20id=%22style3%22/%3E%3Cpath%20d=%22M-9.78%203.538l-4.214%2024.984-19.53-16.141z%22%20transform=%22matrix(.62422%20-.11476%20.1058%20.67701%20-219.33%20413.046)%22%20id=%22path3008%22%20fill=%22none%22%20stroke=%22#0b0b0b%22%20stroke-width=%221.885%22/%3E%3Cpath%20d=%22M-9.78%203.538l-4.214%2024.984-19.53-16.141z%22%20transform=%22matrix(-.62422%20-.11476%20-.1058%20.67701%20-244.991%20400.53)%22%20id=%22path3008-6%22%20fill=%22none%22%20stroke=%22#0b0b0b%22%20stroke-width=%221.885%22/%3E%3Cpath%20d=%22M40.154%2011.247H63.74%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3800%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M25.945%2023.73l-7.364.058V11.305h7.076%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3802%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M-265.029%20412.747l18.582.058%22%20id=%22path3804%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M.081%2023.919h12.936v7.566h19.037V27.58%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3806%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M0%2035.96h49.302V24.162h-9.356%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3812%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3C/svg%3E" - }, - "design": { - "config": "true", - "graph": { - "blocks": [ - { - "id": "076fd025-aa42-4f23-ae97-b65aec2298ce", - "type": "basic.input", - "data": { - "name": "pin" - }, - "position": { - "x": 32, - "y": 40 - } - }, - { - "id": "f96a1baf-fc8b-4c25-b132-12552605743f", - "type": "basic.input", - "data": { - "name": "oe" - }, - "position": { - "x": 32, - "y": 128 - } - }, - { - "id": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058", - "type": "basic.output", - "data": { - "name": "din" - }, - "position": { - "x": 760, - "y": 128 - } - }, - { - "id": "04fdb7a7-2740-4ff1-ad26-56407ef5b958", - "type": "basic.input", - "data": { - "name": "dout", - "clock": false - }, - "position": { - "x": 32, - "y": 216 - } - }, - { - "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": "pin" - }, - { - "name": "oe" - }, - { - "name": "dout" - } - ], - "out": [ - { - "name": "din" - } - ] - } - }, - "position": { - "x": 248, - "y": 32 - }, - "size": { - "width": 384, - "height": 256 - } - } - ], - "wires": [ + }, { "source": { - "block": "076fd025-aa42-4f23-ae97-b65aec2298ce", - "port": "out" + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "18918c51-cad4-4993-b228-985afc99944e" }, "target": { - "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", - "port": "pin" - } + "block": "87a39423-9ce6-4036-8776-cb7f14be9458", + "port": "2d249745-5883-469d-bf5a-5526f4e2f8c9" + }, + "vertices": [ + { + "x": -40, + "y": 200 + }, + { + "x": -1216, + "y": 320 + } + ] }, { "source": { - "block": "f96a1baf-fc8b-4c25-b132-12552605743f", - "port": "out" + "block": "f69cff70-8365-4b3a-a4d9-1f0e211caaa0", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", - "port": "oe" + "block": "c7934725-89bb-4c91-a3e5-eeef6b921f11", + "port": "97b51945-d716-4b6c-9db9-970d08541249" } }, { "source": { - "block": "04fdb7a7-2740-4ff1-ad26-56407ef5b958", - "port": "out" + "block": "83cb1364-e769-4b68-a090-a78237494c57", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" }, "target": { - "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", - "port": "dout" - } + "block": "f69cff70-8365-4b3a-a4d9-1f0e211caaa0", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": 752, + "y": 760 + } + ] }, { "source": { - "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", - "port": "din" + "block": "ff11ff86-a76f-4122-b288-7122c87583f9", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058", - "port": "in" + "block": "83cb1364-e769-4b68-a090-a78237494c57", + "port": "5898179a-7390-429b-ac3c-b7a0df673610" } - } - ] - } - } - }, - "23e63b4fd19d0e1897b3c2faf5316f824f998872": { - "package": { - "name": "i2c-start", - "version": "0.1", - "description": "Generar la condición de start en el bus I2C", - "author": "Juan González-Gómez (Obijuan)", - "image": "" - }, - "design": { - "graph": { - "blocks": [ + }, { - "id": "84b853c2-3707-4f0b-b32b-484b03b19f61", - "type": "basic.input", - "data": { - "name": "", - "clock": true + "source": { + "block": "83cb1364-e769-4b68-a090-a78237494c57", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" }, - "position": { - "x": 88, - "y": -32 - } + "target": { + "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", + "port": "90b13235-c3b7-46a1-bdfd-f9d3d6b7ddf5" + }, + "vertices": [ + { + "x": 752, + "y": 752 + } + ] }, { - "id": "e69a71cb-1e3d-49df-a1cc-81fa1126bbb9", - "type": "basic.output", - "data": { - "name": "sda" + "source": { + "block": "83cb1364-e769-4b68-a090-a78237494c57", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" }, - "position": { - "x": 568, - "y": 200 + "target": { + "block": "5fd0f75f-64b4-489d-94ba-466de809fa10", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" } }, { - "id": "2d249745-5883-469d-bf5a-5526f4e2f8c9", - "type": "basic.input", - "data": { - "name": "end", - "clock": false + "source": { + "block": "83cb1364-e769-4b68-a090-a78237494c57", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" }, - "position": { - "x": 88, - "y": 200 - } + "target": { + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "0f70b35b-6842-4890-8201-e9a5f2278150" + }, + "vertices": [ + { + "x": 56, + "y": 624 + } + ] }, { - "id": "3d54bf83-8d31-4eb5-bb7a-ccbe53ede036", - "type": "basic.output", - "data": { - "name": "scl" + "source": { + "block": "6f59f402-ae30-4921-9b55-f979bb92b693", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" }, - "position": { - "x": 1064, - "y": 272 + "target": { + "block": "83cb1364-e769-4b68-a090-a78237494c57", + "port": "db089906-4326-4b59-8aa5-ebb61116a4cd" } }, { - "id": "779750dc-e68a-4a62-bb4a-a26b3b32c55c", - "type": "basic.input", - "data": { - "name": "start", - "clock": false + "source": { + "block": "5cdc523e-a6fc-4c9d-bfa8-8311f1589fb2", + "port": "out" }, - "position": { - "x": 232, - "y": 272 - } + "target": { + "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", + "port": "40e65064-7137-4959-aa9e-f6111677c062" + }, + "vertices": [ + { + "x": 904, + "y": 360 + } + ] }, { - "id": "178cb827-993b-4cf3-b94f-282a9098fcd0", - "type": "basic.output", - "data": { - "name": "done" + "source": { + "block": "ca3f2050-c5d1-40e4-9e8b-063623625d02", + "port": "b" }, - "position": { - "x": 1072, - "y": 424 - } + "target": { + "block": "43205473-b036-4e36-8371-f424b8d09581", + "port": "1f4c1c55-ee75-41d6-8590-b4e650d636cc" + }, + "vertices": [ + { + "x": -992, + "y": 1032 + } + ], + "size": 8 }, { - "id": "a628dcfa-b41e-4605-a6b0-9637f4162e3d", - "type": "basic.constant", - "data": { - "name": "", - "value": "1", - "local": true + "source": { + "block": "43205473-b036-4e36-8371-f424b8d09581", + "port": "820e19c9-d979-418f-b2e5-d806fa3caca3" }, - "position": { - "x": 392, - "y": 88 - } + "target": { + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "ed0e5489-e9b1-4b92-bcfb-22f3737d1c93" + }, + "vertices": [ + { + "x": -688, + "y": 776 + } + ], + "size": 8 }, { - "id": "5dc401ee-7963-464f-8ab5-e8ddedf191e2", - "type": "basic.constant", - "data": { - "name": "T1", - "value": "2", - "local": false + "source": { + "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", + "port": "0f7487e5-b070-4277-bba6-acf69934afca" }, - "position": { - "x": 712, - "y": 192 - } + "target": { + "block": "43205473-b036-4e36-8371-f424b8d09581", + "port": "2cd7e8ed-1ed2-4a5c-a72a-337d703c9712" + }, + "vertices": [ + { + "x": -328, + "y": 1104 + } + ] }, { - "id": "c73dcb8e-e43f-4550-bccf-cc3cdd24929b", - "type": "basic.constant", - "data": { - "name": "", - "value": "1", - "local": true + "source": { + "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", + "port": "f5a71d7b-de20-4527-80c8-0eb20de0dc77" }, - "position": { - "x": 928, - "y": 160 - } + "target": { + "block": "43205473-b036-4e36-8371-f424b8d09581", + "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" + }, + "vertices": [ + { + "x": -256, + "y": 1136 + }, + { + "x": -920, + "y": 1048 + } + ] }, { - "id": "da65e165-f890-456d-99b1-b01df995f4c6", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", - "position": { - "x": 392, - "y": 184 + "source": { + "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", + "port": "ca28abaf-359d-4f8f-a397-91d76dc936ec" }, - "size": { - "width": 96, - "height": 96 - } + "target": { + "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "port": "8a0d51b6-8ab0-4ca6-8d57-7fa7e713c738" + }, + "size": 2 }, { - "id": "cd6c30b0-11d0-450f-ac49-90598206b72e", - "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", - "position": { - "x": 712, - "y": 288 + "source": { + "block": "23836a37-4ae5-4e06-be42-1a6047af199d", + "port": "6a253ddf-22b2-43cd-ba6f-561bd1af6970" }, - "size": { - "width": 96, - "height": 64 - } + "target": { + "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", + "port": "8197e6c5-cf9d-42d6-a9e9-3ecccafa27c2" + }, + "size": 2 }, { - "id": "70332deb-97ed-4ae9-aab5-41813b842b63", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", - "position": { - "x": 928, - "y": 256 + "source": { + "block": "3a242407-5ac7-4348-beb7-b08d6f8c66f4", + "port": "6a253ddf-22b2-43cd-ba6f-561bd1af6970" }, - "size": { - "width": 96, - "height": 96 - } + "target": { + "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", + "port": "d220e4a2-bec7-4852-84bd-2baf3df5ccdb" + }, + "size": 2 }, { - "id": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", - "type": "7eacdff4ce248b009935725889c8ae3339817d76", - "position": { - "x": 568, - "y": 304 + "source": { + "block": "fba9c594-4b64-4f48-8979-25c1a001e90a", + "port": "out" }, - "size": { - "width": 96, - "height": 64 - } + "target": { + "block": "5339e7e3-3097-4ee7-bf79-07c1d3172a8e", + "port": "186c4116-7846-4c8e-98a0-7376675105f1" + }, + "size": 2 }, { - "id": "4a80dfb1-abc5-4d93-9bd6-32ad4429fd8c", - "type": "basic.info", - "data": { - "info": "**I2C: Condicion de start**\n\nSDA y SCL están inicialmente en reposo (1). Al llegar un \ntic por start, se genera la condición de start, que consiste \nen poner SDA a 0 y trancurrido un tiempo T1, el reloj SCL \ntambién se pone a 0", - "readonly": true + "source": { + "block": "5339e7e3-3097-4ee7-bf79-07c1d3172a8e", + "port": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5" }, - "position": { - "x": -8, - "y": -184 + "target": { + "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", + "port": "a409d207-7594-4558-8e15-89712262cf5b" }, - "size": { - "width": 488, - "height": 96 - } + "size": 2 }, { - "id": "99db5402-e938-480d-8af1-2d06de283e68", - "type": "basic.info", - "data": { - "info": "**Estado de SDA** \n(datos) \nInicialmente a 1", - "readonly": true - }, - "position": { - "x": 400, - "y": 8 + "source": { + "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", + "port": "0f7487e5-b070-4277-bba6-acf69934afca" }, - "size": { - "width": 176, - "height": 64 + "target": { + "block": "ca3f2050-c5d1-40e4-9e8b-063623625d02", + "port": "w" } }, { - "id": "59ae699f-9133-4108-b510-b0969f8dfcf6", - "type": "basic.info", - "data": { - "info": "**Línea de datos**", - "readonly": true - }, - "position": { - "x": 568, - "y": 184 + "source": { + "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", + "port": "0f7487e5-b070-4277-bba6-acf69934afca" }, - "size": { - "width": 160, - "height": 40 + "target": { + "block": "83cb1364-e769-4b68-a090-a78237494c57", + "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" } }, { - "id": "3b3ca662-cacb-4ee0-ac34-899858c76d9f", - "type": "basic.info", - "data": { - "info": "La señal SCL está \nretrasada T1 con \nrespecto a SDA", - "readonly": true + "source": { + "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", + "port": "f5a71d7b-de20-4527-80c8-0eb20de0dc77" }, - "position": { - "x": 712, - "y": 360 + "target": { + "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", + "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" }, - "size": { - "width": 160, - "height": 64 - } + "vertices": [ + { + "x": -1368, + "y": 920 + } + ] }, { - "id": "0c7f5554-984c-47fa-8c23-06dca0323445", - "type": "basic.info", - "data": { - "info": "Detectar cuando SDA \nha bajado a 0", - "readonly": true + "source": { + "block": "17680ad1-ed73-4b6c-a31e-c96c61fc88ef", + "port": "out" }, - "position": { - "x": 544, - "y": 376 + "target": { + "block": "ca3f2050-c5d1-40e4-9e8b-063623625d02", + "port": "a" }, - "size": { - "width": 176, - "height": 56 - } + "vertices": [ + { + "x": -1576, + "y": 976 + } + ], + "size": 7 }, { - "id": "63b64cd5-55d5-4a5b-be1f-55fce5dab709", - "type": "basic.info", - "data": { - "info": "**Estado de SCL** (Reloj) \nInicialmente a 1", - "readonly": true + "source": { + "block": "17ec9584-f1ef-4cd5-a0a5-850ecb89065c", + "port": "out" }, - "position": { - "x": 920, - "y": 112 + "target": { + "block": "43205473-b036-4e36-8371-f424b8d09581", + "port": "bc9544e0-2199-4d6a-a6b9-6550b7dd7633" }, - "size": { - "width": 168, - "height": 48 - } + "vertices": [ + { + "x": -1616, + "y": 968 + } + ], + "size": 8 }, { - "id": "0c5e2f7d-b563-465b-aa4d-770b1e14f1ab", - "type": "basic.info", - "data": { - "info": "Al activarse start, SDA \nbaja a 0", - "readonly": true + "source": { + "block": "4f066abd-3ac4-45e9-ad20-d1eff038c986", + "port": "out" }, - "position": { - "x": 264, - "y": 336 + "target": { + "block": "43205473-b036-4e36-8371-f424b8d09581", + "port": "350946d5-2f29-4190-bcf2-e14e17224bb4" }, - "size": { - "width": 192, - "height": 64 - } + "vertices": [ + { + "x": -1672, + "y": 888 + } + ], + "size": 8 }, { - "id": "c61090f2-72e4-47e0-bd4e-f489b07e3d62", - "type": "basic.info", - "data": { - "info": "Volver al estado de \nreposo (SDA=1, SCL=1)", - "readonly": true + "source": { + "block": "b882b07a-a45e-429f-b442-f6547b67e98e", + "port": "out" }, - "position": { - "x": 72, - "y": 152 + "target": { + "block": "87a39423-9ce6-4036-8776-cb7f14be9458", + "port": "779750dc-e68a-4a62-bb4a-a26b3b32c55c" }, - "size": { - "width": 192, - "height": 56 + "vertices": [ + { + "x": -1520, + "y": 440 + } + ] + }, + { + "source": { + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" + }, + "target": { + "block": "87a39423-9ce6-4036-8776-cb7f14be9458", + "port": "84b853c2-3707-4f0b-b32b-484b03b19f61" } }, { - "id": "d389f312-fb27-41f2-8683-b3771e5d628e", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", - "position": { - "x": 928, - "y": 424 + "source": { + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "7861c061-e90b-46bb-a639-6399f55f7f11" } }, { - "id": "ba8e435f-a5c4-47dc-96d8-b06ce5af1ceb", - "type": "basic.info", - "data": { - "info": "Emitir un tic para indicar \nque la condición de estar \nse ha ejecutado", - "readonly": true + "source": { + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, - "position": { - "x": 1032, - "y": 360 + "target": { + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "0f4f7955-4539-4804-a906-db4abd29fcac" + } + }, + { + "source": { + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, - "size": { - "width": 240, - "height": 72 + "target": { + "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "port": "9c68c5ce-2425-45f3-9f05-ee4581fa974d" } - } - ], - "wires": [ + }, { "source": { - "block": "da65e165-f890-456d-99b1-b01df995f4c6", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, "target": { - "block": "e69a71cb-1e3d-49df-a1cc-81fa1126bbb9", - "port": "in" + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "72e82947-787f-49f6-b4a4-7fe8f68e573d" }, - "vertices": [] + "vertices": [ + { + "x": 16, + "y": 216 + } + ] }, { "source": { - "block": "5dc401ee-7963-464f-8ab5-e8ddedf191e2", - "port": "constant-out" + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, "target": { - "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", - "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" - }, - "vertices": [] + "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + } }, { "source": { - "block": "70332deb-97ed-4ae9-aab5-41813b842b63", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "7435a99e-3148-4748-aeb3-4bbe7cd9ee12", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "3d54bf83-8d31-4eb5-bb7a-ccbe53ede036", + "block": "efa38a4c-7d36-47f9-82de-6cf99cf88c3d", "port": "in" - }, - "vertices": [] + } }, { "source": { - "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", - "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, "target": { - "block": "70332deb-97ed-4ae9-aab5-41813b842b63", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", + "port": "53ae64df-468f-4f52-b3d9-99da065d5a22" + } + }, + { + "source": { + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, - "vertices": [] + "target": { + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "096f61b6-6d5c-4907-9512-e65b25969458" + } }, { "source": { - "block": "c73dcb8e-e43f-4550-bccf-cc3cdd24929b", - "port": "constant-out" + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, "target": { - "block": "70332deb-97ed-4ae9-aab5-41813b842b63", - "port": "bf12a800-db30-4289-a7c5-8c08438f9a39" + "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", + "port": "b2c9360e-b412-4621-af8b-a8762be2b072" }, - "vertices": [] + "vertices": [ + { + "x": 1000, + "y": -80 + } + ] }, { "source": { - "block": "a628dcfa-b41e-4605-a6b0-9637f4162e3d", - "port": "constant-out" + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, "target": { - "block": "da65e165-f890-456d-99b1-b01df995f4c6", - "port": "bf12a800-db30-4289-a7c5-8c08438f9a39" + "block": "7435a99e-3148-4748-aeb3-4bbe7cd9ee12", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" }, - "vertices": [] + "vertices": [ + { + "x": 1360, + "y": 200 + } + ] }, { "source": { - "block": "2d249745-5883-469d-bf5a-5526f4e2f8c9", + "block": "6355398c-628e-42d2-86e8-f85762c31939", "port": "out" }, "target": { - "block": "da65e165-f890-456d-99b1-b01df995f4c6", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + "block": "9e57aa64-2990-4ff3-8244-9a70f77ff6f5", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" }, - "vertices": [] + "vertices": [ + { + "x": 1360, + "y": 160 + } + ] }, { "source": { - "block": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", - "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" + "block": "9e57aa64-2990-4ff3-8244-9a70f77ff6f5", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", - "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" + "block": "18dc0bf6-35be-4fad-9e92-79ae207ff435", + "port": "in" + } + }, + { + "source": { + "block": "7d667955-709f-4725-8ce6-8e6383b19129", + "port": "memory-out" }, - "vertices": [] + "target": { + "block": "5339e7e3-3097-4ee7-bf79-07c1d3172a8e", + "port": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377" + } }, { "source": { - "block": "da65e165-f890-456d-99b1-b01df995f4c6", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "18918c51-cad4-4993-b228-985afc99944e" }, "target": { - "block": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", - "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + "block": "9e57aa64-2990-4ff3-8244-9a70f77ff6f5", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" }, "vertices": [ { - "x": 504, - "y": 240 + "x": 248, + "y": 944 + } + ] + } + ] + } + } + }, + "e1a052c716ee278ec9830939ef171d742c56eafe": { + "package": { + "name": "Tri-state", + "version": "1.0.1", + "description": "Tri-state logic block", + "author": "Salvador E. Tropea", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%22-265%20401.5%2063.5%2038.4%22%20id=%22svg2%22%3E%3Cstyle%20id=%22style3%22/%3E%3Cpath%20d=%22M-9.78%203.538l-4.214%2024.984-19.53-16.141z%22%20transform=%22matrix(.62422%20-.11476%20.1058%20.67701%20-219.33%20413.046)%22%20id=%22path3008%22%20fill=%22none%22%20stroke=%22#0b0b0b%22%20stroke-width=%221.885%22/%3E%3Cpath%20d=%22M-9.78%203.538l-4.214%2024.984-19.53-16.141z%22%20transform=%22matrix(-.62422%20-.11476%20-.1058%20.67701%20-244.991%20400.53)%22%20id=%22path3008-6%22%20fill=%22none%22%20stroke=%22#0b0b0b%22%20stroke-width=%221.885%22/%3E%3Cpath%20d=%22M40.154%2011.247H63.74%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3800%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M25.945%2023.73l-7.364.058V11.305h7.076%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3802%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M-265.029%20412.747l18.582.058%22%20id=%22path3804%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M.081%2023.919h12.936v7.566h19.037V27.58%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3806%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M0%2035.96h49.302V24.162h-9.356%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3812%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3C/svg%3E" + }, + "design": { + "config": "true", + "graph": { + "blocks": [ + { + "id": "076fd025-aa42-4f23-ae97-b65aec2298ce", + "type": "basic.input", + "data": { + "name": "pin" + }, + "position": { + "x": 32, + "y": 40 + } + }, + { + "id": "f96a1baf-fc8b-4c25-b132-12552605743f", + "type": "basic.input", + "data": { + "name": "oe" + }, + "position": { + "x": 32, + "y": 128 + } + }, + { + "id": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058", + "type": "basic.output", + "data": { + "name": "din" + }, + "position": { + "x": 760, + "y": 128 + } + }, + { + "id": "04fdb7a7-2740-4ff1-ad26-56407ef5b958", + "type": "basic.input", + "data": { + "name": "dout", + "clock": false + }, + "position": { + "x": 32, + "y": 216 + } + }, + { + "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": "pin" + }, + { + "name": "oe" + }, + { + "name": "dout" + } + ], + "out": [ + { + "name": "din" + } + ] } - ] - }, + }, + "position": { + "x": 248, + "y": 32 + }, + "size": { + "width": 384, + "height": 256 + } + } + ], + "wires": [ { "source": { - "block": "779750dc-e68a-4a62-bb4a-a26b3b32c55c", + "block": "076fd025-aa42-4f23-ae97-b65aec2298ce", "port": "out" }, "target": { - "block": "da65e165-f890-456d-99b1-b01df995f4c6", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", + "port": "pin" } }, { "source": { - "block": "2d249745-5883-469d-bf5a-5526f4e2f8c9", + "block": "f96a1baf-fc8b-4c25-b132-12552605743f", "port": "out" }, "target": { - "block": "70332deb-97ed-4ae9-aab5-41813b842b63", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" - }, - "vertices": [ - { - "x": 208, - "y": 456 - }, - { - "x": 856, - "y": 376 - } - ] + "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", + "port": "oe" + } }, { "source": { - "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", + "block": "04fdb7a7-2740-4ff1-ad26-56407ef5b958", "port": "out" }, "target": { - "block": "da65e165-f890-456d-99b1-b01df995f4c6", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", + "port": "dout" } }, { "source": { - "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", - "port": "out" + "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", + "port": "din" }, "target": { - "block": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", - "port": "4196184b-4a60-493b-bcc6-c95958483683" + "block": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058", + "port": "in" + } + } + ] + } + } + }, + "23e63b4fd19d0e1897b3c2faf5316f824f998872": { + "package": { + "name": "i2c-start", + "version": "0.1", + "description": "Generar la condición de start en el bus I2C", + "author": "Juan González-Gómez (Obijuan)", + "image": "" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "84b853c2-3707-4f0b-b32b-484b03b19f61", + "type": "basic.input", + "data": { + "name": "", + "clock": true }, - "vertices": [ - { - "x": 528, - "y": 88 - } - ] + "position": { + "x": 88, + "y": -32 + } }, { - "source": { - "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", - "port": "out" + "id": "e69a71cb-1e3d-49df-a1cc-81fa1126bbb9", + "type": "basic.output", + "data": { + "name": "sda" }, - "target": { - "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", - "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" + "position": { + "x": 568, + "y": 200 } }, { - "source": { - "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", - "port": "out" - }, - "target": { - "block": "70332deb-97ed-4ae9-aab5-41813b842b63", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "id": "2d249745-5883-469d-bf5a-5526f4e2f8c9", + "type": "basic.input", + "data": { + "name": "end", + "clock": false }, - "vertices": [ - { - "x": 896, - "y": 200 - } - ] + "position": { + "x": 88, + "y": 200 + } }, { - "source": { - "block": "d389f312-fb27-41f2-8683-b3771e5d628e", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "id": "3d54bf83-8d31-4eb5-bb7a-ccbe53ede036", + "type": "basic.output", + "data": { + "name": "scl" }, - "target": { - "block": "178cb827-993b-4cf3-b94f-282a9098fcd0", - "port": "in" + "position": { + "x": 1064, + "y": 272 } }, { - "source": { - "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", - "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + "id": "779750dc-e68a-4a62-bb4a-a26b3b32c55c", + "type": "basic.input", + "data": { + "name": "start", + "clock": false }, - "target": { - "block": "d389f312-fb27-41f2-8683-b3771e5d628e", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "position": { + "x": 232, + "y": 272 + } + }, + { + "id": "178cb827-993b-4cf3-b94f-282a9098fcd0", + "type": "basic.output", + "data": { + "name": "done" }, - "vertices": [ - { - "x": 880, - "y": 376 - } - ] + "position": { + "x": 1072, + "y": 424 + } }, { - "source": { - "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", - "port": "out" + "id": "a628dcfa-b41e-4605-a6b0-9637f4162e3d", + "type": "basic.constant", + "data": { + "name": "", + "value": "1", + "local": true }, - "target": { - "block": "d389f312-fb27-41f2-8683-b3771e5d628e", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "position": { + "x": 392, + "y": 88 + } + }, + { + "id": "5dc401ee-7963-464f-8ab5-e8ddedf191e2", + "type": "basic.constant", + "data": { + "name": "T1", + "value": "2", + "local": false }, - "vertices": [ - { - "x": 896, - "y": 368 - } - ] - } - ] - } - } - }, - "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887": { - "package": { - "name": "timer-usec", - "version": "0.1", - "description": "Temporizador en microsegundos. La señal p está activa durante el tiempo indicado. Por tic se emite un tic al finalizar", - "author": "Juan Gonzalez-Gomez (obijuan)", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20293.13756%20181.35395%22%20width=%22293.137%22%20height=%22181.354%22%3E%3Ccircle%20cx=%22149.086%22%20cy=%2290.681%22%20r=%2270.101%22%20fill=%22#fff%22/%3E%3Cpath%20d=%22M149.086%2013.679c-42.531%200-77.003%2034.472-77.003%2077.002%200%2042.531%2034.472%2077.003%2077.003%2077.003%2042.53%200%2077.003-34.472%2077.003-77.003%200-42.53-34.472-77.002-77.003-77.002zm0%20145.175c-37.673%200-68.173-30.539-68.173-68.173%200-37.633%2030.539-68.172%2068.173-68.172%2037.633%200%2068.172%2030.539%2068.172%2068.172%200%2037.634-30.538%2068.173-68.172%2068.173z%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M146.772%2030.683h4.627v18.2h-4.627zM89.125%2092.965v-4.627h18.2v4.627zm62.261%2057.665h-4.627v-18.2h4.627zm57.647-62.28v4.628h-18.2V88.35zM105.044%2049.905l3.272-3.272%2012.87%2012.87-3.273%203.271zm3.28%2084.79l-3.27-3.272%2012.868-12.87%203.272%203.272zm84.774-3.265l-3.272%203.273-12.87-12.87%203.273-3.272zM189.85%2046.64l3.272%203.272-12.87%2012.87-3.271-3.272z%22%20fill=%22#333%22/%3E%3Ccircle%20cx=%22149.086%22%20cy=%2290.681%22%20r=%224.781%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M149.795%2070.653l2.722.288-2.109%2019.9-2.722-.288z%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M181.26%2072.13l1.276%202.422-32.859%2017.296-1.275-2.422z%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M152.016%2080.386c-1.08%200-1.928.887-1.928%201.928%200%20.656.309%201.234.81%201.581l-14.691%2041.451%201.002.347%2014.691-41.45h.116c1.08%200%201.928-.888%201.928-1.929a1.934%201.934%200%200%200-1.928-1.928z%22%20fill=%22#cf000f%22/%3E%3Ctext%20y=%2242.56%22%20x=%2219.84%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%2269.516%22%20letter-spacing=%220%22%20word-spacing=%220%22%20transform=%22scale(.99853%201.00147)%22%20font-family=%22sans-serif%22%20fill=%22#00f%22%20stroke-width=%221.289%22%3E%3Ctspan%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2242.56%22%20x=%2219.84%22%20font-weight=%22700%22%20font-size=%2239.724%22%3Eus%3C/tspan%3E%3C/text%3E%3Cg%20transform=%22matrix(2.99796%200%200%202.99796%20-53.023%20-84.502)%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(2.99796%200%200%202.99796%20-257.041%20-84.502)%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%3Ccircle%20cx=%22248.578%22%20cy=%2244.56%22%20r=%2243.648%22%20fill=%22#ececec%22%20stroke=%22green%22%20stroke-width=%221.824%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M279.216%2057.21h-5.01V30.018h-51.31v26.98h-5.456%22%20fill=%22none%22%20stroke=%22green%22%20stroke-width=%224.56%22%20stroke-linecap=%22round%22/%3E%3C/svg%3E" - }, - "design": { - "graph": { - "blocks": [ + "position": { + "x": 712, + "y": 192 + } + }, { - "id": "c45dab76-9d0f-4742-9e4d-3048637d245d", - "type": "basic.output", + "id": "c73dcb8e-e43f-4550-bccf-cc3cdd24929b", + "type": "basic.constant", "data": { - "name": "p" + "name": "", + "value": "1", + "local": true + }, + "position": { + "x": 928, + "y": 160 + } + }, + { + "id": "da65e165-f890-456d-99b1-b01df995f4c6", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 392, + "y": 184 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "cd6c30b0-11d0-450f-ac49-90598206b72e", + "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", + "position": { + "x": 712, + "y": 288 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "70332deb-97ed-4ae9-aab5-41813b842b63", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 928, + "y": 256 }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", + "type": "7eacdff4ce248b009935725889c8ae3339817d76", "position": { - "x": 1224, - "y": 96 + "x": 568, + "y": 304 + }, + "size": { + "width": 96, + "height": 64 } }, { - "id": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6", - "type": "basic.input", + "id": "4a80dfb1-abc5-4d93-9bd6-32ad4429fd8c", + "type": "basic.info", "data": { - "name": "", - "clock": true + "info": "**I2C: Condicion de start**\n\nSDA y SCL están inicialmente en reposo (1). Al llegar un \ntic por start, se genera la condición de start, que consiste \nen poner SDA a 0 y trancurrido un tiempo T1, el reloj SCL \ntambién se pone a 0", + "readonly": true }, "position": { - "x": 472, - "y": 96 + "x": -8, + "y": -184 + }, + "size": { + "width": 488, + "height": 96 } }, { - "id": "61d11f03-6fbc-4467-a947-d546fa6f6429", - "type": "basic.input", + "id": "99db5402-e938-480d-8af1-2d06de283e68", + "type": "basic.info", "data": { - "name": "", - "clock": false + "info": "**Estado de SDA** \n(datos) \nInicialmente a 1", + "readonly": true }, "position": { - "x": 456, - "y": 304 + "x": 400, + "y": 8 + }, + "size": { + "width": 176, + "height": 64 } }, { - "id": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454", - "type": "basic.output", + "id": "59ae699f-9133-4108-b510-b0969f8dfcf6", + "type": "basic.info", "data": { - "name": "tic" + "info": "**Línea de datos**", + "readonly": true }, "position": { - "x": 1216, - "y": 304 + "x": 568, + "y": 184 + }, + "size": { + "width": 160, + "height": 40 } }, { - "id": "7ca578e5-8e36-4c04-bbea-144418c8e9af", - "type": "basic.constant", + "id": "3b3ca662-cacb-4ee0-ac34-899858c76d9f", + "type": "basic.info", "data": { - "name": "", - "value": "100", - "local": false + "info": "La señal SCL está \nretrasada T1 con \nrespecto a SDA", + "readonly": true }, "position": { - "x": 848, - "y": -96 + "x": 712, + "y": 360 + }, + "size": { + "width": 160, + "height": 64 } }, { - "id": "e6b9690b-1da7-4600-9015-0bbed31633e2", + "id": "0c7f5554-984c-47fa-8c23-06dca0323445", "type": "basic.info", "data": { - "info": "**Arranque del** \n**temporizador**", + "info": "Detectar cuando SDA \nha bajado a 0", "readonly": true }, "position": { - "x": 448, - "y": 264 + "x": 544, + "y": 376 }, "size": { - "width": 144, + "width": 176, "height": 56 } }, { - "id": "f3af4211-e3df-4710-a0a8-96a035a833a9", + "id": "63b64cd5-55d5-4a5b-be1f-55fce5dab709", "type": "basic.info", "data": { - "info": "**Salida de pulso**", + "info": "**Estado de SCL** (Reloj) \nInicialmente a 1", "readonly": true }, "position": { - "x": 1224, - "y": 72 + "x": 920, + "y": 112 }, "size": { - "width": 176, - "height": 40 + "width": 168, + "height": 48 } }, { - "id": "a15228f1-41aa-494c-82fb-5491bf5fcc13", + "id": "0c5e2f7d-b563-465b-aa4d-770b1e14f1ab", "type": "basic.info", "data": { - "info": "**Salida de tic**", + "info": "Al activarse start, SDA \nbaja a 0", "readonly": true }, "position": { - "x": 1216, - "y": 280 + "x": 264, + "y": 336 }, "size": { - "width": 152, - "height": 40 + "width": 192, + "height": 64 } }, { - "id": "204eb46d-dd4f-47cf-b0f3-c9095263d325", + "id": "c61090f2-72e4-47e0-bd4e-f489b07e3d62", "type": "basic.info", "data": { - "info": "**Parametro del timer** \nmicroseundos a esperar", + "info": "Volver al estado de \nreposo (SDA=1, SCL=1)", "readonly": true }, "position": { - "x": 824, - "y": -128 + "x": 72, + "y": 152 }, "size": { - "width": 216, + "width": 192, "height": 56 } }, { - "id": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", - "type": "basic.code", + "id": "d389f312-fb27-41f2-8683-b3771e5d628e", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", + "position": { + "x": 928, + "y": 424 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "ba8e435f-a5c4-47dc-96d8-b06ce5af1ceb", + "type": "basic.info", "data": { - "code": "//localparam US;\n\n//-- Constante para dividir y obtener una señal de \n//-- periodo 1 micro-segundo\nlocalparam M = 12;\n\n//-- Calcular el numero de bits para almacenar M\nlocalparam N = $clog2(M);\n\n//-- Cable de reset para el corazon\nwire rst_heart;\n\n//-- Overflow del temporizador del corazon\nwire ov_heart;\n\n//-- Habilitacion del corazon\nwire ena;\n\n//-- Tics del corazon\nwire tic_heart;\n\n//-- Contador del corazon\nreg [N-1:0] heart=0;\n\nalways @(posedge clk)\n if (rst_heart)\n heart <= 0;\n else\n heart <= heart + 1;\n\n//-- Overflow del contador\nassign ov_heart = (heart == M-1);\n\n//-- La salida del corazon es la señal de overflow\nassign tic_heart = ov_heart;\n\n//-- Reset del corazon\nassign rst_heart =~ena | ov_heart;\n\n\n\n//--------------------------------------------\n//-- Contador de tics\n//--------------------------------------------\n\n//-- Calcular el numero de bits para almacenar US tics\nlocalparam CB = $clog2(US);\n\nreg [CB:0] counter = 0;\n\n//-- Overflow del contador\nwire ov;\n\n//-- Señal de reset del contador\nwire rst;\n\nalways @(posedge clk)\nif (rst)\n counter <= 0;\nelse\n if (tic_heart)\n counter <= counter + 1;\n\n//-- Evento: cuenta máxima de tics alcanzada\nassign ov = (counter == US);\n\n//---------------------------------------\n//-- Biestable de estado del timer\n//-- 0: Apagado \n//-- 1: Funcionando\nreg q = 0;\n\nalways @(posedge clk)\n if (start)\n q <= 1'b1;\n else if (rst)\n q<=1'b0;\n \n//-- Lógica de reset\n//En función de la entrada, el estado y \n// el overflow se inicializa el contador y \n// se habilita el corazón de tics\nassign rst = ~q | ov | start;\nassign ena = ~rst;\n\n//-- Salida de pulso\nassign p = q;\n\n//-- Salida de tic\n//-- Saca un tic cuando ha finalizado la cuenta\nassign tic = ov;\n", - "params": [ - { - "name": "US" - } - ], - "ports": { - "in": [ - { - "name": "clk" - }, - { - "name": "start" - } - ], - "out": [ - { - "name": "p" - }, - { - "name": "tic" - } - ] - } + "info": "Emitir un tic para indicar \nque la condición de estar \nse ha ejecutado", + "readonly": true }, "position": { - "x": 632, - "y": 24 + "x": 1032, + "y": 360 }, "size": { - "width": 520, - "height": 416 + "width": 240, + "height": 72 } } ], "wires": [ { "source": { - "block": "61d11f03-6fbc-4467-a947-d546fa6f6429", - "port": "out" + "block": "da65e165-f890-456d-99b1-b01df995f4c6", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "e69a71cb-1e3d-49df-a1cc-81fa1126bbb9", + "port": "in" + }, + "vertices": [] + }, + { + "source": { + "block": "5dc401ee-7963-464f-8ab5-e8ddedf191e2", + "port": "constant-out" + }, + "target": { + "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", + "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" + }, + "vertices": [] + }, + { + "source": { + "block": "70332deb-97ed-4ae9-aab5-41813b842b63", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "3d54bf83-8d31-4eb5-bb7a-ccbe53ede036", + "port": "in" + }, + "vertices": [] + }, + { + "source": { + "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", + "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + }, + "target": { + "block": "70332deb-97ed-4ae9-aab5-41813b842b63", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + }, + "vertices": [] + }, + { + "source": { + "block": "c73dcb8e-e43f-4550-bccf-cc3cdd24929b", + "port": "constant-out" + }, + "target": { + "block": "70332deb-97ed-4ae9-aab5-41813b842b63", + "port": "bf12a800-db30-4289-a7c5-8c08438f9a39" + }, + "vertices": [] + }, + { + "source": { + "block": "a628dcfa-b41e-4605-a6b0-9637f4162e3d", + "port": "constant-out" + }, + "target": { + "block": "da65e165-f890-456d-99b1-b01df995f4c6", + "port": "bf12a800-db30-4289-a7c5-8c08438f9a39" + }, + "vertices": [] + }, + { + "source": { + "block": "2d249745-5883-469d-bf5a-5526f4e2f8c9", + "port": "out" + }, + "target": { + "block": "da65e165-f890-456d-99b1-b01df995f4c6", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + }, + "vertices": [] + }, + { + "source": { + "block": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" }, "target": { - "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", - "port": "start" - } + "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", + "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" + }, + "vertices": [] }, { "source": { - "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", - "port": "p" + "block": "da65e165-f890-456d-99b1-b01df995f4c6", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "c45dab76-9d0f-4742-9e4d-3048637d245d", - "port": "in" - } + "block": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + }, + "vertices": [ + { + "x": 504, + "y": 240 + } + ] }, { "source": { - "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", - "port": "tic" + "block": "779750dc-e68a-4a62-bb4a-a26b3b32c55c", + "port": "out" }, "target": { - "block": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454", - "port": "in" + "block": "da65e165-f890-456d-99b1-b01df995f4c6", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" } }, { "source": { - "block": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6", + "block": "2d249745-5883-469d-bf5a-5526f4e2f8c9", "port": "out" }, "target": { - "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", - "port": "clk" - } + "block": "70332deb-97ed-4ae9-aab5-41813b842b63", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + }, + "vertices": [ + { + "x": 208, + "y": 456 + }, + { + "x": 856, + "y": 376 + } + ] }, { "source": { - "block": "7ca578e5-8e36-4c04-bbea-144418c8e9af", - "port": "constant-out" + "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", + "port": "out" }, "target": { - "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", - "port": "US" - } - } - ] - } - } - }, - "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 + "block": "da65e165-f890-456d-99b1-b01df995f4c6", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" } }, { - "id": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", - "type": "basic.output", - "data": { - "name": "" + "source": { + "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", + "port": "out" }, - "position": { - "x": 624, - "y": 200 - } + "target": { + "block": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", + "port": "4196184b-4a60-493b-bcc6-c95958483683" + }, + "vertices": [ + { + "x": 528, + "y": 88 + } + ] }, { - "id": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", - "type": "basic.input", - "data": { - "name": "", - "clock": false + "source": { + "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", + "port": "out" }, - "position": { - "x": 152, - "y": 232 + "target": { + "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", + "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" } }, { - "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" - } - ] - } + "source": { + "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", + "port": "out" }, - "position": { - "x": 336, - "y": 176 + "target": { + "block": "70332deb-97ed-4ae9-aab5-41813b842b63", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" }, - "size": { - "width": 232, - "height": 112 - } - } - ], - "wires": [ + "vertices": [ + { + "x": 896, + "y": 200 + } + ] + }, { "source": { - "block": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", - "port": "out" + "block": "d389f312-fb27-41f2-8683-b3771e5d628e", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", - "port": "i" + "block": "178cb827-993b-4cf3-b94f-282a9098fcd0", + "port": "in" } }, { "source": { - "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", - "port": "o" + "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", + "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, "target": { - "block": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", - "port": "in" - } + "block": "d389f312-fb27-41f2-8683-b3771e5d628e", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + }, + "vertices": [ + { + "x": 880, + "y": 376 + } + ] }, { "source": { - "block": "4196184b-4a60-493b-bcc6-c95958483683", + "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", "port": "out" }, "target": { - "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", - "port": "clk" - } + "block": "d389f312-fb27-41f2-8683-b3771e5d628e", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + }, + "vertices": [ + { + "x": 896, + "y": 368 + } + ] } ] } } }, - "8ba640a4be8254a54e8c2dfad99a8fb6a07b5752": { + "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887": { "package": { - "name": "i2c-nak", + "name": "timer-usec", "version": "0.1", - "description": "Detección de los ACKs del esclavo. Si no se recibe, se activa la salida NAK", - "author": "Juan González-Gómez (Obijuan)", - "image": "" + "description": "Temporizador en microsegundos. La señal p está activa durante el tiempo indicado. Por tic se emite un tic al finalizar", + "author": "Juan Gonzalez-Gomez (obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20293.13756%20181.35395%22%20width=%22293.137%22%20height=%22181.354%22%3E%3Ccircle%20cx=%22149.086%22%20cy=%2290.681%22%20r=%2270.101%22%20fill=%22#fff%22/%3E%3Cpath%20d=%22M149.086%2013.679c-42.531%200-77.003%2034.472-77.003%2077.002%200%2042.531%2034.472%2077.003%2077.003%2077.003%2042.53%200%2077.003-34.472%2077.003-77.003%200-42.53-34.472-77.002-77.003-77.002zm0%20145.175c-37.673%200-68.173-30.539-68.173-68.173%200-37.633%2030.539-68.172%2068.173-68.172%2037.633%200%2068.172%2030.539%2068.172%2068.172%200%2037.634-30.538%2068.173-68.172%2068.173z%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M146.772%2030.683h4.627v18.2h-4.627zM89.125%2092.965v-4.627h18.2v4.627zm62.261%2057.665h-4.627v-18.2h4.627zm57.647-62.28v4.628h-18.2V88.35zM105.044%2049.905l3.272-3.272%2012.87%2012.87-3.273%203.271zm3.28%2084.79l-3.27-3.272%2012.868-12.87%203.272%203.272zm84.774-3.265l-3.272%203.273-12.87-12.87%203.273-3.272zM189.85%2046.64l3.272%203.272-12.87%2012.87-3.271-3.272z%22%20fill=%22#333%22/%3E%3Ccircle%20cx=%22149.086%22%20cy=%2290.681%22%20r=%224.781%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M149.795%2070.653l2.722.288-2.109%2019.9-2.722-.288z%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M181.26%2072.13l1.276%202.422-32.859%2017.296-1.275-2.422z%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M152.016%2080.386c-1.08%200-1.928.887-1.928%201.928%200%20.656.309%201.234.81%201.581l-14.691%2041.451%201.002.347%2014.691-41.45h.116c1.08%200%201.928-.888%201.928-1.929a1.934%201.934%200%200%200-1.928-1.928z%22%20fill=%22#cf000f%22/%3E%3Ctext%20y=%2242.56%22%20x=%2219.84%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%2269.516%22%20letter-spacing=%220%22%20word-spacing=%220%22%20transform=%22scale(.99853%201.00147)%22%20font-family=%22sans-serif%22%20fill=%22#00f%22%20stroke-width=%221.289%22%3E%3Ctspan%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2242.56%22%20x=%2219.84%22%20font-weight=%22700%22%20font-size=%2239.724%22%3Eus%3C/tspan%3E%3C/text%3E%3Cg%20transform=%22matrix(2.99796%200%200%202.99796%20-53.023%20-84.502)%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(2.99796%200%200%202.99796%20-257.041%20-84.502)%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%3Ccircle%20cx=%22248.578%22%20cy=%2244.56%22%20r=%2243.648%22%20fill=%22#ececec%22%20stroke=%22green%22%20stroke-width=%221.824%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M279.216%2057.21h-5.01V30.018h-51.31v26.98h-5.456%22%20fill=%22none%22%20stroke=%22green%22%20stroke-width=%224.56%22%20stroke-linecap=%22round%22/%3E%3C/svg%3E" }, "design": { "graph": { "blocks": [ { - "id": "b2c9360e-b412-4621-af8b-a8762be2b072", - "type": "basic.input", + "id": "c45dab76-9d0f-4742-9e4d-3048637d245d", + "type": "basic.output", "data": { - "name": "clk", - "clock": false + "name": "p" }, "position": { - "x": 272, - "y": 152 + "x": 1224, + "y": 96 } }, { - "id": "0b3c9646-6557-423b-90de-df434a651a71", - "type": "basic.output", + "id": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6", + "type": "basic.input", "data": { - "name": "nak" + "name": "", + "clock": true }, "position": { - "x": 1136, - "y": 256 + "x": 472, + "y": 96 } }, { - "id": "4f968b50-2b7d-4192-a522-aade138c8ae1", + "id": "61d11f03-6fbc-4467-a947-d546fa6f6429", "type": "basic.input", "data": { - "name": "sda_in", + "name": "", "clock": false }, "position": { - "x": 256, - "y": 256 + "x": 456, + "y": 304 } }, { - "id": "4889ff2d-1850-4fad-bae9-8c1cc8efcdea", - "type": "basic.input", + "id": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454", + "type": "basic.output", "data": { - "name": "win", - "clock": false + "name": "tic" }, "position": { - "x": 256, - "y": 344 + "x": 1216, + "y": 304 } }, { - "id": "90b13235-c3b7-46a1-bdfd-f9d3d6b7ddf5", - "type": "basic.input", + "id": "7ca578e5-8e36-4c04-bbea-144418c8e9af", + "type": "basic.constant", "data": { - "name": "rs", - "clock": false + "name": "", + "value": "100", + "local": false }, "position": { - "x": 256, - "y": 432 + "x": 848, + "y": -96 } }, { - "id": "40e65064-7137-4959-aa9e-f6111677c062", - "type": "basic.input", + "id": "e6b9690b-1da7-4600-9015-0bbed31633e2", + "type": "basic.info", "data": { - "name": "rst", - "clock": false + "info": "**Arranque del** \n**temporizador**", + "readonly": true }, "position": { - "x": 264, - "y": 496 + "x": 448, + "y": 264 + }, + "size": { + "width": 144, + "height": 56 } }, { - "id": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", - "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "id": "f3af4211-e3df-4710-a0a8-96a035a833a9", + "type": "basic.info", + "data": { + "info": "**Salida de pulso**", + "readonly": true + }, "position": { - "x": 560, - "y": 272 + "x": 1224, + "y": 72 }, "size": { - "width": 96, - "height": 64 + "width": 176, + "height": 40 } }, { - "id": "d56e056d-c720-4463-802b-b5454811164c", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "id": "a15228f1-41aa-494c-82fb-5491bf5fcc13", + "type": "basic.info", + "data": { + "info": "**Salida de tic**", + "readonly": true + }, "position": { - "x": 984, - "y": 240 + "x": 1216, + "y": 280 }, "size": { - "width": 96, - "height": 96 + "width": 152, + "height": 40 } }, { - "id": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", - "type": "8e2728307baccbf26c01cdb87bcfba8ca64a435c", + "id": "204eb46d-dd4f-47cf-b0f3-c9095263d325", + "type": "basic.info", + "data": { + "info": "**Parametro del timer** \nmicroseundos a esperar", + "readonly": true + }, "position": { - "x": 704, - "y": 256 + "x": 824, + "y": -128 }, "size": { - "width": 96, - "height": 64 + "width": 216, + "height": 56 } }, { - "id": "e26aeb27-df86-4761-a854-d13b9e7fd79b", - "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "id": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", + "type": "basic.code", + "data": { + "code": "//localparam US;\n\n//-- Constante para dividir y obtener una señal de \n//-- periodo 1 micro-segundo\nlocalparam M = 12;\n\n//-- Calcular el numero de bits para almacenar M\nlocalparam N = $clog2(M);\n\n//-- Cable de reset para el corazon\nwire rst_heart;\n\n//-- Overflow del temporizador del corazon\nwire ov_heart;\n\n//-- Habilitacion del corazon\nwire ena;\n\n//-- Tics del corazon\nwire tic_heart;\n\n//-- Contador del corazon\nreg [N-1:0] heart=0;\n\nalways @(posedge clk)\n if (rst_heart)\n heart <= 0;\n else\n heart <= heart + 1;\n\n//-- Overflow del contador\nassign ov_heart = (heart == M-1);\n\n//-- La salida del corazon es la señal de overflow\nassign tic_heart = ov_heart;\n\n//-- Reset del corazon\nassign rst_heart =~ena | ov_heart;\n\n\n\n//--------------------------------------------\n//-- Contador de tics\n//--------------------------------------------\n\n//-- Calcular el numero de bits para almacenar US tics\nlocalparam CB = $clog2(US);\n\nreg [CB:0] counter = 0;\n\n//-- Overflow del contador\nwire ov;\n\n//-- Señal de reset del contador\nwire rst;\n\nalways @(posedge clk)\nif (rst)\n counter <= 0;\nelse\n if (tic_heart)\n counter <= counter + 1;\n\n//-- Evento: cuenta máxima de tics alcanzada\nassign ov = (counter == US);\n\n//---------------------------------------\n//-- Biestable de estado del timer\n//-- 0: Apagado \n//-- 1: Funcionando\nreg q = 0;\n\nalways @(posedge clk)\n if (start)\n q <= 1'b1;\n else if (rst)\n q<=1'b0;\n \n//-- Lógica de reset\n//En función de la entrada, el estado y \n// el overflow se inicializa el contador y \n// se habilita el corazón de tics\nassign rst = ~q | ov | start;\nassign ena = ~rst;\n\n//-- Salida de pulso\nassign p = q;\n\n//-- Salida de tic\n//-- Saca un tic cuando ha finalizado la cuenta\nassign tic = ov;\n", + "params": [ + { + "name": "US" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "start" + } + ], + "out": [ + { + "name": "p" + }, + { + "name": "tic" + } + ] + } + }, "position": { - "x": 432, - "y": 360 + "x": 632, + "y": 24 }, "size": { - "width": 96, - "height": 64 + "width": 520, + "height": 416 } } ], "wires": [ { "source": { - "block": "d56e056d-c720-4463-802b-b5454811164c", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "0b3c9646-6557-423b-90de-df434a651a71", - "port": "in" - }, - "vertices": [] - }, - { - "source": { - "block": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", - "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" - }, - "target": { - "block": "d56e056d-c720-4463-802b-b5454811164c", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" - }, - "vertices": [] - }, - { - "source": { - "block": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", - "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" - }, - "vertices": [] - }, - { - "source": { - "block": "e26aeb27-df86-4761-a854-d13b9e7fd79b", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", - "port": "97b51945-d716-4b6c-9db9-970d08541249" - }, - "vertices": [] - }, - { - "source": { - "block": "4f968b50-2b7d-4192-a522-aade138c8ae1", - "port": "out" - }, - "target": { - "block": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" - } - }, - { - "source": { - "block": "90b13235-c3b7-46a1-bdfd-f9d3d6b7ddf5", + "block": "61d11f03-6fbc-4467-a947-d546fa6f6429", "port": "out" }, "target": { - "block": "e26aeb27-df86-4761-a854-d13b9e7fd79b", - "port": "97b51945-d716-4b6c-9db9-970d08541249" + "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", + "port": "start" } }, { "source": { - "block": "4889ff2d-1850-4fad-bae9-8c1cc8efcdea", - "port": "out" + "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", + "port": "p" }, "target": { - "block": "e26aeb27-df86-4761-a854-d13b9e7fd79b", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "block": "c45dab76-9d0f-4742-9e4d-3048637d245d", + "port": "in" } }, { "source": { - "block": "40e65064-7137-4959-aa9e-f6111677c062", - "port": "out" + "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", + "port": "tic" }, "target": { - "block": "d56e056d-c720-4463-802b-b5454811164c", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + "block": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454", + "port": "in" } }, { "source": { - "block": "b2c9360e-b412-4621-af8b-a8762be2b072", + "block": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6", "port": "out" }, "target": { - "block": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", - "port": "4196184b-4a60-493b-bcc6-c95958483683" + "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", + "port": "clk" } }, { "source": { - "block": "b2c9360e-b412-4621-af8b-a8762be2b072", - "port": "out" + "block": "7ca578e5-8e36-4c04-bbea-144418c8e9af", + "port": "constant-out" }, "target": { - "block": "d56e056d-c720-4463-802b-b5454811164c", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", + "port": "US" } } ] } } }, - "fc9dacc62ad25cd2832c3442bf277af9b708249b": { + "7eacdff4ce248b009935725889c8ae3339817d76": { "package": { - "name": "Separador-bus", + "name": "Bajada", "version": "0.1", - "description": "Separador de bus de 2-bits en dos cables", + "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=%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" + "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": "f5a71d7b-de20-4527-80c8-0eb20de0dc77", - "type": "basic.output", + "id": "4196184b-4a60-493b-bcc6-c95958483683", + "type": "basic.input", "data": { - "name": "o1" + "name": "", + "clock": true }, "position": { - "x": 568, - "y": 144 + "x": 152, + "y": 176 } }, { - "id": "a409d207-7594-4558-8e15-89712262cf5b", - "type": "basic.input", + "id": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", + "type": "basic.output", "data": { - "name": "i", - "range": "[1:0]", - "clock": false, - "size": 2 + "name": "" }, "position": { - "x": 120, + "x": 624, "y": 200 } }, { - "id": "0f7487e5-b070-4277-bba6-acf69934afca", - "type": "basic.output", + "id": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", + "type": "basic.input", "data": { - "name": "o0" + "name": "", + "clock": false }, "position": { - "x": 568, - "y": 272 + "x": 152, + "y": 232 } }, { - "id": "16e78204-213e-4833-9096-89d735307ec2", + "id": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", "type": "basic.code", "data": { - "code": "assign o1 = i[1];\nassign o0 = i[0];", + "code": "reg q = 0;\n\nalways @(posedge clk)\n q <= i;\n \nassign o = (q & ~i); ", "params": [], "ports": { "in": [ { - "name": "i", - "range": "[1:0]", - "size": 2 + "name": "clk" + }, + { + "name": "i" } ], "out": [ { - "name": "o1" - }, - { - "name": "o0" + "name": "o" } ] } }, "position": { - "x": 296, + "x": 336, "y": 176 }, "size": { - "width": 192, + "width": 232, "height": 112 } } @@ -5803,1763 +5966,1638 @@ "wires": [ { "source": { - "block": "16e78204-213e-4833-9096-89d735307ec2", - "port": "o1" + "block": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", + "port": "out" }, "target": { - "block": "f5a71d7b-de20-4527-80c8-0eb20de0dc77", - "port": "in" + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "i" } }, { "source": { - "block": "16e78204-213e-4833-9096-89d735307ec2", - "port": "o0" + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "o" }, "target": { - "block": "0f7487e5-b070-4277-bba6-acf69934afca", + "block": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", "port": "in" } }, { "source": { - "block": "a409d207-7594-4558-8e15-89712262cf5b", + "block": "4196184b-4a60-493b-bcc6-c95958483683", "port": "out" }, "target": { - "block": "16e78204-213e-4833-9096-89d735307ec2", - "port": "i" - }, - "size": 2 + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "clk" + } } ] } } }, - "56e0da7091190448826e12c0590f60e2927ced42": { + "8ba640a4be8254a54e8c2dfad99a8fb6a07b5752": { "package": { - "name": "Registro-desplazamiento", + "name": "i2c-nak", "version": "0.1", - "description": "Registro de desplazamiento (izquierda) de 8 bits", + "description": "Detección de los ACKs del esclavo. Si no se recibe, se activa la salida NAK", "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" + "image": "" }, "design": { "graph": { "blocks": [ { - "id": "53ae64df-468f-4f52-b3d9-99da065d5a22", + "id": "b2c9360e-b412-4621-af8b-a8762be2b072", "type": "basic.input", "data": { - "name": "", - "clock": true + "name": "clk", + "clock": false }, "position": { - "x": 224, - "y": 248 + "x": 272, + "y": 152 } }, { - "id": "21039c06-c932-498c-968d-879a68d66795", + "id": "0b3c9646-6557-423b-90de-df434a651a71", "type": "basic.output", "data": { - "name": "" + "name": "nak" }, "position": { - "x": 920, - "y": 264 + "x": 1136, + "y": 256 } }, { - "id": "ed62d7ef-27fb-44ef-99e8-a19bad6342dd", + "id": "4f968b50-2b7d-4192-a522-aade138c8ae1", "type": "basic.input", "data": { - "name": "", + "name": "sda_in", "clock": false }, "position": { - "x": 224, - "y": 312 + "x": 256, + "y": 256 } }, { - "id": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", - "type": "basic.output", + "id": "4889ff2d-1850-4fad-bae9-8c1cc8efcdea", + "type": "basic.input", "data": { - "name": "q", - "range": "[7:0]", - "size": 8 + "name": "win", + "clock": false }, "position": { - "x": 928, - "y": 352 + "x": 256, + "y": 344 } }, { - "id": "e6088243-1d79-4783-ac0f-528d9700b6df", + "id": "90b13235-c3b7-46a1-bdfd-f9d3d6b7ddf5", "type": "basic.input", "data": { - "name": "shift", + "name": "rs", "clock": false }, "position": { - "x": 224, - "y": 368 + "x": 256, + "y": 432 } }, { - "id": "5a757228-e2d2-45fb-9241-ebecb5a14315", - "type": "basic.constant", + "id": "40e65064-7137-4959-aa9e-f6111677c062", + "type": "basic.input", "data": { - "name": "", - "value": "0", - "local": false + "name": "rst", + "clock": false }, "position": { - "x": 576, - "y": 144 + "x": 264, + "y": 496 } }, { - "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 - } - ] - } - }, + "id": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", "position": { - "x": 384, - "y": 248 + "x": 560, + "y": 272 }, "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" + "width": 96, + "height": 64 } }, { - "source": { - "block": "ed62d7ef-27fb-44ef-99e8-a19bad6342dd", - "port": "out" + "id": "d56e056d-c720-4463-802b-b5454811164c", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 984, + "y": 240 }, - "target": { - "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", - "port": "si" + "size": { + "width": 96, + "height": 96 } }, { - "source": { - "block": "e6088243-1d79-4783-ac0f-528d9700b6df", - "port": "out" + "id": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", + "type": "8e2728307baccbf26c01cdb87bcfba8ca64a435c", + "position": { + "x": 704, + "y": 256 }, - "target": { - "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", - "port": "shift" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "53ae64df-468f-4f52-b3d9-99da065d5a22", - "port": "out" + "id": "e26aeb27-df86-4761-a854-d13b9e7fd79b", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 432, + "y": 360 }, - "target": { - "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", - "port": "clk" + "size": { + "width": 96, + "height": 64 } - }, + } + ], + "wires": [ { "source": { - "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", - "port": "q" + "block": "d56e056d-c720-4463-802b-b5454811164c", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", - "port": "in" - }, - "size": 8 - } - ] - } - } - }, - "42ebf732ed72b2aa979e6858281bfe62c10bec5f": { - "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=%22216.379%22%20height=%22279.911%22%20viewBox=%220%200%2057.25032%2074.059853%22%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M41.506%2040.152l13.608%2016.672-6.918-20.534%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%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-width=%221.0924880399999999%22/%3E%3C/g%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%3C/svg%3E" - }, - "design": { - "graph": { - "blocks": [ - { - "id": "3943e194-090b-4553-9df3-88bc4b17abc2", - "type": "basic.input", - "data": { - "name": "", - "clock": true - }, - "position": { - "x": 200, - "y": 96 - } - }, - { - "id": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", - "type": "basic.input", - "data": { - "name": "d", - "clock": false + "block": "0b3c9646-6557-423b-90de-df434a651a71", + "port": "in" }, - "position": { - "x": 176, - "y": 184 - } + "vertices": [] }, { - "id": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", - "type": "basic.output", - "data": { - "name": "" + "source": { + "block": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" }, - "position": { - "x": 680, - "y": 184 - } + "target": { + "block": "d56e056d-c720-4463-802b-b5454811164c", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + }, + "vertices": [] }, { - "id": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", - "type": "basic.input", - "data": { - "name": "load", - "clock": false + "source": { + "block": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "position": { - "x": 176, - "y": 248 - } + "target": { + "block": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + }, + "vertices": [] }, { - "id": "65194b18-5d2a-41b2-bd86-01be99978ad6", - "type": "basic.constant", - "data": { - "name": "", - "value": "0", - "local": false + "source": { + "block": "e26aeb27-df86-4761-a854-d13b9e7fd79b", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "position": { - "x": 456, - "y": 64 - } + "target": { + "block": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] }, { - "id": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "type": "basic.code", - "data": { - "code": "reg q = INI;\nalways @(posedge clk)\n if (load)\n q <= d;", - "params": [ - { - "name": "INI" - } - ], - "ports": { - "in": [ - { - "name": "clk" - }, - { - "name": "d" - }, - { - "name": "load" - } - ], - "out": [ - { - "name": "q" - } - ] - } - }, - "position": { - "x": 384, - "y": 168 + "source": { + "block": "4f968b50-2b7d-4192-a522-aade138c8ae1", + "port": "out" }, - "size": { - "width": 232, - "height": 88 + "target": { + "block": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" } - } - ], - "wires": [ + }, { "source": { - "block": "3943e194-090b-4553-9df3-88bc4b17abc2", + "block": "90b13235-c3b7-46a1-bdfd-f9d3d6b7ddf5", "port": "out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "clk" + "block": "e26aeb27-df86-4761-a854-d13b9e7fd79b", + "port": "97b51945-d716-4b6c-9db9-970d08541249" } }, { "source": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "q" + "block": "4889ff2d-1850-4fad-bae9-8c1cc8efcdea", + "port": "out" }, "target": { - "block": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", - "port": "in" + "block": "e26aeb27-df86-4761-a854-d13b9e7fd79b", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" } }, { "source": { - "block": "65194b18-5d2a-41b2-bd86-01be99978ad6", - "port": "constant-out" + "block": "40e65064-7137-4959-aa9e-f6111677c062", + "port": "out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "INI" + "block": "d56e056d-c720-4463-802b-b5454811164c", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" } }, { "source": { - "block": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", + "block": "b2c9360e-b412-4621-af8b-a8762be2b072", "port": "out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "d" + "block": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", + "port": "4196184b-4a60-493b-bcc6-c95958483683" } }, { "source": { - "block": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", + "block": "b2c9360e-b412-4621-af8b-a8762be2b072", "port": "out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "load" + "block": "d56e056d-c720-4463-802b-b5454811164c", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" } } ] } } }, - "c146d4232b872efc8bb891cd29094024e9cc2c54": { + "fc9dacc62ad25cd2832c3442bf277af9b708249b": { "package": { - "name": "i2c-io", + "name": "Separador-bus", "version": "0.1", - "description": "Gestion de la entrada/salida en el bus i2c", - "author": "Juan Gonzalez-Gomez (Obijuan)", - "image": "" + "description": "Separador de bus de 2-bits en dos cables", + "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": "72e82947-787f-49f6-b4a4-7fe8f68e573d", - "type": "basic.input", - "data": { - "name": "", - "clock": true - }, - "position": { - "x": 624, - "y": 160 - } - }, - { - "id": "543d92bb-e56e-4aed-a598-1c40b3773841", - "type": "basic.output", - "data": { - "name": "win" - }, - "position": { - "x": 1464, - "y": 288 - } - }, - { - "id": "0096caa8-5e84-418c-9f49-61cccdca8cc0", - "type": "basic.input", - "data": { - "name": "bitclk", - "clock": false - }, - "position": { - "x": 624, - "y": 408 - } - }, - { - "id": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52", + "id": "f5a71d7b-de20-4527-80c8-0eb20de0dc77", "type": "basic.output", "data": { - "name": "b9" + "name": "o1" }, "position": { - "x": 1472, - "y": 448 + "x": 568, + "y": 144 } }, { - "id": "0f70b35b-6842-4890-8201-e9a5f2278150", + "id": "a409d207-7594-4558-8e15-89712262cf5b", "type": "basic.input", "data": { - "name": "rs", - "clock": false + "name": "i", + "range": "[1:0]", + "clock": false, + "size": 2 }, "position": { - "x": 616, - "y": 576 + "x": 120, + "y": 200 } }, { - "id": "de068252-1546-4d1a-8452-955530fdf5de", + "id": "0f7487e5-b070-4277-bba6-acf69934afca", "type": "basic.output", "data": { - "name": "oe" - }, - "position": { - "x": 1520, - "y": 624 - } - }, - { - "id": "3e14c77c-be98-43cb-aa0d-b1a391a5374e", - "type": "basic.input", - "data": { - "name": "start", - "clock": false - }, - "position": { - "x": 616, - "y": 688 - } - }, - { - "id": "20ba5dd2-31fb-49c1-96e4-0a4b1cc63de8", - "type": "basic.constant", - "data": { - "name": "", - "value": "1", - "local": true + "name": "o0" }, "position": { - "x": 800, - "y": 536 + "x": 568, + "y": 272 } }, { - "id": "a4e37a91-ed2c-4544-a8a1-88e361e6b85e", - "type": "basic.constant", + "id": "16e78204-213e-4833-9096-89d735307ec2", + "type": "basic.code", "data": { - "name": "", - "value": "9", - "local": true + "code": "assign o1 = i[1];\nassign o0 = i[0];", + "params": [], + "ports": { + "in": [ + { + "name": "i", + "range": "[1:0]", + "size": 2 + } + ], + "out": [ + { + "name": "o1" + }, + { + "name": "o0" + } + ] + } }, "position": { - "x": 840, - "y": 264 + "x": 296, + "y": 176 + }, + "size": { + "width": 192, + "height": 112 } - }, + } + ], + "wires": [ { - "id": "38a8060f-f313-449e-9214-25f933b9cd60", - "type": "basic.constant", - "data": { - "name": "Anchura-bit", - "value": "5", - "local": true + "source": { + "block": "16e78204-213e-4833-9096-89d735307ec2", + "port": "o1" }, - "position": { - "x": 1040, - "y": 280 + "target": { + "block": "f5a71d7b-de20-4527-80c8-0eb20de0dc77", + "port": "in" } }, { - "id": "17946732-21fc-48c5-93f3-e9d1ad735480", - "type": "d014cb3dfd6b6e5082638cf2bc2db2c35c5b37a8", - "position": { - "x": 840, - "y": 360 + "source": { + "block": "16e78204-213e-4833-9096-89d735307ec2", + "port": "o0" }, - "size": { - "width": 96, - "height": 96 + "target": { + "block": "0f7487e5-b070-4277-bba6-acf69934afca", + "port": "in" } }, { - "id": "224c436d-92d3-4409-9218-c29ae5e585fb", - "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", - "position": { - "x": 1040, - "y": 384 + "source": { + "block": "a409d207-7594-4558-8e15-89712262cf5b", + "port": "out" }, - "size": { - "width": 96, - "height": 64 - } - }, + "target": { + "block": "16e78204-213e-4833-9096-89d735307ec2", + "port": "i" + }, + "size": 2 + } + ] + } + } + }, + "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": "d40380ec-f9b9-4be8-93ab-bcc30a6aa905", - "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", - "position": { - "x": 1192, - "y": 368 + "id": "53ae64df-468f-4f52-b3d9-99da065d5a22", + "type": "basic.input", + "data": { + "name": "", + "clock": true }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": 224, + "y": 248 } }, { - "id": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", - "type": "42ebf732ed72b2aa979e6858281bfe62c10bec5f", - "position": { - "x": 800, - "y": 640 + "id": "21039c06-c932-498c-968d-879a68d66795", + "type": "basic.output", + "data": { + "name": "" }, - "size": { - "width": 96, - "height": 96 + "position": { + "x": 920, + "y": 264 } }, { - "id": "fecc8639-d6d9-4f93-bc5b-109017ef4ea1", - "type": "basic.info", + "id": "ed62d7ef-27fb-44ef-99e8-a19bad6342dd", + "type": "basic.input", "data": { - "info": "rs bit \n(receive/send) \n0: receive \n1: send ", - "readonly": true + "name": "", + "clock": false }, "position": { - "x": 816, - "y": 472 - }, - "size": { - "width": 136, - "height": 80 + "x": 224, + "y": 312 } }, { - "id": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", - "position": { - "x": 1056, - "y": 496 + "id": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", + "type": "basic.output", + "data": { + "name": "q", + "range": "[7:0]", + "size": 8 }, - "size": { - "width": 96, - "height": 96 + "position": { + "x": 928, + "y": 352 } }, { - "id": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", - "type": "5cc6ec961df1a19b78d61422b28169fc0f69384b", - "position": { - "x": 1352, - "y": 608 + "id": "e6088243-1d79-4783-ac0f-528d9700b6df", + "type": "basic.input", + "data": { + "name": "shift", + "clock": false }, - "size": { - "width": 96, - "height": 96 + "position": { + "x": 224, + "y": 368 } }, { - "id": "9483c808-f5f7-423e-ba81-52d9e12c812b", - "type": "basic.info", + "id": "5a757228-e2d2-45fb-9241-ebecb5a14315", + "type": "basic.constant", "data": { - "info": "Receive-send bit", - "readonly": true + "name": "", + "value": "0", + "local": false }, "position": { - "x": 616, - "y": 552 - }, - "size": { - "width": 176, - "height": 40 + "x": 576, + "y": 144 } }, { - "id": "c061da2d-fea9-42bb-82f3-9cec484aa116", - "type": "basic.info", + "id": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "type": "basic.code", "data": { - "info": "ack window \nThis output is 1 only \nwhen the 9th bit is being \nsent", - "readonly": true + "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": 1392, - "y": 216 + "x": 384, + "y": 248 }, "size": { - "width": 232, - "height": 88 + "width": 480, + "height": 184 } } ], "wires": [ { "source": { - "block": "a4e37a91-ed2c-4544-a8a1-88e361e6b85e", - "port": "constant-out" - }, - "target": { - "block": "17946732-21fc-48c5-93f3-e9d1ad735480", - "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" - }, - "vertices": [] - }, - { - "source": { - "block": "38a8060f-f313-449e-9214-25f933b9cd60", + "block": "5a757228-e2d2-45fb-9241-ebecb5a14315", "port": "constant-out" }, - "target": { - "block": "224c436d-92d3-4409-9218-c29ae5e585fb", - "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" - }, - "vertices": [] - }, - { - "source": { - "block": "17946732-21fc-48c5-93f3-e9d1ad735480", - "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" - }, - "target": { - "block": "224c436d-92d3-4409-9218-c29ae5e585fb", - "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" - }, - "vertices": [] - }, - { - "source": { - "block": "224c436d-92d3-4409-9218-c29ae5e585fb", - "port": "c45dab76-9d0f-4742-9e4d-3048637d245d" - }, - "target": { - "block": "d40380ec-f9b9-4be8-93ab-bcc30a6aa905", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "target": { + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "port": "INI" }, "vertices": [] }, { "source": { - "block": "17946732-21fc-48c5-93f3-e9d1ad735480", - "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "port": "so" }, "target": { - "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" - }, - "vertices": [ - { - "x": 992, - "y": 472 - } - ] + "block": "21039c06-c932-498c-968d-879a68d66795", + "port": "in" + } }, { "source": { - "block": "d40380ec-f9b9-4be8-93ab-bcc30a6aa905", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "block": "ed62d7ef-27fb-44ef-99e8-a19bad6342dd", + "port": "out" }, "target": { - "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", - "port": "5898179a-7390-429b-ac3c-b7a0df673610" - }, - "vertices": [] + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "port": "si" + } }, { "source": { - "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "e6088243-1d79-4783-ac0f-528d9700b6df", + "port": "out" }, "target": { - "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", - "port": "db089906-4326-4b59-8aa5-ebb61116a4cd" - }, - "vertices": [ - { - "x": 1200, - "y": 584 - } - ] + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "port": "shift" + } }, { "source": { - "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "block": "53ae64df-468f-4f52-b3d9-99da065d5a22", + "port": "out" }, "target": { - "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", - "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" - }, - "vertices": [] + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "port": "clk" + } }, { "source": { - "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", - "port": "0ef557c8-5378-43b3-80af-176f129f1a07" + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "port": "q" }, "target": { - "block": "de068252-1546-4d1a-8452-955530fdf5de", + "block": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", "port": "in" }, - "vertices": [] - }, + "size": 8 + } + ] + } + } + }, + "42ebf732ed72b2aa979e6858281bfe62c10bec5f": { + "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=%22216.379%22%20height=%22279.911%22%20viewBox=%220%200%2057.25032%2074.059853%22%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M41.506%2040.152l13.608%2016.672-6.918-20.534%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%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-width=%221.0924880399999999%22/%3E%3C/g%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%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ { - "source": { - "block": "20ba5dd2-31fb-49c1-96e4-0a4b1cc63de8", - "port": "constant-out" + "id": "3943e194-090b-4553-9df3-88bc4b17abc2", + "type": "basic.input", + "data": { + "name": "", + "clock": true }, - "target": { - "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", - "port": "65194b18-5d2a-41b2-bd86-01be99978ad6" + "position": { + "x": 200, + "y": 96 } }, { - "source": { - "block": "3e14c77c-be98-43cb-aa0d-b1a391a5374e", - "port": "out" + "id": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", + "type": "basic.input", + "data": { + "name": "d", + "clock": false }, - "target": { - "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", - "port": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7" + "position": { + "x": 176, + "y": 184 } }, { - "source": { - "block": "0f70b35b-6842-4890-8201-e9a5f2278150", - "port": "out" - }, - "target": { - "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "id": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", + "type": "basic.output", + "data": { + "name": "" }, - "vertices": [ - { - "x": 736, - "y": 632 - } - ] + "position": { + "x": 680, + "y": 184 + } }, { - "source": { - "block": "0096caa8-5e84-418c-9f49-61cccdca8cc0", - "port": "out" + "id": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", + "type": "basic.input", + "data": { + "name": "load", + "clock": false }, - "target": { - "block": "17946732-21fc-48c5-93f3-e9d1ad735480", - "port": "26aba23f-8567-4e9b-bd45-c26724030f33" + "position": { + "x": 176, + "y": 248 } }, { - "source": { - "block": "3e14c77c-be98-43cb-aa0d-b1a391a5374e", - "port": "out" - }, - "target": { - "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + "id": "65194b18-5d2a-41b2-bd86-01be99978ad6", + "type": "basic.constant", + "data": { + "name": "", + "value": "0", + "local": false }, - "vertices": [ - { - "x": 880, - "y": 768 - } - ] + "position": { + "x": 456, + "y": 64 + } }, { - "source": { - "block": "224c436d-92d3-4409-9218-c29ae5e585fb", - "port": "c45dab76-9d0f-4742-9e4d-3048637d245d" + "id": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "type": "basic.code", + "data": { + "code": "reg q = INI;\nalways @(posedge clk)\n if (load)\n q <= d;", + "params": [ + { + "name": "INI" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "d" + }, + { + "name": "load" + } + ], + "out": [ + { + "name": "q" + } + ] + } }, - "target": { - "block": "543d92bb-e56e-4aed-a598-1c40b3773841", - "port": "in" + "position": { + "x": 384, + "y": 168 + }, + "size": { + "width": 232, + "height": 88 } - }, + } + ], + "wires": [ { "source": { - "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", + "block": "3943e194-090b-4553-9df3-88bc4b17abc2", "port": "out" }, "target": { - "block": "224c436d-92d3-4409-9218-c29ae5e585fb", - "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "clk" } }, { "source": { - "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", - "port": "out" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "q" }, "target": { - "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "block": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", + "port": "in" } }, { "source": { - "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", - "port": "out" + "block": "65194b18-5d2a-41b2-bd86-01be99978ad6", + "port": "constant-out" }, "target": { - "block": "17946732-21fc-48c5-93f3-e9d1ad735480", - "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" - }, - "vertices": [ - { - "x": 784, - "y": 296 - } - ] + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "INI" + } }, { "source": { - "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", + "block": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", "port": "out" }, "target": { - "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "d" } }, { "source": { - "block": "17946732-21fc-48c5-93f3-e9d1ad735480", - "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" - }, - "target": { - "block": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52", - "port": "in" + "block": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", + "port": "out" }, - "vertices": [ - { - "x": 968, - "y": 464 - } - ] + "target": { + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "load" + } } ] } } }, - "d014cb3dfd6b6e5082638cf2bc2db2c35c5b37a8": { + "c146d4232b872efc8bb891cd29094024e9cc2c54": { "package": { - "name": "Contador-8bits-up-rst", + "name": "i2c-io", "version": "0.1", - "description": "Contador módulo M, ascendente, de 8 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" + "description": "Gestion de la entrada/salida en el bus i2c", + "author": "Juan Gonzalez-Gomez (Obijuan)", + "image": "" }, "design": { "graph": { "blocks": [ { - "id": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "id": "72e82947-787f-49f6-b4a4-7fe8f68e573d", "type": "basic.input", "data": { "name": "", "clock": true }, "position": { - "x": 264, - "y": 176 + "x": 624, + "y": 160 } }, { - "id": "e2091457-8509-494f-96fc-4a2907d9575f", + "id": "543d92bb-e56e-4aed-a598-1c40b3773841", "type": "basic.output", "data": { - "name": "", - "range": "[7:0]", - "size": 8 + "name": "win" }, "position": { - "x": 800, - "y": 200 + "x": 1464, + "y": 288 } }, { - "id": "743b5299-2d89-4783-b7c9-12a5b36df406", + "id": "0096caa8-5e84-418c-9f49-61cccdca8cc0", "type": "basic.input", "data": { - "name": "rst", + "name": "bitclk", "clock": false }, "position": { - "x": 264, - "y": 280 + "x": 624, + "y": 408 } }, { - "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "id": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52", "type": "basic.output", "data": { - "name": "ov" + "name": "b9" }, "position": { - "x": 800, - "y": 352 + "x": 1472, + "y": 448 } }, { - "id": "26aba23f-8567-4e9b-bd45-c26724030f33", + "id": "0f70b35b-6842-4890-8201-e9a5f2278150", "type": "basic.input", "data": { - "name": "cnt", + "name": "rs", "clock": false }, "position": { - "x": 264, - "y": 376 + "x": 616, + "y": 576 } }, { - "id": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "id": "de068252-1546-4d1a-8452-955530fdf5de", + "type": "basic.output", + "data": { + "name": "oe" + }, + "position": { + "x": 1520, + "y": 624 + } + }, + { + "id": "3e14c77c-be98-43cb-aa0d-b1a391a5374e", + "type": "basic.input", + "data": { + "name": "start", + "clock": false + }, + "position": { + "x": 616, + "y": 688 + } + }, + { + "id": "20ba5dd2-31fb-49c1-96e4-0a4b1cc63de8", "type": "basic.constant", "data": { "name": "", - "value": "256", - "local": false + "value": "1", + "local": true }, "position": { - "x": 528, - "y": 48 + "x": 800, + "y": 536 } }, { - "id": "b35ae5de-a490-4f7b-9200-ac52cd3f333e", + "id": "a4e37a91-ed2c-4544-a8a1-88e361e6b85e", + "type": "basic.constant", + "data": { + "name": "", + "value": "9", + "local": true + }, + "position": { + "x": 840, + "y": 264 + } + }, + { + "id": "38a8060f-f313-449e-9214-25f933b9cd60", + "type": "basic.constant", + "data": { + "name": "Anchura-bit", + "value": "5", + "local": true + }, + "position": { + "x": 1040, + "y": 280 + } + }, + { + "id": "17946732-21fc-48c5-93f3-e9d1ad735480", + "type": "d014cb3dfd6b6e5082638cf2bc2db2c35c5b37a8", + "position": { + "x": 840, + "y": 360 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "224c436d-92d3-4409-9218-c29ae5e585fb", + "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", + "position": { + "x": 1040, + "y": 384 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "d40380ec-f9b9-4be8-93ab-bcc30a6aa905", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 1192, + "y": 368 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", + "type": "42ebf732ed72b2aa979e6858281bfe62c10bec5f", + "position": { + "x": 800, + "y": 640 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "fecc8639-d6d9-4f93-bc5b-109017ef4ea1", "type": "basic.info", "data": { - "info": "**Parámetro**: Módulo del contador", + "info": "rs bit \n(receive/send) \n0: receive \n1: send ", "readonly": true }, "position": { - "x": 472, - "y": 32 + "x": 816, + "y": 472 }, "size": { - "width": 280, - "height": 56 + "width": 136, + "height": 80 } }, { - "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "type": "basic.code", + "id": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 1056, + "y": 496 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", + "type": "5cc6ec961df1a19b78d61422b28169fc0f69384b", + "position": { + "x": 1352, + "y": 608 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "9483c808-f5f7-423e-ba81-52d9e12c812b", + "type": "basic.info", "data": { - "code": "//-- Numero de bits del contador\nlocalparam N = 8; \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": "[7:0]", - "size": 8 - }, - { - "name": "ov" - } - ] - } + "info": "Receive-send bit", + "readonly": true + }, + "position": { + "x": 616, + "y": 552 + }, + "size": { + "width": 176, + "height": 40 + } + }, + { + "id": "c061da2d-fea9-42bb-82f3-9cec484aa116", + "type": "basic.info", + "data": { + "info": "ack window \nThis output is 1 only \nwhen the 9th bit is being \nsent", + "readonly": true + }, + "position": { + "x": 1392, + "y": 216 }, + "size": { + "width": 232, + "height": 88 + } + }, + { + "id": "dd7847f3-ea23-454b-a234-13b78250d000", + "type": "d30ca9ee4f35f6cb76d5e5701447fc2b739bc640", "position": { - "x": 408, - "y": 160 + "x": 592, + "y": 312 }, "size": { - "width": 336, - "height": 296 + "width": 96, + "height": 64 } } ], "wires": [ { "source": { - "block": "743b5299-2d89-4783-b7c9-12a5b36df406", - "port": "out" + "block": "a4e37a91-ed2c-4544-a8a1-88e361e6b85e", + "port": "constant-out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "rst" - } + "block": "17946732-21fc-48c5-93f3-e9d1ad735480", + "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" + }, + "vertices": [] }, { "source": { - "block": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "block": "38a8060f-f313-449e-9214-25f933b9cd60", "port": "constant-out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "M" - } + "block": "224c436d-92d3-4409-9218-c29ae5e585fb", + "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" + }, + "vertices": [] }, { "source": { - "block": "26aba23f-8567-4e9b-bd45-c26724030f33", - "port": "out" + "block": "17946732-21fc-48c5-93f3-e9d1ad735480", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "cnt" - } + "block": "224c436d-92d3-4409-9218-c29ae5e585fb", + "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" + }, + "vertices": [] }, { "source": { - "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", - "port": "out" + "block": "224c436d-92d3-4409-9218-c29ae5e585fb", + "port": "c45dab76-9d0f-4742-9e4d-3048637d245d" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "clk" - } + "block": "d40380ec-f9b9-4be8-93ab-bcc30a6aa905", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] }, { "source": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "ov" + "block": "17946732-21fc-48c5-93f3-e9d1ad735480", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" }, "target": { - "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", - "port": "in" - } + "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + }, + "vertices": [ + { + "x": 992, + "y": 472 + } + ] }, { "source": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "q" + "block": "d40380ec-f9b9-4be8-93ab-bcc30a6aa905", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "e2091457-8509-494f-96fc-4a2907d9575f", + "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", + "port": "5898179a-7390-429b-ac3c-b7a0df673610" + }, + "vertices": [] + }, + { + "source": { + "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", + "port": "db089906-4326-4b59-8aa5-ebb61116a4cd" + }, + "vertices": [ + { + "x": 1200, + "y": 584 + } + ] + }, + { + "source": { + "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + }, + "target": { + "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", + "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" + }, + "vertices": [] + }, + { + "source": { + "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" + }, + "target": { + "block": "de068252-1546-4d1a-8452-955530fdf5de", "port": "in" }, - "size": 8 - } - ] - } - } - }, - "5cc6ec961df1a19b78d61422b28169fc0f69384b": { - "package": { - "name": "Mux 2 a 1", - "version": "0.0.1", - "description": "Multiplexor de 2 a 1", - "author": "Juan Gonzalez-Gomez (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" - }, - "design": { - "graph": { - "blocks": [ + "vertices": [] + }, { - "id": "5898179a-7390-429b-ac3c-b7a0df673610", - "type": "basic.input", - "data": { - "name": "i1", - "clock": false + "source": { + "block": "20ba5dd2-31fb-49c1-96e4-0a4b1cc63de8", + "port": "constant-out" }, - "position": { - "x": -704, - "y": -88 + "target": { + "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", + "port": "65194b18-5d2a-41b2-bd86-01be99978ad6" } }, { - "id": "db089906-4326-4b59-8aa5-ebb61116a4cd", - "type": "basic.input", - "data": { - "name": "i0", - "clock": false + "source": { + "block": "3e14c77c-be98-43cb-aa0d-b1a391a5374e", + "port": "out" }, - "position": { - "x": -704, - "y": 0 + "target": { + "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", + "port": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7" } }, { - "id": "0ef557c8-5378-43b3-80af-176f129f1a07", - "type": "basic.output", - "data": { - "name": "" + "source": { + "block": "0f70b35b-6842-4890-8201-e9a5f2278150", + "port": "out" }, - "position": { - "x": -48, - "y": 0 - } + "target": { + "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + }, + "vertices": [ + { + "x": 736, + "y": 632 + } + ] }, { - "id": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", - "type": "basic.input", - "data": { - "name": "sel", - "clock": false + "source": { + "block": "0096caa8-5e84-418c-9f49-61cccdca8cc0", + "port": "out" }, - "position": { - "x": -704, - "y": 88 + "target": { + "block": "17946732-21fc-48c5-93f3-e9d1ad735480", + "port": "26aba23f-8567-4e9b-bd45-c26724030f33" } }, { - "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "type": "basic.code", - "data": { - "code": "//-- Multiplexor de 2 a 1, \n//-- de 8 bits\n\nreg _o;\n\nalways @(*) begin\n case(sel)\n 0: _o = i0;\n 1: _o = i1;\n default: _o = i0;\n endcase\nend\n\nassign o = _o;\n", - "params": [], - "ports": { - "in": [ - { - "name": "i1" - }, - { - "name": "i0" - }, - { - "name": "sel" - } - ], - "out": [ - { - "name": "o" - } - ] + "source": { + "block": "3e14c77c-be98-43cb-aa0d-b1a391a5374e", + "port": "out" + }, + "target": { + "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + }, + "vertices": [ + { + "x": 880, + "y": 768 } + ] + }, + { + "source": { + "block": "224c436d-92d3-4409-9218-c29ae5e585fb", + "port": "c45dab76-9d0f-4742-9e4d-3048637d245d" }, - "position": { - "x": -464, - "y": -104 + "target": { + "block": "543d92bb-e56e-4aed-a598-1c40b3773841", + "port": "in" + } + }, + { + "source": { + "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", + "port": "out" }, - "size": { - "width": 304, - "height": 272 + "target": { + "block": "224c436d-92d3-4409-9218-c29ae5e585fb", + "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" } - } - ], - "wires": [ + }, { "source": { - "block": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", + "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", "port": "out" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "sel" + "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" } }, { "source": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "o" + "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", + "port": "out" }, "target": { - "block": "0ef557c8-5378-43b3-80af-176f129f1a07", - "port": "in" - } + "block": "17946732-21fc-48c5-93f3-e9d1ad735480", + "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" + }, + "vertices": [ + { + "x": 784, + "y": 296 + } + ] }, { "source": { - "block": "db089906-4326-4b59-8aa5-ebb61116a4cd", + "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", "port": "out" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i0" + "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" } }, { "source": { - "block": "5898179a-7390-429b-ac3c-b7a0df673610", - "port": "out" + "block": "17946732-21fc-48c5-93f3-e9d1ad735480", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i1" - } + "block": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52", + "port": "in" + }, + "vertices": [ + { + "x": 968, + "y": 464 + } + ] + }, + { + "source": { + "block": "dd7847f3-ea23-454b-a234-13b78250d000", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "17946732-21fc-48c5-93f3-e9d1ad735480", + "port": "743b5299-2d89-4783-b7c9-12a5b36df406" + }, + "vertices": [ + { + "x": 744, + "y": 360 + } + ] } ] } } }, - "3e4cef8e5d182ddc9806ac0f5a9ee24351737373": { + "d014cb3dfd6b6e5082638cf2bc2db2c35c5b37a8": { "package": { - "name": "i2c-stop", + "name": "Contador-8bits-up-rst", "version": "0.1", - "description": "Generar una condición de parada en el bus i2c", + "description": "Contador módulo M, ascendente, de 8 bits, con reset ", "author": "Juan González-Gómez (Obijuan)", - "image": "" + "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": "0f4f7955-4539-4804-a906-db4abd29fcac", - "type": "basic.input", - "data": { - "name": "clk", - "clock": false - }, - "position": { - "x": 192, - "y": -8 - } - }, - { - "id": "7d9cf16e-b23e-4358-a2fb-baaa07df6deb", - "type": "basic.output", - "data": { - "name": "sda" - }, - "position": { - "x": 1472, - "y": 304 - } - }, - { - "id": "bcadfb63-1fdf-43bc-9899-675e5f3658cb", - "type": "basic.input", - "data": { - "name": "sda", - "clock": false - }, - "position": { - "x": 440, - "y": 320 - } - }, - { - "id": "dbf76d1d-8bfd-4200-b03e-eb455043634d", + "id": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", "type": "basic.input", "data": { - "name": "scl", - "clock": false + "name": "", + "clock": true }, "position": { - "x": 440, - "y": 384 + "x": 264, + "y": 176 } }, { - "id": "a405ecb1-98ac-4483-8159-6045ca825985", + "id": "e2091457-8509-494f-96fc-4a2907d9575f", "type": "basic.output", "data": { - "name": "scl" + "name": "", + "range": "[7:0]", + "size": 8 }, "position": { - "x": 1472, - "y": 448 + "x": 800, + "y": 200 } }, { - "id": "58c39529-9934-4dc2-af86-ab5efe0bbad1", + "id": "743b5299-2d89-4783-b7c9-12a5b36df406", "type": "basic.input", "data": { - "name": "start", + "name": "rst", "clock": false }, "position": { - "x": 440, - "y": 592 + "x": 264, + "y": 280 } }, { - "id": "18918c51-cad4-4993-b228-985afc99944e", + "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", "type": "basic.output", "data": { - "name": "done" - }, - "position": { - "x": 1608, - "y": 624 - } - }, - { - "id": "f673b29c-1604-497b-b36d-2f180e7db0ce", - "type": "basic.constant", - "data": { - "name": "T3", - "value": "5", - "local": true - }, - "position": { - "x": 664, - "y": 480 - } - }, - { - "id": "b4ecabd8-4c81-45fa-a288-cdd1053a7103", - "type": "basic.constant", - "data": { - "name": "T2", - "value": "2", - "local": false - }, - "position": { - "x": 872, - "y": 128 - } - }, - { - "id": "e9bd53c9-72d0-4807-9517-94854161e068", - "type": "basic.info", - "data": { - "info": "Generar una condición de Stop en el Bus I2C \nCuando está en reposo, las entradas sda y scl atraviesan el \nbloque sin modificación. Cuando se activa start, comienza la \ngeneración de la condición de parada, y SCL se pone a 1. \nTranscurrido un tiempo T2, SDA se pone a 1 también \nSe señalliza en done que se ha completado", - "readonly": true - }, - "position": { - "x": 656, - "y": -168 - }, - "size": { - "width": 504, - "height": 104 - } - }, - { - "id": "5f981830-9909-48eb-a685-1866414de350", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", - "position": { - "x": 912, - "y": 576 - }, - "size": { - "width": 96, - "height": 96 - } - }, - { - "id": "1adf02bf-5c06-4fab-99bc-de5acac28e78", - "type": "81613874c6152f06c06ed7014bf4235900cfcc30", - "position": { - "x": 1040, - "y": 448 - }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "596d476b-7130-4489-81e7-e94e8fdde5b9", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", - "position": { - "x": 1208, - "y": 224 - }, - "size": { - "width": 96, - "height": 96 - } - }, - { - "id": "151846a8-1a98-4690-b266-d72e69da52b2", - "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", - "position": { - "x": 872, - "y": 224 - }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", - "type": "81613874c6152f06c06ed7014bf4235900cfcc30", - "position": { - "x": 1336, - "y": 304 - }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "2e6b8317-5b98-49ef-8e02-012434195806", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", - "position": { - "x": 1040, - "y": 128 + "name": "ov" }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": 800, + "y": 352 } }, { - "id": "9c32849d-8da7-429a-9768-582042551076", - "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", + "id": "26aba23f-8567-4e9b-bd45-c26724030f33", + "type": "basic.input", + "data": { + "name": "cnt", + "clock": false + }, "position": { - "x": 664, - "y": 576 + "x": 264, + "y": 376 + } + }, + { + "id": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "type": "basic.constant", + "data": { + "name": "", + "value": "256", + "local": false }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": 528, + "y": 48 } }, { - "id": "8d308b75-de5a-4a05-b8cf-f64d9674ddaf", + "id": "b35ae5de-a490-4f7b-9200-ac52cd3f333e", "type": "basic.info", "data": { - "info": "Espera previa al stop", + "info": "**Parámetro**: Módulo del contador", "readonly": true }, "position": { - "x": 672, - "y": 440 + "x": 472, + "y": 32 }, "size": { - "width": 192, - "height": 32 + "width": 280, + "height": 56 } }, { - "id": "a10c878a-a76e-47e2-87cb-579131d83cfb", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", + "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "type": "basic.code", + "data": { + "code": "//-- Numero de bits del contador\nlocalparam N = 8; \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": "[7:0]", + "size": 8 + }, + { + "name": "ov" + } + ] + } + }, "position": { - "x": 440, - "y": 512 + "x": 408, + "y": 160 }, "size": { - "width": 96, - "height": 64 + "width": 336, + "height": 296 } } ], "wires": [ { "source": { - "block": "1adf02bf-5c06-4fab-99bc-de5acac28e78", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "a405ecb1-98ac-4483-8159-6045ca825985", - "port": "in" - }, - "vertices": [] - }, - { - "source": { - "block": "5f981830-9909-48eb-a685-1866414de350", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "1adf02bf-5c06-4fab-99bc-de5acac28e78", - "port": "97b51945-d716-4b6c-9db9-970d08541249" - }, - "vertices": [] - }, - { - "source": { - "block": "151846a8-1a98-4690-b266-d72e69da52b2", - "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + "block": "743b5299-2d89-4783-b7c9-12a5b36df406", + "port": "out" }, "target": { - "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" - }, - "vertices": [] + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "rst" + } }, { "source": { - "block": "b4ecabd8-4c81-45fa-a288-cdd1053a7103", + "block": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", "port": "constant-out" }, "target": { - "block": "151846a8-1a98-4690-b266-d72e69da52b2", - "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" - }, - "vertices": [] - }, - { - "source": { - "block": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "7d9cf16e-b23e-4358-a2fb-baaa07df6deb", - "port": "in" - }, - "vertices": [] - }, - { - "source": { - "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" - }, - "vertices": [] - }, - { - "source": { - "block": "2e6b8317-5b98-49ef-8e02-012434195806", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" - }, - "target": { - "block": "18918c51-cad4-4993-b228-985afc99944e", - "port": "in" - }, - "vertices": [] - }, - { - "source": { - "block": "151846a8-1a98-4690-b266-d72e69da52b2", - "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" - }, - "target": { - "block": "2e6b8317-5b98-49ef-8e02-012434195806", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" - }, - "vertices": [] - }, - { - "source": { - "block": "dbf76d1d-8bfd-4200-b03e-eb455043634d", - "port": "out" - }, - "target": { - "block": "1adf02bf-5c06-4fab-99bc-de5acac28e78", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "M" } }, { "source": { - "block": "bcadfb63-1fdf-43bc-9899-675e5f3658cb", + "block": "26aba23f-8567-4e9b-bd45-c26724030f33", "port": "out" }, "target": { - "block": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", - "port": "97b51945-d716-4b6c-9db9-970d08541249" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "cnt" } }, { "source": { - "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" - }, - "target": { - "block": "5f981830-9909-48eb-a685-1866414de350", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" - }, - "vertices": [ - { - "x": 568, - "y": 600 - } - ] - }, - { - "source": { - "block": "0f4f7955-4539-4804-a906-db4abd29fcac", + "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", "port": "out" }, "target": { - "block": "151846a8-1a98-4690-b266-d72e69da52b2", - "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "clk" } }, { "source": { - "block": "0f4f7955-4539-4804-a906-db4abd29fcac", - "port": "out" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "ov" }, "target": { - "block": "5f981830-9909-48eb-a685-1866414de350", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "port": "in" } }, { "source": { - "block": "0f4f7955-4539-4804-a906-db4abd29fcac", - "port": "out" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "q" }, "target": { - "block": "2e6b8317-5b98-49ef-8e02-012434195806", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" - } - }, + "block": "e2091457-8509-494f-96fc-4a2907d9575f", + "port": "in" + }, + "size": 8 + } + ] + } + } + }, + "5cc6ec961df1a19b78d61422b28169fc0f69384b": { + "package": { + "name": "Mux 2 a 1", + "version": "0.0.1", + "description": "Multiplexor de 2 a 1", + "author": "Juan Gonzalez-Gomez (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" + }, + "design": { + "graph": { + "blocks": [ { - "source": { - "block": "0f4f7955-4539-4804-a906-db4abd29fcac", - "port": "out" + "id": "5898179a-7390-429b-ac3c-b7a0df673610", + "type": "basic.input", + "data": { + "name": "i1", + "clock": false }, - "target": { - "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "position": { + "x": -704, + "y": -88 } }, { - "source": { - "block": "f673b29c-1604-497b-b36d-2f180e7db0ce", - "port": "constant-out" - }, - "target": { - "block": "9c32849d-8da7-429a-9768-582042551076", - "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" + "id": "db089906-4326-4b59-8aa5-ebb61116a4cd", + "type": "basic.input", + "data": { + "name": "i0", + "clock": false }, - "vertices": [] + "position": { + "x": -704, + "y": 0 + } }, { - "source": { - "block": "58c39529-9934-4dc2-af86-ab5efe0bbad1", - "port": "out" + "id": "0ef557c8-5378-43b3-80af-176f129f1a07", + "type": "basic.output", + "data": { + "name": "" }, - "target": { - "block": "9c32849d-8da7-429a-9768-582042551076", - "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" + "position": { + "x": -48, + "y": 0 } }, { - "source": { - "block": "9c32849d-8da7-429a-9768-582042551076", - "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + "id": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", + "type": "basic.input", + "data": { + "name": "sel", + "clock": false }, - "target": { - "block": "5f981830-9909-48eb-a685-1866414de350", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + "position": { + "x": -704, + "y": 88 } }, { - "source": { - "block": "9c32849d-8da7-429a-9768-582042551076", - "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "type": "basic.code", + "data": { + "code": "//-- Multiplexor de 2 a 1, \n//-- de 8 bits\n\nreg _o;\n\nalways @(*) begin\n case(sel)\n 0: _o = i0;\n 1: _o = i1;\n default: _o = i0;\n endcase\nend\n\nassign o = _o;\n", + "params": [], + "ports": { + "in": [ + { + "name": "i1" + }, + { + "name": "i0" + }, + { + "name": "sel" + } + ], + "out": [ + { + "name": "o" + } + ] + } }, - "target": { - "block": "151846a8-1a98-4690-b266-d72e69da52b2", - "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" + "position": { + "x": -464, + "y": -104 + }, + "size": { + "width": 304, + "height": 272 } - }, + } + ], + "wires": [ { "source": { - "block": "0f4f7955-4539-4804-a906-db4abd29fcac", + "block": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", "port": "out" }, "target": { - "block": "9c32849d-8da7-429a-9768-582042551076", - "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "sel" } }, { "source": { - "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "o" }, "target": { - "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" - }, - "vertices": [ - { - "x": 608, - "y": 376 - } - ] + "block": "0ef557c8-5378-43b3-80af-176f129f1a07", + "port": "in" + } }, { "source": { - "block": "2e6b8317-5b98-49ef-8e02-012434195806", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "block": "db089906-4326-4b59-8aa5-ebb61116a4cd", + "port": "out" }, "target": { - "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" - }, - "vertices": [ - { - "x": 1168, - "y": 712 - } - ] + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i0" + } }, { "source": { - "block": "0f4f7955-4539-4804-a906-db4abd29fcac", + "block": "5898179a-7390-429b-ac3c-b7a0df673610", "port": "out" }, "target": { - "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i1" } } ] } } }, - "725b7e2cb9666b5ed3183537d9c898f096dab82a": { + "d30ca9ee4f35f6cb76d5e5701447fc2b739bc640": { "package": { - "name": "1", - "version": "0.1", - "description": "Un bit constante a 1", + "name": "bit-0", + "version": "0.2", + "description": "Constant bit 0", "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" + "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": { @@ -7571,15 +7609,15 @@ "name": "" }, "position": { - "x": 512, - "y": 160 + "x": 456, + "y": 120 } }, { "id": "61331ec5-2c56-4cdd-b607-e63b1502fa65", "type": "basic.code", "data": { - "code": "//-- Bit constante a 1\nassign q = 1'b1;\n\n", + "code": "//-- Constant bit-0\nassign q = 1'b0;\n\n", "params": [], "ports": { "in": [], @@ -7595,8 +7633,8 @@ "y": 112 }, "size": { - "width": 256, - "height": 160 + "width": 248, + "height": 80 } } ], @@ -7615,11 +7653,11 @@ } } }, - "f1c84b11f2df5ee213cec33e6f9af2d0c66e6924": { + "3e4cef8e5d182ddc9806ac0f5a9ee24351737373": { "package": { - "name": "i2c-data", + "name": "i2c-stop", "version": "0.1", - "description": "Inyectar un byte en el bus i2c", + "description": "Generar una condición de parada en el bus i2c", "author": "Juan González-Gómez (Obijuan)", "image": "" }, @@ -7627,220 +7665,146 @@ "graph": { "blocks": [ { - "id": "7861c061-e90b-46bb-a639-6399f55f7f11", + "id": "0f4f7955-4539-4804-a906-db4abd29fcac", "type": "basic.input", "data": { - "name": "", - "clock": true + "name": "clk", + "clock": false }, "position": { - "x": 800, - "y": 320 + "x": 192, + "y": -8 } }, { - "id": "20e1709f-bff4-4373-a485-5af7052a37d7", + "id": "7d9cf16e-b23e-4358-a2fb-baaa07df6deb", "type": "basic.output", "data": { "name": "sda" }, "position": { - "x": 1760, - "y": 648 + "x": 1472, + "y": 304 } }, { - "id": "748fced1-f2be-412a-87de-a0d8276e6a06", + "id": "bcadfb63-1fdf-43bc-9899-675e5f3658cb", "type": "basic.input", "data": { "name": "sda", "clock": false }, "position": { - "x": 552, - "y": 664 + "x": 440, + "y": 320 } }, { - "id": "63a0f19e-1e7c-4e61-b89a-f6fc4eb74afb", + "id": "dbf76d1d-8bfd-4200-b03e-eb455043634d", "type": "basic.input", "data": { "name": "scl", "clock": false }, "position": { - "x": 568, - "y": 744 + "x": 440, + "y": 384 } }, { - "id": "9290b4c2-5520-4b99-97d3-a140a411a149", + "id": "a405ecb1-98ac-4483-8159-6045ca825985", "type": "basic.output", "data": { "name": "scl" }, "position": { - "x": 1760, - "y": 760 - } - }, - { - "id": "ed0e5489-e9b1-4b92-bcfb-22f3737d1c93", - "type": "basic.input", - "data": { - "name": "data", - "range": "[7:0]", - "clock": false, - "size": 8 - }, - "position": { - "x": 576, - "y": 840 - } - }, - { - "id": "b987c71e-d76f-43eb-8371-a2aa09d98d15", - "type": "basic.output", - "data": { - "name": "bitclk" - }, - "position": { - "x": 1760, - "y": 880 + "x": 1472, + "y": 448 } }, { - "id": "cdf85427-0efe-4adb-b48d-dab3daccacce", + "id": "58c39529-9934-4dc2-af86-ab5efe0bbad1", "type": "basic.input", "data": { - "name": "start", - "clock": false - }, - "position": { - "x": 560, - "y": 1008 - } - }, - { - "id": "1d8c0dd2-96bc-462a-8a33-05472851522d", - "type": "basic.output", - "data": { - "name": "io_start" - }, - "position": { - "x": 1800, - "y": 1080 - } - }, - { - "id": "412c6872-b61e-4af8-8ece-577a8adb185c", - "type": "basic.output", - "data": { - "name": "done" - }, - "position": { - "x": 1784, - "y": 1176 - } - }, - { - "id": "9873b349-7163-44e3-9df0-a07acbfd5246", - "type": "basic.constant", - "data": { - "name": "T_tics", - "value": "121", - "local": false - }, - "position": { - "x": 960, - "y": 816 - } - }, - { - "id": "6f699db9-abd0-4949-a539-cfeda25e33bb", - "type": "basic.constant", - "data": { - "name": "", - "value": "9", - "local": true + "name": "start", + "clock": false }, "position": { - "x": 1064, - "y": 800 + "x": 440, + "y": 592 } }, { - "id": "0f091ac3-4f1e-4e21-bc52-01c9a5ca5f5f", - "type": "basic.constant", + "id": "18918c51-cad4-4993-b228-985afc99944e", + "type": "basic.output", "data": { - "name": "Desfase", - "value": "2", - "local": true + "name": "done" }, "position": { - "x": 1256, - "y": 840 + "x": 1608, + "y": 624 } }, { - "id": "41219c53-959c-4775-a2b7-db9651d3ed72", + "id": "f673b29c-1604-497b-b36d-2f180e7db0ce", "type": "basic.constant", "data": { - "name": "Anchura-bit", + "name": "T3", "value": "5", "local": true }, "position": { - "x": 1432, - "y": 832 + "x": 664, + "y": 480 } }, { - "id": "4cded02d-9798-4ac7-85b2-88f9ca82752a", - "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", - "position": { - "x": 1432, - "y": 952 + "id": "b4ecabd8-4c81-45fa-a288-cdd1053a7103", + "type": "basic.constant", + "data": { + "name": "T2", + "value": "2", + "local": false }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": 872, + "y": 128 } }, { - "id": "a917add8-1ea1-42af-8b62-6f2d1992bce8", + "id": "e9bd53c9-72d0-4807-9517-94854161e068", "type": "basic.info", "data": { - "info": "121 tics son 10us", + "info": "Generar una condición de Stop en el Bus I2C \nCuando está en reposo, las entradas sda y scl atraviesan el \nbloque sin modificación. Cuando se activa start, comienza la \ngeneración de la condición de parada, y SCL se pone a 1. \nTranscurrido un tiempo T2, SDA se pone a 1 también \nSe señalliza en done que se ha completado", "readonly": true }, "position": { - "x": 936, - "y": 784 + "x": 656, + "y": -168 }, "size": { - "width": 168, - "height": 40 + "width": 504, + "height": 104 } }, { - "id": "73336d4a-efcf-49a6-860f-eca956b28ec6", - "type": "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542", + "id": "5f981830-9909-48eb-a685-1866414de350", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", "position": { - "x": 936, - "y": 480 + "x": 912, + "y": 576 }, "size": { "width": 96, - "height": 64 + "height": 96 } }, { - "id": "896d8abc-4f3f-49d5-8bb3-d155a702b357", - "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", + "id": "1adf02bf-5c06-4fab-99bc-de5acac28e78", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", "position": { - "x": 1256, - "y": 936 + "x": 1040, + "y": 448 }, "size": { "width": 96, @@ -7848,23 +7812,23 @@ } }, { - "id": "8395e674-0340-4dc6-9e01-751771607b4d", - "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "id": "596d476b-7130-4489-81e7-e94e8fdde5b9", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", "position": { - "x": 1568, - "y": 760 + "x": 1208, + "y": 224 }, "size": { "width": 96, - "height": 64 + "height": 96 } }, { - "id": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", - "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "id": "151846a8-1a98-4690-b266-d72e69da52b2", + "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", "position": { - "x": 1568, - "y": 648 + "x": 872, + "y": 224 }, "size": { "width": 96, @@ -7872,23 +7836,23 @@ } }, { - "id": "7d4113a9-19b2-4434-8002-7f671360852b", - "type": "086d7dc26b794983217c4161c26b85dc62375d9d", + "id": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", "position": { - "x": 984, - "y": 968 + "x": 1336, + "y": 304 }, "size": { "width": 96, - "height": 96 + "height": 64 } }, { - "id": "f3da83aa-48cf-4e21-8e2f-60e045183b92", - "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "id": "2e6b8317-5b98-49ef-8e02-012434195806", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", "position": { - "x": 1168, - "y": 1016 + "x": 1040, + "y": 128 }, "size": { "width": 96, @@ -7896,11 +7860,11 @@ } }, { - "id": "8849d683-2013-4619-9116-4adde501529e", - "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "id": "9c32849d-8da7-429a-9768-582042551076", + "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", "position": { - "x": 1656, - "y": 944 + "x": 664, + "y": 576 }, "size": { "width": 96, @@ -7908,477 +7872,625 @@ } }, { - "id": "cf48b06f-8921-4666-afba-ccc17b535b28", + "id": "8d308b75-de5a-4a05-b8cf-f64d9674ddaf", "type": "basic.info", "data": { - "info": "Arrancar el módulo \nde gestión del pin io", + "info": "Espera previa al stop", "readonly": true }, "position": { - "x": 1784, - "y": 1024 - }, - "size": { - "width": 200, - "height": 56 - } - }, - { - "id": "44073844-b550-4911-affe-bdadca704a6f", - "type": "45f630ea95c6847db8df0598c312ef9acfa981a3", - "position": { - "x": 1432, - "y": 456 + "x": 672, + "y": 440 }, "size": { - "width": 96, - "height": 128 + "width": 192, + "height": 32 } }, { - "id": "1e424507-5096-47f9-8437-b35c1c3b343d", - "type": "53847c98bfef0fe28fbef1f4f65042911f361c44", + "id": "a10c878a-a76e-47e2-87cb-579131d83cfb", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", "position": { - "x": 1208, - "y": 480 + "x": 440, + "y": 512 }, "size": { "width": 96, - "height": 160 + "height": 64 } } ], "wires": [ { "source": { - "block": "6f699db9-abd0-4949-a539-cfeda25e33bb", - "port": "constant-out" + "block": "1adf02bf-5c06-4fab-99bc-de5acac28e78", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "1caece2e-e3d8-4102-af87-572c05b24e16" + "block": "a405ecb1-98ac-4483-8159-6045ca825985", + "port": "in" }, "vertices": [] }, { "source": { - "block": "9873b349-7163-44e3-9df0-a07acbfd5246", - "port": "constant-out" + "block": "5f981830-9909-48eb-a685-1866414de350", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "96ad1612-7936-4672-b660-9285d183f749" + "block": "1adf02bf-5c06-4fab-99bc-de5acac28e78", + "port": "97b51945-d716-4b6c-9db9-970d08541249" }, "vertices": [] }, { "source": { - "block": "41219c53-959c-4775-a2b7-db9651d3ed72", - "port": "constant-out" + "block": "151846a8-1a98-4690-b266-d72e69da52b2", + "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, "target": { - "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", - "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" + "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" }, "vertices": [] }, { "source": { - "block": "1e424507-5096-47f9-8437-b35c1c3b343d", - "port": "21039c06-c932-498c-968d-879a68d66795" + "block": "b4ecabd8-4c81-45fa-a288-cdd1053a7103", + "port": "constant-out" }, "target": { - "block": "44073844-b550-4911-affe-bdadca704a6f", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "block": "151846a8-1a98-4690-b266-d72e69da52b2", + "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" }, "vertices": [] }, { "source": { - "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", - "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + "block": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", - "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" + "block": "7d9cf16e-b23e-4358-a2fb-baaa07df6deb", + "port": "in" }, "vertices": [] }, { "source": { - "block": "0f091ac3-4f1e-4e21-bc52-01c9a5ca5f5f", - "port": "constant-out" + "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", - "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" + "block": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, "vertices": [] }, { "source": { - "block": "8395e674-0340-4dc6-9e01-751771607b4d", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "block": "2e6b8317-5b98-49ef-8e02-012434195806", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "9290b4c2-5520-4b99-97d3-a140a411a149", + "block": "18918c51-cad4-4993-b228-985afc99944e", "port": "in" }, "vertices": [] }, { "source": { - "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", - "port": "c45dab76-9d0f-4742-9e4d-3048637d245d" + "block": "151846a8-1a98-4690-b266-d72e69da52b2", + "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, "target": { - "block": "8395e674-0340-4dc6-9e01-751771607b4d", - "port": "97b51945-d716-4b6c-9db9-970d08541249" + "block": "2e6b8317-5b98-49ef-8e02-012434195806", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" }, "vertices": [] }, { "source": { - "block": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "block": "dbf76d1d-8bfd-4200-b03e-eb455043634d", + "port": "out" }, "target": { - "block": "20e1709f-bff4-4373-a485-5af7052a37d7", - "port": "in" + "block": "1adf02bf-5c06-4fab-99bc-de5acac28e78", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + } + }, + { + "source": { + "block": "bcadfb63-1fdf-43bc-9899-675e5f3658cb", + "port": "out" + }, + "target": { + "block": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + } + }, + { + "source": { + "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + }, + "target": { + "block": "5f981830-9909-48eb-a685-1866414de350", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + }, + "vertices": [ + { + "x": 568, + "y": 600 + } + ] + }, + { + "source": { + "block": "0f4f7955-4539-4804-a906-db4abd29fcac", + "port": "out" }, - "vertices": [] + "target": { + "block": "151846a8-1a98-4690-b266-d72e69da52b2", + "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" + } }, { "source": { - "block": "44073844-b550-4911-affe-bdadca704a6f", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "block": "0f4f7955-4539-4804-a906-db4abd29fcac", + "port": "out" }, "target": { - "block": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" - }, - "vertices": [] + "block": "5f981830-9909-48eb-a685-1866414de350", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + } }, { "source": { - "block": "748fced1-f2be-412a-87de-a0d8276e6a06", + "block": "0f4f7955-4539-4804-a906-db4abd29fcac", "port": "out" }, "target": { - "block": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", - "port": "97b51945-d716-4b6c-9db9-970d08541249" - }, - "vertices": [] + "block": "2e6b8317-5b98-49ef-8e02-012434195806", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + } }, { "source": { - "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", + "block": "0f4f7955-4539-4804-a906-db4abd29fcac", "port": "out" }, "target": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "bcfe1e9b-4bb8-43c2-bbea-d82aeb7dce9d" + "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" } }, { "source": { - "block": "63a0f19e-1e7c-4e61-b89a-f6fc4eb74afb", - "port": "out" + "block": "f673b29c-1604-497b-b36d-2f180e7db0ce", + "port": "constant-out" }, "target": { - "block": "8395e674-0340-4dc6-9e01-751771607b4d", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" - } + "block": "9c32849d-8da7-429a-9768-582042551076", + "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" + }, + "vertices": [] }, { "source": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a" + "block": "58c39529-9934-4dc2-af86-ab5efe0bbad1", + "port": "out" }, "target": { - "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "block": "9c32849d-8da7-429a-9768-582042551076", "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" } }, { "source": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a" + "block": "9c32849d-8da7-429a-9768-582042551076", + "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, "target": { - "block": "1e424507-5096-47f9-8437-b35c1c3b343d", - "port": "ec65c3cd-0951-4d74-bbfc-c37f87a78e66" + "block": "5f981830-9909-48eb-a685-1866414de350", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" } }, { "source": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a" + "block": "9c32849d-8da7-429a-9768-582042551076", + "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, "target": { - "block": "44073844-b550-4911-affe-bdadca704a6f", - "port": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7" - }, - "vertices": [ - { - "x": 1192, - "y": 720 - } - ] + "block": "151846a8-1a98-4690-b266-d72e69da52b2", + "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" + } }, { "source": { - "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "block": "0f4f7955-4539-4804-a906-db4abd29fcac", "port": "out" }, "target": { - "block": "1e424507-5096-47f9-8437-b35c1c3b343d", - "port": "a265c13d-af7a-437b-97ae-424872381a93" + "block": "9c32849d-8da7-429a-9768-582042551076", + "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" } }, { "source": { - "block": "7861c061-e90b-46bb-a639-6399f55f7f11", - "port": "out" + "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "44073844-b550-4911-affe-bdadca704a6f", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" }, "vertices": [ { - "x": 1392, - "y": 432 + "x": 608, + "y": 376 } ] }, { "source": { - "block": "7861c061-e90b-46bb-a639-6399f55f7f11", - "port": "out" + "block": "2e6b8317-5b98-49ef-8e02-012434195806", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "2d69e282-542b-48cc-b0ec-dd419e06f97e" + "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" }, "vertices": [ { - "x": 920, - "y": 728 + "x": 1168, + "y": 712 } ] }, { "source": { - "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "block": "0f4f7955-4539-4804-a906-db4abd29fcac", "port": "out" }, "target": { - "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", - "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" + "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + } + } + ] + } + } + }, + "f1c84b11f2df5ee213cec33e6f9af2d0c66e6924": { + "package": { + "name": "i2c-data", + "version": "0.1", + "description": "Inyectar un byte en el bus i2c", + "author": "Juan González-Gómez (Obijuan)", + "image": "" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "7861c061-e90b-46bb-a639-6399f55f7f11", + "type": "basic.input", + "data": { + "name": "", + "clock": true }, - "vertices": [ - { - "x": 920, - "y": 912 - } - ] + "position": { + "x": 800, + "y": 320 + } + }, + { + "id": "20e1709f-bff4-4373-a485-5af7052a37d7", + "type": "basic.output", + "data": { + "name": "sda" + }, + "position": { + "x": 1760, + "y": 648 + } + }, + { + "id": "748fced1-f2be-412a-87de-a0d8276e6a06", + "type": "basic.input", + "data": { + "name": "sda", + "clock": false + }, + "position": { + "x": 552, + "y": 664 + } + }, + { + "id": "63a0f19e-1e7c-4e61-b89a-f6fc4eb74afb", + "type": "basic.input", + "data": { + "name": "scl", + "clock": false + }, + "position": { + "x": 568, + "y": 744 + } + }, + { + "id": "9290b4c2-5520-4b99-97d3-a140a411a149", + "type": "basic.output", + "data": { + "name": "scl" + }, + "position": { + "x": 1760, + "y": 760 + } + }, + { + "id": "ed0e5489-e9b1-4b92-bcfb-22f3737d1c93", + "type": "basic.input", + "data": { + "name": "data", + "range": "[7:0]", + "clock": false, + "size": 8 + }, + "position": { + "x": 576, + "y": 840 + } + }, + { + "id": "b987c71e-d76f-43eb-8371-a2aa09d98d15", + "type": "basic.output", + "data": { + "name": "bitclk" + }, + "position": { + "x": 1760, + "y": 880 + } + }, + { + "id": "cdf85427-0efe-4adb-b48d-dab3daccacce", + "type": "basic.input", + "data": { + "name": "start", + "clock": false + }, + "position": { + "x": 560, + "y": 1008 + } + }, + { + "id": "1d8c0dd2-96bc-462a-8a33-05472851522d", + "type": "basic.output", + "data": { + "name": "io_start" + }, + "position": { + "x": 1800, + "y": 1080 + } + }, + { + "id": "412c6872-b61e-4af8-8ece-577a8adb185c", + "type": "basic.output", + "data": { + "name": "done" + }, + "position": { + "x": 1784, + "y": 1176 + } + }, + { + "id": "9873b349-7163-44e3-9df0-a07acbfd5246", + "type": "basic.constant", + "data": { + "name": "T_tics", + "value": "121", + "local": false + }, + "position": { + "x": 960, + "y": 816 + } }, { - "source": { - "block": "7861c061-e90b-46bb-a639-6399f55f7f11", - "port": "out" - }, - "target": { - "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", - "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" + "id": "6f699db9-abd0-4949-a539-cfeda25e33bb", + "type": "basic.constant", + "data": { + "name": "", + "value": "9", + "local": true }, - "vertices": [ - { - "x": 1392, - "y": 752 - } - ] + "position": { + "x": 1064, + "y": 800 + } }, { - "source": { - "block": "f3da83aa-48cf-4e21-8e2f-60e045183b92", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "0f091ac3-4f1e-4e21-bc52-01c9a5ca5f5f", + "type": "basic.constant", + "data": { + "name": "Desfase", + "value": "2", + "local": true }, - "target": { - "block": "8849d683-2013-4619-9116-4adde501529e", - "port": "97b51945-d716-4b6c-9db9-970d08541249" + "position": { + "x": 1256, + "y": 840 + } + }, + { + "id": "41219c53-959c-4775-a2b7-db9651d3ed72", + "type": "basic.constant", + "data": { + "name": "Anchura-bit", + "value": "5", + "local": true }, - "vertices": [] + "position": { + "x": 1432, + "y": 832 + } }, { - "source": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "c554ffa6-9397-4270-96af-6d4ff9abfc16" + "id": "4cded02d-9798-4ac7-85b2-88f9ca82752a", + "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", + "position": { + "x": 1432, + "y": 952 }, - "target": { - "block": "f3da83aa-48cf-4e21-8e2f-60e045183b92", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", - "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + "id": "a917add8-1ea1-42af-8b62-6f2d1992bce8", + "type": "basic.info", + "data": { + "info": "121 tics son 10us", + "readonly": true }, - "target": { - "block": "8849d683-2013-4619-9116-4adde501529e", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "position": { + "x": 936, + "y": 784 }, - "vertices": [ - { - "x": 1592, - "y": 960 - } - ] + "size": { + "width": 168, + "height": 40 + } }, { - "source": { - "block": "8849d683-2013-4619-9116-4adde501529e", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "73336d4a-efcf-49a6-860f-eca956b28ec6", + "type": "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542", + "position": { + "x": 936, + "y": 480 }, - "target": { - "block": "412c6872-b61e-4af8-8ece-577a8adb185c", - "port": "in" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", - "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" - }, - "target": { - "block": "b987c71e-d76f-43eb-8371-a2aa09d98d15", - "port": "in" + "id": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", + "position": { + "x": 1256, + "y": 936 }, - "vertices": [ - { - "x": 1400, - "y": 936 - } - ] + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", - "port": "out" + "id": "8395e674-0340-4dc6-9e01-751771607b4d", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "position": { + "x": 1568, + "y": 760 }, - "target": { - "block": "1d8c0dd2-96bc-462a-8a33-05472851522d", - "port": "in" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", - "port": "out" - }, - "target": { - "block": "44073844-b550-4911-affe-bdadca704a6f", - "port": "755eb5f6-70bb-4449-adb7-196ead041df1" + "id": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "position": { + "x": 1568, + "y": 648 }, - "vertices": [ - { - "x": 744, - "y": 520 - } - ] + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", - "port": "out" - }, - "target": { - "block": "1e424507-5096-47f9-8437-b35c1c3b343d", - "port": "b916c09a-8848-4500-a1a0-0cc09e8f23c1" + "id": "7d4113a9-19b2-4434-8002-7f671360852b", + "type": "086d7dc26b794983217c4161c26b85dc62375d9d", + "position": { + "x": 984, + "y": 968 }, - "vertices": [ - { - "x": 848, - "y": 688 - } - ] + "size": { + "width": 96, + "height": 96 + } }, { - "source": { - "block": "73336d4a-efcf-49a6-860f-eca956b28ec6", - "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + "id": "f3da83aa-48cf-4e21-8e2f-60e045183b92", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 1168, + "y": 1016 }, - "target": { - "block": "1e424507-5096-47f9-8437-b35c1c3b343d", - "port": "02007399-7499-4b76-ad4f-91094344d055" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "ed0e5489-e9b1-4b92-bcfb-22f3737d1c93", - "port": "out" - }, - "target": { - "block": "1e424507-5096-47f9-8437-b35c1c3b343d", - "port": "05394100-6c4a-4bd5-b479-739c16ede30c" + "id": "8849d683-2013-4619-9116-4adde501529e", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 1656, + "y": 944 }, - "vertices": [ - { - "x": 792, - "y": 640 - } - ], - "size": 8 - } - ] - } - } - }, - "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": [ + "size": { + "width": 96, + "height": 64 + } + }, { - "id": "3d584b0a-29eb-47af-8c43-c0822282ef05", - "type": "basic.output", + "id": "cf48b06f-8921-4666-afba-ccc17b535b28", + "type": "basic.info", "data": { - "name": "" + "info": "Arrancar el módulo \nde gestión del pin io", + "readonly": true }, "position": { - "x": 512, - "y": 160 + "x": 1784, + "y": 1024 + }, + "size": { + "width": 200, + "height": 56 } }, { - "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" - } - ] - } + "id": "44073844-b550-4911-affe-bdadca704a6f", + "type": "45f630ea95c6847db8df0598c312ef9acfa981a3", + "position": { + "x": 1432, + "y": 456 }, + "size": { + "width": 96, + "height": 128 + } + }, + { + "id": "1e424507-5096-47f9-8437-b35c1c3b343d", + "type": "53847c98bfef0fe28fbef1f4f65042911f361c44", "position": { - "x": 168, - "y": 112 + "x": 1208, + "y": 480 }, "size": { - "width": 256, + "width": 96, "height": 160 } } @@ -8386,1004 +8498,842 @@ "wires": [ { "source": { - "block": "61331ec5-2c56-4cdd-b607-e63b1502fa65", - "port": "q" + "block": "6f699db9-abd0-4949-a539-cfeda25e33bb", + "port": "constant-out" }, "target": { - "block": "3d584b0a-29eb-47af-8c43-c0822282ef05", - "port": "in" - } - } - ] - } - } - }, - "086d7dc26b794983217c4161c26b85dc62375d9d": { - "package": { - "name": "Heart-tics", - "version": "0.1", - "description": "Corazón finito de tics. Emitir num tics cuando se recibe un tic de start", - "author": "Juan Gonzalez-Gomez (obijuan)", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22227.691%22%20height=%22159.585%22%20viewBox=%220%200%2060.243259%2042.223434%22%3E%3Cpath%20d=%22M30.137%2040.073c-.726-1.25-1.853-2.474-3.987-4.332-1.156-1.006-1.859-1.565-5.863-4.658-3.138-2.425-4.704-3.77-6.519-5.602-1.813-1.83-2.879-3.289-3.793-5.19a15.321%2015.321%200%200%201-1.236-3.6c-.316-1.545-.36-2.068-.358-4.342.002-2.984.1-3.48%201.08-5.47.729-1.479%201.282-2.257%202.433-3.427%201.119-1.135%201.845-1.65%203.415-2.427C17.053.162%2018.315-.065%2020.914.02c2.02.065%202.759.266%204.36%201.187%202.52%201.45%204.476%203.778%205.017%205.973.088.358.18.652.203.652.023%200%20.227-.42.453-.933.77-1.743%201.485-2.808%202.62-3.902%203.477-3.353%208.96-3.959%2013.392-1.482C48.769%202.527%2050.242%204%2051.383%205.94c.898%201.527%201.358%203.555%201.436%206.34.114%204.035-.624%206.832-2.589%209.811-.78%201.183-1.356%201.9-2.438%203.029-1.744%201.822-3.318%203.162-7.033%205.987-2.344%201.783-3.733%202.93-5.744%204.742-1.612%201.451-4.109%203.979-4.35%204.401-.104.185-.2.336-.21.336-.012%200-.154-.23-.318-.512z%22%20fill=%22red%22/%3E%3Ctext%20y=%2263.446%22%20x=%2264.25%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-42.66%20-45.386)%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=%2263.446%22%20x=%2264.25%22%20font-weight=%22700%22%20font-size=%228.695%22%3Etics%3C/tspan%3E%3C/text%3E%3Cg%20transform=%22matrix(.79321%200%200%20.79321%20-31.345%20-28.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%3Cg%20transform=%22matrix(.79321%200%200%20.79321%20-68.009%20-28.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%3Ctext%20y=%2258.351%22%20x=%2280.998%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%2222.577%22%20letter-spacing=%220%22%20word-spacing=%220%22%20transform=%22matrix(.99853%200%200%201.00147%20-42.66%20-45.386)%22%20font-family=%22sans-serif%22%20fill=%22#00f%22%20stroke-width=%22.419%22%3E%3Ctspan%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2258.351%22%20x=%2280.998%22%20font-weight=%22700%22%20font-size=%2212.901%22%3E#%3C/tspan%3E%3C/text%3E%3C/svg%3E" - }, - "design": { - "graph": { - "blocks": [ + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "1caece2e-e3d8-4102-af87-572c05b24e16" + }, + "vertices": [] + }, { - "id": "2d69e282-542b-48cc-b0ec-dd419e06f97e", - "type": "basic.input", - "data": { - "name": "", - "clock": true + "source": { + "block": "9873b349-7163-44e3-9df0-a07acbfd5246", + "port": "constant-out" }, - "position": { - "x": 520, - "y": 456 - } + "target": { + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "96ad1612-7936-4672-b660-9285d183f749" + }, + "vertices": [] }, { - "id": "bcfe1e9b-4bb8-43c2-bbea-d82aeb7dce9d", - "type": "basic.input", - "data": { - "name": "start", - "clock": false + "source": { + "block": "41219c53-959c-4775-a2b7-db9651d3ed72", + "port": "constant-out" }, - "position": { - "x": 520, - "y": 536 - } + "target": { + "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", + "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" + }, + "vertices": [] }, { - "id": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a", - "type": "basic.output", - "data": { - "name": "out" + "source": { + "block": "1e424507-5096-47f9-8437-b35c1c3b343d", + "port": "21039c06-c932-498c-968d-879a68d66795" }, - "position": { - "x": 1352, - "y": 560 - } + "target": { + "block": "44073844-b550-4911-affe-bdadca704a6f", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + }, + "vertices": [] }, { - "id": "c554ffa6-9397-4270-96af-6d4ff9abfc16", - "type": "basic.output", - "data": { - "name": "busy" + "source": { + "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, - "position": { - "x": 872, - "y": 672 - } + "target": { + "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", + "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" + }, + "vertices": [] }, { - "id": "7cfc535a-b3a4-4bf7-8f94-8759e822e67e", - "type": "basic.output", - "data": { - "name": "end" + "source": { + "block": "0f091ac3-4f1e-4e21-bc52-01c9a5ca5f5f", + "port": "constant-out" }, - "position": { - "x": 1352, - "y": 752 - } + "target": { + "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" + }, + "vertices": [] }, { - "id": "96ad1612-7936-4672-b660-9285d183f749", - "type": "basic.constant", - "data": { - "name": "Tics", - "value": "15", - "local": false + "source": { + "block": "8395e674-0340-4dc6-9e01-751771607b4d", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "position": { - "x": 952, - "y": 376 - } + "target": { + "block": "9290b4c2-5520-4b99-97d3-a140a411a149", + "port": "in" + }, + "vertices": [] }, { - "id": "1caece2e-e3d8-4102-af87-572c05b24e16", - "type": "basic.constant", - "data": { - "name": "Num", - "value": "24", - "local": false + "source": { + "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", + "port": "c45dab76-9d0f-4742-9e4d-3048637d245d" }, - "position": { - "x": 1152, - "y": 376 - } + "target": { + "block": "8395e674-0340-4dc6-9e01-751771607b4d", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] }, { - "id": "f6388518-4c42-4573-8f49-63d43d444669", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", - "position": { - "x": 720, - "y": 520 + "source": { + "block": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "size": { - "width": 96, - "height": 96 - } + "target": { + "block": "20e1709f-bff4-4373-a485-5af7052a37d7", + "port": "in" + }, + "vertices": [] }, { - "id": "eab6a459-411c-406b-9185-872a44f305e5", - "type": "d585a59868290d4af219e92f887128dc4b7c8a51", - "position": { - "x": 952, - "y": 520 + "source": { + "block": "44073844-b550-4911-affe-bdadca704a6f", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "748fced1-f2be-412a-87de-a0d8276e6a06", + "port": "out" + }, + "target": { + "block": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] + }, + { + "source": { + "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", + "port": "out" + }, + "target": { + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "bcfe1e9b-4bb8-43c2-bbea-d82aeb7dce9d" } }, { - "id": "a05b1ecb-b766-482a-9f49-bd698cec989f", - "type": "d0fde25a657f5921d86a889c7f69e379c4d8e91e", - "position": { - "x": 1152, - "y": 472 + "source": { + "block": "63a0f19e-1e7c-4e61-b89a-f6fc4eb74afb", + "port": "out" }, - "size": { - "width": 96, - "height": 96 + "target": { + "block": "8395e674-0340-4dc6-9e01-751771607b4d", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" } }, { - "id": "cd007087-7c8b-49b1-a5ba-b02fdd440737", - "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", - "position": { - "x": 944, - "y": 600 + "source": { + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a" + }, + "target": { + "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" + } + }, + { + "source": { + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "1e424507-5096-47f9-8437-b35c1c3b343d", + "port": "ec65c3cd-0951-4d74-bbfc-c37f87a78e66" } - } - ], - "wires": [ + }, { "source": { - "block": "f6388518-4c42-4573-8f49-63d43d444669", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a" }, "target": { - "block": "eab6a459-411c-406b-9185-872a44f305e5", - "port": "2e992b62-97db-4d64-9620-3fe3310a9a5f" + "block": "44073844-b550-4911-affe-bdadca704a6f", + "port": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7" }, - "vertices": [] + "vertices": [ + { + "x": 1192, + "y": 720 + } + ] }, { "source": { - "block": "96ad1612-7936-4672-b660-9285d183f749", - "port": "constant-out" + "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "port": "out" }, "target": { - "block": "eab6a459-411c-406b-9185-872a44f305e5", - "port": "136e8d6d-892a-4f14-8d6d-0c5bc6c3e844" - }, - "vertices": [] + "block": "1e424507-5096-47f9-8437-b35c1c3b343d", + "port": "a265c13d-af7a-437b-97ae-424872381a93" + } }, { "source": { - "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", - "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "port": "out" }, "target": { - "block": "f6388518-4c42-4573-8f49-63d43d444669", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + "block": "44073844-b550-4911-affe-bdadca704a6f", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" }, "vertices": [ { - "x": 680, - "y": 760 + "x": 1392, + "y": 432 } ] }, { "source": { - "block": "eab6a459-411c-406b-9185-872a44f305e5", - "port": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c" + "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "port": "out" }, "target": { - "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", - "port": "26aba23f-8567-4e9b-bd45-c26724030f33" + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "2d69e282-542b-48cc-b0ec-dd419e06f97e" }, - "vertices": [] + "vertices": [ + { + "x": 920, + "y": 728 + } + ] }, { "source": { - "block": "cd007087-7c8b-49b1-a5ba-b02fdd440737", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "port": "out" }, "target": { - "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", - "port": "743b5299-2d89-4783-b7c9-12a5b36df406" + "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" }, "vertices": [ { - "x": 1080, - "y": 608 + "x": 920, + "y": 912 } ] }, { "source": { - "block": "f6388518-4c42-4573-8f49-63d43d444669", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "port": "out" }, "target": { - "block": "cd007087-7c8b-49b1-a5ba-b02fdd440737", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", + "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" }, "vertices": [ { - "x": 920, - "y": 592 + "x": 1392, + "y": 752 } ] }, { "source": { - "block": "1caece2e-e3d8-4102-af87-572c05b24e16", - "port": "constant-out" + "block": "f3da83aa-48cf-4e21-8e2f-60e045183b92", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", - "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" + "block": "8849d683-2013-4619-9116-4adde501529e", + "port": "97b51945-d716-4b6c-9db9-970d08541249" }, "vertices": [] }, { "source": { - "block": "bcfe1e9b-4bb8-43c2-bbea-d82aeb7dce9d", - "port": "out" + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "c554ffa6-9397-4270-96af-6d4ff9abfc16" }, "target": { - "block": "f6388518-4c42-4573-8f49-63d43d444669", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + "block": "f3da83aa-48cf-4e21-8e2f-60e045183b92", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" } }, { "source": { - "block": "2d69e282-542b-48cc-b0ec-dd419e06f97e", - "port": "out" + "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", + "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, "target": { - "block": "f6388518-4c42-4573-8f49-63d43d444669", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" - } + "block": "8849d683-2013-4619-9116-4adde501529e", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": 1592, + "y": 960 + } + ] }, { "source": { - "block": "2d69e282-542b-48cc-b0ec-dd419e06f97e", - "port": "out" + "block": "8849d683-2013-4619-9116-4adde501529e", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "eab6a459-411c-406b-9185-872a44f305e5", - "port": "503869f1-ddfd-4d13-93ad-5f90281ba88c" + "block": "412c6872-b61e-4af8-8ece-577a8adb185c", + "port": "in" } }, { "source": { - "block": "2d69e282-542b-48cc-b0ec-dd419e06f97e", + "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + }, + "target": { + "block": "b987c71e-d76f-43eb-8371-a2aa09d98d15", + "port": "in" + }, + "vertices": [ + { + "x": 1400, + "y": 936 + } + ] + }, + { + "source": { + "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", "port": "out" }, "target": { - "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", - "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" + "block": "1d8c0dd2-96bc-462a-8a33-05472851522d", + "port": "in" } }, { "source": { - "block": "eab6a459-411c-406b-9185-872a44f305e5", - "port": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c" + "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", + "port": "out" }, "target": { - "block": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a", - "port": "in" + "block": "44073844-b550-4911-affe-bdadca704a6f", + "port": "755eb5f6-70bb-4449-adb7-196ead041df1" }, "vertices": [ { - "x": 1120, - "y": 576 + "x": 744, + "y": 520 } ] }, { "source": { - "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", - "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", + "port": "out" }, "target": { - "block": "7cfc535a-b3a4-4bf7-8f94-8759e822e67e", - "port": "in" + "block": "1e424507-5096-47f9-8437-b35c1c3b343d", + "port": "b916c09a-8848-4500-a1a0-0cc09e8f23c1" }, "vertices": [ { - "x": 1264, - "y": 720 + "x": 848, + "y": 688 } ] }, { "source": { - "block": "f6388518-4c42-4573-8f49-63d43d444669", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "73336d4a-efcf-49a6-860f-eca956b28ec6", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" }, "target": { - "block": "c554ffa6-9397-4270-96af-6d4ff9abfc16", - "port": "in" + "block": "1e424507-5096-47f9-8437-b35c1c3b343d", + "port": "02007399-7499-4b76-ad4f-91094344d055" } + }, + { + "source": { + "block": "ed0e5489-e9b1-4b92-bcfb-22f3737d1c93", + "port": "out" + }, + "target": { + "block": "1e424507-5096-47f9-8437-b35c1c3b343d", + "port": "05394100-6c4a-4bd5-b479-739c16ede30c" + }, + "vertices": [ + { + "x": 792, + "y": 640 + } + ], + "size": 8 } ] } } }, - "d585a59868290d4af219e92f887128dc4b7c8a51": { + "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542": { "package": { - "name": "Corazon-tics", + "name": "0", "version": "0.1", - "description": "Corazón de bombeo de tics, cuyo periodo está especificado en tics también", - "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=%2263.446%22%20x=%2264.25%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=%2263.446%22%20x=%2264.25%22%20font-weight=%22700%22%20font-size=%228.695%22%3Etics%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" + "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": "503869f1-ddfd-4d13-93ad-5f90281ba88c", - "type": "basic.input", - "data": { - "name": "", - "clock": true - }, - "position": { - "x": 112, - "y": 72 - } - }, - { - "id": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c", + "id": "3d584b0a-29eb-47af-8c43-c0822282ef05", "type": "basic.output", "data": { "name": "" }, "position": { - "x": 912, - "y": 192 - } - }, - { - "id": "2e992b62-97db-4d64-9620-3fe3310a9a5f", - "type": "basic.input", - "data": { - "name": "", - "clock": false - }, - "position": { - "x": 112, - "y": 304 - } - }, - { - "id": "136e8d6d-892a-4f14-8d6d-0c5bc6c3e844", - "type": "basic.constant", - "data": { - "name": "", - "value": "15", - "local": false - }, - "position": { - "x": 520, - "y": -128 + "x": 512, + "y": 160 } }, { - "id": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", + "id": "61331ec5-2c56-4cdd-b607-e63b1502fa65", "type": "basic.code", "data": { - "code": "\n\n//-- Los TICs son directamente el módulo del contador\nlocalparam M = TICS;\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": "TICS" - } - ], + "code": "//-- Bit constante a 0\nassign q = 1'b0;\n\n", + "params": [], "ports": { - "in": [ - { - "name": "clk" - }, - { - "name": "ena" - } - ], + "in": [], "out": [ { - "name": "o" + "name": "q" } ] } }, "position": { - "x": 296, - "y": -8 + "x": 168, + "y": 112 }, "size": { - "width": 544, - "height": 456 + "width": 256, + "height": 160 } } ], "wires": [ { "source": { - "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", - "port": "o" + "block": "61331ec5-2c56-4cdd-b607-e63b1502fa65", + "port": "q" }, "target": { - "block": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c", + "block": "3d584b0a-29eb-47af-8c43-c0822282ef05", "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": "TICS" - } - }, - { - "source": { - "block": "2e992b62-97db-4d64-9620-3fe3310a9a5f", - "port": "out" - }, - "target": { - "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", - "port": "ena" - } } ] } } }, - "d0fde25a657f5921d86a889c7f69e379c4d8e91e": { + "086d7dc26b794983217c4161c26b85dc62375d9d": { "package": { - "name": "Contador-5bits-up-rst", + "name": "Heart-tics", "version": "0.1", - "description": "Contador módulo M, ascendente, de 5 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" + "description": "Corazón finito de tics. Emitir num tics cuando se recibe un tic de start", + "author": "Juan Gonzalez-Gomez (obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22227.691%22%20height=%22159.585%22%20viewBox=%220%200%2060.243259%2042.223434%22%3E%3Cpath%20d=%22M30.137%2040.073c-.726-1.25-1.853-2.474-3.987-4.332-1.156-1.006-1.859-1.565-5.863-4.658-3.138-2.425-4.704-3.77-6.519-5.602-1.813-1.83-2.879-3.289-3.793-5.19a15.321%2015.321%200%200%201-1.236-3.6c-.316-1.545-.36-2.068-.358-4.342.002-2.984.1-3.48%201.08-5.47.729-1.479%201.282-2.257%202.433-3.427%201.119-1.135%201.845-1.65%203.415-2.427C17.053.162%2018.315-.065%2020.914.02c2.02.065%202.759.266%204.36%201.187%202.52%201.45%204.476%203.778%205.017%205.973.088.358.18.652.203.652.023%200%20.227-.42.453-.933.77-1.743%201.485-2.808%202.62-3.902%203.477-3.353%208.96-3.959%2013.392-1.482C48.769%202.527%2050.242%204%2051.383%205.94c.898%201.527%201.358%203.555%201.436%206.34.114%204.035-.624%206.832-2.589%209.811-.78%201.183-1.356%201.9-2.438%203.029-1.744%201.822-3.318%203.162-7.033%205.987-2.344%201.783-3.733%202.93-5.744%204.742-1.612%201.451-4.109%203.979-4.35%204.401-.104.185-.2.336-.21.336-.012%200-.154-.23-.318-.512z%22%20fill=%22red%22/%3E%3Ctext%20y=%2263.446%22%20x=%2264.25%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-42.66%20-45.386)%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=%2263.446%22%20x=%2264.25%22%20font-weight=%22700%22%20font-size=%228.695%22%3Etics%3C/tspan%3E%3C/text%3E%3Cg%20transform=%22matrix(.79321%200%200%20.79321%20-31.345%20-28.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%3Cg%20transform=%22matrix(.79321%200%200%20.79321%20-68.009%20-28.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%3Ctext%20y=%2258.351%22%20x=%2280.998%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%2222.577%22%20letter-spacing=%220%22%20word-spacing=%220%22%20transform=%22matrix(.99853%200%200%201.00147%20-42.66%20-45.386)%22%20font-family=%22sans-serif%22%20fill=%22#00f%22%20stroke-width=%22.419%22%3E%3Ctspan%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2258.351%22%20x=%2280.998%22%20font-weight=%22700%22%20font-size=%2212.901%22%3E#%3C/tspan%3E%3C/text%3E%3C/svg%3E" }, "design": { "graph": { "blocks": [ { - "id": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "id": "2d69e282-542b-48cc-b0ec-dd419e06f97e", "type": "basic.input", "data": { "name": "", "clock": true }, "position": { - "x": 264, - "y": 176 + "x": 520, + "y": 456 } }, { - "id": "6c029178-38c2-43a1-bd73-4b5a6b932090", - "type": "basic.output", + "id": "bcfe1e9b-4bb8-43c2-bbea-d82aeb7dce9d", + "type": "basic.input", "data": { - "name": "", - "range": "[4:0]", - "size": 5 + "name": "start", + "clock": false }, "position": { - "x": 800, - "y": 200 + "x": 520, + "y": 536 } }, { - "id": "743b5299-2d89-4783-b7c9-12a5b36df406", - "type": "basic.input", + "id": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a", + "type": "basic.output", "data": { - "name": "rst", - "clock": false + "name": "out" }, "position": { - "x": 264, - "y": 280 + "x": 1352, + "y": 560 } }, { - "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "id": "c554ffa6-9397-4270-96af-6d4ff9abfc16", "type": "basic.output", "data": { - "name": "ov" + "name": "busy" }, "position": { - "x": 800, - "y": 352 + "x": 872, + "y": 672 } }, { - "id": "26aba23f-8567-4e9b-bd45-c26724030f33", - "type": "basic.input", + "id": "7cfc535a-b3a4-4bf7-8f94-8759e822e67e", + "type": "basic.output", "data": { - "name": "cnt", - "clock": false + "name": "end" }, "position": { - "x": 264, - "y": 376 + "x": 1352, + "y": 752 } }, { - "id": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "id": "96ad1612-7936-4672-b660-9285d183f749", "type": "basic.constant", "data": { - "name": "", - "value": "32", + "name": "Tics", + "value": "15", "local": false }, "position": { - "x": 528, - "y": 48 + "x": 952, + "y": 376 } }, { - "id": "b35ae5de-a490-4f7b-9200-ac52cd3f333e", - "type": "basic.info", + "id": "1caece2e-e3d8-4102-af87-572c05b24e16", + "type": "basic.constant", "data": { - "info": "**Parámetro**: Módulo del contador", - "readonly": true + "name": "Num", + "value": "24", + "local": false }, "position": { - "x": 472, - "y": 32 - }, - "size": { - "width": 280, - "height": 56 + "x": 1152, + "y": 376 } }, { - "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "type": "basic.code", - "data": { - "code": "//-- Numero de bits del contador\nlocalparam N = 5; \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": "[4:0]", - "size": 5 - }, - { - "name": "ov" - } - ] - } - }, + "id": "f6388518-4c42-4573-8f49-63d43d444669", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", "position": { - "x": 408, - "y": 160 + "x": 720, + "y": 520 }, "size": { - "width": 336, - "height": 296 + "width": 96, + "height": 96 } - } - ], - "wires": [ + }, { - "source": { - "block": "743b5299-2d89-4783-b7c9-12a5b36df406", - "port": "out" + "id": "eab6a459-411c-406b-9185-872a44f305e5", + "type": "d585a59868290d4af219e92f887128dc4b7c8a51", + "position": { + "x": 952, + "y": 520 }, - "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "rst" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", - "port": "constant-out" + "id": "a05b1ecb-b766-482a-9f49-bd698cec989f", + "type": "d0fde25a657f5921d86a889c7f69e379c4d8e91e", + "position": { + "x": 1152, + "y": 472 }, - "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "M" + "size": { + "width": 96, + "height": 96 } }, { - "source": { - "block": "26aba23f-8567-4e9b-bd45-c26724030f33", - "port": "out" + "id": "cd007087-7c8b-49b1-a5ba-b02fdd440737", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 944, + "y": 600 }, - "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "cnt" + "size": { + "width": 96, + "height": 64 } - }, + } + ], + "wires": [ { "source": { - "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", - "port": "out" + "block": "f6388518-4c42-4573-8f49-63d43d444669", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "clk" - } + "block": "eab6a459-411c-406b-9185-872a44f305e5", + "port": "2e992b62-97db-4d64-9620-3fe3310a9a5f" + }, + "vertices": [] }, { "source": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "ov" + "block": "96ad1612-7936-4672-b660-9285d183f749", + "port": "constant-out" }, "target": { - "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", - "port": "in" - } + "block": "eab6a459-411c-406b-9185-872a44f305e5", + "port": "136e8d6d-892a-4f14-8d6d-0c5bc6c3e844" + }, + "vertices": [] }, { "source": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "q" + "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" }, "target": { - "block": "6c029178-38c2-43a1-bd73-4b5a6b932090", - "port": "in" - }, - "size": 5 - } - ] - } - } - }, - "45f630ea95c6847db8df0598c312ef9acfa981a3": { - "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=%22216.379%22%20height=%22279.911%22%20viewBox=%220%200%2057.25032%2074.059853%22%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M41.506%2040.152l13.608%2016.672-6.918-20.534%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%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-width=%221.0924880399999999%22/%3E%3C/g%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%3C/svg%3E" - }, - "design": { - "graph": { - "blocks": [ - { - "id": "3943e194-090b-4553-9df3-88bc4b17abc2", - "type": "basic.input", - "data": { - "name": "", - "clock": true + "block": "f6388518-4c42-4573-8f49-63d43d444669", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" }, - "position": { - "x": 176, - "y": 64 - } + "vertices": [ + { + "x": 680, + "y": 760 + } + ] }, { - "id": "755eb5f6-70bb-4449-adb7-196ead041df1", - "type": "basic.input", - "data": { - "name": "rst", - "clock": false + "source": { + "block": "eab6a459-411c-406b-9185-872a44f305e5", + "port": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c" }, - "position": { - "x": 168, - "y": 144 - } - }, - { - "id": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", - "type": "basic.output", - "data": { - "name": "" + "target": { + "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", + "port": "26aba23f-8567-4e9b-bd45-c26724030f33" }, - "position": { - "x": 680, - "y": 200 - } + "vertices": [] }, { - "id": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", - "type": "basic.input", - "data": { - "name": "d", - "clock": false + "source": { + "block": "cd007087-7c8b-49b1-a5ba-b02fdd440737", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "position": { - "x": 168, - "y": 216 - } - }, - { - "id": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", - "type": "basic.input", - "data": { - "name": "load", - "clock": false + "target": { + "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", + "port": "743b5299-2d89-4783-b7c9-12a5b36df406" }, - "position": { - "x": 168, - "y": 296 - } + "vertices": [ + { + "x": 1080, + "y": 608 + } + ] }, { - "id": "65194b18-5d2a-41b2-bd86-01be99978ad6", - "type": "basic.constant", - "data": { - "name": "", - "value": "0", - "local": false + "source": { + "block": "f6388518-4c42-4573-8f49-63d43d444669", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, - "position": { - "x": 456, - "y": 64 - } + "target": { + "block": "cd007087-7c8b-49b1-a5ba-b02fdd440737", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": 920, + "y": 592 + } + ] }, { - "id": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "type": "basic.code", - "data": { - "code": "reg q = INI;\nalways @(posedge clk)\n if (rst)\n q <= INI;\n else if (load)\n q <= d;", - "params": [ - { - "name": "INI" - } - ], - "ports": { - "in": [ - { - "name": "clk" - }, - { - "name": "rst" - }, - { - "name": "d" - }, - { - "name": "load" - } - ], - "out": [ - { - "name": "q" - } - ] - } + "source": { + "block": "1caece2e-e3d8-4102-af87-572c05b24e16", + "port": "constant-out" }, - "position": { - "x": 384, - "y": 168 + "target": { + "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", + "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" }, - "size": { - "width": 232, - "height": 128 - } - } - ], - "wires": [ + "vertices": [] + }, { "source": { - "block": "3943e194-090b-4553-9df3-88bc4b17abc2", + "block": "bcfe1e9b-4bb8-43c2-bbea-d82aeb7dce9d", "port": "out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "clk" + "block": "f6388518-4c42-4573-8f49-63d43d444669", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" } }, { "source": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "q" + "block": "2d69e282-542b-48cc-b0ec-dd419e06f97e", + "port": "out" }, "target": { - "block": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", - "port": "in" + "block": "f6388518-4c42-4573-8f49-63d43d444669", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" } }, { "source": { - "block": "65194b18-5d2a-41b2-bd86-01be99978ad6", - "port": "constant-out" + "block": "2d69e282-542b-48cc-b0ec-dd419e06f97e", + "port": "out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "INI" + "block": "eab6a459-411c-406b-9185-872a44f305e5", + "port": "503869f1-ddfd-4d13-93ad-5f90281ba88c" } }, { "source": { - "block": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", + "block": "2d69e282-542b-48cc-b0ec-dd419e06f97e", "port": "out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "d" + "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", + "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" } }, { "source": { - "block": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", - "port": "out" + "block": "eab6a459-411c-406b-9185-872a44f305e5", + "port": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "load" - } + "block": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a", + "port": "in" + }, + "vertices": [ + { + "x": 1120, + "y": 576 + } + ] }, { "source": { - "block": "755eb5f6-70bb-4449-adb7-196ead041df1", - "port": "out" + "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "rst" + "block": "7cfc535a-b3a4-4bf7-8f94-8759e822e67e", + "port": "in" }, "vertices": [ { - "x": 304, - "y": 192 + "x": 1264, + "y": 720 } ] + }, + { + "source": { + "block": "f6388518-4c42-4573-8f49-63d43d444669", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "c554ffa6-9397-4270-96af-6d4ff9abfc16", + "port": "in" + } } ] } } }, - "53847c98bfef0fe28fbef1f4f65042911f361c44": { + "d585a59868290d4af219e92f887128dc4b7c8a51": { "package": { - "name": "Registro-desplazamiento", + "name": "Corazon-tics", "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" + "description": "Corazón de bombeo de tics, cuyo periodo está especificado en tics también", + "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=%2263.446%22%20x=%2264.25%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=%2263.446%22%20x=%2264.25%22%20font-weight=%22700%22%20font-size=%228.695%22%3Etics%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": "a265c13d-af7a-437b-97ae-424872381a93", + "id": "503869f1-ddfd-4d13-93ad-5f90281ba88c", "type": "basic.input", "data": { "name": "", "clock": true }, "position": { - "x": 224, - "y": 648 + "x": 112, + "y": 72 } }, { - "id": "21039c06-c932-498c-968d-879a68d66795", + "id": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c", "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 + "x": 912, + "y": 192 } }, { - "id": "ec65c3cd-0951-4d74-bbfc-c37f87a78e66", + "id": "2e992b62-97db-4d64-9620-3fe3310a9a5f", "type": "basic.input", "data": { - "name": "shift", + "name": "", "clock": false }, "position": { - "x": 224, - "y": 856 + "x": 112, + "y": 304 } }, { - "id": "4fef4dd0-ce33-42df-96b7-6c92c543f8eb", + "id": "136e8d6d-892a-4f14-8d6d-0c5bc6c3e844", "type": "basic.constant", "data": { "name": "", - "value": "0", + "value": "15", "local": false }, "position": { - "x": 624, - "y": 544 + "x": 520, + "y": -128 } }, { - "id": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "id": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", "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];", + "code": "\n\n//-- Los TICs son directamente el módulo del contador\nlocalparam M = TICS;\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": "INI" + "name": "TICS" } ], "ports": { @@ -9392,1627 +9342,1696 @@ "name": "clk" }, { - "name": "si" - }, - { - "name": "d", - "range": "[7:0]", - "size": 8 - }, - { - "name": "load" - }, - { - "name": "shift" + "name": "ena" } ], "out": [ { - "name": "so" - }, - { - "name": "q", - "range": "[7:0]", - "size": 8 + "name": "o" } ] } }, "position": { - "x": 440, - "y": 656 + "x": 296, + "y": -8 }, "size": { - "width": 464, - "height": 232 + "width": 544, + "height": 456 } } ], "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" + "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", + "port": "o" }, "target": { - "block": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", + "block": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c", "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", + "block": "503869f1-ddfd-4d13-93ad-5f90281ba88c", "port": "out" }, "target": { - "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", - "port": "si" + "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", + "port": "clk" } }, { "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" + "block": "136e8d6d-892a-4f14-8d6d-0c5bc6c3e844", + "port": "constant-out" }, "target": { - "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", - "port": "shift" + "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", + "port": "TICS" } }, { "source": { - "block": "b916c09a-8848-4500-a1a0-0cc09e8f23c1", + "block": "2e992b62-97db-4d64-9620-3fe3310a9a5f", "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" + "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", + "port": "ena" } } ] } } }, - "5483349a60d7c0f7f4146228196d6f4c4ad7604d": { + "d0fde25a657f5921d86a889c7f69e379c4d8e91e": { "package": { - "name": "machine-loop", + "name": "Contador-5bits-up-rst", "version": "0.1", - "description": "Máquina para hacer repeticiones", + "description": "Contador módulo M, ascendente, de 5 bits, con reset ", "author": "Juan González-Gómez (Obijuan)", - "image": "" - }, - "design": { - "graph": { - "blocks": [ - { - "id": "162f5f2d-17dc-4d0e-b6f9-6ebdf74392f0", - "type": "basic.output", - "data": { - "name": "exec" - }, - "position": { - "x": 1352, - "y": 224 - } - }, - { - "id": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", - "type": "basic.input", - "data": { - "name": "", - "clock": true - }, - "position": { - "x": 48, - "y": 280 - } - }, - { - "id": "8a0d51b6-8ab0-4ca6-8d57-7fa7e713c738", - "type": "basic.input", - "data": { - "name": "mod", - "range": "[1:0]", - "clock": false, - "size": 2 - }, - "position": { - "x": 48, - "y": 400 - } - }, - { - "id": "f966672f-ae05-4499-8a8d-3c9394a1119e", - "type": "basic.input", - "data": { - "name": "next", - "clock": false - }, - "position": { - "x": 48, - "y": 464 - } - }, - { - "id": "453471d0-fe0d-4cbf-a4df-411b6035dd44", - "type": "basic.output", - "data": { - "name": "busy" - }, - "position": { - "x": 1224, - "y": 528 - } - }, + "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": "0319df1a-5bd5-4abc-8681-6f3a8fa4e108", + "id": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", "type": "basic.input", "data": { - "name": "start", - "clock": false + "name": "", + "clock": true }, "position": { - "x": 40, - "y": 608 + "x": 264, + "y": 176 } }, { - "id": "088c7d8e-99b1-4f2e-a6c0-a672e5239844", + "id": "6c029178-38c2-43a1-bd73-4b5a6b932090", "type": "basic.output", "data": { "name": "", - "range": "[1:0]", - "size": 2 + "range": "[4:0]", + "size": 5 }, "position": { - "x": 1208, - "y": 720 + "x": 800, + "y": 200 } }, { - "id": "5dc54e8b-49c1-4ddb-94ab-843b247b73c4", - "type": "basic.output", + "id": "743b5299-2d89-4783-b7c9-12a5b36df406", + "type": "basic.input", "data": { - "name": "done" + "name": "rst", + "clock": false }, "position": { - "x": 1208, - "y": 792 + "x": 264, + "y": 280 } }, { - "id": "576020ce-bd52-4c01-8d5c-28605e677436", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", - "position": { - "x": 304, - "y": 592 + "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "type": "basic.output", + "data": { + "name": "ov" }, - "size": { - "width": 96, - "height": 96 - } - }, - { - "id": "728a5e86-7762-44da-8f55-f0f6c949abf2", - "type": "8e2728307baccbf26c01cdb87bcfba8ca64a435c", "position": { - "x": 496, - "y": 328 - }, - "size": { - "width": 96, - "height": 64 + "x": 800, + "y": 352 } }, { - "id": "18d5bf1a-171b-4474-9505-b9be4292c1ec", - "type": "81613874c6152f06c06ed7014bf4235900cfcc30", - "position": { - "x": 1064, - "y": 416 + "id": "26aba23f-8567-4e9b-bd45-c26724030f33", + "type": "basic.input", + "data": { + "name": "cnt", + "clock": false }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", - "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", "position": { - "x": 1192, - "y": 432 - }, - "size": { - "width": 96, - "height": 64 + "x": 264, + "y": 376 } }, { - "id": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", - "position": { - "x": 912, - "y": 432 + "id": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "type": "basic.constant", + "data": { + "name": "", + "value": "32", + "local": false }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", "position": { - "x": 688, - "y": 448 - }, - "size": { - "width": 96, - "height": 64 + "x": 528, + "y": 48 } }, { - "id": "27312c73-6414-4f2e-88e3-e4fd9eb4d2ca", - "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", - "position": { - "x": 464, - "y": 792 + "id": "b35ae5de-a490-4f7b-9200-ac52cd3f333e", + "type": "basic.info", + "data": { + "info": "**Parámetro**: Módulo del contador", + "readonly": true }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", - "type": "7eacdff4ce248b009935725889c8ae3339817d76", "position": { - "x": 912, - "y": 672 + "x": 472, + "y": 32 }, "size": { - "width": 96, - "height": 64 + "width": 280, + "height": 56 } }, { - "id": "8934d1b4-e751-4360-8a2c-fcc90c045fec", - "type": "b82ff1ae5d4441d6da2bec090398f0eb86405bf4", + "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "type": "basic.code", + "data": { + "code": "//-- Numero de bits del contador\nlocalparam N = 5; \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": "[4:0]", + "size": 5 + }, + { + "name": "ov" + } + ] + } + }, "position": { - "x": 696, - "y": 776 + "x": 408, + "y": 160 }, "size": { - "width": 96, - "height": 128 + "width": 336, + "height": 296 } } ], "wires": [ { "source": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "728a5e86-7762-44da-8f55-f0f6c949abf2", - "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" - }, - "vertices": [] - }, - { - "source": { - "block": "728a5e86-7762-44da-8f55-f0f6c949abf2", - "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" - }, - "target": { - "block": "18d5bf1a-171b-4474-9505-b9be4292c1ec", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" - }, - "vertices": [] - }, - { - "source": { - "block": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "162f5f2d-17dc-4d0e-b6f9-6ebdf74392f0", - "port": "in" - }, - "vertices": [] - }, - { - "source": { - "block": "18d5bf1a-171b-4474-9505-b9be4292c1ec", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" - }, - "vertices": [] - }, - { - "source": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", - "port": "97b51945-d716-4b6c-9db9-970d08541249" - }, - "vertices": [] - }, - { - "source": { - "block": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "block": "743b5299-2d89-4783-b7c9-12a5b36df406", + "port": "out" }, "target": { - "block": "18d5bf1a-171b-4474-9505-b9be4292c1ec", - "port": "97b51945-d716-4b6c-9db9-970d08541249" - }, - "vertices": [] + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "rst" + } }, { "source": { - "block": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "block": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "port": "constant-out" }, "target": { - "block": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" - }, - "vertices": [] + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "M" + } }, { "source": { - "block": "0319df1a-5bd5-4abc-8681-6f3a8fa4e108", + "block": "26aba23f-8567-4e9b-bd45-c26724030f33", "port": "out" }, "target": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "cnt" } }, { "source": { - "block": "f966672f-ae05-4499-8a8d-3c9394a1119e", + "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", "port": "out" }, "target": { - "block": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "clk" } }, { "source": { - "block": "f966672f-ae05-4499-8a8d-3c9394a1119e", - "port": "out" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "ov" }, "target": { - "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", - "port": "26aba23f-8567-4e9b-bd45-c26724030f33" - }, - "vertices": [ - { - "x": 592, - "y": 712 - } - ] + "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "port": "in" + } }, { "source": { - "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", - "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "q" }, "target": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + "block": "6c029178-38c2-43a1-bd73-4b5a6b932090", + "port": "in" }, - "vertices": [ - { - "x": 824, - "y": 920 - } - ] - }, + "size": 5 + } + ] + } + } + }, + "45f630ea95c6847db8df0598c312ef9acfa981a3": { + "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=%22216.379%22%20height=%22279.911%22%20viewBox=%220%200%2057.25032%2074.059853%22%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M41.506%2040.152l13.608%2016.672-6.918-20.534%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%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-width=%221.0924880399999999%22/%3E%3C/g%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%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ { - "source": { - "block": "27312c73-6414-4f2e-88e3-e4fd9eb4d2ca", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "3943e194-090b-4553-9df3-88bc4b17abc2", + "type": "basic.input", + "data": { + "name": "", + "clock": true }, - "target": { - "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", - "port": "743b5299-2d89-4783-b7c9-12a5b36df406" + "position": { + "x": 176, + "y": 64 } }, { - "source": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "id": "755eb5f6-70bb-4449-adb7-196ead041df1", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false }, - "target": { - "block": "27312c73-6414-4f2e-88e3-e4fd9eb4d2ca", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "position": { + "x": 168, + "y": 144 } }, { - "source": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", - "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + "id": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", + "type": "basic.output", + "data": { + "name": "" }, - "vertices": [ - { - "x": 824, - "y": 664 - } - ] + "position": { + "x": 680, + "y": 200 + } }, { - "source": { - "block": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", - "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" + "id": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", + "type": "basic.input", + "data": { + "name": "d", + "clock": false }, - "target": { - "block": "5dc54e8b-49c1-4ddb-94ab-843b247b73c4", - "port": "in" + "position": { + "x": 168, + "y": 216 } }, { - "source": { - "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", - "port": "out" + "id": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", + "type": "basic.input", + "data": { + "name": "load", + "clock": false }, - "target": { - "block": "728a5e86-7762-44da-8f55-f0f6c949abf2", - "port": "4196184b-4a60-493b-bcc6-c95958483683" + "position": { + "x": 168, + "y": 296 } }, { - "source": { - "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", - "port": "out" + "id": "65194b18-5d2a-41b2-bd86-01be99978ad6", + "type": "basic.constant", + "data": { + "name": "", + "value": "0", + "local": false }, - "target": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "position": { + "x": 456, + "y": 64 } }, { - "source": { - "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", - "port": "out" + "id": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "type": "basic.code", + "data": { + "code": "reg q = INI;\nalways @(posedge clk)\n if (rst)\n q <= INI;\n else if (load)\n q <= d;", + "params": [ + { + "name": "INI" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "rst" + }, + { + "name": "d" + }, + { + "name": "load" + } + ], + "out": [ + { + "name": "q" + } + ] + } }, - "target": { - "block": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "position": { + "x": 384, + "y": 168 + }, + "size": { + "width": 232, + "height": 128 } - }, + } + ], + "wires": [ { "source": { - "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", + "block": "3943e194-090b-4553-9df3-88bc4b17abc2", "port": "out" }, "target": { - "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", - "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" - }, - "vertices": [ - { - "x": 640, - "y": 664 - } - ] + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "clk" + } }, { "source": { - "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", - "port": "out" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "q" }, "target": { - "block": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "block": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", + "port": "in" } }, { "source": { - "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", - "port": "out" + "block": "65194b18-5d2a-41b2-bd86-01be99978ad6", + "port": "constant-out" }, "target": { - "block": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", - "port": "4196184b-4a60-493b-bcc6-c95958483683" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "INI" } }, { "source": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", + "port": "out" }, "target": { - "block": "453471d0-fe0d-4cbf-a4df-411b6035dd44", - "port": "in" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "d" } }, { "source": { - "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", - "port": "7a982450-c842-4aa2-8e77-43cc628266e0" - }, - "target": { - "block": "088c7d8e-99b1-4f2e-a6c0-a672e5239844", - "port": "in" - }, - "vertices": [ - { - "x": 1048, - "y": 760 - } - ], - "size": 2 + "block": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", + "port": "out" + }, + "target": { + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "load" + } }, { "source": { - "block": "8a0d51b6-8ab0-4ca6-8d57-7fa7e713c738", + "block": "755eb5f6-70bb-4449-adb7-196ead041df1", "port": "out" }, "target": { - "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", - "port": "4cafbdca-bdb2-421a-a742-f5de7a452c86" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "rst" }, "vertices": [ { - "x": 616, - "y": 616 + "x": 304, + "y": 192 } - ], - "size": 2 + ] } ] } } }, - "b82ff1ae5d4441d6da2bec090398f0eb86405bf4": { + "53847c98bfef0fe28fbef1f4f65042911f361c44": { "package": { - "name": "Contador-2bits-up-rst-mod-M", + "name": "Registro-desplazamiento", "version": "0.1", - "description": "Contador módulo M, ascendente, de 2 bits, con reset ", + "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=%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" + "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": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "id": "a265c13d-af7a-437b-97ae-424872381a93", "type": "basic.input", "data": { "name": "", "clock": true }, "position": { - "x": 240, - "y": 168 + "x": 224, + "y": 648 } }, { - "id": "7a982450-c842-4aa2-8e77-43cc628266e0", + "id": "21039c06-c932-498c-968d-879a68d66795", "type": "basic.output", "data": { - "name": "", - "range": "[1:0]", - "size": 2 + "name": "" }, "position": { - "x": 800, - "y": 200 + "x": 952, + "y": 680 } }, { - "id": "743b5299-2d89-4783-b7c9-12a5b36df406", + "id": "02007399-7499-4b76-ad4f-91094344d055", "type": "basic.input", "data": { - "name": "rst", + "name": "sin", "clock": false }, "position": { - "x": 240, - "y": 240 + "x": 224, + "y": 696 } }, { - "id": "4cafbdca-bdb2-421a-a742-f5de7a452c86", + "id": "05394100-6c4a-4bd5-b479-739c16ede30c", "type": "basic.input", "data": { - "name": "mod", - "range": "[1:0]", + "name": "d", + "range": "[7:0]", "clock": false, - "size": 2 + "size": 8 }, "position": { - "x": 240, - "y": 312 + "x": 224, + "y": 744 } }, { - "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "id": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", "type": "basic.output", "data": { - "name": "ov" + "name": "q", + "range": "[7:0]", + "size": 8 }, "position": { - "x": 800, - "y": 352 + "x": 968, + "y": 800 } }, { - "id": "26aba23f-8567-4e9b-bd45-c26724030f33", + "id": "b916c09a-8848-4500-a1a0-0cc09e8f23c1", "type": "basic.input", "data": { - "name": "cnt", + "name": "load", "clock": false }, "position": { - "x": 240, - "y": 384 + "x": 224, + "y": 800 } }, { - "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "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 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 == mod);\n ", - "params": [], + "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": "rst" + "name": "si" }, { - "name": "mod", - "range": "[1:0]", - "size": 2 + "name": "d", + "range": "[7:0]", + "size": 8 }, { - "name": "cnt" + "name": "load" + }, + { + "name": "shift" } ], "out": [ { - "name": "q", - "range": "[1:0]", - "size": 2 + "name": "so" }, { - "name": "ov" + "name": "q", + "range": "[7:0]", + "size": 8 } ] } }, "position": { - "x": 408, - "y": 160 + "x": 440, + "y": 656 }, "size": { - "width": 336, - "height": 296 + "width": 464, + "height": 232 } } ], "wires": [ { "source": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "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": "7a982450-c842-4aa2-8e77-43cc628266e0", + "block": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", "port": "in" }, - "size": 2 + "size": 8 }, { "source": { - "block": "743b5299-2d89-4783-b7c9-12a5b36df406", + "block": "a265c13d-af7a-437b-97ae-424872381a93", "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "rst" + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "clk" } }, { "source": { - "block": "26aba23f-8567-4e9b-bd45-c26724030f33", + "block": "02007399-7499-4b76-ad4f-91094344d055", "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "cnt" + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "si" } }, { "source": { - "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "block": "05394100-6c4a-4bd5-b479-739c16ede30c", "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "clk" - } + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "d" + }, + "size": 8 }, { "source": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "ov" + "block": "ec65c3cd-0951-4d74-bbfc-c37f87a78e66", + "port": "out" }, "target": { - "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", - "port": "in" + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "shift" } }, { "source": { - "block": "4cafbdca-bdb2-421a-a742-f5de7a452c86", + "block": "b916c09a-8848-4500-a1a0-0cc09e8f23c1", "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "mod" + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "load" + } + }, + { + "source": { + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "so" }, - "size": 2 + "target": { + "block": "21039c06-c932-498c-968d-879a68d66795", + "port": "in" + } } ] } } }, - "56cc183f8c704107b94d882715f6e43592dcaf61": { + "5483349a60d7c0f7f4146228196d6f4c4ad7604d": { "package": { - "name": "Mux 4 a 1 de 8 bits", - "version": "0.0.1", - "description": "Multiplexor de 4 a 1 de 8 bits", - "author": "Juan Gonzalez-Gomez (obijuan)", - "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" + "name": "machine-loop", + "version": "0.1", + "description": "Máquina para hacer repeticiones", + "author": "Juan González-Gómez (Obijuan)", + "image": "" }, "design": { "graph": { "blocks": [ { - "id": "fbc03b1e-bcb0-42b2-9b09-33968aa35d0f", + "id": "162f5f2d-17dc-4d0e-b6f9-6ebdf74392f0", + "type": "basic.output", + "data": { + "name": "exec" + }, + "position": { + "x": 1352, + "y": 224 + } + }, + { + "id": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 48, + "y": 280 + } + }, + { + "id": "8a0d51b6-8ab0-4ca6-8d57-7fa7e713c738", + "type": "basic.input", + "data": { + "name": "mod", + "range": "[1:0]", + "clock": false, + "size": 2 + }, + "position": { + "x": 48, + "y": 400 + } + }, + { + "id": "f966672f-ae05-4499-8a8d-3c9394a1119e", "type": "basic.input", "data": { - "name": "i3", - "range": "[7:0]", - "clock": false, - "size": 8 + "name": "next", + "clock": false }, "position": { - "x": -712, - "y": -200 + "x": 48, + "y": 464 } }, { - "id": "350946d5-2f29-4190-bcf2-e14e17224bb4", - "type": "basic.input", + "id": "453471d0-fe0d-4cbf-a4df-411b6035dd44", + "type": "basic.output", "data": { - "name": "i2", - "range": "[7:0]", - "clock": false, - "size": 8 + "name": "busy" }, "position": { - "x": -712, - "y": -128 + "x": 1224, + "y": 528 } }, { - "id": "bc9544e0-2199-4d6a-a6b9-6550b7dd7633", + "id": "0319df1a-5bd5-4abc-8681-6f3a8fa4e108", "type": "basic.input", "data": { - "name": "i1", - "range": "[7:0]", - "clock": false, - "size": 8 + "name": "start", + "clock": false }, "position": { - "x": -712, - "y": -48 + "x": 40, + "y": 608 } }, { - "id": "820e19c9-d979-418f-b2e5-d806fa3caca3", + "id": "088c7d8e-99b1-4f2e-a6c0-a672e5239844", "type": "basic.output", "data": { - "name": "o", - "range": "[7:0]", - "size": 8 + "name": "", + "range": "[1:0]", + "size": 2 }, "position": { - "x": 0, - "y": -8 + "x": 1208, + "y": 720 } }, { - "id": "1f4c1c55-ee75-41d6-8590-b4e650d636cc", - "type": "basic.input", + "id": "5dc54e8b-49c1-4ddb-94ab-843b247b73c4", + "type": "basic.output", "data": { - "name": "i0", - "range": "[7:0]", - "clock": false, - "size": 8 + "name": "done" }, "position": { - "x": -712, - "y": 16 + "x": 1208, + "y": 792 } }, { - "id": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", - "type": "basic.input", - "data": { - "name": "sel1", - "clock": false + "id": "576020ce-bd52-4c01-8d5c-28605e677436", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 304, + "y": 592 }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "728a5e86-7762-44da-8f55-f0f6c949abf2", + "type": "8e2728307baccbf26c01cdb87bcfba8ca64a435c", "position": { - "x": -704, - "y": 112 + "x": 496, + "y": 328 + }, + "size": { + "width": 96, + "height": 64 } }, { - "id": "2cd7e8ed-1ed2-4a5c-a72a-337d703c9712", - "type": "basic.input", - "data": { - "name": "sel0", - "clock": false + "id": "18d5bf1a-171b-4474-9505-b9be4292c1ec", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "position": { + "x": 1064, + "y": 416 }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", "position": { - "x": -704, - "y": 176 + "x": 1192, + "y": 432 + }, + "size": { + "width": 96, + "height": 64 } }, { - "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "type": "basic.code", - "data": { - "code": "//-- Multiplexor de 4 a 1, \n//-- de 8 bits\n\nwire [1:0] sel = {s1, s0};\n\nassign o = (sel == 2'b00) ? i0 :\n (sel == 2'b01) ? i1 :\n (sel == 2'b10) ? i2 : i3;\n\n", - "params": [], - "ports": { - "in": [ - { - "name": "i3", - "range": "[7:0]", - "size": 8 - }, - { - "name": "i2", - "range": "[7:0]", - "size": 8 - }, - { - "name": "i1", - "range": "[7:0]", - "size": 8 - }, - { - "name": "i0", - "range": "[7:0]", - "size": 8 - }, - { - "name": "s1" - }, - { - "name": "s0" - } - ], - "out": [ - { - "name": "o", - "range": "[7:0]", - "size": 8 - } - ] - } + "id": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", + "position": { + "x": 912, + "y": 432 }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", "position": { - "x": -464, - "y": -104 + "x": 688, + "y": 448 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "27312c73-6414-4f2e-88e3-e4fd9eb4d2ca", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 464, + "y": 792 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", + "type": "7eacdff4ce248b009935725889c8ae3339817d76", + "position": { + "x": 912, + "y": 672 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "8934d1b4-e751-4360-8a2c-fcc90c045fec", + "type": "b82ff1ae5d4441d6da2bec090398f0eb86405bf4", + "position": { + "x": 696, + "y": 776 + }, + "size": { + "width": 96, + "height": 128 + } + } + ], + "wires": [ + { + "source": { + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "728a5e86-7762-44da-8f55-f0f6c949abf2", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + }, + "vertices": [] + }, + { + "source": { + "block": "728a5e86-7762-44da-8f55-f0f6c949abf2", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" + }, + "target": { + "block": "18d5bf1a-171b-4474-9505-b9be4292c1ec", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "162f5f2d-17dc-4d0e-b6f9-6ebdf74392f0", + "port": "in" + }, + "vertices": [] + }, + { + "source": { + "block": "18d5bf1a-171b-4474-9505-b9be4292c1ec", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, - "size": { - "width": 352, - "height": 256 - } - } - ], - "wires": [ + "vertices": [] + }, { "source": { - "block": "2cd7e8ed-1ed2-4a5c-a72a-337d703c9712", - "port": "out" + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "s0" - } + "block": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] }, { "source": { - "block": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", - "port": "out" + "block": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "s1" + "block": "18d5bf1a-171b-4474-9505-b9be4292c1ec", + "port": "97b51945-d716-4b6c-9db9-970d08541249" }, - "vertices": [ - { - "x": -520, - "y": 104 - } - ] + "vertices": [] }, { "source": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "o" + "block": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "820e19c9-d979-418f-b2e5-d806fa3caca3", - "port": "in" + "block": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" }, - "size": 8 + "vertices": [] }, { "source": { - "block": "1f4c1c55-ee75-41d6-8590-b4e650d636cc", + "block": "0319df1a-5bd5-4abc-8681-6f3a8fa4e108", "port": "out" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i0" + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + } + }, + { + "source": { + "block": "f966672f-ae05-4499-8a8d-3c9394a1119e", + "port": "out" }, - "size": 8 + "target": { + "block": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + } }, { "source": { - "block": "bc9544e0-2199-4d6a-a6b9-6550b7dd7633", + "block": "f966672f-ae05-4499-8a8d-3c9394a1119e", "port": "out" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i1" + "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", + "port": "26aba23f-8567-4e9b-bd45-c26724030f33" }, "vertices": [ { - "x": -576, - "y": 0 + "x": 592, + "y": 712 } - ], - "size": 8 + ] }, { "source": { - "block": "350946d5-2f29-4190-bcf2-e14e17224bb4", - "port": "out" + "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i2" + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" }, "vertices": [ { - "x": -576, - "y": -72 + "x": 824, + "y": 920 } - ], - "size": 8 + ] }, { "source": { - "block": "fbc03b1e-bcb0-42b2-9b09-33968aa35d0f", - "port": "out" + "block": "27312c73-6414-4f2e-88e3-e4fd9eb4d2ca", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i3" + "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", + "port": "743b5299-2d89-4783-b7c9-12a5b36df406" + } + }, + { + "source": { + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "27312c73-6414-4f2e-88e3-e4fd9eb4d2ca", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + } + }, + { + "source": { + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" }, "vertices": [ { - "x": -544, - "y": -128 + "x": 824, + "y": 664 } - ], - "size": 8 - } - ] - } - } - }, - "eebee1482748e838ffef3618817cc1fa911e4952": { - "package": { - "name": "Mux 2 a 1 de 2 bits", - "version": "0.0.1", - "description": "Multiplexor de 2 a 1 de 2 bits", - "author": "Juan Gonzalez-Gomez (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" - }, - "design": { - "graph": { - "blocks": [ + ] + }, { - "id": "d220e4a2-bec7-4852-84bd-2baf3df5ccdb", - "type": "basic.input", - "data": { - "name": "i1", - "range": "[1:0]", - "clock": false, - "size": 2 + "source": { + "block": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" }, - "position": { - "x": -704, - "y": -88 + "target": { + "block": "5dc54e8b-49c1-4ddb-94ab-843b247b73c4", + "port": "in" } }, { - "id": "ca28abaf-359d-4f8f-a397-91d76dc936ec", - "type": "basic.output", - "data": { - "name": "o", - "range": "[1:0]", - "size": 2 + "source": { + "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", + "port": "out" }, - "position": { - "x": -48, - "y": 0 + "target": { + "block": "728a5e86-7762-44da-8f55-f0f6c949abf2", + "port": "4196184b-4a60-493b-bcc6-c95958483683" } }, { - "id": "8197e6c5-cf9d-42d6-a9e9-3ecccafa27c2", - "type": "basic.input", - "data": { - "name": "i0", - "range": "[1:0]", - "clock": false, - "size": 2 + "source": { + "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", + "port": "out" }, - "position": { - "x": -704, - "y": 0 + "target": { + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" } }, { - "id": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", - "type": "basic.input", - "data": { - "name": "sel", - "clock": false + "source": { + "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", + "port": "out" }, - "position": { - "x": -704, - "y": 88 + "target": { + "block": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" } }, { - "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "type": "basic.code", - "data": { - "code": "//-- Multiplexor de 2 a 1, \n//-- de 2 bits\n\nreg [1:0] o;\n\nalways @(*) begin\n case(sel)\n 0: o = i0;\n 1: o = i1;\n default: o = i0;\n endcase\nend\n\n", - "params": [], - "ports": { - "in": [ - { - "name": "i1", - "range": "[1:0]", - "size": 2 - }, - { - "name": "i0", - "range": "[1:0]", - "size": 2 - }, - { - "name": "sel" - } - ], - "out": [ - { - "name": "o", - "range": "[1:0]", - "size": 2 - } - ] - } + "source": { + "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", + "port": "out" }, - "position": { - "x": -464, - "y": -104 + "target": { + "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", + "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" }, - "size": { - "width": 304, - "height": 272 + "vertices": [ + { + "x": 640, + "y": 664 + } + ] + }, + { + "source": { + "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", + "port": "out" + }, + "target": { + "block": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" } - } - ], - "wires": [ + }, { "source": { - "block": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", + "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", "port": "out" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "sel" + "block": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", + "port": "4196184b-4a60-493b-bcc6-c95958483683" } }, { "source": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "o" + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "ca28abaf-359d-4f8f-a397-91d76dc936ec", + "block": "453471d0-fe0d-4cbf-a4df-411b6035dd44", "port": "in" - }, - "size": 2 + } }, { "source": { - "block": "d220e4a2-bec7-4852-84bd-2baf3df5ccdb", - "port": "out" + "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", + "port": "7a982450-c842-4aa2-8e77-43cc628266e0" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i1" + "block": "088c7d8e-99b1-4f2e-a6c0-a672e5239844", + "port": "in" }, + "vertices": [ + { + "x": 1048, + "y": 760 + } + ], "size": 2 }, { "source": { - "block": "8197e6c5-cf9d-42d6-a9e9-3ecccafa27c2", + "block": "8a0d51b6-8ab0-4ca6-8d57-7fa7e713c738", "port": "out" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i0" + "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", + "port": "4cafbdca-bdb2-421a-a742-f5de7a452c86" }, + "vertices": [ + { + "x": 616, + "y": 616 + } + ], "size": 2 } ] } } }, - "945d5c43e22d4f1d3f8e379417d47f170e4adcf6": { + "b82ff1ae5d4441d6da2bec090398f0eb86405bf4": { "package": { - "name": "Valor_2_2bits", - "version": "0.0.1", - "description": "Valor constante 2 para bus de 2 bits", - "author": "Juan Gonzalez-Gomez (Obijuan)", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22138.81%22%20height=%22305.779%22%20viewBox=%220%200%20130.13472%20286.66758%22%3E%3Cg%20font-weight=%22400%22%20font-family=%22Ubuntu%20Mono%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-size=%22335.399%22%20fill=%22green%22%20transform=%22translate(-312.233%20-436.037)%22%3E%3Ctspan%20x=%22293.115%22%20y=%22648.344%22%3E2%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22341.722%22%20y=%22721.624%22%20font-size=%2283.077%22%20transform=%22translate(-312.233%20-436.037)%22%3E%3Ctspan%20x=%22341.722%22%20y=%22721.624%22%3E10%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" + "name": "Contador-2bits-up-rst-mod-M", + "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": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", - "type": "basic.output", + "id": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "type": "basic.input", "data": { - "name": "k", - "range": "[1:0]", - "size": 2 + "name": "", + "clock": true }, "position": { - "x": 928, - "y": 256 + "x": 240, + "y": 168 } }, { - "id": "ad7918eb-22dd-4b6c-949f-e428f5a55530", - "type": "basic.constant", + "id": "7a982450-c842-4aa2-8e77-43cc628266e0", + "type": "basic.output", "data": { "name": "", - "value": "2", - "local": true + "range": "[1:0]", + "size": 2 }, "position": { - "x": 728, - "y": 144 + "x": 800, + "y": 200 } }, { - "id": "ca6198dd-3208-49f0-8089-7a221c78637d", - "type": "1577535d38e0077281a8de7dc00933b07ec4f543", - "position": { - "x": 728, - "y": 256 + "id": "743b5299-2d89-4783-b7c9-12a5b36df406", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": 240, + "y": 240 } - } - ], - "wires": [ - { - "source": { - "block": "ca6198dd-3208-49f0-8089-7a221c78637d", - "port": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26" - }, - "target": { - "block": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", - "port": "in" - }, - "size": 2 }, { - "source": { - "block": "ad7918eb-22dd-4b6c-949f-e428f5a55530", - "port": "constant-out" + "id": "4cafbdca-bdb2-421a-a742-f5de7a452c86", + "type": "basic.input", + "data": { + "name": "mod", + "range": "[1:0]", + "clock": false, + "size": 2 }, - "target": { - "block": "ca6198dd-3208-49f0-8089-7a221c78637d", - "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" + "position": { + "x": 240, + "y": 312 } - } - ] - } - } - }, - "1577535d38e0077281a8de7dc00933b07ec4f543": { - "package": { - "name": "Constante-2bits", - "version": "0.0.1", - "description": "Valor genérico constante, de 2 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=%22145.608%22%20height=%22247.927%22%20viewBox=%220%200%20136.50729%20232.43134%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-weight=%22400%22%20font-size=%22335.399%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%3Ek%3C/tspan%3E%3C/text%3E%3C/svg%3E" - }, - "design": { - "graph": { - "blocks": [ + }, { - "id": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26", + "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", "type": "basic.output", "data": { - "name": "k", - "range": "[1:0]", - "size": 2 + "name": "ov" }, "position": { - "x": 960, - "y": 248 + "x": 800, + "y": 352 } }, { - "id": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", - "type": "basic.constant", + "id": "26aba23f-8567-4e9b-bd45-c26724030f33", + "type": "basic.input", "data": { - "name": "", - "value": "0", - "local": false + "name": "cnt", + "clock": false }, "position": { - "x": 728, - "y": 112 + "x": 240, + "y": 384 } }, { - "id": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", + "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", "type": "basic.code", "data": { - "code": "assign k = VALUE;", - "params": [ - { - "name": "VALUE" - } - ], + "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 == mod);\n ", + "params": [], "ports": { - "in": [], + "in": [ + { + "name": "clk" + }, + { + "name": "rst" + }, + { + "name": "mod", + "range": "[1:0]", + "size": 2 + }, + { + "name": "cnt" + } + ], "out": [ { - "name": "k", + "name": "q", "range": "[1:0]", "size": 2 + }, + { + "name": "ov" } ] } }, "position": { - "x": 672, - "y": 248 + "x": 408, + "y": 160 }, "size": { - "width": 208, - "height": 64 + "width": 336, + "height": 296 } } ], "wires": [ { "source": { - "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", - "port": "k" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "q" }, "target": { - "block": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26", + "block": "7a982450-c842-4aa2-8e77-43cc628266e0", "port": "in" }, "size": 2 }, { "source": { - "block": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", - "port": "constant-out" + "block": "743b5299-2d89-4783-b7c9-12a5b36df406", + "port": "out" + }, + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "rst" + } + }, + { + "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": "4cafbdca-bdb2-421a-a742-f5de7a452c86", + "port": "out" }, "target": { - "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", - "port": "VALUE" - } + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "mod" + }, + "size": 2 } ] } } }, - "ceff2da3577d3e4da3ad522a234b993cfc71e21a": { + "56cc183f8c704107b94d882715f6e43592dcaf61": { "package": { - "name": "Valor_3_2bits", + "name": "Mux 4 a 1 de 8 bits", "version": "0.0.1", - "description": "Valor constante 3 para bus de 2 bits", - "author": "Juan Gonzalez-Gomez (Obijuan)", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22137.022%22%20height=%22304.627%22%20viewBox=%220%200%20128.45774%20285.58757%22%3E%3Cg%20font-weight=%22400%22%20font-family=%22Ubuntu%20Mono%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-size=%22335.399%22%20fill=%22green%22%20transform=%22translate(-312.904%20-436.037)%22%3E%3Ctspan%20x=%22293.115%22%20y=%22648.344%22%3E3%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22341.722%22%20y=%22721.624%22%20font-size=%2283.077%22%20transform=%22translate(-312.904%20-436.037)%22%3E%3Ctspan%20x=%22341.722%22%20y=%22721.624%22%3E11%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" + "description": "Multiplexor de 4 a 1 de 8 bits", + "author": "Juan Gonzalez-Gomez (obijuan)", + "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": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", - "type": "basic.output", + "id": "fbc03b1e-bcb0-42b2-9b09-33968aa35d0f", + "type": "basic.input", "data": { - "name": "k", - "range": "[1:0]", - "size": 2 + "name": "i3", + "range": "[7:0]", + "clock": false, + "size": 8 }, "position": { - "x": 928, - "y": 256 + "x": -712, + "y": -200 } }, { - "id": "ad7918eb-22dd-4b6c-949f-e428f5a55530", - "type": "basic.constant", + "id": "350946d5-2f29-4190-bcf2-e14e17224bb4", + "type": "basic.input", "data": { - "name": "", - "value": "3", - "local": true + "name": "i2", + "range": "[7:0]", + "clock": false, + "size": 8 }, "position": { - "x": 728, - "y": 152 + "x": -712, + "y": -128 } }, { - "id": "cfb4d1d2-7686-45c7-9af0-0293f03a9881", - "type": "1577535d38e0077281a8de7dc00933b07ec4f543", - "position": { - "x": 728, - "y": 256 + "id": "bc9544e0-2199-4d6a-a6b9-6550b7dd7633", + "type": "basic.input", + "data": { + "name": "i1", + "range": "[7:0]", + "clock": false, + "size": 8 }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": -712, + "y": -48 } - } - ], - "wires": [ - { - "source": { - "block": "cfb4d1d2-7686-45c7-9af0-0293f03a9881", - "port": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26" - }, - "target": { - "block": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", - "port": "in" - }, - "size": 2 }, { - "source": { - "block": "ad7918eb-22dd-4b6c-949f-e428f5a55530", - "port": "constant-out" + "id": "820e19c9-d979-418f-b2e5-d806fa3caca3", + "type": "basic.output", + "data": { + "name": "o", + "range": "[7:0]", + "size": 8 }, - "target": { - "block": "cfb4d1d2-7686-45c7-9af0-0293f03a9881", - "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" + "position": { + "x": 0, + "y": -8 } - } - ] - } - } - }, - "a475867b1a8ac28299ed315b271747ba4ec10c54": { - "package": { - "name": "mi-tabla2-2", - "version": "0.1", - "description": "Circuito combinacional de 2 entradas y 2 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=%22268.594%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=%22268.594%22%20y=%22368.911%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%20font-size=%2270%22%3EBIN%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" - }, - "design": { - "graph": { - "blocks": [ + }, { - "id": "186c4116-7846-4c8e-98a0-7376675105f1", + "id": "1f4c1c55-ee75-41d6-8590-b4e650d636cc", "type": "basic.input", "data": { - "name": "", - "range": "[1:0]", + "name": "i0", + "range": "[7:0]", "clock": false, - "size": 2 + "size": 8 }, "position": { - "x": -8, - "y": 424 + "x": -712, + "y": 16 } }, { - "id": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", - "type": "basic.output", + "id": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", + "type": "basic.input", "data": { - "name": "", - "range": "[1:0]", - "size": 2 + "name": "sel1", + "clock": false }, "position": { - "x": 632, - "y": 424 + "x": -704, + "y": 112 } }, { - "id": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", - "type": "basic.memory", + "id": "2cd7e8ed-1ed2-4a5c-a72a-337d703c9712", + "type": "basic.input", "data": { - "name": "", - "list": "0\n0\n0\n0", - "local": false + "name": "sel0", + "clock": false }, "position": { - "x": 328, - "y": 96 - }, - "size": { - "width": 96, - "height": 104 + "x": -704, + "y": 176 } }, { - "id": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", "type": "basic.code", "data": { - "code": "\n//-- Bits del bus de entrada\nlocalparam N = 2;\n\n//-- Bits del bus de salida\nlocalparam M = 2;\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) $readmemb(DATA, tabla);\nend", - "params": [ - { - "name": "DATA" - } - ], + "code": "//-- Multiplexor de 4 a 1, \n//-- de 8 bits\n\nwire [1:0] sel = {s1, s0};\n\nassign o = (sel == 2'b00) ? i0 :\n (sel == 2'b01) ? i1 :\n (sel == 2'b10) ? i2 : i3;\n\n", + "params": [], "ports": { "in": [ { - "name": "i", - "range": "[1:0]", - "size": 2 + "name": "i3", + "range": "[7:0]", + "size": 8 + }, + { + "name": "i2", + "range": "[7:0]", + "size": 8 + }, + { + "name": "i1", + "range": "[7:0]", + "size": 8 + }, + { + "name": "i0", + "range": "[7:0]", + "size": 8 + }, + { + "name": "s1" + }, + { + "name": "s0" } ], "out": [ { - "name": "q", - "range": "[1:0]", - "size": 2 + "name": "o", + "range": "[7:0]", + "size": 8 } ] } }, "position": { - "x": 176, - "y": 264 + "x": -464, + "y": -104 + }, + "size": { + "width": 352, + "height": 256 + } + } + ], + "wires": [ + { + "source": { + "block": "2cd7e8ed-1ed2-4a5c-a72a-337d703c9712", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "s0" + } + }, + { + "source": { + "block": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "s1" + }, + "vertices": [ + { + "x": -520, + "y": 104 + } + ] + }, + { + "source": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "o" + }, + "target": { + "block": "820e19c9-d979-418f-b2e5-d806fa3caca3", + "port": "in" + }, + "size": 8 + }, + { + "source": { + "block": "1f4c1c55-ee75-41d6-8590-b4e650d636cc", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i0" }, - "size": { - "width": 392, - "height": 384 - } - } - ], - "wires": [ + "size": 8 + }, { "source": { - "block": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", - "port": "memory-out" + "block": "bc9544e0-2199-4d6a-a6b9-6550b7dd7633", + "port": "out" }, "target": { - "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", - "port": "DATA" - } + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i1" + }, + "vertices": [ + { + "x": -576, + "y": 0 + } + ], + "size": 8 }, { "source": { - "block": "186c4116-7846-4c8e-98a0-7376675105f1", + "block": "350946d5-2f29-4190-bcf2-e14e17224bb4", "port": "out" }, "target": { - "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", - "port": "i" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i2" }, - "size": 2 + "vertices": [ + { + "x": -576, + "y": -72 + } + ], + "size": 8 }, { "source": { - "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", - "port": "q" + "block": "fbc03b1e-bcb0-42b2-9b09-33968aa35d0f", + "port": "out" }, "target": { - "block": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", - "port": "in" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i3" }, - "size": 2 + "vertices": [ + { + "x": -544, + "y": -128 + } + ], + "size": 8 } ] } } }, - "359a555a147b0afd9d84e4a720ec84b7cdfbc034": { + "eebee1482748e838ffef3618817cc1fa911e4952": { "package": { - "name": "Mux 2 a 1 de 8 bits", + "name": "Mux 2 a 1 de 2 bits", "version": "0.0.1", - "description": "Multiplexor de 2 a 1 de 8 bits", + "description": "Multiplexor de 2 a 1 de 2 bits", "author": "Juan Gonzalez-Gomez (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" }, @@ -11020,13 +11039,13 @@ "graph": { "blocks": [ { - "id": "9f5a1c91-1b93-4609-877c-816ed8fd0871", + "id": "d220e4a2-bec7-4852-84bd-2baf3df5ccdb", "type": "basic.input", "data": { "name": "i1", - "range": "[7:0]", + "range": "[1:0]", "clock": false, - "size": 8 + "size": 2 }, "position": { "x": -704, @@ -11034,29 +11053,29 @@ } }, { - "id": "325fbba1-e929-4921-a644-95f918e6e4ee", - "type": "basic.input", + "id": "ca28abaf-359d-4f8f-a397-91d76dc936ec", + "type": "basic.output", "data": { - "name": "i0", - "range": "[7:0]", - "clock": false, - "size": 8 + "name": "o", + "range": "[1:0]", + "size": 2 }, "position": { - "x": -704, + "x": -48, "y": 0 } }, { - "id": "bf25756a-65a4-4b09-915d-494010d6f4ff", - "type": "basic.output", + "id": "8197e6c5-cf9d-42d6-a9e9-3ecccafa27c2", + "type": "basic.input", "data": { - "name": "o", - "range": "[7:0]", - "size": 8 + "name": "i0", + "range": "[1:0]", + "clock": false, + "size": 2 }, "position": { - "x": -48, + "x": -704, "y": 0 } }, @@ -11076,19 +11095,19 @@ "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", "type": "basic.code", "data": { - "code": "//-- Multiplexor de 2 a 1, \n//-- de 8 bits\n\nreg [7:0] o;\n\nalways @(*) begin\n case(sel)\n 0: o = i0;\n 1: o = i1;\n default: o = i0;\n endcase\nend\n\n", + "code": "//-- Multiplexor de 2 a 1, \n//-- de 2 bits\n\nreg [1:0] o;\n\nalways @(*) begin\n case(sel)\n 0: o = i0;\n 1: o = i1;\n default: o = i0;\n endcase\nend\n\n", "params": [], "ports": { "in": [ { "name": "i1", - "range": "[7:0]", - "size": 8 + "range": "[1:0]", + "size": 2 }, { "name": "i0", - "range": "[7:0]", - "size": 8 + "range": "[1:0]", + "size": 2 }, { "name": "sel" @@ -11097,8 +11116,8 @@ "out": [ { "name": "o", - "range": "[7:0]", - "size": 8 + "range": "[1:0]", + "size": 2 } ] } @@ -11126,121 +11145,163 @@ }, { "source": { - "block": "325fbba1-e929-4921-a644-95f918e6e4ee", - "port": "out" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "o" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i0" + "block": "ca28abaf-359d-4f8f-a397-91d76dc936ec", + "port": "in" }, - "size": 8 + "size": 2 }, { "source": { - "block": "9f5a1c91-1b93-4609-877c-816ed8fd0871", + "block": "d220e4a2-bec7-4852-84bd-2baf3df5ccdb", "port": "out" }, "target": { "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", "port": "i1" }, - "size": 8 + "size": 2 }, { "source": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "o" + "block": "8197e6c5-cf9d-42d6-a9e9-3ecccafa27c2", + "port": "out" }, "target": { - "block": "bf25756a-65a4-4b09-915d-494010d6f4ff", - "port": "in" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i0" }, - "size": 8 + "size": 2 } ] } } }, - "d9a3cf565602d237c50136543d558affa15c7654": { + "945d5c43e22d4f1d3f8e379417d47f170e4adcf6": { "package": { - "name": "Igual-1-op", - "version": "0.1", - "description": "Comparador de igualdad, de un operando de 3 bits", + "name": "Valor_2_2bits", + "version": "0.0.1", + "description": "Valor constante 2 para bus de 2 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" + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22138.81%22%20height=%22305.779%22%20viewBox=%220%200%20130.13472%20286.66758%22%3E%3Cg%20font-weight=%22400%22%20font-family=%22Ubuntu%20Mono%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-size=%22335.399%22%20fill=%22green%22%20transform=%22translate(-312.233%20-436.037)%22%3E%3Ctspan%20x=%22293.115%22%20y=%22648.344%22%3E2%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22341.722%22%20y=%22721.624%22%20font-size=%2283.077%22%20transform=%22translate(-312.233%20-436.037)%22%3E%3Ctspan%20x=%22341.722%22%20y=%22721.624%22%3E10%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" }, "design": { "graph": { "blocks": [ { - "id": "0344dacc-8583-456b-b377-8cb4ab97cf94", + "id": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", "type": "basic.output", "data": { - "name": "" + "name": "k", + "range": "[1:0]", + "size": 2 }, "position": { - "x": 616, - "y": 160 + "x": 928, + "y": 256 } }, { - "id": "0867b1bc-1cc5-4707-8ddb-40d0318d237c", - "type": "basic.input", + "id": "ad7918eb-22dd-4b6c-949f-e428f5a55530", + "type": "basic.constant", "data": { "name": "", - "range": "[2:0]", - "clock": false, - "size": 3 + "value": "2", + "local": true }, "position": { - "x": 152, - "y": 160 + "x": 728, + "y": 144 } }, { - "id": "437fac17-b8b4-4d9f-8d03-27300b3b9466", - "type": "basic.constant", + "id": "ca6198dd-3208-49f0-8089-7a221c78637d", + "type": "1577535d38e0077281a8de7dc00933b07ec4f543", + "position": { + "x": 728, + "y": 256 + }, + "size": { + "width": 96, + "height": 64 + } + } + ], + "wires": [ + { + "source": { + "block": "ca6198dd-3208-49f0-8089-7a221c78637d", + "port": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26" + }, + "target": { + "block": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", + "port": "in" + }, + "size": 2 + }, + { + "source": { + "block": "ad7918eb-22dd-4b6c-949f-e428f5a55530", + "port": "constant-out" + }, + "target": { + "block": "ca6198dd-3208-49f0-8089-7a221c78637d", + "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" + } + } + ] + } + } + }, + "ceff2da3577d3e4da3ad522a234b993cfc71e21a": { + "package": { + "name": "Valor_3_2bits", + "version": "0.0.1", + "description": "Valor constante 3 para bus de 2 bits", + "author": "Juan Gonzalez-Gomez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22137.022%22%20height=%22304.627%22%20viewBox=%220%200%20128.45774%20285.58757%22%3E%3Cg%20font-weight=%22400%22%20font-family=%22Ubuntu%20Mono%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-size=%22335.399%22%20fill=%22green%22%20transform=%22translate(-312.904%20-436.037)%22%3E%3Ctspan%20x=%22293.115%22%20y=%22648.344%22%3E3%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22341.722%22%20y=%22721.624%22%20font-size=%2283.077%22%20transform=%22translate(-312.904%20-436.037)%22%3E%3Ctspan%20x=%22341.722%22%20y=%22721.624%22%3E11%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", + "type": "basic.output", "data": { - "name": "", - "value": "0", - "local": false + "name": "k", + "range": "[1:0]", + "size": 2 }, "position": { - "x": 408, - "y": 48 + "x": 928, + "y": 256 } }, { - "id": "9c811723-c900-4ceb-9989-036b071ee3fe", - "type": "basic.code", + "id": "ad7918eb-22dd-4b6c-949f-e428f5a55530", + "type": "basic.constant", "data": { - "code": "assign eq = (a == B);", - "params": [ - { - "name": "B" - } - ], - "ports": { - "in": [ - { - "name": "a", - "range": "[2:0]", - "size": 3 - } - ], - "out": [ - { - "name": "eq" - } - ] - } + "name": "", + "value": "3", + "local": true }, "position": { - "x": 344, - "y": 160 + "x": 728, + "y": 152 + } + }, + { + "id": "cfb4d1d2-7686-45c7-9af0-0293f03a9881", + "type": "1577535d38e0077281a8de7dc00933b07ec4f543", + "position": { + "x": 728, + "y": 256 }, "size": { - "width": 224, + "width": 96, "height": 64 } } @@ -11248,46 +11309,36 @@ "wires": [ { "source": { - "block": "9c811723-c900-4ceb-9989-036b071ee3fe", - "port": "eq" + "block": "cfb4d1d2-7686-45c7-9af0-0293f03a9881", + "port": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26" }, "target": { - "block": "0344dacc-8583-456b-b377-8cb4ab97cf94", + "block": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", "port": "in" - } - }, - { - "source": { - "block": "0867b1bc-1cc5-4707-8ddb-40d0318d237c", - "port": "out" - }, - "target": { - "block": "9c811723-c900-4ceb-9989-036b071ee3fe", - "port": "a" }, - "size": 3 + "size": 2 }, { "source": { - "block": "437fac17-b8b4-4d9f-8d03-27300b3b9466", + "block": "ad7918eb-22dd-4b6c-949f-e428f5a55530", "port": "constant-out" }, "target": { - "block": "9c811723-c900-4ceb-9989-036b071ee3fe", - "port": "B" + "block": "cfb4d1d2-7686-45c7-9af0-0293f03a9881", + "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" } } ] } } }, - "fbbede7f059cd50db81d1e80b2e575ed877c91a0": { + "a475867b1a8ac28299ed315b271747ba4ec10c54": { "package": { - "name": "mi-tabla2-8", + "name": "mi-tabla2-2", "version": "0.1", - "description": "Circuito combinacional de 2 entradas y 8 salidas", + "description": "Circuito combinacional de 2 entradas y 2 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" + "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=%22268.594%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=%22268.594%22%20y=%22368.911%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%20font-size=%2270%22%3EBIN%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" }, "design": { "graph": { @@ -11311,8 +11362,8 @@ "type": "basic.output", "data": { "name": "", - "range": "[7:0]", - "size": 8 + "range": "[1:0]", + "size": 2 }, "position": { "x": 632, @@ -11340,7 +11391,7 @@ "id": "48c38eba-4e12-44d9-a55b-a93def6a27db", "type": "basic.code", "data": { - "code": "\n//-- Bits del bus de entrada\nlocalparam N = 2;\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", + "code": "\n//-- Bits del bus de entrada\nlocalparam N = 2;\n\n//-- Bits del bus de salida\nlocalparam M = 2;\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) $readmemb(DATA, tabla);\nend", "params": [ { "name": "DATA" @@ -11357,8 +11408,8 @@ "out": [ { "name": "q", - "range": "[7:0]", - "size": 8 + "range": "[1:0]", + "size": 2 } ] } @@ -11404,358 +11455,409 @@ "block": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", "port": "in" }, - "size": 8 + "size": 2 } ] } } }, - "18fd28fbb97a4fd982053988e015aa934dcd6014": { + "359a555a147b0afd9d84e4a720ec84b7cdfbc034": { "package": { - "name": "Valor_0_2bits", + "name": "Mux 2 a 1 de 8 bits", "version": "0.0.1", - "description": "Valor constante 0 para bus de 2 bits", - "author": "Juan Gonzalez-Gomez (Obijuan)", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22145.966%22%20height=%22305.779%22%20viewBox=%220%200%20136.8427%20286.66758%22%3E%3Cg%20font-weight=%22400%22%20font-family=%22Ubuntu%20Mono%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-size=%22335.399%22%20fill=%22green%22%20transform=%22translate(-308.544%20-436.037)%22%3E%3Ctspan%20x=%22293.115%22%20y=%22648.344%22%3E0%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22341.722%22%20y=%22721.624%22%20font-size=%2283.077%22%20transform=%22translate(-308.544%20-436.037)%22%3E%3Ctspan%20x=%22341.722%22%20y=%22721.624%22%3E00%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" + "description": "Multiplexor de 2 a 1 de 8 bits", + "author": "Juan Gonzalez-Gomez (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" }, "design": { "graph": { "blocks": [ { - "id": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", + "id": "9f5a1c91-1b93-4609-877c-816ed8fd0871", + "type": "basic.input", + "data": { + "name": "i1", + "range": "[7:0]", + "clock": false, + "size": 8 + }, + "position": { + "x": -704, + "y": -88 + } + }, + { + "id": "325fbba1-e929-4921-a644-95f918e6e4ee", + "type": "basic.input", + "data": { + "name": "i0", + "range": "[7:0]", + "clock": false, + "size": 8 + }, + "position": { + "x": -704, + "y": 0 + } + }, + { + "id": "bf25756a-65a4-4b09-915d-494010d6f4ff", "type": "basic.output", "data": { - "name": "k", - "range": "[1:0]", - "size": 2 + "name": "o", + "range": "[7:0]", + "size": 8 }, "position": { - "x": 928, - "y": 256 + "x": -48, + "y": 0 } }, { - "id": "ad7918eb-22dd-4b6c-949f-e428f5a55530", - "type": "basic.constant", + "id": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", + "type": "basic.input", "data": { - "name": "", - "value": "0", - "local": true + "name": "sel", + "clock": false }, "position": { - "x": 728, - "y": 136 + "x": -704, + "y": 88 } }, { - "id": "ae9e32fe-296d-4700-a429-1178ece2609d", - "type": "1577535d38e0077281a8de7dc00933b07ec4f543", + "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "type": "basic.code", + "data": { + "code": "//-- Multiplexor de 2 a 1, \n//-- de 8 bits\n\nreg [7:0] o;\n\nalways @(*) begin\n case(sel)\n 0: o = i0;\n 1: o = i1;\n default: o = i0;\n endcase\nend\n\n", + "params": [], + "ports": { + "in": [ + { + "name": "i1", + "range": "[7:0]", + "size": 8 + }, + { + "name": "i0", + "range": "[7:0]", + "size": 8 + }, + { + "name": "sel" + } + ], + "out": [ + { + "name": "o", + "range": "[7:0]", + "size": 8 + } + ] + } + }, "position": { - "x": 728, - "y": 256 + "x": -464, + "y": -104 }, "size": { - "width": 96, - "height": 64 + "width": 304, + "height": 272 } } ], "wires": [ { "source": { - "block": "ae9e32fe-296d-4700-a429-1178ece2609d", - "port": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26" + "block": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", + "port": "out" }, "target": { - "block": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", - "port": "in" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "sel" + } + }, + { + "source": { + "block": "325fbba1-e929-4921-a644-95f918e6e4ee", + "port": "out" }, - "size": 2 + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i0" + }, + "size": 8 }, { "source": { - "block": "ad7918eb-22dd-4b6c-949f-e428f5a55530", - "port": "constant-out" + "block": "9f5a1c91-1b93-4609-877c-816ed8fd0871", + "port": "out" }, "target": { - "block": "ae9e32fe-296d-4700-a429-1178ece2609d", - "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" - } + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i1" + }, + "size": 8 + }, + { + "source": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "o" + }, + "target": { + "block": "bf25756a-65a4-4b09-915d-494010d6f4ff", + "port": "in" + }, + "size": 8 } ] } } }, - "b0ff9e2bfc7cb15f6a8db0f0277dc257a3a8ca9f": { + "d9a3cf565602d237c50136543d558affa15c7654": { "package": { - "name": "ServoPWM-8bits", + "name": "Igual-1-op", "version": "0.1", - "description": "Controlador de servos, de 8 bits. El periodo del PWM por defecto es de 20ms (Futaba 3003)", - "author": "Juan González-Gómez", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%22-252%20400.9%20226.81476%20226.82651%22%20width=%22226.815%22%20height=%22226.827%22%3E%3Cpath%20d=%22M-218.227%20501.253v-1.36h-27.991a2.4%202.332%200%200%201-2.4-2.332v-65.674a2.4%202.332%200%200%201%202.4-2.331h27.991v-1.36a2.4%202.332%200%200%201%202.4-2.332h156.352a2.4%202.332%200%200%201%202.4%202.332v1.36h27.99a2.4%202.332%200%200%201%202.4%202.331v65.674a2.4%202.332%200%200%201-2.4%202.332h-27.99v1.36a2.4%202.332%200%200%201-2.4%202.332h-156.353a2.4%202.332%200%200%201-2.399-2.332%22%20fill=%22gray%22%20fill-rule=%22evenodd%22%20stroke=%22#191919%22%20stroke-width=%223%22/%3E%3Cellipse%20cy=%22-445.1%22%20cx=%22-235.421%22%20transform=%22scale(1%20-1)%22%20rx=%228.597%22%20ry=%228.355%22%20fill=%22#fff%22%20stroke=%22#191919%22%20stroke-width=%223.443%22/%3E%3Cellipse%20cy=%22-484.349%22%20cx=%22-235.421%22%20transform=%22scale(1%20-1)%22%20rx=%228.597%22%20ry=%228.355%22%20fill=%22#fff%22%20stroke=%22#191919%22%20stroke-width=%223.443%22/%3E%3Cellipse%20cy=%22-445.1%22%20cx=%22-39.881%22%20transform=%22scale(1%20-1)%22%20rx=%228.597%22%20ry=%228.355%22%20fill=%22#fff%22%20stroke=%22#191919%22%20stroke-width=%223.443%22/%3E%3Cellipse%20cy=%22-484.349%22%20cx=%22-39.881%22%20transform=%22scale(1%20-1)%22%20rx=%228.597%22%20ry=%228.355%22%20fill=%22#fff%22%20stroke=%22#191919%22%20stroke-width=%223.443%22/%3E%3Ctext%20style=%22line-height:0%25%22%20x=%22-176.454%22%20y=%22539.346%22%20font-weight=%22400%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20fill=%22#00f%22%3E%3Ctspan%20x=%22-176.454%22%20y=%22539.346%22%20style=%22line-height:1.25;-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%20font-size=%2241.631%22%3Ems%3C/tspan%3E%3C/text%3E%3Cpath%20d=%22M-218.332%20429.341v70.264M-57.268%20429.341v70.264%22%20opacity=%22.54%22%20fill=%22#fff%22%20stroke=%22#000%22%20stroke-width=%223%22%20stroke-linecap=%22square%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M-118.905%20443.988c-7.197%207.252-10.08%2017.69-7.545%2027.33%202.534%209.64%2010.093%2016.994%2019.791%2019.255%209.699%202.26%2020.04-.92%2027.077-8.33l35.68-79.843z%22%20fill=%22#4d4d4d%22%20stroke=%22#191919%22%20stroke-width=%223%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cg%20transform=%22matrix(2.3863%200%200%202.3863%20-456.494%20342.989)%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%20transform=%22matrix(3.09408%200%200%203.09408%20-550.829%2011.357)%22%20stroke=%22green%22%20stroke-linecap=%22round%22%3E%3Ccircle%20r=%2211.548%22%20cy=%22187.419%22%20cx=%22108.371%22%20fill=%22#ececec%22%20stroke-width=%22.483%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M116.477%20190.766h-1.325v-7.195h-13.576v7.139h-1.444%22%20fill=%22none%22%20stroke-width=%221.207%22/%3E%3C/g%3E%3C/svg%3E" + "description": "Comparador de igualdad, de un operando 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": "e88d7ecc-7ac9-486a-bac1-6a5f116d8564", - "type": "basic.input", - "data": { - "name": "", - "clock": true - }, - "position": { - "x": 1328, - "y": 488 - } - }, - { - "id": "fbd5aac5-ae58-4153-9a1e-a2bec9ce86b4", - "type": "basic.input", - "data": { - "name": "pos", - "range": "[7:0]", - "clock": false, - "size": 8 - }, - "position": { - "x": 1320, - "y": 664 - } - }, - { - "id": "17cd3530-95be-4f0b-897e-1893c9831f1b", + "id": "0344dacc-8583-456b-b377-8cb4ab97cf94", "type": "basic.output", - "data": { - "name": "" - }, - "position": { - "x": 2296, - "y": 752 - } - }, - { - "id": "9bd6b68b-84ad-4608-9891-47a8f989eb10", - "type": "basic.input", - "data": { - "name": "write", - "clock": false + "data": { + "name": "" }, "position": { - "x": 1336, - "y": 840 + "x": 616, + "y": 160 } }, { - "id": "fac4aba8-78c9-4e9e-918b-3fb3a21c64a7", + "id": "0867b1bc-1cc5-4707-8ddb-40d0318d237c", "type": "basic.input", "data": { - "name": "ena", - "clock": false + "name": "", + "range": "[2:0]", + "clock": false, + "size": 3 }, "position": { - "x": 1344, - "y": 1016 + "x": 152, + "y": 160 } }, { - "id": "12ca3dc3-ff2e-4cb5-989d-95b9451973ea", + "id": "437fac17-b8b4-4d9f-8d03-27300b3b9466", "type": "basic.constant", "data": { - "name": "ms", - "value": "20", + "name": "", + "value": "0", "local": false }, "position": { - "x": 1832, - "y": 296 + "x": 408, + "y": 48 } }, { - "id": "99406911-feb0-44f2-8cad-23292d259881", - "type": "basic.info", + "id": "9c811723-c900-4ceb-9989-036b071ee3fe", + "type": "basic.code", "data": { - "info": "**Salida PWM**", - "readonly": true + "code": "assign eq = (a == B);", + "params": [ + { + "name": "B" + } + ], + "ports": { + "in": [ + { + "name": "a", + "range": "[2:0]", + "size": 3 + } + ], + "out": [ + { + "name": "eq" + } + ] + } }, "position": { - "x": 2296, - "y": 736 + "x": 344, + "y": 160 }, "size": { - "width": 144, - "height": 40 + "width": 224, + "height": 64 + } + } + ], + "wires": [ + { + "source": { + "block": "9c811723-c900-4ceb-9989-036b071ee3fe", + "port": "eq" + }, + "target": { + "block": "0344dacc-8583-456b-b377-8cb4ab97cf94", + "port": "in" } }, { - "id": "55773a27-3324-4799-a8f4-27f5d9ab271b", - "type": "basic.info", - "data": { - "info": "Conectar directamente \nal servo", - "readonly": true + "source": { + "block": "0867b1bc-1cc5-4707-8ddb-40d0318d237c", + "port": "out" }, - "position": { - "x": 2296, - "y": 816 + "target": { + "block": "9c811723-c900-4ceb-9989-036b071ee3fe", + "port": "a" }, - "size": { - "width": 208, - "height": 56 - } + "size": 3 }, { - "id": "fdf5de4f-5efd-417b-a05f-d2ac04e566fe", - "type": "basic.info", + "source": { + "block": "437fac17-b8b4-4d9f-8d03-27300b3b9466", + "port": "constant-out" + }, + "target": { + "block": "9c811723-c900-4ceb-9989-036b071ee3fe", + "port": "B" + } + } + ] + } + } + }, + "fbbede7f059cd50db81d1e80b2e575ed877c91a0": { + "package": { + "name": "mi-tabla2-8", + "version": "0.1", + "description": "Circuito combinacional de 2 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": { - "info": "Posición del servo. Indica el \nancho del pulso en unidades de \n10 usec. Así, un valor de 60 \nindica una anchura de 600 usec", - "readonly": true + "name": "", + "range": "[1:0]", + "clock": false, + "size": 2 }, "position": { - "x": 1328, - "y": 584 - }, - "size": { - "width": 272, - "height": 80 + "x": -8, + "y": 424 } }, { - "id": "1b33e061-6b21-4aa2-9933-ce0f8d4b28f1", - "type": "basic.info", + "id": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", + "type": "basic.output", "data": { - "info": "Tic de escritura de \nuna nueva posición", - "readonly": true + "name": "", + "range": "[7:0]", + "size": 8 }, "position": { - "x": 1336, - "y": 808 - }, - "size": { - "width": 176, - "height": 56 + "x": 632, + "y": 424 } }, { - "id": "dba918eb-6102-4ff5-853c-2da5c14fe1f4", - "type": "basic.info", + "id": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", + "type": "basic.memory", "data": { - "info": "Habilitación del servo", - "readonly": true + "name": "", + "list": "0\n0\n0\n0", + "local": false }, "position": { - "x": 1344, - "y": 1000 + "x": 328, + "y": 96 }, "size": { - "width": 200, - "height": 32 + "width": 96, + "height": 104 } }, { - "id": "07bd3ec7-7039-4695-a8b4-b437790b437b", + "id": "48c38eba-4e12-44d9-a55b-a93def6a27db", "type": "basic.code", "data": { - "code": "//--- Registro de posición\n\nreg [7:0] pos_r = 140;\n\nalways @(posedge clk)\n if (write)\n pos_r <= pos;\n \n \n//-- Registro de estado\n\nreg state = 0;\n\nalways @(posedge clk)\n state <= ena;\n \n//------------------- Temporizador en unidades de 10us\n\n//--------- Biestable de estado\n\nreg state2 = 0;\n\nwire rst;\n\nalways @(posedge clk)\n if (period)\n state2 <= 1'b1;\n else if (fin)\n state2<=1'b0;\n \n \n//------- Registro de espera\nreg [7:0] delay_r = 0;\n\nalways @(posedge clk)\n if (load)\n delay_r <= pos_r;\n \n//--- Carga del registro de espera en el arranque\nreg q0 = 0;\n\nalways @(posedge clk)\n q0 <= state2;\n \nwire load = (~q0 & state2); \n\n//-- La señal de busy es el estado\nwire busy = state2;\n\n//------------------------------ Corazon de micro-segundos\n\nlocalparam US = 10;\n\n//-- Constante para dividir y obtener una frec. de 1Mhz\nlocalparam M = 12*US;\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 = (divcounter == M-1);\n\n//-- Comparador que resetea el contador cuando se alcanza el tope\nassign reset = ov | (state2 == 0);\n\n//-- La salida es la señal de overflow\nwire heart_usec_o = ov;\n\n//------------------- Contador de tiempo (unidades de 10-usec)\n\nreg [7:0] tiempo = 0;\n\nalways @(posedge clk)\n if (!state2)\n tiempo <= 0;\n else\n if (heart_usec_o)\n tiempo <= tiempo + 1;\n \n//------------- Comparador\n\n//-- Cuando se alcanza el tiempo se emite la señal de fin\nwire fin = (delay_r == tiempo);\n\n\n//--------------------- Generador del periodo\n\n//-- Constante para dividir y obtener una frecuencia de 1KHz\nlocalparam M2 = 12000*MS;\n\n//-- Calcular el numero de bits para almacenar M\nlocalparam N2 = $clog2(M2);\n\n//-- Cable de reset para el contador\nwire reset2;\n\n//-- Registro del divisor\nreg [N2-1:0] divcounter2;\n\n\n//-- Contador con reset\nalways @(posedge clk)\n if (reset2)\n divcounter2 <= 0;\n else\n divcounter2 <= divcounter2 + 1;\n\nwire ov2 = (divcounter2 == M2-1);\n\n//-- Comparador que resetea el contador cuando se alcanza el tope\nassign reset2 = ov2 | (state == 0);\n\n//-- La salida es la señal de overflow\nwire period = ov2;\n\n//----------- Biestable final de salida\nreg q3 = 0;\nalways @(posedge clk)\n q3 <= busy;\n\nassign pwm = q3;\n\n\n\n", + "code": "\n//-- Bits del bus de entrada\nlocalparam N = 2;\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": "MS" + "name": "DATA" } ], "ports": { "in": [ { - "name": "clk" - }, - { - "name": "pos", - "range": "[7:0]", - "size": 8 - }, - { - "name": "write" - }, - { - "name": "ena" + "name": "i", + "range": "[1:0]", + "size": 2 } ], "out": [ { - "name": "pwm" + "name": "q", + "range": "[7:0]", + "size": 8 } ] } }, "position": { - "x": 1552, - "y": 432 + "x": 176, + "y": 264 }, "size": { - "width": 648, - "height": 704 + "width": 392, + "height": 384 } } ], "wires": [ { "source": { - "block": "07bd3ec7-7039-4695-a8b4-b437790b437b", - "port": "pwm" + "block": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", + "port": "memory-out" }, "target": { - "block": "17cd3530-95be-4f0b-897e-1893c9831f1b", - "port": "in" + "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "port": "DATA" } }, { "source": { - "block": "fac4aba8-78c9-4e9e-918b-3fb3a21c64a7", + "block": "186c4116-7846-4c8e-98a0-7376675105f1", "port": "out" }, "target": { - "block": "07bd3ec7-7039-4695-a8b4-b437790b437b", - "port": "ena" - } - }, - { - "source": { - "block": "9bd6b68b-84ad-4608-9891-47a8f989eb10", - "port": "out" + "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "port": "i" }, - "target": { - "block": "07bd3ec7-7039-4695-a8b4-b437790b437b", - "port": "write" - } + "size": 2 }, { "source": { - "block": "fbd5aac5-ae58-4153-9a1e-a2bec9ce86b4", - "port": "out" + "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "port": "q" }, "target": { - "block": "07bd3ec7-7039-4695-a8b4-b437790b437b", - "port": "pos" + "block": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", + "port": "in" }, "size": 8 - }, - { - "source": { - "block": "e88d7ecc-7ac9-486a-bac1-6a5f116d8564", - "port": "out" - }, - "target": { - "block": "07bd3ec7-7039-4695-a8b4-b437790b437b", - "port": "clk" - } - }, - { - "source": { - "block": "12ca3dc3-ff2e-4cb5-989d-95b9451973ea", - "port": "constant-out" - }, - "target": { - "block": "07bd3ec7-7039-4695-a8b4-b437790b437b", - "port": "MS" - } } ] } diff --git a/examples/ADC/04-Potentiometer-BCD-7Seg.ice b/examples/ADC/04-Potentiometer-BCD-7Seg.ice index d26cb5e..5ba6529 100644 --- a/examples/ADC/04-Potentiometer-BCD-7Seg.ice +++ b/examples/ADC/04-Potentiometer-BCD-7Seg.ice @@ -8,7 +8,7 @@ "image": "" }, "design": { - "board": "icezum", + "board": "alhambra-ii", "graph": { "blocks": [ { @@ -21,22 +21,22 @@ { "index": "3", "name": "LED3", - "value": "98" + "value": "42" }, { "index": "2", "name": "LED2", - "value": "97" + "value": "43" }, { "index": "1", "name": "LED1", - "value": "96" + "value": "44" }, { "index": "0", "name": "LED0", - "value": "95" + "value": "45" } ], "virtual": false @@ -55,7 +55,7 @@ { "index": "0", "name": "ADC_SDA", - "value": "90" + "value": "83" } ], "virtual": false, @@ -75,7 +75,7 @@ { "index": "0", "name": "ADC_SCL", - "value": "91" + "value": "84" } ], "virtual": false @@ -94,38 +94,38 @@ "pins": [ { "index": "6", - "name": "GP6", - "value": "49" + "name": "D6", + "value": "10" }, { "index": "5", - "name": "GP5", - "value": "43" + "name": "D5", + "value": "7" }, { "index": "4", - "name": "GP4", - "value": "42" + "name": "D4", + "value": "8" }, { "index": "3", - "name": "GP3", - "value": "41" + "name": "D3", + "value": "3" }, { "index": "2", - "name": "GP2", - "value": "39" + "name": "D2", + "value": "4" }, { "index": "1", - "name": "GP1", - "value": "38" + "name": "D1", + "value": "1" }, { "index": "0", - "name": "GP0", - "value": "37" + "name": "D0", + "value": "2" } ], "virtual": false @@ -224,18 +224,6 @@ "height": 56 } }, - { - "id": "1aa1089f-d81a-4699-a162-c100423720b6", - "type": "0851e7c0bc752c07a32e339ef30176e3180dca90", - "position": { - "x": -1872, - "y": -312 - }, - "size": { - "width": 96, - "height": 128 - } - }, { "id": "219023e3-d4b1-4ed0-9c5d-e93d6df062a3", "type": "18fd28fbb97a4fd982053988e015aa934dcd6014", @@ -367,6 +355,18 @@ "width": 792, "height": 240 } + }, + { + "id": "1081e5ea-a4d2-4899-b945-1f6fa54e4ce6", + "type": "fe216fc3f7e19209c184579380d23a46cb3ac1b5", + "position": { + "x": -1872, + "y": -312 + }, + "size": { + "width": 96, + "height": 128 + } } ], "wires": [ @@ -382,24 +382,36 @@ }, { "source": { - "block": "219023e3-d4b1-4ed0-9c5d-e93d6df062a3", - "port": "6a253ddf-22b2-43cd-ba6f-561bd1af6970" + "block": "a9e8988e-ebdd-4e61-9d8e-f5869acdfe1c", + "port": "bdc69e70-a23c-4f1b-99df-3cf0ed126746" }, "target": { - "block": "1aa1089f-d81a-4699-a162-c100423720b6", - "port": "09a84e89-0e4a-43cc-a5b9-6c8ac6ce5742" + "block": "f3237a56-d840-4529-b908-b5977db98156", + "port": "in" }, - "size": 2 + "size": 4 }, { "source": { - "block": "6901f9c0-d7de-4616-ac84-4fd92cc1d12f", - "port": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c" + "block": "a9e8988e-ebdd-4e61-9d8e-f5869acdfe1c", + "port": "bdc69e70-a23c-4f1b-99df-3cf0ed126746" }, "target": { - "block": "1aa1089f-d81a-4699-a162-c100423720b6", - "port": "bfc6f0ec-0d3a-4caa-9d40-9f4e8f59f112" - } + "block": "d6ac2adf-5f8b-4b24-9f3c-b787f0b6265b", + "port": "ad153a4b-fef0-423f-a84d-61a59c3283e5" + }, + "size": 4 + }, + { + "source": { + "block": "d6ac2adf-5f8b-4b24-9f3c-b787f0b6265b", + "port": "41c13e73-0b44-430e-94c9-a32415133ae4" + }, + "target": { + "block": "84462086-62c9-49a0-a180-51dc3e624157", + "port": "in" + }, + "size": 7 }, { "source": { @@ -407,13 +419,19 @@ "port": "out" }, "target": { - "block": "1aa1089f-d81a-4699-a162-c100423720b6", + "block": "1081e5ea-a4d2-4899-b945-1f6fa54e4ce6", "port": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a" - } + }, + "vertices": [ + { + "x": -1952, + "y": -352 + } + ] }, { "source": { - "block": "1aa1089f-d81a-4699-a162-c100423720b6", + "block": "1081e5ea-a4d2-4899-b945-1f6fa54e4ce6", "port": "43bc16ab-b91d-405c-bef0-887bd1a85fd7" }, "target": { @@ -423,7 +441,7 @@ }, { "source": { - "block": "1aa1089f-d81a-4699-a162-c100423720b6", + "block": "1081e5ea-a4d2-4899-b945-1f6fa54e4ce6", "port": "2dd424a5-e616-4505-8a89-4982cdd7539d" }, "target": { @@ -434,36 +452,24 @@ }, { "source": { - "block": "a9e8988e-ebdd-4e61-9d8e-f5869acdfe1c", - "port": "bdc69e70-a23c-4f1b-99df-3cf0ed126746" - }, - "target": { - "block": "f3237a56-d840-4529-b908-b5977db98156", - "port": "in" - }, - "size": 4 - }, - { - "source": { - "block": "a9e8988e-ebdd-4e61-9d8e-f5869acdfe1c", - "port": "bdc69e70-a23c-4f1b-99df-3cf0ed126746" + "block": "219023e3-d4b1-4ed0-9c5d-e93d6df062a3", + "port": "6a253ddf-22b2-43cd-ba6f-561bd1af6970" }, "target": { - "block": "d6ac2adf-5f8b-4b24-9f3c-b787f0b6265b", - "port": "ad153a4b-fef0-423f-a84d-61a59c3283e5" + "block": "1081e5ea-a4d2-4899-b945-1f6fa54e4ce6", + "port": "09a84e89-0e4a-43cc-a5b9-6c8ac6ce5742" }, - "size": 4 + "size": 2 }, { "source": { - "block": "d6ac2adf-5f8b-4b24-9f3c-b787f0b6265b", - "port": "41c13e73-0b44-430e-94c9-a32415133ae4" + "block": "6901f9c0-d7de-4616-ac84-4fd92cc1d12f", + "port": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c" }, "target": { - "block": "84462086-62c9-49a0-a180-51dc3e624157", - "port": "in" - }, - "size": 7 + "block": "1081e5ea-a4d2-4899-b945-1f6fa54e4ce6", + "port": "bfc6f0ec-0d3a-4caa-9d40-9f4e8f59f112" + } } ] } @@ -584,2222 +590,1409 @@ } } }, - "0851e7c0bc752c07a32e339ef30176e3180dca90": { + "18fd28fbb97a4fd982053988e015aa934dcd6014": { "package": { - "name": "adc", - "version": "0.1", - "description": "Analog-to-digital-converter", - "author": "Juan Gonzalez-Gomez (Obiuan)", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20id=%22Ebene_1%22%20width=%22272.885%22%20height=%22360.534%22%20viewBox=%220%200%20272.88513%20360.53439%22%3E%3Cdefs%20id=%22defs25%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=%22path880%22%20d=%22M-58.3-45h653.6v640H-58.3z%22/%3E%3Cmarker%20id=%22TriangleInM%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-2.308%200l3.46-2v4z%22%20id=%22path4321%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22EmptyTriangleInM%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-.508%200l3.46-2v4z%22%20id=%22path4339%22%20fill=%22#fff%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22TriangleOutM-3%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20id=%22path4297%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22marker4456%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=%22path4458%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cmarker%20id=%22marker4428%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=%22path4430%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-67%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=%22path4179%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cpath%20id=%22path919%22%20d=%22M-58.3-45h653.6v640H-58.3z%22/%3E%3Cpath%20id=%22path998%22%20d=%22M-58.3-45h653.6v640H-58.3z%22/%3E%3Cmarker%20orient=%22auto%22%20id=%22TriangleOutM-4%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path972-7%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-2%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path836-4%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-0%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path854-62%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-99%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path854-6-0%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-8%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path836-3-1%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%20id=%22TriangleOutM-7-3%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20id=%22path972-5-1%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22Arrow1Mend-3-1%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-4%200l-2%202%207-2-7-2z%22%20id=%22path836-5-0%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22Arrow2Mend-6-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-2-4%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-9-0%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-1-3%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-2-9%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-4%200l-2%202%207-2-7-2z%22%20id=%22path836-3-7-1%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%20d=%22M-58.3-45h653.6v640H-58.3z%22%20id=%22a-6%22/%3E%3C/defs%3E%3Cpath%20d=%22M-58.3-45h653.6v640H-58.3z%22%20id=%22path880-9%22/%3E%3Cmarker%20orient=%22auto%22%20id=%22TriangleInM-3%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4321-3%22%20d=%22M-2.308%200l3.46-2v4z%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22EmptyTriangleInM-8%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4339-0%22%20d=%22M-.508%200l3.46-2v4z%22%20fill=%22#fff%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22TriangleOutM-3-5%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4297-6%22%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%3Cmarker%20orient=%22auto%22%20id=%22marker4456-6%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4458-4%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=%22marker4428-0%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4430-0%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-67-4%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4179-6%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%3Cpath%20d=%22M-58.3-45h653.6v640H-58.3z%22%20id=%22path1228%22/%3E%3C/defs%3E%3Ctitle%20id=%22title2%22%3EAnalogsignal%3C/title%3E%3Cg%20id=%22g6%22%20transform=%22matrix(2.66197%200%200%20-2.6081%20-266.143%20348.922)%22%20fill=%22#ff0%22%20stroke-width=%22.631%22%20stroke-linecap=%22round%22%3E%3Cpath%20id=%22path4%22%20d=%22M136.595%2057.528l14.719-12.747%2014.663%2012.747m-6.246-3.93v17.136h-15.754V53.598z%22/%3E%3C/g%3E%3Cg%20id=%22g992-3%22%20transform=%22matrix(2.49948%200%200%202.49948%20-213.902%20137.88)%22%20stroke-width=%221.526%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-6%22%20fill=%22#ececec%22%20stroke-width=%22.929%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20id=%22path1773-2-3-1-8-9-7%22%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%222.322%22/%3E%3C/g%3E%3Cpath%20id=%22path10%22%20d=%22M7.61%2080.976C14.27%2036.763%2021.114-7.26%2027.77%205.32c6.846%2012.575%2011.841%20145.026%2020.35%20151.315%208.324%206.291%2021.83-109.323%2030.34-113.58%208.324-4.066%2011.838%2094.531%2020.16%2088.238%208.512-6.288%2022.015-130.229%2030.337-125.973%208.51%204.253%2011.84%20149.098%2020.351%20151.315%208.326%202.037%2020.163-136.516%2030.339-138.738%209.99-2.034%2020.161%20119.69%2030.337%20125.978%2010.174%206.473%2023.676-79.732%2030.335-88.053%206.662-8.509%206.662%2031.447%2010.177%2037.734%203.33%206.293%206.66%203.147%209.99%200%22%20stroke-miterlimit=%2210%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%226.281%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:ubuntu;text-align:center%22%20x=%22131.832%22%20y=%22272.84%22%20id=%22text849%22%20font-weight=%22400%22%20font-size=%2247.637%22%20font-family=%22ubuntu%22%20letter-spacing=%220%22%20word-spacing=%220%22%20text-anchor=%22middle%22%20stroke-width=%221.662%22%20stroke-linecap=%22round%22%3E%3Ctspan%20id=%22tspan847%22%20x=%22131.832%22%20y=%22272.84%22%20style=%22-inkscape-font-specification:'ubuntu%20Medium'%22%20font-weight=%22500%22%20stroke-width=%22.928%22%20fill=%22green%22%3E01001100%3C/tspan%3E%3C/text%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=%22g992-3-2%22%20transform=%22matrix(2.49948%200%200%202.49948%20-16.118%20138.484)%22%20stroke-width=%221.526%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-6-67%22%20fill=%22#ececec%22%20stroke-width=%22.929%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20id=%22path1773-2-3-1-8-9-7-5%22%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%222.322%22/%3E%3C/g%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:ubuntu;text-align:center%22%20x=%22133.042%22%20y=%22334.844%22%20id=%22text849-6%22%20font-weight=%22400%22%20font-size=%2247.637%22%20font-family=%22ubuntu%22%20letter-spacing=%220%22%20word-spacing=%220%22%20text-anchor=%22middle%22%20stroke-width=%221.662%22%20stroke-linecap=%22round%22%3E%3Ctspan%20id=%22tspan847-9%22%20x=%22133.042%22%20y=%22334.844%22%20style=%22-inkscape-font-specification:'ubuntu%20Medium'%22%20font-weight=%22500%22%20stroke-width=%22.928%22%3EADC%3C/tspan%3E%3C/text%3E%3C/svg%3E" + "name": "Valor_0_2bits", + "version": "0.0.1", + "description": "Valor constante 0 para bus de 2 bits", + "author": "Juan Gonzalez-Gomez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22145.966%22%20height=%22305.779%22%20viewBox=%220%200%20136.8427%20286.66758%22%3E%3Cg%20font-weight=%22400%22%20font-family=%22Ubuntu%20Mono%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-size=%22335.399%22%20fill=%22green%22%20transform=%22translate(-308.544%20-436.037)%22%3E%3Ctspan%20x=%22293.115%22%20y=%22648.344%22%3E0%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22341.722%22%20y=%22721.624%22%20font-size=%2283.077%22%20transform=%22translate(-308.544%20-436.037)%22%3E%3Ctspan%20x=%22341.722%22%20y=%22721.624%22%3E00%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" }, "design": { "graph": { "blocks": [ { - "id": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "type": "basic.input", - "data": { - "name": "", - "clock": true - }, - "position": { - "x": -2048, - "y": -232 - } - }, - { - "id": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a", - "type": "basic.input", - "data": { - "name": "adc-sda", - "clock": false - }, - "position": { - "x": -544, - "y": -184 - } - }, - { - "id": "43bc16ab-b91d-405c-bef0-887bd1a85fd7", + "id": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", "type": "basic.output", "data": { - "name": "adc_scl" - }, - "position": { - "x": 24, - "y": -104 - } - }, - { - "id": "09a84e89-0e4a-43cc-a5b9-6c8ac6ce5742", - "type": "basic.input", - "data": { - "name": "ch", + "name": "k", "range": "[1:0]", - "clock": false, "size": 2 }, "position": { - "x": -2040, - "y": 88 + "x": 928, + "y": 256 } }, { - "id": "2dd424a5-e616-4505-8a89-4982cdd7539d", - "type": "basic.output", + "id": "ad7918eb-22dd-4b6c-949f-e428f5a55530", + "type": "basic.constant", "data": { "name": "", - "range": "[7:0]", - "size": 8 + "value": "0", + "local": true }, "position": { - "x": 208, - "y": 312 + "x": 728, + "y": 136 } }, { - "id": "bfc6f0ec-0d3a-4caa-9d40-9f4e8f59f112", - "type": "basic.input", - "data": { - "name": "start", - "clock": false - }, + "id": "ae9e32fe-296d-4700-a429-1178ece2609d", + "type": "1577535d38e0077281a8de7dc00933b07ec4f543", "position": { - "x": -2040, - "y": 696 + "x": 728, + "y": 256 + }, + "size": { + "width": 96, + "height": 64 } - }, + } + ], + "wires": [ { - "id": "f4f0b0cc-6b11-417f-b8de-933dd739752b", - "type": "basic.output", - "data": { - "name": "done" + "source": { + "block": "ae9e32fe-296d-4700-a429-1178ece2609d", + "port": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26" }, - "position": { - "x": -1280, - "y": 864 - } + "target": { + "block": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", + "port": "in" + }, + "size": 2 }, { - "id": "5d1a3bb7-8f31-4c17-9f0e-09fdcf7bd807", - "type": "basic.memory", - "data": { - "name": "Canal-reg", - "list": "02 //-- Canal 0\n04 //-- Canal 1\n06 //-- Canal 2\n08 //-- Canal 3", - "local": true, - "format": 10 - }, - "position": { - "x": -1728, - "y": -80 + "source": { + "block": "ad7918eb-22dd-4b6c-949f-e428f5a55530", + "port": "constant-out" }, - "size": { - "width": 224, - "height": 104 + "target": { + "block": "ae9e32fe-296d-4700-a429-1178ece2609d", + "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" } - }, + } + ] + } + } + }, + "1577535d38e0077281a8de7dc00933b07ec4f543": { + "package": { + "name": "Constante-2bits", + "version": "0.0.1", + "description": "Valor genérico constante, de 2 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=%22145.608%22%20height=%22247.927%22%20viewBox=%220%200%20136.50729%20232.43134%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-weight=%22400%22%20font-size=%22335.399%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%3Ek%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ { - "id": "3b4b7515-4e2b-46d2-8994-7ea4b3ad22e3", - "type": "basic.constant", + "id": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26", + "type": "basic.output", "data": { - "name": "", - "value": "3", - "local": true + "name": "k", + "range": "[1:0]", + "size": 2 }, "position": { - "x": -1416, + "x": 960, "y": 248 } }, { - "id": "9e7fbae9-cce7-42d1-b650-6e315c04c922", + "id": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", "type": "basic.constant", "data": { "name": "", - "value": "1", - "local": true + "value": "0", + "local": false }, "position": { - "x": -1216, - "y": 128 + "x": 728, + "y": 112 } }, { - "id": "22ab7ece-cc08-4d88-8169-0c27996f429f", - "type": "basic.memory", + "id": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", + "type": "basic.code", "data": { - "name": "Comandos i2c", - "list": "03_00_cc //-- Write. Reg 0 <-- CC. Modo Auto-scan\n01_02_00 //-- Sel Reg 2\n00_00_00 //-- Lectura!", - "local": true, - "format": 10 + "code": "assign k = VALUE;", + "params": [ + { + "name": "VALUE" + } + ], + "ports": { + "in": [], + "out": [ + { + "name": "k", + "range": "[1:0]", + "size": 2 + } + ] + } }, "position": { - "x": -1152, - "y": -64 + "x": 672, + "y": 248 }, "size": { - "width": 416, - "height": 120 - } - }, - { - "id": "3f0866f0-c93f-4d57-9aab-b2e1ec7d135b", - "type": "basic.constant", - "data": { - "name": "Direccion-i2c", - "value": "7'h48", - "local": true - }, - "position": { - "x": -696, - "y": -128 + "width": 208, + "height": 64 } - }, + } + ], + "wires": [ { - "id": "3e21cde1-61ca-4036-b448-bdb96e3b7b43", - "type": "basic.info", - "data": { - "info": "**SDA**\n(INOUT) ", - "readonly": true + "source": { + "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", + "port": "k" }, - "position": { - "x": -528, - "y": -272 + "target": { + "block": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26", + "port": "in" }, - "size": { - "width": 104, - "height": 48 - } + "size": 2 }, { - "id": "bca7a427-a08f-48d3-807c-64a27a08db52", - "type": "89d2342d9664348db3e70e823cacbc8eb24ea3d0", - "position": { - "x": 0, - "y": 296 + "source": { + "block": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", + "port": "constant-out" }, - "size": { - "width": 96, - "height": 96 + "target": { + "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", + "port": "VALUE" } - }, + } + ] + } + } + }, + "73403c45b7d6c8a2f38a63b138254c4d2f2449b1": { + "package": { + "name": "Separador-bus", + "version": "0.1", + "description": "Separador de bus de 8-bits en buses de 4 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": "ada801ec-97ac-4d32-a9fd-a997ce0d2c16", - "type": "20b7dbadd419751f1658977d442517896b210c75", - "position": { - "x": -696, - "y": -32 + "id": "bdc69e70-a23c-4f1b-99df-3cf0ed126746", + "type": "basic.output", + "data": { + "name": "o1", + "range": "[3:0]", + "size": 4 }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "6465077c-afae-49b4-b488-7d920e4c7f61", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", "position": { - "x": -1776, - "y": 680 - }, - "size": { - "width": 96, - "height": 96 + "x": 584, + "y": 144 } }, { - "id": "dd7d5998-c070-46ea-863f-49da091eda29", - "type": "8e2728307baccbf26c01cdb87bcfba8ca64a435c", - "position": { - "x": -1216, - "y": 680 + "id": "1f5c81aa-ebb1-4cd7-87fd-b9092de9a34f", + "type": "basic.input", + "data": { + "name": "i", + "range": "[7:0]", + "clock": false, + "size": 8 }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": 120, + "y": 200 } }, { - "id": "f6118dec-faf4-4b86-8c20-aa0368015453", - "type": "1535f6f47d269b5d2de10c9fcd212e580a4d640c", - "position": { - "x": -1208, - "y": 360 + "id": "e91fbbe5-8055-4686-9ff0-2894026e8306", + "type": "basic.output", + "data": { + "name": "o0", + "range": "[3:0]", + "size": 4 }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": 584, + "y": 272 } }, { - "id": "665884f2-d123-4f55-9a11-4c8f431c3020", + "id": "16e78204-213e-4833-9096-89d735307ec2", "type": "basic.code", "data": { - "code": "assign op = i[17:16];\nassign regis = i[15:8];\nassign value = i[7:0];", + "code": "assign o1 = i[7:4];\nassign o0 = i[3:0];", "params": [], "ports": { "in": [ { "name": "i", - "range": "[17:0]", - "size": 18 + "range": "[7:0]", + "size": 8 } ], "out": [ { - "name": "regis", - "range": "[7:0]", - "size": 8 - }, - { - "name": "value", - "range": "[7:0]", - "size": 8 + "name": "o1", + "range": "[3:0]", + "size": 4 }, { - "name": "op", - "range": "[1:0]", - "size": 2 + "name": "o0", + "range": "[3:0]", + "size": 4 } ] } }, "position": { - "x": -1032, - "y": 344 + "x": 296, + "y": 176 }, "size": { - "width": 224, - "height": 96 + "width": 208, + "height": 112 } - }, + } + ], + "wires": [ { - "id": "032db993-b0ca-47dd-ba47-7e65fe70e0f3", - "type": "basic.info", - "data": { - "info": "Decoddificador", - "readonly": true + "source": { + "block": "16e78204-213e-4833-9096-89d735307ec2", + "port": "o1" }, - "position": { - "x": -712, - "y": 88 + "target": { + "block": "bdc69e70-a23c-4f1b-99df-3cf0ed126746", + "port": "in" }, - "size": { - "width": 144, - "height": 40 - } + "size": 4 }, { - "id": "056f271d-dcca-4550-aa60-083c7d9515e3", - "type": "117a3398e8b038aec02d56f0f0ebdd6197dd5305", - "position": { - "x": -1424, - "y": 360 + "source": { + "block": "16e78204-213e-4833-9096-89d735307ec2", + "port": "o0" }, - "size": { - "width": 96, - "height": 96 - } - }, - { - "id": "2223e693-de97-453c-8372-5df27eac1ef1", - "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", - "position": { - "x": -1608, - "y": 384 + "target": { + "block": "e91fbbe5-8055-4686-9ff0-2894026e8306", + "port": "in" }, - "size": { - "width": 96, - "height": 64 - } + "size": 4 }, { - "id": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", - "type": "81613874c6152f06c06ed7014bf4235900cfcc30", - "position": { - "x": -784, - "y": 496 + "source": { + "block": "1f5c81aa-ebb1-4cd7-87fd-b9092de9a34f", + "port": "out" }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "e7415f08-799e-4142-a6a0-5543b49d8c73", - "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", - "position": { - "x": -1608, - "y": 592 - }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", - "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", - "position": { - "x": -648, - "y": 464 - }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "a594d32c-f8bc-4931-a350-e660f1754f7c", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", - "position": { - "x": -160, - "y": 616 + "target": { + "block": "16e78204-213e-4833-9096-89d735307ec2", + "port": "i" }, - "size": { - "width": 96, - "height": 64 - } - }, + "size": 8 + } + ] + } + } + }, + "7b4337a92f7f91647ae69eb13d0d79ec07b1c53c": { + "package": { + "name": "DisplayHEX", + "version": "0.1", + "description": "DisplayHEX. Decodificador de binario a hexadecimal-7 segmentos. Cátodo común", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22165.784%22%20height=%22222.76%22%20viewBox=%220%200%2043.863567%2058.938523%22%3E%3Crect%20width=%2242.906%22%20height=%2257.981%22%20x=%226.108%22%20y=%22-145.921%22%20ry=%22.555%22%20fill=%22#8a7a7a%22%20stroke=%22#000%22%20stroke-width=%22.958%22%20stroke-linejoin=%22round%22%20transform=%22translate(-5.63%20146.4)%22/%3E%3Cg%20transform=%22translate(-5.63%20146.4)%22%3E%3Cpath%20d=%22M14.12-121.766c-.188-.61%202.966-16.632%203.196-16.837.23-.204%201.125-.742%201.355-.716.23.026%202.916%202.968%203.018%203.3.102.333-2.318%2014.76-2.557%2015.148-.18.292-1.765%201.97-2.353%201.92-.588-.052-2.471-2.204-2.66-2.815zM19.592-139.652l2.276%202.764%2016.007-.18s3.708-2.814%203.478-3.454c-.23-.64-1.177-1.1-1.177-1.1s-18.027-.128-18.999.205c-.971.332-1.687%201.049-1.687%201.28%200%20.23.102.485.102.485zM35.86-120.476c-.319-.835%202.55-15.94%202.694-16.193.145-.253%203.2-2.696%203.67-2.642.47.055%201.32.742%201.447%201.122.127.38-2.44%2016.428-2.604%2016.808-.162.38-2.404%202.57-3.001%202.624-.597.054-1.887-.884-2.206-1.719zM19.84-120.367c.718-.191%2014.133-.158%2014.818-.008.684.15%202.143%201.512%202.169%202.344.025.832-1.509%201.868-2.123%202.252-.613.384-14.626.333-15.086.102-.46-.23-2.302-1.919-2.302-2.482%200-.563%201.806-2.018%202.524-2.209zM12.893-114.857c.344-.682%202.684-2.508%203.4-2.534.716-.025%201.586%201.1%201.688%201.69.102.588-2.685%2016.682-3.068%2017.296-.384.614-2.813%202.815-3.427%202.84-.614.026-1.687-1.228-1.764-1.842-.077-.614%202.826-16.769%203.17-17.45zM15.756-98.2c.939-.44%2016.037-.55%2016.596-.307.558.243%202.608%202.2%202.66%202.994.05.793-1.382%201.867-1.97%201.97-.588.102-19.51.716-20.047.384-.537-.333-1.074-.998-1.125-1.459-.051-.46%202.948-3.142%203.886-3.582zM32.53-99.966c-.35-1.035%202.336-14.684%202.553-15.118.217-.435%201.49-2.029%202.314-1.954.824.074%202.17%201.592%202.423%202.28.253.687-1.829%2018.785-3.313%2018.83-1.484.043-3.625-3.002-3.976-4.038z%22%20fill=%22red%22%20stroke=%22#000%22%20stroke-width=%22.958%22/%3E%3Cellipse%20cx=%2243.78%22%20cy=%22-97.407%22%20rx=%222.875%22%20ry=%222.877%22%20fill=%22red%22%20stroke=%22#000%22%20stroke-width=%22.958%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20style=%22line-height:1.25%22%20x=%22100.815%22%20y=%22242.206%22%20font-weight=%22400%22%20font-size=%2210.583%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20stroke-width=%22.265%22/%3E%3Ctext%20style=%22line-height:1.25%22%20x=%226.245%22%20y=%22-88.731%22%20font-weight=%22400%22%20font-size=%2213.108%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20stroke-width=%22.328%22%3E%3Ctspan%20x=%226.245%22%20y=%22-88.731%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%20fill=%22#ff0%22%3EHEX%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ { - "id": "f56d83b1-73c7-433d-810b-94107609ceb1", - "type": "2b27874a703dd0b148b08ecb5a00d1867eebe92c", - "position": { - "x": -328, - "y": 216 + "id": "41c13e73-0b44-430e-94c9-a32415133ae4", + "type": "basic.output", + "data": { + "name": "", + "range": "[6:0]", + "size": 7 }, - "size": { - "width": 96, - "height": 256 - } - }, - { - "id": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", "position": { - "x": 72, - "y": 600 - }, - "size": { - "width": 96, - "height": 64 + "x": 704, + "y": 360 } }, { - "id": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", - "type": "359a555a147b0afd9d84e4a720ec84b7cdfbc034", - "position": { - "x": -704, - "y": 176 + "id": "ad153a4b-fef0-423f-a84d-61a59c3283e5", + "type": "basic.input", + "data": { + "name": "", + "range": "[3:0]", + "clock": false, + "size": 4 }, - "size": { - "width": 96, - "height": 96 - } - }, - { - "id": "fbdf2179-d67b-4d89-ae41-928932a492f9", - "type": "d9a3cf565602d237c50136543d558affa15c7654", "position": { - "x": -1216, - "y": 232 - }, - "size": { - "width": 96, - "height": 64 + "x": 104, + "y": 360 } }, { - "id": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", - "type": "fbbede7f059cd50db81d1e80b2e575ed877c91a0", - "position": { - "x": -1664, - "y": 88 + "id": "cdd743bb-3b27-43ef-88a6-f33405eb3e8d", + "type": "basic.code", + "data": { + "code": "reg o;\n\nalways @(*) \nbegin\n\tcase(i)\n 4'h0: o = 7'b111_1110;\n 4'h1: o = 7'b011_0000;\n 4'h2: o = 7'b110_1101;\n 4'h3: o = 7'b111_1001;\n 4'h4: o = 7'b011_0011;\n 4'h5: o = 7'b101_1011;\n 4'h6: o = 7'b101_1111;\n 4'h7: o = 7'b111_0000;\n 4'h8: o = 7'b111_1111;\n 4'h9: o = 7'b111_1011;\n 4'hA: o = 7'b111_0111;\n 4'hB: o = 7'b001_1111;\n 4'hC: o = 7'b100_1110;\n 4'hD: o = 7'b011_1101;\n 4'HE: o = 7'b100_1111;\n 4'hF: o = 7'b100_0111;\n default: o = 7'b0000000;\n\tendcase\nend\n", + "params": [], + "ports": { + "in": [ + { + "name": "i", + "range": "[3:0]", + "size": 4 + } + ], + "out": [ + { + "name": "o", + "range": "[6:0]", + "size": 7 + } + ] + } }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "94b801a2-93e1-4d50-984d-d366909343ea", - "type": "7eacdff4ce248b009935725889c8ae3339817d76", "position": { - "x": -1456, - "y": 864 + "x": 304, + "y": 200 }, "size": { - "width": 96, - "height": 64 + "width": 320, + "height": 376 } } ], "wires": [ { "source": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "d3e4f800-c611-4f65-88e7-8b7d2def0021" + "block": "cdd743bb-3b27-43ef-88a6-f33405eb3e8d", + "port": "o" }, "target": { - "block": "2dd424a5-e616-4505-8a89-4982cdd7539d", + "block": "41c13e73-0b44-430e-94c9-a32415133ae4", "port": "in" }, - "size": 8 + "size": 7 }, { "source": { - "block": "3f0866f0-c93f-4d57-9aab-b2e1ec7d135b", - "port": "constant-out" + "block": "ad153a4b-fef0-423f-a84d-61a59c3283e5", + "port": "out" }, "target": { - "block": "ada801ec-97ac-4d32-a9fd-a997ce0d2c16", - "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" + "block": "cdd743bb-3b27-43ef-88a6-f33405eb3e8d", + "port": "i" + }, + "size": 4 + } + ] + } + } + }, + "fe216fc3f7e19209c184579380d23a46cb3ac1b5": { + "package": { + "name": "adc", + "version": "0.2", + "description": "Analog-to-digital-converter", + "author": "Juan Gonzalez-Gomez (Obiuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20id=%22Ebene_1%22%20width=%22272.885%22%20height=%22360.534%22%20viewBox=%220%200%20272.88513%20360.53439%22%3E%3Cdefs%20id=%22defs25%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=%22path880%22%20d=%22M-58.3-45h653.6v640H-58.3z%22/%3E%3Cmarker%20id=%22TriangleInM%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-2.308%200l3.46-2v4z%22%20id=%22path4321%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22EmptyTriangleInM%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-.508%200l3.46-2v4z%22%20id=%22path4339%22%20fill=%22#fff%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22TriangleOutM-3%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20id=%22path4297%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22marker4456%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=%22path4458%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cmarker%20id=%22marker4428%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=%22path4430%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-67%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=%22path4179%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cpath%20id=%22path919%22%20d=%22M-58.3-45h653.6v640H-58.3z%22/%3E%3Cpath%20id=%22path998%22%20d=%22M-58.3-45h653.6v640H-58.3z%22/%3E%3Cmarker%20orient=%22auto%22%20id=%22TriangleOutM-4%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path972-7%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-2%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path836-4%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-0%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path854-62%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-99%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path854-6-0%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-8%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path836-3-1%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%20id=%22TriangleOutM-7-3%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20id=%22path972-5-1%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22Arrow1Mend-3-1%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-4%200l-2%202%207-2-7-2z%22%20id=%22path836-5-0%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22Arrow2Mend-6-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-2-4%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-9-0%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-1-3%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-2-9%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-4%200l-2%202%207-2-7-2z%22%20id=%22path836-3-7-1%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%20d=%22M-58.3-45h653.6v640H-58.3z%22%20id=%22a-6%22/%3E%3C/defs%3E%3Cpath%20d=%22M-58.3-45h653.6v640H-58.3z%22%20id=%22path880-9%22/%3E%3Cmarker%20orient=%22auto%22%20id=%22TriangleInM-3%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4321-3%22%20d=%22M-2.308%200l3.46-2v4z%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22EmptyTriangleInM-8%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4339-0%22%20d=%22M-.508%200l3.46-2v4z%22%20fill=%22#fff%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22TriangleOutM-3-5%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4297-6%22%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%3Cmarker%20orient=%22auto%22%20id=%22marker4456-6%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4458-4%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=%22marker4428-0%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4430-0%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-67-4%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4179-6%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%3Cpath%20d=%22M-58.3-45h653.6v640H-58.3z%22%20id=%22path1228%22/%3E%3C/defs%3E%3Ctitle%20id=%22title2%22%3EAnalogsignal%3C/title%3E%3Cg%20id=%22g6%22%20transform=%22matrix(2.66197%200%200%20-2.6081%20-266.143%20348.922)%22%20fill=%22#ff0%22%20stroke-width=%22.631%22%20stroke-linecap=%22round%22%3E%3Cpath%20id=%22path4%22%20d=%22M136.595%2057.528l14.719-12.747%2014.663%2012.747m-6.246-3.93v17.136h-15.754V53.598z%22/%3E%3C/g%3E%3Cg%20id=%22g992-3%22%20transform=%22matrix(2.49948%200%200%202.49948%20-213.902%20137.88)%22%20stroke-width=%221.526%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-6%22%20fill=%22#ececec%22%20stroke-width=%22.929%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20id=%22path1773-2-3-1-8-9-7%22%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%222.322%22/%3E%3C/g%3E%3Cpath%20id=%22path10%22%20d=%22M7.61%2080.976C14.27%2036.763%2021.114-7.26%2027.77%205.32c6.846%2012.575%2011.841%20145.026%2020.35%20151.315%208.324%206.291%2021.83-109.323%2030.34-113.58%208.324-4.066%2011.838%2094.531%2020.16%2088.238%208.512-6.288%2022.015-130.229%2030.337-125.973%208.51%204.253%2011.84%20149.098%2020.351%20151.315%208.326%202.037%2020.163-136.516%2030.339-138.738%209.99-2.034%2020.161%20119.69%2030.337%20125.978%2010.174%206.473%2023.676-79.732%2030.335-88.053%206.662-8.509%206.662%2031.447%2010.177%2037.734%203.33%206.293%206.66%203.147%209.99%200%22%20stroke-miterlimit=%2210%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%226.281%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:ubuntu;text-align:center%22%20x=%22131.832%22%20y=%22272.84%22%20id=%22text849%22%20font-weight=%22400%22%20font-size=%2247.637%22%20font-family=%22ubuntu%22%20letter-spacing=%220%22%20word-spacing=%220%22%20text-anchor=%22middle%22%20stroke-width=%221.662%22%20stroke-linecap=%22round%22%3E%3Ctspan%20id=%22tspan847%22%20x=%22131.832%22%20y=%22272.84%22%20style=%22-inkscape-font-specification:'ubuntu%20Medium'%22%20font-weight=%22500%22%20stroke-width=%22.928%22%20fill=%22green%22%3E01001100%3C/tspan%3E%3C/text%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=%22g992-3-2%22%20transform=%22matrix(2.49948%200%200%202.49948%20-16.118%20138.484)%22%20stroke-width=%221.526%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-6-67%22%20fill=%22#ececec%22%20stroke-width=%22.929%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20id=%22path1773-2-3-1-8-9-7-5%22%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%222.322%22/%3E%3C/g%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:ubuntu;text-align:center%22%20x=%22133.042%22%20y=%22334.844%22%20id=%22text849-6%22%20font-weight=%22400%22%20font-size=%2247.637%22%20font-family=%22ubuntu%22%20letter-spacing=%220%22%20word-spacing=%220%22%20text-anchor=%22middle%22%20stroke-width=%221.662%22%20stroke-linecap=%22round%22%3E%3Ctspan%20id=%22tspan847-9%22%20x=%22133.042%22%20y=%22334.844%22%20style=%22-inkscape-font-specification:'ubuntu%20Medium'%22%20font-weight=%22500%22%20stroke-width=%22.928%22%3EADC%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": -2048, + "y": -232 } }, { - "source": { - "block": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a", - "port": "out" + "id": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a", + "type": "basic.input", + "data": { + "name": "adc-sda", + "clock": false }, - "target": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a" + "position": { + "x": -544, + "y": -184 } }, { - "source": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "43bc16ab-b91d-405c-bef0-887bd1a85fd7" + "id": "43bc16ab-b91d-405c-bef0-887bd1a85fd7", + "type": "basic.output", + "data": { + "name": "adc_scl" }, - "target": { - "block": "43bc16ab-b91d-405c-bef0-887bd1a85fd7", - "port": "in" + "position": { + "x": 24, + "y": -104 } }, { - "source": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "2dd424a5-e616-4505-8a89-4982cdd7539d" - }, - "target": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "42b35cc2-aa64-4e66-be42-169958246799" + "id": "09a84e89-0e4a-43cc-a5b9-6c8ac6ce5742", + "type": "basic.input", + "data": { + "name": "ch", + "range": "[1:0]", + "clock": false, + "size": 2 }, - "size": 8 + "position": { + "x": -2040, + "y": 88 + } }, { - "source": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "efa38a4c-7d36-47f9-82de-6cf99cf88c3d" + "id": "2dd424a5-e616-4505-8a89-4982cdd7539d", + "type": "basic.output", + "data": { + "name": "", + "range": "[7:0]", + "size": 8 }, - "target": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "065ea371-8398-43b3-8341-287c234a3acb" + "position": { + "x": 208, + "y": 312 } }, { - "source": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "dd7d5998-c070-46ea-863f-49da091eda29", - "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + "id": "bfc6f0ec-0d3a-4caa-9d40-9f4e8f59f112", + "type": "basic.input", + "data": { + "name": "start", + "clock": false + }, + "position": { + "x": -2040, + "y": 696 } }, { - "source": { - "block": "ada801ec-97ac-4d32-a9fd-a997ce0d2c16", - "port": "cf56e668-4c75-451d-ab35-b8457ab06e22" - }, - "target": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "17680ad1-ed73-4b6c-a31e-c96c61fc88ef" + "id": "f4f0b0cc-6b11-417f-b8de-933dd739752b", + "type": "basic.output", + "data": { + "name": "done" }, - "vertices": [ - { - "x": -552, - "y": 48 - } - ], - "size": 7 + "position": { + "x": -1280, + "y": 864 + } }, { - "source": { - "block": "665884f2-d123-4f55-9a11-4c8f431c3020", - "port": "op" + "id": "5d1a3bb7-8f31-4c17-9f0e-09fdcf7bd807", + "type": "basic.memory", + "data": { + "name": "Canal-reg", + "list": "02 //-- Canal 0\n04 //-- Canal 1\n06 //-- Canal 2\n08 //-- Canal 3", + "local": true, + "format": 10 }, - "target": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "fba9c594-4b64-4f48-8979-25c1a001e90a" + "position": { + "x": -1728, + "y": -80 }, - "size": 2 + "size": { + "width": 224, + "height": 104 + } }, { - "source": { - "block": "22ab7ece-cc08-4d88-8169-0c27996f429f", - "port": "memory-out" + "id": "3b4b7515-4e2b-46d2-8994-7ea4b3ad22e3", + "type": "basic.constant", + "data": { + "name": "", + "value": "3", + "local": true }, - "target": { - "block": "f6118dec-faf4-4b86-8c20-aa0368015453", - "port": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377" + "position": { + "x": -1416, + "y": 248 } }, { - "source": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "2223e693-de97-453c-8372-5df27eac1ef1", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "id": "9e7fbae9-cce7-42d1-b650-6e315c04c922", + "type": "basic.constant", + "data": { + "name": "", + "value": "1", + "local": true }, - "vertices": [ - { - "x": -1656, - "y": 552 - } - ] + "position": { + "x": -1216, + "y": 128 + } }, { - "source": { - "block": "dd7d5998-c070-46ea-863f-49da091eda29", - "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" - }, - "target": { - "block": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "id": "22ab7ece-cc08-4d88-8169-0c27996f429f", + "type": "basic.memory", + "data": { + "name": "Comandos i2c", + "list": "03_00_cc //-- Write. Reg 0 <-- CC. Modo Auto-scan\n01_02_00 //-- Sel Reg 2\n00_00_00 //-- Lectura!", + "local": true, + "format": 10 }, - "vertices": [ - { - "x": -936, - "y": 656 - } - ] - }, - { - "source": { - "block": "3b4b7515-4e2b-46d2-8994-7ea4b3ad22e3", - "port": "constant-out" + "position": { + "x": -1152, + "y": -64 }, - "target": { - "block": "056f271d-dcca-4550-aa60-083c7d9515e3", - "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" + "size": { + "width": 416, + "height": 120 } }, { - "source": { - "block": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "3f0866f0-c93f-4d57-9aab-b2e1ec7d135b", + "type": "basic.constant", + "data": { + "name": "Direccion-i2c", + "value": "7'h48", + "local": true }, - "target": { - "block": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", - "port": "97b51945-d716-4b6c-9db9-970d08541249" + "position": { + "x": -696, + "y": -128 } }, { - "source": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "id": "3e21cde1-61ca-4036-b448-bdb96e3b7b43", + "type": "basic.info", + "data": { + "info": "**SDA**\n(INOUT) ", + "readonly": true }, - "target": { - "block": "e7415f08-799e-4142-a6a0-5543b49d8c73", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "position": { + "x": -528, + "y": -272 }, - "vertices": [ - { - "x": -1656, - "y": 624 - } - ] + "size": { + "width": 104, + "height": 48 + } }, { - "source": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "18dc0bf6-35be-4fad-9e92-79ae207ff435" - }, - "target": { - "block": "a594d32c-f8bc-4931-a350-e660f1754f7c", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "id": "bca7a427-a08f-48d3-807c-64a27a08db52", + "type": "89d2342d9664348db3e70e823cacbc8eb24ea3d0", + "position": { + "x": 0, + "y": 296 }, - "vertices": [ - { - "x": -208, - "y": 560 - } - ] + "size": { + "width": 96, + "height": 96 + } }, { - "source": { - "block": "056f271d-dcca-4550-aa60-083c7d9515e3", - "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" - }, - "target": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + "id": "ada801ec-97ac-4d32-a9fd-a997ce0d2c16", + "type": "20b7dbadd419751f1658977d442517896b210c75", + "position": { + "x": -696, + "y": -32 }, - "vertices": [ - { - "x": -1344, - "y": 800 - } - ] + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "6465077c-afae-49b4-b488-7d920e4c7f61", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": -1776, + "y": 680 }, - "target": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "b882b07a-a45e-429f-b442-f6547b67e98e" + "size": { + "width": 96, + "height": 96 } }, { - "source": { - "block": "2223e693-de97-453c-8372-5df27eac1ef1", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "dd7d5998-c070-46ea-863f-49da091eda29", + "type": "8e2728307baccbf26c01cdb87bcfba8ca64a435c", + "position": { + "x": -1216, + "y": 680 }, - "target": { - "block": "056f271d-dcca-4550-aa60-083c7d9515e3", - "port": "743b5299-2d89-4783-b7c9-12a5b36df406" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "e7415f08-799e-4142-a6a0-5543b49d8c73", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "f6118dec-faf4-4b86-8c20-aa0368015453", + "type": "1535f6f47d269b5d2de10c9fcd212e580a4d640c", + "position": { + "x": -1208, + "y": 360 }, - "target": { - "block": "056f271d-dcca-4550-aa60-083c7d9515e3", - "port": "26aba23f-8567-4e9b-bd45-c26724030f33" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" - }, - "vertices": [ - { - "x": -1656, - "y": 624 - } - ] - }, - { - "source": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "18dc0bf6-35be-4fad-9e92-79ae207ff435" - }, - "target": { - "block": "e7415f08-799e-4142-a6a0-5543b49d8c73", - "port": "97b51945-d716-4b6c-9db9-970d08541249" - }, - "vertices": [ - { - "x": -320, - "y": 568 - } - ] - }, - { - "source": { - "block": "a594d32c-f8bc-4931-a350-e660f1754f7c", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" - }, - "target": { - "block": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" - } - }, - { - "source": { - "block": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" - }, - "target": { - "block": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", - "port": "97b51945-d716-4b6c-9db9-970d08541249" - }, - "vertices": [ - { - "x": -520, - "y": 720 - }, - { - "x": -856, - "y": 648 - } - ] - }, - { - "source": { - "block": "f6118dec-faf4-4b86-8c20-aa0368015453", - "port": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5" - }, - "target": { - "block": "665884f2-d123-4f55-9a11-4c8f431c3020", - "port": "i" - }, - "size": 18 - }, - { - "source": { - "block": "056f271d-dcca-4550-aa60-083c7d9515e3", - "port": "2124c987-5d1b-4335-858f-502559b11a26" - }, - "target": { - "block": "f6118dec-faf4-4b86-8c20-aa0368015453", - "port": "186c4116-7846-4c8e-98a0-7376675105f1" - }, - "size": 3 - }, - { - "source": { - "block": "056f271d-dcca-4550-aa60-083c7d9515e3", - "port": "2124c987-5d1b-4335-858f-502559b11a26" - }, - "target": { - "block": "fbdf2179-d67b-4d89-ae41-928932a492f9", - "port": "0867b1bc-1cc5-4707-8ddb-40d0318d237c" - }, - "vertices": [ - { - "x": -1264, - "y": 256 - } - ], - "size": 3 - }, - { - "source": { - "block": "9e7fbae9-cce7-42d1-b650-6e315c04c922", - "port": "constant-out" - }, - "target": { - "block": "fbdf2179-d67b-4d89-ae41-928932a492f9", - "port": "437fac17-b8b4-4d9f-8d03-27300b3b9466" - } - }, - { - "source": { - "block": "fbdf2179-d67b-4d89-ae41-928932a492f9", - "port": "0344dacc-8583-456b-b377-8cb4ab97cf94" - }, - "target": { - "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", - "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" - } - }, - { - "source": { - "block": "665884f2-d123-4f55-9a11-4c8f431c3020", - "port": "value" - }, - "target": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "4f066abd-3ac4-45e9-ad20-d1eff038c986" - }, - "size": 8 - }, - { - "source": { - "block": "665884f2-d123-4f55-9a11-4c8f431c3020", - "port": "regis" - }, - "target": { - "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", - "port": "325fbba1-e929-4921-a644-95f918e6e4ee" - }, - "size": 8 - }, - { - "source": { - "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", - "port": "bf25756a-65a4-4b09-915d-494010d6f4ff" - }, - "target": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "17ec9584-f1ef-4cd5-a0a5-850ecb89065c" - }, - "vertices": [ - { - "x": -584, - "y": 336 - } - ], - "size": 8 - }, - { - "source": { - "block": "09a84e89-0e4a-43cc-a5b9-6c8ac6ce5742", - "port": "out" - }, - "target": { - "block": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", - "port": "186c4116-7846-4c8e-98a0-7376675105f1" - }, - "size": 2 - }, - { - "source": { - "block": "5d1a3bb7-8f31-4c17-9f0e-09fdcf7bd807", - "port": "memory-out" - }, - "target": { - "block": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", - "port": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377" - } - }, - { - "source": { - "block": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", - "port": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5" - }, - "target": { - "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", - "port": "9f5a1c91-1b93-4609-877c-816ed8fd0871" - }, - "size": 8 - }, - { - "source": { - "block": "bfc6f0ec-0d3a-4caa-9d40-9f4e8f59f112", - "port": "out" - }, - "target": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" - } - }, - { - "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" - }, - "target": { - "block": "056f271d-dcca-4550-aa60-083c7d9515e3", - "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" - } - }, - { - "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" - }, - "target": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" - } - }, - { - "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" - }, - "target": { - "block": "dd7d5998-c070-46ea-863f-49da091eda29", - "port": "4196184b-4a60-493b-bcc6-c95958483683" - }, - "vertices": [ - { - "x": -1296, - "y": 520 - } - ] - }, - { - "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" - }, - "target": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "6355398c-628e-42d2-86e8-f85762c31939" - } - }, - { - "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" - }, - "target": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "096f61b6-6d5c-4907-9512-e65b25969458" - } - }, - { - "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" - }, - "target": { - "block": "a594d32c-f8bc-4931-a350-e660f1754f7c", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" - } - }, - { - "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" - }, - "target": { - "block": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" - }, - "vertices": [ - { - "x": -48, - "y": 464 - } - ] - }, - { - "source": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "94b801a2-93e1-4d50-984d-d366909343ea", - "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" - }, - "vertices": [ - { - "x": -1648, - "y": 856 - } - ] - }, - { - "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" - }, - "target": { - "block": "94b801a2-93e1-4d50-984d-d366909343ea", - "port": "4196184b-4a60-493b-bcc6-c95958483683" - } - }, - { - "source": { - "block": "94b801a2-93e1-4d50-984d-d366909343ea", - "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" - }, - "target": { - "block": "f4f0b0cc-6b11-417f-b8de-933dd739752b", - "port": "in" - } - } - ] - } - } - }, - "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" - } - } - ] - } - } - }, - "20b7dbadd419751f1658977d442517896b210c75": { - "package": { - "name": "Constante-7bits", - "version": "0.0.1", - "description": "Valor genérico constante, de 7 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=%22145.608%22%20height=%22247.927%22%20viewBox=%220%200%20136.50729%20232.43134%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-weight=%22400%22%20font-size=%22335.399%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%3Ek%3C/tspan%3E%3C/text%3E%3C/svg%3E" - }, - "design": { - "graph": { - "blocks": [ - { - "id": "cf56e668-4c75-451d-ab35-b8457ab06e22", - "type": "basic.output", - "data": { - "name": "k", - "range": "[6:0]", - "size": 7 - }, - "position": { - "x": 960, - "y": 248 - } - }, - { - "id": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", - "type": "basic.constant", - "data": { - "name": "", - "value": "0", - "local": false - }, - "position": { - "x": 728, - "y": 128 - } - }, - { - "id": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", + "id": "665884f2-d123-4f55-9a11-4c8f431c3020", "type": "basic.code", "data": { - "code": "assign k = VALUE;", - "params": [ - { - "name": "VALUE" - } - ], + "code": "assign op = i[17:16];\nassign regis = i[15:8];\nassign value = i[7:0];", + "params": [], "ports": { - "in": [], + "in": [ + { + "name": "i", + "range": "[17:0]", + "size": 18 + } + ], "out": [ { - "name": "k", - "range": "[6:0]", - "size": 7 + "name": "regis", + "range": "[7:0]", + "size": 8 + }, + { + "name": "value", + "range": "[7:0]", + "size": 8 + }, + { + "name": "op", + "range": "[1:0]", + "size": 2 } ] } }, "position": { - "x": 672, - "y": 248 + "x": -1032, + "y": 344 }, "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": "cf56e668-4c75-451d-ab35-b8457ab06e22", - "port": "in" - }, - "size": 7 - } - ] - } - } - }, - "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 + "width": 224, + "height": 96 } }, { - "id": "1cb167a4-9e2a-416b-803e-da7b6151eaa5", - "type": "basic.output", + "id": "032db993-b0ca-47dd-ba47-7e65fe70e0f3", + "type": "basic.info", "data": { - "name": "" + "info": "Decoddificador", + "readonly": true }, "position": { - "x": 720, - "y": 152 - } - }, - { - "id": "86eb8c81-17fc-4371-bd21-51f429191f3c", - "type": "basic.input", - "data": { - "name": "rst", - "clock": false + "x": -712, + "y": 88 }, - "position": { - "x": 200, - "y": 232 + "size": { + "width": 144, + "height": 40 } }, { - "id": "bf12a800-db30-4289-a7c5-8c08438f9a39", - "type": "basic.constant", - "data": { - "name": "", - "value": "0", - "local": false - }, + "id": "056f271d-dcca-4550-aa60-083c7d9515e3", + "type": "117a3398e8b038aec02d56f0f0ebdd6197dd5305", "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" - } - ] - } + "x": -1424, + "y": 360 }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "2223e693-de97-453c-8372-5df27eac1ef1", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", "position": { - "x": 400, - "y": 120 + "x": -1608, + "y": 384 }, "size": { - "width": 224, - "height": 128 + "width": 96, + "height": 64 } - } - ], - "wires": [ + }, { - "source": { - "block": "9f09a4af-8f7a-45c3-af7b-293a244e76d9", - "port": "out" - }, - "target": { - "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", - "port": "clk" + "id": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "position": { + "x": -784, + "y": 496 }, - "vertices": [ - { - "x": 336, - "y": 104 - } - ] + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "3ae2d46d-7981-497a-899f-b60bfae0f43e", - "port": "out" + "id": "e7415f08-799e-4142-a6a0-5543b49d8c73", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": -1608, + "y": 592 }, - "target": { - "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", - "port": "set" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "86eb8c81-17fc-4371-bd21-51f429191f3c", - "port": "out" - }, - "target": { - "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", - "port": "rst" + "id": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": -648, + "y": 464 }, - "vertices": [ - { - "x": 344, - "y": 248 - } - ] + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", - "port": "q" + "id": "a594d32c-f8bc-4931-a350-e660f1754f7c", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", + "position": { + "x": -160, + "y": 616 }, - "target": { - "block": "1cb167a4-9e2a-416b-803e-da7b6151eaa5", - "port": "in" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "bf12a800-db30-4289-a7c5-8c08438f9a39", - "port": "constant-out" + "id": "f56d83b1-73c7-433d-810b-94107609ceb1", + "type": "2b27874a703dd0b148b08ecb5a00d1867eebe92c", + "position": { + "x": -328, + "y": 216 }, - "target": { - "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", - "port": "INI" + "size": { + "width": 96, + "height": 256 } - } - ] - } - } - }, - "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 - }, + "id": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", "position": { - "x": 152, - "y": 176 + "x": 72, + "y": 600 + }, + "size": { + "width": 96, + "height": 64 } }, { - "id": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", - "type": "basic.output", - "data": { - "name": "" - }, + "id": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", + "type": "359a555a147b0afd9d84e4a720ec84b7cdfbc034", "position": { - "x": 624, - "y": 200 + "x": -704, + "y": 176 + }, + "size": { + "width": 96, + "height": 96 } }, { - "id": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", - "type": "basic.input", - "data": { - "name": "", - "clock": false - }, + "id": "fbdf2179-d67b-4d89-ae41-928932a492f9", + "type": "d9a3cf565602d237c50136543d558affa15c7654", "position": { - "x": 152, + "x": -1216, "y": 232 + }, + "size": { + "width": 96, + "height": 64 } }, { - "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" - } - ] - } + "id": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", + "type": "fbbede7f059cd50db81d1e80b2e575ed877c91a0", + "position": { + "x": -1664, + "y": 88 }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "94b801a2-93e1-4d50-984d-d366909343ea", + "type": "7eacdff4ce248b009935725889c8ae3339817d76", "position": { - "x": 336, - "y": 176 + "x": -1456, + "y": 864 }, "size": { - "width": 232, - "height": 112 + "width": 96, + "height": 64 } } ], "wires": [ { "source": { - "block": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", - "port": "out" + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "d3e4f800-c611-4f65-88e7-8b7d2def0021" }, "target": { - "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", - "port": "i" - } + "block": "2dd424a5-e616-4505-8a89-4982cdd7539d", + "port": "in" + }, + "size": 8 }, { "source": { - "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", - "port": "o" + "block": "3f0866f0-c93f-4d57-9aab-b2e1ec7d135b", + "port": "constant-out" }, "target": { - "block": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", - "port": "in" + "block": "ada801ec-97ac-4d32-a9fd-a997ce0d2c16", + "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" } }, { "source": { - "block": "4196184b-4a60-493b-bcc6-c95958483683", + "block": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a", "port": "out" }, - "target": { - "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", - "port": "clk" - } - } - ] - } - } - }, - "1535f6f47d269b5d2de10c9fcd212e580a4d640c": { - "package": { - "name": "mi-tabla3-18", - "version": "0.1", - "description": "Circuito combinacional de 3 entradas y 18 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 + "target": { + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a" } }, { - "id": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", - "type": "basic.output", - "data": { - "name": "", - "range": "[17:0]", - "size": 18 + "source": { + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "43bc16ab-b91d-405c-bef0-887bd1a85fd7" }, - "position": { - "x": 632, - "y": 424 + "target": { + "block": "43bc16ab-b91d-405c-bef0-887bd1a85fd7", + "port": "in" } }, { - "id": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", - "type": "basic.memory", - "data": { - "name": "", - "list": "0\n0\n0\n0", - "local": false + "source": { + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "2dd424a5-e616-4505-8a89-4982cdd7539d" }, - "position": { - "x": 328, - "y": 96 + "target": { + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "42b35cc2-aa64-4e66-be42-169958246799" }, - "size": { - "width": 96, - "height": 104 + "size": 8 + }, + { + "source": { + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "efa38a4c-7d36-47f9-82de-6cf99cf88c3d" + }, + "target": { + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "065ea371-8398-43b3-8341-287c234a3acb" } }, { - "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 = 18;\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": "[17:0]", - "size": 18 - } - ] + "source": { + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "dd7d5998-c070-46ea-863f-49da091eda29", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + } + }, + { + "source": { + "block": "ada801ec-97ac-4d32-a9fd-a997ce0d2c16", + "port": "cf56e668-4c75-451d-ab35-b8457ab06e22" + }, + "target": { + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "17680ad1-ed73-4b6c-a31e-c96c61fc88ef" + }, + "vertices": [ + { + "x": -552, + "y": 48 } + ], + "size": 7 + }, + { + "source": { + "block": "665884f2-d123-4f55-9a11-4c8f431c3020", + "port": "op" }, - "position": { - "x": 176, - "y": 264 + "target": { + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "fba9c594-4b64-4f48-8979-25c1a001e90a" }, - "size": { - "width": 392, - "height": 384 - } - } - ], - "wires": [ + "size": 2 + }, { "source": { - "block": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", + "block": "22ab7ece-cc08-4d88-8169-0c27996f429f", "port": "memory-out" }, "target": { - "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", - "port": "DATA" + "block": "f6118dec-faf4-4b86-8c20-aa0368015453", + "port": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377" } }, { "source": { - "block": "186c4116-7846-4c8e-98a0-7376675105f1", - "port": "out" + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", - "port": "i" + "block": "2223e693-de97-453c-8372-5df27eac1ef1", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, - "size": 3 + "vertices": [ + { + "x": -1656, + "y": 552 + } + ] }, { "source": { - "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", - "port": "q" + "block": "dd7d5998-c070-46ea-863f-49da091eda29", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" }, "target": { - "block": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", - "port": "in" + "block": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, - "size": 18 - } - ] - } - } - }, - "117a3398e8b038aec02d56f0f0ebdd6197dd5305": { - "package": { - "name": "Contador-3bits-up-rst", - "version": "0.1", - "description": "Contador módulo M, ascendente, de 3 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": [ + "vertices": [ + { + "x": -936, + "y": 656 + } + ] + }, { - "id": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", - "type": "basic.input", - "data": { - "name": "", - "clock": true + "source": { + "block": "3b4b7515-4e2b-46d2-8994-7ea4b3ad22e3", + "port": "constant-out" }, - "position": { - "x": 264, - "y": 176 + "target": { + "block": "056f271d-dcca-4550-aa60-083c7d9515e3", + "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" } }, { - "id": "2124c987-5d1b-4335-858f-502559b11a26", - "type": "basic.output", - "data": { - "name": "", - "range": "[2:0]", - "size": 3 + "source": { + "block": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "position": { - "x": 800, - "y": 200 + "target": { + "block": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", + "port": "97b51945-d716-4b6c-9db9-970d08541249" } }, { - "id": "743b5299-2d89-4783-b7c9-12a5b36df406", - "type": "basic.input", - "data": { - "name": "rst", - "clock": false + "source": { + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, - "position": { - "x": 264, - "y": 280 - } + "target": { + "block": "e7415f08-799e-4142-a6a0-5543b49d8c73", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": -1656, + "y": 624 + } + ] }, { - "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", - "type": "basic.output", - "data": { - "name": "ov" + "source": { + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "18dc0bf6-35be-4fad-9e92-79ae207ff435" }, - "position": { - "x": 800, - "y": 352 - } + "target": { + "block": "a594d32c-f8bc-4931-a350-e660f1754f7c", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + }, + "vertices": [ + { + "x": -208, + "y": 560 + } + ] + }, + { + "source": { + "block": "056f271d-dcca-4550-aa60-083c7d9515e3", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + }, + "target": { + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + }, + "vertices": [ + { + "x": -1344, + "y": 800 + } + ] }, { - "id": "26aba23f-8567-4e9b-bd45-c26724030f33", - "type": "basic.input", - "data": { - "name": "cnt", - "clock": false + "source": { + "block": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "position": { - "x": 264, - "y": 376 + "target": { + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "b882b07a-a45e-429f-b442-f6547b67e98e" } }, { - "id": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", - "type": "basic.constant", - "data": { - "name": "", - "value": "8", - "local": false + "source": { + "block": "2223e693-de97-453c-8372-5df27eac1ef1", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "position": { - "x": 528, - "y": 48 + "target": { + "block": "056f271d-dcca-4550-aa60-083c7d9515e3", + "port": "743b5299-2d89-4783-b7c9-12a5b36df406" } }, { - "id": "b35ae5de-a490-4f7b-9200-ac52cd3f333e", - "type": "basic.info", - "data": { - "info": "**Parámetro**: Módulo del contador", - "readonly": true - }, - "position": { - "x": 472, - "y": 32 + "source": { + "block": "e7415f08-799e-4142-a6a0-5543b49d8c73", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "size": { - "width": 280, - "height": 56 + "target": { + "block": "056f271d-dcca-4550-aa60-083c7d9515e3", + "port": "26aba23f-8567-4e9b-bd45-c26724030f33" } }, { - "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "type": "basic.code", - "data": { - "code": "//-- Numero de bits del contador\nlocalparam N = 3; \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": "[2:0]", - "size": 3 - }, - { - "name": "ov" - } - ] - } + "source": { + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, - "position": { - "x": 408, - "y": 160 + "target": { + "block": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, - "size": { - "width": 336, - "height": 296 - } - } - ], - "wires": [ + "vertices": [ + { + "x": -1656, + "y": 624 + } + ] + }, { "source": { - "block": "743b5299-2d89-4783-b7c9-12a5b36df406", - "port": "out" + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "18dc0bf6-35be-4fad-9e92-79ae207ff435" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "rst" - } + "block": "e7415f08-799e-4142-a6a0-5543b49d8c73", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [ + { + "x": -320, + "y": 568 + } + ] }, { "source": { - "block": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", - "port": "constant-out" + "block": "a594d32c-f8bc-4931-a350-e660f1754f7c", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "M" + "block": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" } }, { "source": { - "block": "26aba23f-8567-4e9b-bd45-c26724030f33", - "port": "out" + "block": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "cnt" - } + "block": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [ + { + "x": -520, + "y": 720 + }, + { + "x": -856, + "y": 648 + } + ] }, { "source": { - "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", - "port": "out" + "block": "f6118dec-faf4-4b86-8c20-aa0368015453", + "port": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "clk" - } + "block": "665884f2-d123-4f55-9a11-4c8f431c3020", + "port": "i" + }, + "size": 18 }, { "source": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "ov" + "block": "056f271d-dcca-4550-aa60-083c7d9515e3", + "port": "2124c987-5d1b-4335-858f-502559b11a26" }, "target": { - "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", - "port": "in" - } + "block": "f6118dec-faf4-4b86-8c20-aa0368015453", + "port": "186c4116-7846-4c8e-98a0-7376675105f1" + }, + "size": 3 }, { "source": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "q" + "block": "056f271d-dcca-4550-aa60-083c7d9515e3", + "port": "2124c987-5d1b-4335-858f-502559b11a26" }, "target": { - "block": "2124c987-5d1b-4335-858f-502559b11a26", - "port": "in" + "block": "fbdf2179-d67b-4d89-ae41-928932a492f9", + "port": "0867b1bc-1cc5-4707-8ddb-40d0318d237c" }, + "vertices": [ + { + "x": -1264, + "y": 256 + } + ], "size": 3 - } - ] - } - } - }, - "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": "" + "source": { + "block": "9e7fbae9-cce7-42d1-b650-6e315c04c922", + "port": "constant-out" }, - "position": { - "x": 752, - "y": 144 + "target": { + "block": "fbdf2179-d67b-4d89-ae41-928932a492f9", + "port": "437fac17-b8b4-4d9f-8d03-27300b3b9466" } }, { - "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 + "source": { + "block": "fbdf2179-d67b-4d89-ae41-928932a492f9", + "port": "0344dacc-8583-456b-b377-8cb4ab97cf94" }, - "size": { - "width": 400, - "height": 256 - } - } - ], - "wires": [ + "target": { + "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", + "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" + } + }, { "source": { - "block": "18c2ebc7-5152-439c-9b3f-851c59bac834", - "port": "out" + "block": "665884f2-d123-4f55-9a11-4c8f431c3020", + "port": "value" }, "target": { - "block": "5365ed8c-e5db-4445-938f-8d689830ea5c", - "port": "a" - } + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "4f066abd-3ac4-45e9-ad20-d1eff038c986" + }, + "size": 8 }, { "source": { - "block": "5365ed8c-e5db-4445-938f-8d689830ea5c", - "port": "c" + "block": "665884f2-d123-4f55-9a11-4c8f431c3020", + "port": "regis" }, "target": { - "block": "664caf9e-5f40-4df4-800a-b626af702e62", - "port": "in" - } - } - ] - } - } - }, - "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": [ + "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", + "port": "325fbba1-e929-4921-a644-95f918e6e4ee" + }, + "size": 8 + }, { - "id": "18c2ebc7-5152-439c-9b3f-851c59bac834", - "type": "basic.input", - "data": { - "name": "" + "source": { + "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", + "port": "bf25756a-65a4-4b09-915d-494010d6f4ff" }, - "position": { - "x": 64, - "y": 88 - } + "target": { + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "17ec9584-f1ef-4cd5-a0a5-850ecb89065c" + }, + "vertices": [ + { + "x": -584, + "y": 336 + } + ], + "size": 8 }, { - "id": "664caf9e-5f40-4df4-800a-b626af702e62", - "type": "basic.output", - "data": { - "name": "" + "source": { + "block": "09a84e89-0e4a-43cc-a5b9-6c8ac6ce5742", + "port": "out" }, - "position": { - "x": 784, - "y": 152 - } + "target": { + "block": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", + "port": "186c4116-7846-4c8e-98a0-7376675105f1" + }, + "size": 2 }, { - "id": "97b51945-d716-4b6c-9db9-970d08541249", - "type": "basic.input", - "data": { - "name": "" + "source": { + "block": "5d1a3bb7-8f31-4c17-9f0e-09fdcf7bd807", + "port": "memory-out" }, - "position": { - "x": 64, - "y": 224 + "target": { + "block": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", + "port": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377" } }, { - "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" - } - ] - } + "source": { + "block": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", + "port": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5" }, - "position": { - "x": 256, - "y": 48 + "target": { + "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", + "port": "9f5a1c91-1b93-4609-877c-816ed8fd0871" }, - "size": { - "width": 464, - "height": 272 - } - } - ], - "wires": [ + "size": 8 + }, { "source": { - "block": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "block": "bfc6f0ec-0d3a-4caa-9d40-9f4e8f59f112", "port": "out" }, "target": { - "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", - "port": "a" + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" } }, { "source": { - "block": "97b51945-d716-4b6c-9db9-970d08541249", + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", "port": "out" }, "target": { - "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", - "port": "b" + "block": "056f271d-dcca-4550-aa60-083c7d9515e3", + "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" } }, { "source": { - "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", - "port": "c" + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "port": "out" }, "target": { - "block": "664caf9e-5f40-4df4-800a-b626af702e62", - "port": "in" + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" } - } - ] - } - } - }, - "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": "" + "source": { + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "port": "out" }, - "position": { - "x": 64, - "y": 88 - } + "target": { + "block": "dd7d5998-c070-46ea-863f-49da091eda29", + "port": "4196184b-4a60-493b-bcc6-c95958483683" + }, + "vertices": [ + { + "x": -1296, + "y": 520 + } + ] }, { - "id": "664caf9e-5f40-4df4-800a-b626af702e62", - "type": "basic.output", - "data": { - "name": "" + "source": { + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "port": "out" }, - "position": { - "x": 784, - "y": 152 + "target": { + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "6355398c-628e-42d2-86e8-f85762c31939" } }, { - "id": "97b51945-d716-4b6c-9db9-970d08541249", - "type": "basic.input", - "data": { - "name": "" + "source": { + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "port": "out" }, - "position": { - "x": 64, - "y": 224 + "target": { + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "096f61b6-6d5c-4907-9512-e65b25969458" } }, { - "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 + "source": { + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "port": "out" }, - "size": { - "width": 464, - "height": 272 + "target": { + "block": "a594d32c-f8bc-4931-a350-e660f1754f7c", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" } - } - ], - "wires": [ + }, + { + "source": { + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "port": "out" + }, + "target": { + "block": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + }, + "vertices": [ + { + "x": -48, + "y": 464 + } + ] + }, { "source": { - "block": "18c2ebc7-5152-439c-9b3f-851c59bac834", - "port": "out" + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", - "port": "a" - } + "block": "94b801a2-93e1-4d50-984d-d366909343ea", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + }, + "vertices": [ + { + "x": -1648, + "y": 856 + } + ] }, { "source": { - "block": "97b51945-d716-4b6c-9db9-970d08541249", + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", "port": "out" }, "target": { - "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", - "port": "b" + "block": "94b801a2-93e1-4d50-984d-d366909343ea", + "port": "4196184b-4a60-493b-bcc6-c95958483683" } }, { "source": { - "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", - "port": "c" + "block": "94b801a2-93e1-4d50-984d-d366909343ea", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" }, "target": { - "block": "664caf9e-5f40-4df4-800a-b626af702e62", + "block": "f4f0b0cc-6b11-417f-b8de-933dd739752b", "port": "in" } } @@ -2807,54 +2000,70 @@ } } }, - "1c7dae7144d376f2ee4896fcc502a29110e2db37": { + "89d2342d9664348db3e70e823cacbc8eb24ea3d0": { "package": { - "name": "Biestable-D", + "name": "Registro", "version": "0.1", - "description": "Biestable de datos (Tipo D). Cuando se recibe un tic por load se captura el dato", + "description": "Registro de 8 bits", "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" + "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": "3943e194-090b-4553-9df3-88bc4b17abc2", + "id": "096f61b6-6d5c-4907-9512-e65b25969458", "type": "basic.input", "data": { "name": "", "clock": true }, "position": { - "x": 192, - "y": 136 + "x": 80, + "y": 176 } }, { - "id": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", + "id": "d3e4f800-c611-4f65-88e7-8b7d2def0021", "type": "basic.output", "data": { - "name": "" + "name": "q", + "range": "[7:0]", + "size": 8 }, "position": { - "x": 680, - "y": 184 + "x": 632, + "y": 248 } }, { - "id": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", + "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": 192, - "y": 232 + "x": 80, + "y": 312 } }, { - "id": "65194b18-5d2a-41b2-bd86-01be99978ad6", + "id": "f3b434e4-0c8f-4dd7-90c7-305189a807f1", "type": "basic.constant", "data": { "name": "", @@ -2862,15 +2071,15 @@ "local": false }, "position": { - "x": 456, - "y": 64 + "x": 376, + "y": 56 } }, { - "id": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "id": "32106310-bfdc-41db-9a7c-2dadd5016c3f", "type": "basic.code", "data": { - "code": "reg q = INI;\nalways @(posedge clk)\n q <= d;", + "code": "localparam N = 8;\n\nreg [N-1:0] q = INI;\n\nalways @(posedge clk)\n if (load)\n q <= d;", "params": [ { "name": "INI" @@ -2882,2647 +2091,2941 @@ "name": "clk" }, { - "name": "d" + "name": "d", + "range": "[7:0]", + "size": 8 + }, + { + "name": "load" } ], "out": [ { - "name": "q" + "name": "q", + "range": "[7:0]", + "size": 8 } ] } }, "position": { - "x": 384, - "y": 168 + "x": 280, + "y": 176 }, "size": { - "width": 232, - "height": 88 + "width": 288, + "height": 200 } } ], "wires": [ { "source": { - "block": "3943e194-090b-4553-9df3-88bc4b17abc2", - "port": "out" + "block": "f3b434e4-0c8f-4dd7-90c7-305189a807f1", + "port": "constant-out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "clk" - } + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "INI" + }, + "vertices": [] }, { "source": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", "port": "q" }, "target": { - "block": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", + "block": "d3e4f800-c611-4f65-88e7-8b7d2def0021", "port": "in" - } + }, + "size": 8 }, { "source": { - "block": "65194b18-5d2a-41b2-bd86-01be99978ad6", - "port": "constant-out" + "block": "42b35cc2-aa64-4e66-be42-169958246799", + "port": "out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "INI" + "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": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", + "block": "096f61b6-6d5c-4907-9512-e65b25969458", "port": "out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "d" + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "clk" } } ] } } }, - "2b27874a703dd0b148b08ecb5a00d1867eebe92c": { + "20b7dbadd419751f1658977d442517896b210c75": { "package": { - "name": "i2c", - "version": "0.1", - "description": "Controlador i2c que permite 3 transacciones: escritura, lectura y selección", - "author": "Juan González-Gómez (Obijuan)", - "image": "" + "name": "Constante-7bits", + "version": "0.0.1", + "description": "Valor genérico constante, de 7 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=%22145.608%22%20height=%22247.927%22%20viewBox=%220%200%20136.50729%20232.43134%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-weight=%22400%22%20font-size=%22335.399%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%3Ek%3C/tspan%3E%3C/text%3E%3C/svg%3E" }, "design": { "graph": { "blocks": [ { - "id": "43bc16ab-b91d-405c-bef0-887bd1a85fd7", + "id": "cf56e668-4c75-451d-ab35-b8457ab06e22", "type": "basic.output", "data": { - "name": "SCL" + "name": "k", + "range": "[6:0]", + "size": 7 }, "position": { - "x": 376, - "y": -288 + "x": 960, + "y": 248 + } + }, + { + "id": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", + "type": "basic.constant", + "data": { + "name": "", + "value": "0", + "local": false + }, + "position": { + "x": 728, + "y": 128 + } + }, + { + "id": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", + "type": "basic.code", + "data": { + "code": "assign k = VALUE;", + "params": [ + { + "name": "VALUE" + } + ], + "ports": { + "in": [], + "out": [ + { + "name": "k", + "range": "[6:0]", + "size": 7 + } + ] + } + }, + "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" } }, { - "id": "6355398c-628e-42d2-86e8-f85762c31939", + "source": { + "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", + "port": "k" + }, + "target": { + "block": "cf56e668-4c75-451d-ab35-b8457ab06e22", + "port": "in" + }, + "size": 7 + } + ] + } + } + }, + "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": -1952, - "y": -200 + "x": 200, + "y": 64 } }, { - "id": "11599aed-e7f9-4b50-9552-18a18327fe0a", - "type": "basic.output", + "id": "3ae2d46d-7981-497a-899f-b60bfae0f43e", + "type": "basic.input", "data": { - "name": "NAK" + "name": "set", + "clock": false }, "position": { - "x": 1576, - "y": -152 + "x": 200, + "y": 152 } }, { - "id": "2dd424a5-e616-4505-8a89-4982cdd7539d", + "id": "1cb167a4-9e2a-416b-803e-da7b6151eaa5", "type": "basic.output", "data": { - "name": "data", - "range": "[7:0]", - "size": 8 + "name": "" }, "position": { - "x": 1592, - "y": -16 + "x": 720, + "y": 152 } }, { - "id": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a", + "id": "86eb8c81-17fc-4371-bd21-51f429191f3c", "type": "basic.input", "data": { - "name": "pin_SDA", + "name": "rst", "clock": false }, "position": { - "x": 192, - "y": 80 + "x": 200, + "y": 232 } }, { - "id": "5cdc523e-a6fc-4c9d-bfa8-8311f1589fb2", - "type": "basic.input", + "id": "bf12a800-db30-4289-a7c5-8c08438f9a39", + "type": "basic.constant", "data": { - "name": "rst_nak", - "clock": false + "name": "", + "value": "0", + "local": false }, "position": { - "x": 768, - "y": 160 + "x": 464, + "y": 0 } }, { - "id": "17680ad1-ed73-4b6c-a31e-c96c61fc88ef", - "type": "basic.input", + "id": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", + "type": "basic.code", "data": { - "name": "addr", - "range": "[6:0]", - "clock": false, - "size": 7 + "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": -1960, - "y": 288 - } - }, - { - "id": "17ec9584-f1ef-4cd5-a0a5-850ecb89065c", - "type": "basic.input", - "data": { - "name": "reg", - "range": "[7:0]", - "clock": false, - "size": 8 + "x": 400, + "y": 120 }, - "position": { - "x": -1960, - "y": 352 + "size": { + "width": 224, + "height": 128 } - }, + } + ], + "wires": [ { - "id": "4f066abd-3ac4-45e9-ad20-d1eff038c986", - "type": "basic.input", - "data": { - "name": "Value", - "range": "[7:0]", - "clock": false, - "size": 8 + "source": { + "block": "9f09a4af-8f7a-45c3-af7b-293a244e76d9", + "port": "out" }, - "position": { - "x": -1960, - "y": 424 - } - }, - { - "id": "efa38a4c-7d36-47f9-82de-6cf99cf88c3d", - "type": "basic.output", - "data": { - "name": "rcv" + "target": { + "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", + "port": "clk" }, - "position": { - "x": 1592, - "y": 464 - } + "vertices": [ + { + "x": 336, + "y": 104 + } + ] }, { - "id": "fba9c594-4b64-4f48-8979-25c1a001e90a", - "type": "basic.input", - "data": { - "name": "op", - "range": "[1:0]", - "clock": false, - "size": 2 + "source": { + "block": "3ae2d46d-7981-497a-899f-b60bfae0f43e", + "port": "out" }, - "position": { - "x": -1960, - "y": 504 + "target": { + "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", + "port": "set" } }, { - "id": "b882b07a-a45e-429f-b442-f6547b67e98e", - "type": "basic.input", - "data": { - "name": "exec", - "clock": false + "source": { + "block": "86eb8c81-17fc-4371-bd21-51f429191f3c", + "port": "out" }, - "position": { - "x": -1960, - "y": 576 - } + "target": { + "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", + "port": "rst" + }, + "vertices": [ + { + "x": 344, + "y": 248 + } + ] }, { - "id": "18dc0bf6-35be-4fad-9e92-79ae207ff435", - "type": "basic.output", - "data": { - "name": "done" + "source": { + "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", + "port": "q" }, - "position": { - "x": 1584, - "y": 744 + "target": { + "block": "1cb167a4-9e2a-416b-803e-da7b6151eaa5", + "port": "in" } }, { - "id": "7d667955-709f-4725-8ce6-8e6383b19129", - "type": "basic.memory", - "data": { - "name": "", - "list": "01 //-- Lectura. 2 Parametros. W=1\n00 //-- Seleccion. 2 parametros. W=0\n00 //-- Seleccion. Idem\n10 //-- Escritura. 3 param. W=0", - "local": false, - "format": 2 - }, - "position": { - "x": -1776, - "y": 1064 + "source": { + "block": "bf12a800-db30-4289-a7c5-8c08438f9a39", + "port": "constant-out" }, - "size": { - "width": 328, - "height": 120 + "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": "a3b7a6de-f60f-4b9b-b215-04dc02da40ef", - "type": "basic.constant", + "id": "4196184b-4a60-493b-bcc6-c95958483683", + "type": "basic.input", "data": { - "name": "T1", - "value": "3", - "local": true + "name": "", + "clock": true }, "position": { - "x": -1136, - "y": 216 + "x": 152, + "y": 176 } }, { - "id": "3e21cde1-61ca-4036-b448-bdb96e3b7b43", - "type": "basic.info", + "id": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", + "type": "basic.output", "data": { - "info": "**SDA**\n(INOUT) ", - "readonly": true - }, - "position": { - "x": 192, - "y": 0 - }, - "size": { - "width": 104, - "height": 48 + "name": "" + }, + "position": { + "x": 624, + "y": 200 } }, { - "id": "ce94e964-10b6-468f-8339-a08ee1c8134e", - "type": "e1a052c716ee278ec9830939ef171d742c56eafe", - "position": { - "x": 416, - "y": 208 + "id": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", + "type": "basic.input", + "data": { + "name": "", + "clock": false }, - "size": { - "width": 96, - "height": 96 + "position": { + "x": 152, + "y": 232 } }, { - "id": "bfa36119-d847-4269-a3e7-b97221afdb43", - "type": "basic.info", + "id": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "type": "basic.code", "data": { - "info": "Configuracion pin inout: \n1: Salida \n0: Entrada", - "readonly": true + "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": 416, - "y": 128 + "x": 336, + "y": 176 }, "size": { - "width": 224, - "height": 64 + "width": 232, + "height": 112 } - }, + } + ], + "wires": [ { - "id": "87a39423-9ce6-4036-8776-cb7f14be9458", - "type": "23e63b4fd19d0e1897b3c2faf5316f824f998872", - "position": { - "x": -1136, - "y": 328 + "source": { + "block": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", + "port": "out" }, - "size": { - "width": 96, - "height": 96 + "target": { + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "i" } }, { - "id": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", - "type": "8ba640a4be8254a54e8c2dfad99a8fb6a07b5752", - "position": { - "x": 1040, - "y": 296 + "source": { + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "o" }, - "size": { - "width": 96, - "height": 160 + "target": { + "block": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", + "port": "in" } }, { - "id": "4ea344b1-0d16-4d26-8ec6-528135ff4526", - "type": "fc9dacc62ad25cd2832c3442bf277af9b708249b", - "position": { - "x": -392, - "y": 688 + "source": { + "block": "4196184b-4a60-493b-bcc6-c95958483683", + "port": "out" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "clk" } - }, + } + ] + } + } + }, + "1535f6f47d269b5d2de10c9fcd212e580a4d640c": { + "package": { + "name": "mi-tabla3-18", + "version": "0.1", + "description": "Circuito combinacional de 3 entradas y 18 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": "ff11ff86-a76f-4122-b288-7122c87583f9", - "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", - "position": { - "x": -200, - "y": 704 + "id": "186c4116-7846-4c8e-98a0-7376675105f1", + "type": "basic.input", + "data": { + "name": "", + "range": "[2:0]", + "clock": false, + "size": 3 }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": -8, + "y": 424 } }, { - "id": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", - "type": "56e0da7091190448826e12c0590f60e2927ced42", - "position": { - "x": 1216, - "y": -56 + "id": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", + "type": "basic.output", + "data": { + "name": "", + "range": "[17:0]", + "size": 18 }, - "size": { - "width": 96, - "height": 96 + "position": { + "x": 632, + "y": 424 } }, { - "id": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", - "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "id": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", + "type": "basic.memory", + "data": { + "name": "", + "list": "0\n0\n0\n0", + "local": false + }, "position": { - "x": 840, - "y": -32 + "x": 328, + "y": 96 }, "size": { "width": 96, - "height": 64 + "height": 104 } }, { - "id": "5fd0f75f-64b4-489d-94ba-466de809fa10", - "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "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 = 18;\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": "[17:0]", + "size": 18 + } + ] + } + }, "position": { - "x": 712, - "y": 48 + "x": 176, + "y": 264 }, "size": { - "width": 96, - "height": 64 + "width": 392, + "height": 384 } - }, + } + ], + "wires": [ { - "id": "7df65402-4c8d-4e5f-a0c2-c90579f40266", - "type": "42ebf732ed72b2aa979e6858281bfe62c10bec5f", - "position": { - "x": 1040, - "y": -80 + "source": { + "block": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", + "port": "memory-out" }, - "size": { - "width": 96, - "height": 96 + "target": { + "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "port": "DATA" } }, { - "id": "8e70dbf5-9819-427a-8240-c431acd28680", - "type": "c146d4232b872efc8bb891cd29094024e9cc2c54", - "position": { - "x": 72, - "y": 448 + "source": { + "block": "186c4116-7846-4c8e-98a0-7376675105f1", + "port": "out" }, - "size": { - "width": 96, - "height": 128 - } + "target": { + "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "port": "i" + }, + "size": 3 }, { - "id": "bca7a427-a08f-48d3-807c-64a27a08db52", - "type": "89d2342d9664348db3e70e823cacbc8eb24ea3d0", - "position": { - "x": 1400, - "y": -32 + "source": { + "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "port": "q" + }, + "target": { + "block": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", + "port": "in" + }, + "size": 18 + } + ] + } + } + }, + "117a3398e8b038aec02d56f0f0ebdd6197dd5305": { + "package": { + "name": "Contador-3bits-up-rst", + "version": "0.1", + "description": "Contador módulo M, ascendente, de 3 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 }, - "size": { - "width": 96, - "height": 96 - } - }, - { - "id": "7435a99e-3148-4748-aeb3-4bbe7cd9ee12", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", "position": { - "x": 1408, - "y": 464 - }, - "size": { - "width": 96, - "height": 64 + "x": 264, + "y": 176 } }, { - "id": "c7934725-89bb-4c91-a3e5-eeef6b921f11", - "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", - "position": { - "x": 1008, - "y": 656 + "id": "2124c987-5d1b-4335-858f-502559b11a26", + "type": "basic.output", + "data": { + "name": "", + "range": "[2:0]", + "size": 3 }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": 800, + "y": 200 } }, { - "id": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "type": "3e4cef8e5d182ddc9806ac0f5a9ee24351737373", + "id": "743b5299-2d89-4783-b7c9-12a5b36df406", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false + }, "position": { - "x": 72, + "x": 264, "y": 280 - }, - "size": { - "width": 96, - "height": 128 } }, { - "id": "f69cff70-8365-4b3a-a4d9-1f0e211caaa0", - "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", - "position": { - "x": 824, - "y": 680 + "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "type": "basic.output", + "data": { + "name": "ov" }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": 800, + "y": 352 } }, { - "id": "9ce21784-a6ab-4de1-a59b-a2c6149671c2", - "type": "basic.info", + "id": "26aba23f-8567-4e9b-bd45-c26724030f33", + "type": "basic.input", "data": { - "info": "Señal para lectura \n(W=1)", - "readonly": true + "name": "cnt", + "clock": false }, "position": { - "x": -200, - "y": 640 - }, - "size": { - "width": 192, - "height": 56 + "x": 264, + "y": 376 } }, { - "id": "83cb1364-e769-4b68-a090-a78237494c57", - "type": "5cc6ec961df1a19b78d61422b28169fc0f69384b", - "position": { - "x": -48, - "y": 760 + "id": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "type": "basic.constant", + "data": { + "name": "", + "value": "8", + "local": false }, - "size": { - "width": 96, - "height": 96 - } - }, - { - "id": "6f59f402-ae30-4921-9b55-f979bb92b693", - "type": "725b7e2cb9666b5ed3183537d9c898f096dab82a", "position": { - "x": -200, - "y": 776 - }, - "size": { - "width": 96, - "height": 64 + "x": 528, + "y": 48 } }, { - "id": "18cd2222-b188-4031-93ab-c41f09f31753", + "id": "b35ae5de-a490-4f7b-9200-ac52cd3f333e", "type": "basic.info", "data": { - "info": "Señal para escritura \n(W=0)", + "info": "**Parámetro**: Módulo del contador", "readonly": true }, "position": { - "x": -200, - "y": 864 + "x": 472, + "y": 32 }, "size": { - "width": 192, + "width": 280, "height": 56 } }, { - "id": "ca3f2050-c5d1-40e4-9e8b-063623625d02", + "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", "type": "basic.code", "data": { - "code": "assign b = {a,w};", - "params": [], + "code": "//-- Numero de bits del contador\nlocalparam N = 3; \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": "a", - "range": "[6:0]", - "size": 7 + "name": "clk" }, { - "name": "w" + "name": "rst" + }, + { + "name": "cnt" } ], "out": [ { - "name": "b", - "range": "[7:0]", - "size": 8 + "name": "q", + "range": "[2:0]", + "size": 3 + }, + { + "name": "ov" } ] } }, "position": { - "x": -1288, - "y": 1024 + "x": 408, + "y": 160 }, "size": { - "width": 200, - "height": 64 + "width": 336, + "height": 296 + } + } + ], + "wires": [ + { + "source": { + "block": "743b5299-2d89-4783-b7c9-12a5b36df406", + "port": "out" + }, + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "rst" } }, { - "id": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "type": "f1c84b11f2df5ee213cec33e6f9af2d0c66e6924", - "position": { - "x": -376, - "y": 296 + "source": { + "block": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "port": "constant-out" }, - "size": { - "width": 96, - "height": 160 + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "M" } }, { - "id": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "type": "5483349a60d7c0f7f4146228196d6f4c4ad7604d", - "position": { - "x": -568, - "y": 512 + "source": { + "block": "26aba23f-8567-4e9b-bd45-c26724030f33", + "port": "out" }, - "size": { - "width": 96, - "height": 128 + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "cnt" } }, { - "id": "43205473-b036-4e36-8371-f424b8d09581", - "type": "56cc183f8c704107b94d882715f6e43592dcaf61", - "position": { - "x": -856, - "y": 880 + "source": { + "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "port": "out" }, - "size": { - "width": 96, - "height": 192 + "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" } }, { - "id": "a0139b24-fc4f-4a98-911b-6a510b929bca", - "type": "eebee1482748e838ffef3618817cc1fa911e4952", - "position": { - "x": -928, - "y": 528 + "source": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "q" + }, + "target": { + "block": "2124c987-5d1b-4335-858f-502559b11a26", + "port": "in" + }, + "size": 3 + } + ] + } + } + }, + "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": "" }, - "size": { - "width": 96, - "height": 96 - } - }, - { - "id": "23836a37-4ae5-4e06-be42-1a6047af199d", - "type": "945d5c43e22d4f1d3f8e379417d47f170e4adcf6", "position": { - "x": -1144, - "y": 528 - }, - "size": { - "width": 96, - "height": 64 + "x": 64, + "y": 144 } }, { - "id": "3a242407-5ac7-4348-beb7-b08d6f8c66f4", - "type": "ceff2da3577d3e4da3ad522a234b993cfc71e21a", - "position": { - "x": -1144, - "y": 448 + "id": "664caf9e-5f40-4df4-800a-b626af702e62", + "type": "basic.output", + "data": { + "name": "" }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "5339e7e3-3097-4ee7-bf79-07c1d3172a8e", - "type": "a475867b1a8ac28299ed315b271747ba4ec10c54", "position": { - "x": -1760, - "y": 1256 - }, - "size": { - "width": 96, - "height": 64 + "x": 752, + "y": 144 } }, { - "id": "c7a93f63-7a23-4049-ab68-220c1a70b111", - "type": "fc9dacc62ad25cd2832c3442bf277af9b708249b", - "position": { - "x": -1488, - "y": 1256 + "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" + } + ] + } }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "9e57aa64-2990-4ff3-8244-9a70f77ff6f5", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", "position": { - "x": 1408, - "y": 744 + "x": 256, + "y": 48 }, "size": { - "width": 96, - "height": 64 + "width": 400, + "height": 256 } } ], "wires": [ { "source": { - "block": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a", + "block": "18c2ebc7-5152-439c-9b3f-851c59bac834", "port": "out" }, "target": { - "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", - "port": "076fd025-aa42-4f23-ae97-b65aec2298ce" + "block": "5365ed8c-e5db-4445-938f-8d689830ea5c", + "port": "a" } }, { "source": { - "block": "a3b7a6de-f60f-4b9b-b215-04dc02da40ef", - "port": "constant-out" + "block": "5365ed8c-e5db-4445-938f-8d689830ea5c", + "port": "c" }, "target": { - "block": "87a39423-9ce6-4036-8776-cb7f14be9458", - "port": "5dc401ee-7963-464f-8ab5-e8ddedf191e2" + "block": "664caf9e-5f40-4df4-800a-b626af702e62", + "port": "in" } - }, + } + ] + } + } + }, + "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": [ { - "source": { - "block": "87a39423-9ce6-4036-8776-cb7f14be9458", - "port": "e69a71cb-1e3d-49df-a1cc-81fa1126bbb9" + "id": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "type": "basic.input", + "data": { + "name": "" }, - "target": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "748fced1-f2be-412a-87de-a0d8276e6a06" + "position": { + "x": 64, + "y": 88 } }, { - "source": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "20e1709f-bff4-4373-a485-5af7052a37d7" + "id": "664caf9e-5f40-4df4-800a-b626af702e62", + "type": "basic.output", + "data": { + "name": "" }, - "target": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "bcadfb63-1fdf-43bc-9899-675e5f3658cb" + "position": { + "x": 784, + "y": 152 } }, { - "source": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "9290b4c2-5520-4b99-97d3-a140a411a149" + "id": "97b51945-d716-4b6c-9db9-970d08541249", + "type": "basic.input", + "data": { + "name": "" }, - "target": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "dbf76d1d-8bfd-4200-b03e-eb455043634d" + "position": { + "x": 64, + "y": 224 } }, { - "source": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "7d9cf16e-b23e-4358-a2fb-baaa07df6deb" + "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" + } + ] + } }, - "target": { - "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", - "port": "04fdb7a7-2740-4ff1-ad26-56407ef5b958" + "position": { + "x": 256, + "y": 48 + }, + "size": { + "width": 464, + "height": 272 } - }, + } + ], + "wires": [ { "source": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "a405ecb1-98ac-4483-8159-6045ca825985" + "block": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "port": "out" }, "target": { - "block": "43bc16ab-b91d-405c-bef0-887bd1a85fd7", - "port": "in" + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "a" } }, { "source": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "b987c71e-d76f-43eb-8371-a2aa09d98d15" + "block": "97b51945-d716-4b6c-9db9-970d08541249", + "port": "out" }, "target": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "0096caa8-5e84-418c-9f49-61cccdca8cc0" - }, - "vertices": [ - { - "x": 0, - "y": 432 - } - ] + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "b" + } }, { "source": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "de068252-1546-4d1a-8452-955530fdf5de" + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "c" }, "target": { - "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", - "port": "f96a1baf-fc8b-4c25-b132-12552605743f" - }, - "vertices": [ - { - "x": 328, - "y": 408 - } - ] - }, - { - "source": { - "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", - "port": "0b3c9646-6557-423b-90de-df434a651a71" + "block": "664caf9e-5f40-4df4-800a-b626af702e62", + "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": "" }, - "target": { - "block": "11599aed-e7f9-4b50-9552-18a18327fe0a", - "port": "in" + "position": { + "x": 64, + "y": 88 } }, { - "source": { - "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", - "port": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058" - }, - "target": { - "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", - "port": "4f968b50-2b7d-4192-a522-aade138c8ae1" + "id": "664caf9e-5f40-4df4-800a-b626af702e62", + "type": "basic.output", + "data": { + "name": "" }, - "vertices": [] + "position": { + "x": 784, + "y": 152 + } }, { - "source": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "543d92bb-e56e-4aed-a598-1c40b3773841" + "id": "97b51945-d716-4b6c-9db9-970d08541249", + "type": "basic.input", + "data": { + "name": "" }, - "target": { - "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", - "port": "4889ff2d-1850-4fad-bae9-8c1cc8efcdea" + "position": { + "x": 64, + "y": 224 } }, { - "source": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "1d8c0dd2-96bc-462a-8a33-05472851522d" + "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" + } + ] + } }, - "target": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "3e14c77c-be98-43cb-aa0d-b1a391a5374e" + "position": { + "x": 256, + "y": 48 }, - "vertices": [ - { - "x": -72, - "y": 464 - } - ] - }, + "size": { + "width": 464, + "height": 272 + } + } + ], + "wires": [ { "source": { - "block": "87a39423-9ce6-4036-8776-cb7f14be9458", - "port": "178cb827-993b-4cf3-b94f-282a9098fcd0" + "block": "18c2ebc7-5152-439c-9b3f-851c59bac834", + "port": "out" }, "target": { - "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "port": "0319df1a-5bd5-4abc-8681-6f3a8fa4e108" - }, - "vertices": [ - { - "x": -792, - "y": 528 - } - ] + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "a" + } }, { "source": { - "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "port": "162f5f2d-17dc-4d0e-b6f9-6ebdf74392f0" + "block": "97b51945-d716-4b6c-9db9-970d08541249", + "port": "out" }, "target": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "cdf85427-0efe-4adb-b48d-dab3daccacce" - }, - "vertices": [ - { - "x": -424, - "y": 472 - } - ] + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "b" + } }, { "source": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "412c6872-b61e-4af8-8ece-577a8adb185c" + "block": "00925b04-5004-4307-a737-fa4e97c8b6ab", + "port": "c" }, "target": { - "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "port": "f966672f-ae05-4499-8a8d-3c9394a1119e" + "block": "664caf9e-5f40-4df4-800a-b626af702e62", + "port": "in" + } + } + ] + } + } + }, + "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 }, - "vertices": [ - { - "x": -296, - "y": 656 - } - ] + "position": { + "x": 192, + "y": 136 + } }, { - "source": { - "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "port": "5dc54e8b-49c1-4ddb-94ab-843b247b73c4" - }, - "target": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "58c39529-9934-4dc2-af86-ab5efe0bbad1" + "id": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", + "type": "basic.output", + "data": { + "name": "" }, - "vertices": [ - { - "x": -32, - "y": 448 - } - ] + "position": { + "x": 680, + "y": 184 + } }, { - "source": { - "block": "87a39423-9ce6-4036-8776-cb7f14be9458", - "port": "3d54bf83-8d31-4eb5-bb7a-ccbe53ede036" + "id": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", + "type": "basic.input", + "data": { + "name": "", + "clock": false }, - "target": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "63a0f19e-1e7c-4e61-b89a-f6fc4eb74afb" + "position": { + "x": 192, + "y": 232 } }, { - "source": { - "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "port": "088c7d8e-99b1-4f2e-a6c0-a672e5239844" - }, - "target": { - "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", - "port": "a409d207-7594-4558-8e15-89712262cf5b" + "id": "65194b18-5d2a-41b2-bd86-01be99978ad6", + "type": "basic.constant", + "data": { + "name": "", + "value": "0", + "local": false }, - "size": 2 + "position": { + "x": 456, + "y": 64 + } }, { - "source": { - "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", - "port": "0f7487e5-b070-4277-bba6-acf69934afca" + "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" + } + ] + } }, - "target": { - "block": "ff11ff86-a76f-4122-b288-7122c87583f9", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "position": { + "x": 384, + "y": 168 + }, + "size": { + "width": 232, + "height": 88 } - }, + } + ], + "wires": [ { "source": { - "block": "5fd0f75f-64b4-489d-94ba-466de809fa10", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "block": "3943e194-090b-4553-9df3-88bc4b17abc2", + "port": "out" }, "target": { - "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", - "port": "97b51945-d716-4b6c-9db9-970d08541249" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "clk" } }, { "source": { - "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "q" }, "target": { - "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", - "port": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7" + "block": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", + "port": "in" } }, { "source": { - "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "block": "65194b18-5d2a-41b2-bd86-01be99978ad6", + "port": "constant-out" }, "target": { - "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", - "port": "ed62d7ef-27fb-44ef-99e8-a19bad6342dd" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "INI" } }, { "source": { - "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", - "port": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058" + "block": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", + "port": "out" }, "target": { - "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "d" + } + } + ] + } + } + }, + "2b27874a703dd0b148b08ecb5a00d1867eebe92c": { + "package": { + "name": "i2c", + "version": "0.1", + "description": "Controlador i2c que permite 3 transacciones: escritura, lectura y selección", + "author": "Juan González-Gómez (Obijuan)", + "image": "" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "43bc16ab-b91d-405c-bef0-887bd1a85fd7", + "type": "basic.output", + "data": { + "name": "SCL" }, - "vertices": [ - { - "x": 984, - "y": 32 - } - ] + "position": { + "x": 376, + "y": -288 + } }, { - "source": { - "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "6355398c-628e-42d2-86e8-f85762c31939", + "type": "basic.input", + "data": { + "name": "", + "clock": true }, - "target": { - "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", - "port": "e6088243-1d79-4783-ac0f-528d9700b6df" + "position": { + "x": -1952, + "y": -200 } }, { - "source": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "b987c71e-d76f-43eb-8371-a2aa09d98d15" - }, - "target": { - "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "id": "11599aed-e7f9-4b50-9552-18a18327fe0a", + "type": "basic.output", + "data": { + "name": "NAK" }, - "vertices": [ - { - "x": -8, - "y": 136 - } - ] + "position": { + "x": 1576, + "y": -152 + } }, { - "source": { - "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", - "port": "90654ccb-afdd-41ec-aaf8-b9be5b51253b" - }, - "target": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "42b35cc2-aa64-4e66-be42-169958246799" + "id": "2dd424a5-e616-4505-8a89-4982cdd7539d", + "type": "basic.output", + "data": { + "name": "data", + "range": "[7:0]", + "size": 8 }, - "size": 8 + "position": { + "x": 1592, + "y": -16 + } }, { - "source": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52" - }, - "target": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "065ea371-8398-43b3-8341-287c234a3acb" + "id": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a", + "type": "basic.input", + "data": { + "name": "pin_SDA", + "clock": false }, - "vertices": [ - { - "x": 576, - "y": 632 - }, - { - "x": 1232, - "y": 328 - } - ] + "position": { + "x": 192, + "y": 80 + } }, { - "source": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "d3e4f800-c611-4f65-88e7-8b7d2def0021" - }, - "target": { - "block": "2dd424a5-e616-4505-8a89-4982cdd7539d", - "port": "in" + "id": "5cdc523e-a6fc-4c9d-bfa8-8311f1589fb2", + "type": "basic.input", + "data": { + "name": "rst_nak", + "clock": false }, - "size": 8 + "position": { + "x": 768, + "y": 160 + } }, { - "source": { - "block": "c7934725-89bb-4c91-a3e5-eeef6b921f11", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "17680ad1-ed73-4b6c-a31e-c96c61fc88ef", + "type": "basic.input", + "data": { + "name": "addr", + "range": "[6:0]", + "clock": false, + "size": 7 }, - "target": { - "block": "7435a99e-3148-4748-aeb3-4bbe7cd9ee12", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "position": { + "x": -1960, + "y": 288 } }, { - "source": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52" + "id": "17ec9584-f1ef-4cd5-a0a5-850ecb89065c", + "type": "basic.input", + "data": { + "name": "reg", + "range": "[7:0]", + "clock": false, + "size": 8 }, - "target": { - "block": "c7934725-89bb-4c91-a3e5-eeef6b921f11", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "position": { + "x": -1960, + "y": 352 + } + }, + { + "id": "4f066abd-3ac4-45e9-ad20-d1eff038c986", + "type": "basic.input", + "data": { + "name": "Value", + "range": "[7:0]", + "clock": false, + "size": 8 }, - "vertices": [ - { - "x": 712, - "y": 576 - } - ] + "position": { + "x": -1960, + "y": 424 + } }, { - "source": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "18918c51-cad4-4993-b228-985afc99944e" + "id": "efa38a4c-7d36-47f9-82de-6cf99cf88c3d", + "type": "basic.output", + "data": { + "name": "rcv" }, - "target": { - "block": "87a39423-9ce6-4036-8776-cb7f14be9458", - "port": "2d249745-5883-469d-bf5a-5526f4e2f8c9" + "position": { + "x": 1592, + "y": 464 + } + }, + { + "id": "fba9c594-4b64-4f48-8979-25c1a001e90a", + "type": "basic.input", + "data": { + "name": "op", + "range": "[1:0]", + "clock": false, + "size": 2 }, - "vertices": [ - { - "x": -40, - "y": 200 - }, - { - "x": -1216, - "y": 320 - } - ] + "position": { + "x": -1960, + "y": 504 + } }, { - "source": { - "block": "f69cff70-8365-4b3a-a4d9-1f0e211caaa0", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "b882b07a-a45e-429f-b442-f6547b67e98e", + "type": "basic.input", + "data": { + "name": "exec", + "clock": false + }, + "position": { + "x": -1960, + "y": 576 + } + }, + { + "id": "18dc0bf6-35be-4fad-9e92-79ae207ff435", + "type": "basic.output", + "data": { + "name": "done" }, - "target": { - "block": "c7934725-89bb-4c91-a3e5-eeef6b921f11", - "port": "97b51945-d716-4b6c-9db9-970d08541249" + "position": { + "x": 1584, + "y": 744 } }, { - "source": { - "block": "83cb1364-e769-4b68-a090-a78237494c57", - "port": "0ef557c8-5378-43b3-80af-176f129f1a07" + "id": "7d667955-709f-4725-8ce6-8e6383b19129", + "type": "basic.memory", + "data": { + "name": "", + "list": "01 //-- Lectura. 2 Parametros. W=1\n00 //-- Seleccion. 2 parametros. W=0\n00 //-- Seleccion. Idem\n10 //-- Escritura. 3 param. W=0", + "local": false, + "format": 2 }, - "target": { - "block": "f69cff70-8365-4b3a-a4d9-1f0e211caaa0", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "position": { + "x": -1776, + "y": 1064 }, - "vertices": [ - { - "x": 752, - "y": 760 - } - ] + "size": { + "width": 328, + "height": 120 + } }, { - "source": { - "block": "ff11ff86-a76f-4122-b288-7122c87583f9", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "a3b7a6de-f60f-4b9b-b215-04dc02da40ef", + "type": "basic.constant", + "data": { + "name": "T1", + "value": "3", + "local": true }, - "target": { - "block": "83cb1364-e769-4b68-a090-a78237494c57", - "port": "5898179a-7390-429b-ac3c-b7a0df673610" + "position": { + "x": -1136, + "y": 216 } }, { - "source": { - "block": "83cb1364-e769-4b68-a090-a78237494c57", - "port": "0ef557c8-5378-43b3-80af-176f129f1a07" + "id": "3e21cde1-61ca-4036-b448-bdb96e3b7b43", + "type": "basic.info", + "data": { + "info": "**SDA**\n(INOUT) ", + "readonly": true }, - "target": { - "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", - "port": "90b13235-c3b7-46a1-bdfd-f9d3d6b7ddf5" + "position": { + "x": 192, + "y": 0 }, - "vertices": [ - { - "x": 752, - "y": 752 - } - ] + "size": { + "width": 104, + "height": 48 + } }, { - "source": { - "block": "83cb1364-e769-4b68-a090-a78237494c57", - "port": "0ef557c8-5378-43b3-80af-176f129f1a07" + "id": "ce94e964-10b6-468f-8339-a08ee1c8134e", + "type": "e1a052c716ee278ec9830939ef171d742c56eafe", + "position": { + "x": 416, + "y": 208 }, - "target": { - "block": "5fd0f75f-64b4-489d-94ba-466de809fa10", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "size": { + "width": 96, + "height": 96 } }, { - "source": { - "block": "83cb1364-e769-4b68-a090-a78237494c57", - "port": "0ef557c8-5378-43b3-80af-176f129f1a07" + "id": "bfa36119-d847-4269-a3e7-b97221afdb43", + "type": "basic.info", + "data": { + "info": "Configuracion pin inout: \n1: Salida \n0: Entrada", + "readonly": true }, - "target": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "0f70b35b-6842-4890-8201-e9a5f2278150" + "position": { + "x": 416, + "y": 128 }, - "vertices": [ - { - "x": 56, - "y": 624 - } - ] + "size": { + "width": 224, + "height": 64 + } }, { - "source": { - "block": "6f59f402-ae30-4921-9b55-f979bb92b693", - "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + "id": "87a39423-9ce6-4036-8776-cb7f14be9458", + "type": "23e63b4fd19d0e1897b3c2faf5316f824f998872", + "position": { + "x": -1136, + "y": 328 }, - "target": { - "block": "83cb1364-e769-4b68-a090-a78237494c57", - "port": "db089906-4326-4b59-8aa5-ebb61116a4cd" + "size": { + "width": 96, + "height": 96 } }, { - "source": { - "block": "5cdc523e-a6fc-4c9d-bfa8-8311f1589fb2", - "port": "out" - }, - "target": { - "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", - "port": "40e65064-7137-4959-aa9e-f6111677c062" + "id": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", + "type": "8ba640a4be8254a54e8c2dfad99a8fb6a07b5752", + "position": { + "x": 1040, + "y": 296 }, - "vertices": [ - { - "x": 904, - "y": 360 - } - ] + "size": { + "width": 96, + "height": 160 + } }, { - "source": { - "block": "ca3f2050-c5d1-40e4-9e8b-063623625d02", - "port": "b" - }, - "target": { - "block": "43205473-b036-4e36-8371-f424b8d09581", - "port": "1f4c1c55-ee75-41d6-8590-b4e650d636cc" + "id": "4ea344b1-0d16-4d26-8ec6-528135ff4526", + "type": "fc9dacc62ad25cd2832c3442bf277af9b708249b", + "position": { + "x": -392, + "y": 688 }, - "vertices": [ - { - "x": -992, - "y": 1032 - } - ], - "size": 8 + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "43205473-b036-4e36-8371-f424b8d09581", - "port": "820e19c9-d979-418f-b2e5-d806fa3caca3" - }, - "target": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "ed0e5489-e9b1-4b92-bcfb-22f3737d1c93" + "id": "ff11ff86-a76f-4122-b288-7122c87583f9", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": -200, + "y": 704 }, - "vertices": [ - { - "x": -688, - "y": 776 - } - ], - "size": 8 + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", - "port": "0f7487e5-b070-4277-bba6-acf69934afca" - }, - "target": { - "block": "43205473-b036-4e36-8371-f424b8d09581", - "port": "2cd7e8ed-1ed2-4a5c-a72a-337d703c9712" + "id": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", + "type": "56e0da7091190448826e12c0590f60e2927ced42", + "position": { + "x": 1216, + "y": -56 }, - "vertices": [ - { - "x": -328, - "y": 1104 - } - ] + "size": { + "width": 96, + "height": 96 + } }, { - "source": { - "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", - "port": "f5a71d7b-de20-4527-80c8-0eb20de0dc77" - }, - "target": { - "block": "43205473-b036-4e36-8371-f424b8d09581", - "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" + "id": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 840, + "y": -32 }, - "vertices": [ - { - "x": -256, - "y": 1136 - }, - { - "x": -920, - "y": 1048 - } - ] + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", - "port": "ca28abaf-359d-4f8f-a397-91d76dc936ec" - }, - "target": { - "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "port": "8a0d51b6-8ab0-4ca6-8d57-7fa7e713c738" + "id": "5fd0f75f-64b4-489d-94ba-466de809fa10", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 712, + "y": 48 }, - "size": 2 + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "23836a37-4ae5-4e06-be42-1a6047af199d", - "port": "6a253ddf-22b2-43cd-ba6f-561bd1af6970" - }, - "target": { - "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", - "port": "8197e6c5-cf9d-42d6-a9e9-3ecccafa27c2" + "id": "7df65402-4c8d-4e5f-a0c2-c90579f40266", + "type": "42ebf732ed72b2aa979e6858281bfe62c10bec5f", + "position": { + "x": 1040, + "y": -80 }, - "size": 2 + "size": { + "width": 96, + "height": 96 + } }, { - "source": { - "block": "3a242407-5ac7-4348-beb7-b08d6f8c66f4", - "port": "6a253ddf-22b2-43cd-ba6f-561bd1af6970" - }, - "target": { - "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", - "port": "d220e4a2-bec7-4852-84bd-2baf3df5ccdb" + "id": "8e70dbf5-9819-427a-8240-c431acd28680", + "type": "c146d4232b872efc8bb891cd29094024e9cc2c54", + "position": { + "x": 72, + "y": 448 }, - "size": 2 + "size": { + "width": 96, + "height": 128 + } }, { - "source": { - "block": "fba9c594-4b64-4f48-8979-25c1a001e90a", - "port": "out" - }, - "target": { - "block": "5339e7e3-3097-4ee7-bf79-07c1d3172a8e", - "port": "186c4116-7846-4c8e-98a0-7376675105f1" + "id": "bca7a427-a08f-48d3-807c-64a27a08db52", + "type": "89d2342d9664348db3e70e823cacbc8eb24ea3d0", + "position": { + "x": 1400, + "y": -32 }, - "size": 2 + "size": { + "width": 96, + "height": 96 + } }, { - "source": { - "block": "5339e7e3-3097-4ee7-bf79-07c1d3172a8e", - "port": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5" - }, - "target": { - "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", - "port": "a409d207-7594-4558-8e15-89712262cf5b" + "id": "7435a99e-3148-4748-aeb3-4bbe7cd9ee12", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", + "position": { + "x": 1408, + "y": 464 }, - "size": 2 + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", - "port": "0f7487e5-b070-4277-bba6-acf69934afca" + "id": "c7934725-89bb-4c91-a3e5-eeef6b921f11", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 1008, + "y": 656 }, - "target": { - "block": "ca3f2050-c5d1-40e4-9e8b-063623625d02", - "port": "w" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", - "port": "0f7487e5-b070-4277-bba6-acf69934afca" + "id": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "type": "3e4cef8e5d182ddc9806ac0f5a9ee24351737373", + "position": { + "x": 72, + "y": 280 }, - "target": { - "block": "83cb1364-e769-4b68-a090-a78237494c57", - "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" + "size": { + "width": 96, + "height": 128 } }, { - "source": { - "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", - "port": "f5a71d7b-de20-4527-80c8-0eb20de0dc77" - }, - "target": { - "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", - "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" + "id": "f69cff70-8365-4b3a-a4d9-1f0e211caaa0", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 824, + "y": 680 }, - "vertices": [ - { - "x": -1368, - "y": 920 - } - ] + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "17680ad1-ed73-4b6c-a31e-c96c61fc88ef", - "port": "out" + "id": "9ce21784-a6ab-4de1-a59b-a2c6149671c2", + "type": "basic.info", + "data": { + "info": "Señal para lectura \n(W=1)", + "readonly": true }, - "target": { - "block": "ca3f2050-c5d1-40e4-9e8b-063623625d02", - "port": "a" + "position": { + "x": -200, + "y": 640 }, - "vertices": [ - { - "x": -1576, - "y": 976 - } - ], - "size": 7 + "size": { + "width": 192, + "height": 56 + } }, { - "source": { - "block": "17ec9584-f1ef-4cd5-a0a5-850ecb89065c", - "port": "out" + "id": "83cb1364-e769-4b68-a090-a78237494c57", + "type": "5cc6ec961df1a19b78d61422b28169fc0f69384b", + "position": { + "x": -48, + "y": 760 }, - "target": { - "block": "43205473-b036-4e36-8371-f424b8d09581", - "port": "bc9544e0-2199-4d6a-a6b9-6550b7dd7633" + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "6f59f402-ae30-4921-9b55-f979bb92b693", + "type": "725b7e2cb9666b5ed3183537d9c898f096dab82a", + "position": { + "x": -200, + "y": 776 }, - "vertices": [ - { - "x": -1616, - "y": 968 - } - ], - "size": 8 + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "4f066abd-3ac4-45e9-ad20-d1eff038c986", - "port": "out" + "id": "18cd2222-b188-4031-93ab-c41f09f31753", + "type": "basic.info", + "data": { + "info": "Señal para escritura \n(W=0)", + "readonly": true }, - "target": { - "block": "43205473-b036-4e36-8371-f424b8d09581", - "port": "350946d5-2f29-4190-bcf2-e14e17224bb4" + "position": { + "x": -200, + "y": 864 }, - "vertices": [ - { - "x": -1672, - "y": 888 - } - ], - "size": 8 + "size": { + "width": 192, + "height": 56 + } }, { - "source": { - "block": "b882b07a-a45e-429f-b442-f6547b67e98e", - "port": "out" + "id": "ca3f2050-c5d1-40e4-9e8b-063623625d02", + "type": "basic.code", + "data": { + "code": "assign b = {a,w};", + "params": [], + "ports": { + "in": [ + { + "name": "a", + "range": "[6:0]", + "size": 7 + }, + { + "name": "w" + } + ], + "out": [ + { + "name": "b", + "range": "[7:0]", + "size": 8 + } + ] + } }, - "target": { - "block": "87a39423-9ce6-4036-8776-cb7f14be9458", - "port": "779750dc-e68a-4a62-bb4a-a26b3b32c55c" + "position": { + "x": -1288, + "y": 1024 }, - "vertices": [ - { - "x": -1520, - "y": 440 - } - ] + "size": { + "width": 200, + "height": 64 + } + }, + { + "id": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "type": "f1c84b11f2df5ee213cec33e6f9af2d0c66e6924", + "position": { + "x": -376, + "y": 296 + }, + "size": { + "width": 96, + "height": 160 + } }, { - "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "id": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "type": "5483349a60d7c0f7f4146228196d6f4c4ad7604d", + "position": { + "x": -568, + "y": 512 }, - "target": { - "block": "87a39423-9ce6-4036-8776-cb7f14be9458", - "port": "84b853c2-3707-4f0b-b32b-484b03b19f61" + "size": { + "width": 96, + "height": 128 } }, { - "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "id": "43205473-b036-4e36-8371-f424b8d09581", + "type": "56cc183f8c704107b94d882715f6e43592dcaf61", + "position": { + "x": -856, + "y": 880 }, - "target": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "7861c061-e90b-46bb-a639-6399f55f7f11" + "size": { + "width": 96, + "height": 192 } }, { - "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "id": "a0139b24-fc4f-4a98-911b-6a510b929bca", + "type": "eebee1482748e838ffef3618817cc1fa911e4952", + "position": { + "x": -928, + "y": 528 }, - "target": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "0f4f7955-4539-4804-a906-db4abd29fcac" + "size": { + "width": 96, + "height": 96 } }, { - "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "id": "23836a37-4ae5-4e06-be42-1a6047af199d", + "type": "945d5c43e22d4f1d3f8e379417d47f170e4adcf6", + "position": { + "x": -1144, + "y": 528 }, - "target": { - "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "port": "9c68c5ce-2425-45f3-9f05-ee4581fa974d" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" - }, - "target": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "72e82947-787f-49f6-b4a4-7fe8f68e573d" + "id": "3a242407-5ac7-4348-beb7-b08d6f8c66f4", + "type": "ceff2da3577d3e4da3ad522a234b993cfc71e21a", + "position": { + "x": -1144, + "y": 448 }, - "vertices": [ - { - "x": 16, - "y": 216 - } - ] + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "id": "5339e7e3-3097-4ee7-bf79-07c1d3172a8e", + "type": "a475867b1a8ac28299ed315b271747ba4ec10c54", + "position": { + "x": -1760, + "y": 1256 }, - "target": { - "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "7435a99e-3148-4748-aeb3-4bbe7cd9ee12", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "id": "c7a93f63-7a23-4049-ab68-220c1a70b111", + "type": "fc9dacc62ad25cd2832c3442bf277af9b708249b", + "position": { + "x": -1488, + "y": 1256 }, - "target": { - "block": "efa38a4c-7d36-47f9-82de-6cf99cf88c3d", - "port": "in" + "size": { + "width": 96, + "height": 64 } }, + { + "id": "9e57aa64-2990-4ff3-8244-9a70f77ff6f5", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", + "position": { + "x": 1408, + "y": 744 + }, + "size": { + "width": 96, + "height": 64 + } + } + ], + "wires": [ { "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", + "block": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a", "port": "out" }, "target": { - "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", - "port": "53ae64df-468f-4f52-b3d9-99da065d5a22" + "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", + "port": "076fd025-aa42-4f23-ae97-b65aec2298ce" } }, { "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "block": "a3b7a6de-f60f-4b9b-b215-04dc02da40ef", + "port": "constant-out" }, "target": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "096f61b6-6d5c-4907-9512-e65b25969458" + "block": "87a39423-9ce6-4036-8776-cb7f14be9458", + "port": "5dc401ee-7963-464f-8ab5-e8ddedf191e2" } }, { "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "block": "87a39423-9ce6-4036-8776-cb7f14be9458", + "port": "e69a71cb-1e3d-49df-a1cc-81fa1126bbb9" }, "target": { - "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", - "port": "b2c9360e-b412-4621-af8b-a8762be2b072" - }, - "vertices": [ - { - "x": 1000, - "y": -80 - } - ] + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "748fced1-f2be-412a-87de-a0d8276e6a06" + } }, { "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "20e1709f-bff4-4373-a485-5af7052a37d7" }, "target": { - "block": "7435a99e-3148-4748-aeb3-4bbe7cd9ee12", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" - }, - "vertices": [ - { - "x": 1360, - "y": 200 - } - ] + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "bcadfb63-1fdf-43bc-9899-675e5f3658cb" + } }, { "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "9290b4c2-5520-4b99-97d3-a140a411a149" }, "target": { - "block": "9e57aa64-2990-4ff3-8244-9a70f77ff6f5", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" - }, - "vertices": [ - { - "x": 1360, - "y": 160 - } - ] + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "dbf76d1d-8bfd-4200-b03e-eb455043634d" + } }, { "source": { - "block": "9e57aa64-2990-4ff3-8244-9a70f77ff6f5", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "7d9cf16e-b23e-4358-a2fb-baaa07df6deb" }, "target": { - "block": "18dc0bf6-35be-4fad-9e92-79ae207ff435", - "port": "in" + "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", + "port": "04fdb7a7-2740-4ff1-ad26-56407ef5b958" } }, { "source": { - "block": "7d667955-709f-4725-8ce6-8e6383b19129", - "port": "memory-out" + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "a405ecb1-98ac-4483-8159-6045ca825985" }, "target": { - "block": "5339e7e3-3097-4ee7-bf79-07c1d3172a8e", - "port": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377" + "block": "43bc16ab-b91d-405c-bef0-887bd1a85fd7", + "port": "in" } }, { "source": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "18918c51-cad4-4993-b228-985afc99944e" + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "b987c71e-d76f-43eb-8371-a2aa09d98d15" }, "target": { - "block": "9e57aa64-2990-4ff3-8244-9a70f77ff6f5", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "0096caa8-5e84-418c-9f49-61cccdca8cc0" }, "vertices": [ { - "x": 248, - "y": 944 - } - ] - } - ] - } - } - }, - "e1a052c716ee278ec9830939ef171d742c56eafe": { - "package": { - "name": "Tri-state", - "version": "1.0.1", - "description": "Tri-state logic block", - "author": "Salvador E. Tropea", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%22-265%20401.5%2063.5%2038.4%22%20id=%22svg2%22%3E%3Cstyle%20id=%22style3%22/%3E%3Cpath%20d=%22M-9.78%203.538l-4.214%2024.984-19.53-16.141z%22%20transform=%22matrix(.62422%20-.11476%20.1058%20.67701%20-219.33%20413.046)%22%20id=%22path3008%22%20fill=%22none%22%20stroke=%22#0b0b0b%22%20stroke-width=%221.885%22/%3E%3Cpath%20d=%22M-9.78%203.538l-4.214%2024.984-19.53-16.141z%22%20transform=%22matrix(-.62422%20-.11476%20-.1058%20.67701%20-244.991%20400.53)%22%20id=%22path3008-6%22%20fill=%22none%22%20stroke=%22#0b0b0b%22%20stroke-width=%221.885%22/%3E%3Cpath%20d=%22M40.154%2011.247H63.74%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3800%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M25.945%2023.73l-7.364.058V11.305h7.076%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3802%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M-265.029%20412.747l18.582.058%22%20id=%22path3804%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M.081%2023.919h12.936v7.566h19.037V27.58%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3806%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M0%2035.96h49.302V24.162h-9.356%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3812%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3C/svg%3E" - }, - "design": { - "config": "true", - "graph": { - "blocks": [ - { - "id": "076fd025-aa42-4f23-ae97-b65aec2298ce", - "type": "basic.input", - "data": { - "name": "pin" - }, - "position": { - "x": 32, - "y": 40 - } - }, - { - "id": "f96a1baf-fc8b-4c25-b132-12552605743f", - "type": "basic.input", - "data": { - "name": "oe" - }, - "position": { - "x": 32, - "y": 128 - } + "x": 0, + "y": 432 + } + ] }, { - "id": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058", - "type": "basic.output", - "data": { - "name": "din" + "source": { + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "de068252-1546-4d1a-8452-955530fdf5de" }, - "position": { - "x": 760, - "y": 128 - } + "target": { + "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", + "port": "f96a1baf-fc8b-4c25-b132-12552605743f" + }, + "vertices": [ + { + "x": 328, + "y": 408 + } + ] }, { - "id": "04fdb7a7-2740-4ff1-ad26-56407ef5b958", - "type": "basic.input", - "data": { - "name": "dout", - "clock": false + "source": { + "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", + "port": "0b3c9646-6557-423b-90de-df434a651a71" }, - "position": { - "x": 32, - "y": 216 + "target": { + "block": "11599aed-e7f9-4b50-9552-18a18327fe0a", + "port": "in" } }, { - "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": "pin" - }, - { - "name": "oe" - }, - { - "name": "dout" - } - ], - "out": [ - { - "name": "din" - } - ] - } + "source": { + "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", + "port": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058" }, - "position": { - "x": 248, - "y": 32 + "target": { + "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", + "port": "4f968b50-2b7d-4192-a522-aade138c8ae1" }, - "size": { - "width": 384, - "height": 256 - } - } - ], - "wires": [ + "vertices": [] + }, { "source": { - "block": "076fd025-aa42-4f23-ae97-b65aec2298ce", - "port": "out" + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "543d92bb-e56e-4aed-a598-1c40b3773841" }, "target": { - "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", - "port": "pin" + "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", + "port": "4889ff2d-1850-4fad-bae9-8c1cc8efcdea" } }, { "source": { - "block": "f96a1baf-fc8b-4c25-b132-12552605743f", - "port": "out" + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "1d8c0dd2-96bc-462a-8a33-05472851522d" }, "target": { - "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", - "port": "oe" - } + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "3e14c77c-be98-43cb-aa0d-b1a391a5374e" + }, + "vertices": [ + { + "x": -72, + "y": 464 + } + ] }, { "source": { - "block": "04fdb7a7-2740-4ff1-ad26-56407ef5b958", - "port": "out" + "block": "87a39423-9ce6-4036-8776-cb7f14be9458", + "port": "178cb827-993b-4cf3-b94f-282a9098fcd0" }, "target": { - "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", - "port": "dout" - } + "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "port": "0319df1a-5bd5-4abc-8681-6f3a8fa4e108" + }, + "vertices": [ + { + "x": -792, + "y": 528 + } + ] }, { "source": { - "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", - "port": "din" + "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "port": "162f5f2d-17dc-4d0e-b6f9-6ebdf74392f0" }, "target": { - "block": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058", - "port": "in" - } - } - ] - } - } - }, - "23e63b4fd19d0e1897b3c2faf5316f824f998872": { - "package": { - "name": "i2c-start", - "version": "0.1", - "description": "Generar la condición de start en el bus I2C", - "author": "Juan González-Gómez (Obijuan)", - "image": "" - }, - "design": { - "graph": { - "blocks": [ - { - "id": "84b853c2-3707-4f0b-b32b-484b03b19f61", - "type": "basic.input", - "data": { - "name": "", - "clock": true + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "cdf85427-0efe-4adb-b48d-dab3daccacce" }, - "position": { - "x": 88, - "y": -32 - } + "vertices": [ + { + "x": -424, + "y": 472 + } + ] }, { - "id": "e69a71cb-1e3d-49df-a1cc-81fa1126bbb9", - "type": "basic.output", - "data": { - "name": "sda" + "source": { + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "412c6872-b61e-4af8-8ece-577a8adb185c" }, - "position": { - "x": 568, - "y": 200 - } - }, - { - "id": "2d249745-5883-469d-bf5a-5526f4e2f8c9", - "type": "basic.input", - "data": { - "name": "end", - "clock": false + "target": { + "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "port": "f966672f-ae05-4499-8a8d-3c9394a1119e" }, - "position": { - "x": 88, - "y": 200 - } + "vertices": [ + { + "x": -296, + "y": 656 + } + ] }, { - "id": "3d54bf83-8d31-4eb5-bb7a-ccbe53ede036", - "type": "basic.output", - "data": { - "name": "scl" + "source": { + "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "port": "5dc54e8b-49c1-4ddb-94ab-843b247b73c4" }, - "position": { - "x": 1064, - "y": 272 - } + "target": { + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "58c39529-9934-4dc2-af86-ab5efe0bbad1" + }, + "vertices": [ + { + "x": -32, + "y": 448 + } + ] }, { - "id": "779750dc-e68a-4a62-bb4a-a26b3b32c55c", - "type": "basic.input", - "data": { - "name": "start", - "clock": false + "source": { + "block": "87a39423-9ce6-4036-8776-cb7f14be9458", + "port": "3d54bf83-8d31-4eb5-bb7a-ccbe53ede036" }, - "position": { - "x": 232, - "y": 272 + "target": { + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "63a0f19e-1e7c-4e61-b89a-f6fc4eb74afb" } }, { - "id": "178cb827-993b-4cf3-b94f-282a9098fcd0", - "type": "basic.output", - "data": { - "name": "done" + "source": { + "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "port": "088c7d8e-99b1-4f2e-a6c0-a672e5239844" }, - "position": { - "x": 1072, - "y": 424 - } + "target": { + "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", + "port": "a409d207-7594-4558-8e15-89712262cf5b" + }, + "size": 2 }, { - "id": "a628dcfa-b41e-4605-a6b0-9637f4162e3d", - "type": "basic.constant", - "data": { - "name": "", - "value": "1", - "local": true + "source": { + "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", + "port": "0f7487e5-b070-4277-bba6-acf69934afca" }, - "position": { - "x": 392, - "y": 88 + "target": { + "block": "ff11ff86-a76f-4122-b288-7122c87583f9", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" } }, { - "id": "5dc401ee-7963-464f-8ab5-e8ddedf191e2", - "type": "basic.constant", - "data": { - "name": "T1", - "value": "2", - "local": false + "source": { + "block": "5fd0f75f-64b4-489d-94ba-466de809fa10", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "position": { - "x": 712, - "y": 192 + "target": { + "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", + "port": "97b51945-d716-4b6c-9db9-970d08541249" } }, { - "id": "c73dcb8e-e43f-4550-bccf-cc3cdd24929b", - "type": "basic.constant", - "data": { - "name": "", - "value": "1", - "local": true + "source": { + "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "position": { - "x": 928, - "y": 160 + "target": { + "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", + "port": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7" } }, { - "id": "da65e165-f890-456d-99b1-b01df995f4c6", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", - "position": { - "x": 392, - "y": 184 + "source": { + "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, - "size": { - "width": 96, - "height": 96 + "target": { + "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", + "port": "ed62d7ef-27fb-44ef-99e8-a19bad6342dd" } }, { - "id": "cd6c30b0-11d0-450f-ac49-90598206b72e", - "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", - "position": { - "x": 712, - "y": 288 + "source": { + "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", + "port": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058" }, - "size": { - "width": 96, - "height": 64 - } + "target": { + "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + }, + "vertices": [ + { + "x": 984, + "y": 32 + } + ] }, { - "id": "70332deb-97ed-4ae9-aab5-41813b842b63", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", - "position": { - "x": 928, - "y": 256 + "source": { + "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "size": { - "width": 96, - "height": 96 + "target": { + "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", + "port": "e6088243-1d79-4783-ac0f-528d9700b6df" } }, { - "id": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", - "type": "7eacdff4ce248b009935725889c8ae3339817d76", - "position": { - "x": 568, - "y": 304 + "source": { + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "b987c71e-d76f-43eb-8371-a2aa09d98d15" }, - "size": { - "width": 96, - "height": 64 - } + "target": { + "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": -8, + "y": 136 + } + ] }, { - "id": "4a80dfb1-abc5-4d93-9bd6-32ad4429fd8c", - "type": "basic.info", - "data": { - "info": "**I2C: Condicion de start**\n\nSDA y SCL están inicialmente en reposo (1). Al llegar un \ntic por start, se genera la condición de start, que consiste \nen poner SDA a 0 y trancurrido un tiempo T1, el reloj SCL \ntambién se pone a 0", - "readonly": true + "source": { + "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", + "port": "90654ccb-afdd-41ec-aaf8-b9be5b51253b" }, - "position": { - "x": -8, - "y": -184 + "target": { + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "42b35cc2-aa64-4e66-be42-169958246799" }, - "size": { - "width": 488, - "height": 96 - } + "size": 8 }, { - "id": "99db5402-e938-480d-8af1-2d06de283e68", - "type": "basic.info", - "data": { - "info": "**Estado de SDA** \n(datos) \nInicialmente a 1", - "readonly": true + "source": { + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52" }, - "position": { - "x": 400, - "y": 8 + "target": { + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "065ea371-8398-43b3-8341-287c234a3acb" }, - "size": { - "width": 176, - "height": 64 - } + "vertices": [ + { + "x": 576, + "y": 632 + }, + { + "x": 1232, + "y": 328 + } + ] }, { - "id": "59ae699f-9133-4108-b510-b0969f8dfcf6", - "type": "basic.info", - "data": { - "info": "**Línea de datos**", - "readonly": true + "source": { + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "d3e4f800-c611-4f65-88e7-8b7d2def0021" }, - "position": { - "x": 568, - "y": 184 + "target": { + "block": "2dd424a5-e616-4505-8a89-4982cdd7539d", + "port": "in" }, - "size": { - "width": 160, - "height": 40 + "size": 8 + }, + { + "source": { + "block": "c7934725-89bb-4c91-a3e5-eeef6b921f11", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "7435a99e-3148-4748-aeb3-4bbe7cd9ee12", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" } }, { - "id": "3b3ca662-cacb-4ee0-ac34-899858c76d9f", - "type": "basic.info", - "data": { - "info": "La señal SCL está \nretrasada T1 con \nrespecto a SDA", - "readonly": true + "source": { + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52" }, - "position": { - "x": 712, - "y": 360 + "target": { + "block": "c7934725-89bb-4c91-a3e5-eeef6b921f11", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, - "size": { - "width": 160, - "height": 64 - } + "vertices": [ + { + "x": 712, + "y": 576 + } + ] }, { - "id": "0c7f5554-984c-47fa-8c23-06dca0323445", - "type": "basic.info", - "data": { - "info": "Detectar cuando SDA \nha bajado a 0", - "readonly": true + "source": { + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "18918c51-cad4-4993-b228-985afc99944e" }, - "position": { - "x": 544, - "y": 376 + "target": { + "block": "87a39423-9ce6-4036-8776-cb7f14be9458", + "port": "2d249745-5883-469d-bf5a-5526f4e2f8c9" }, - "size": { - "width": 176, - "height": 56 + "vertices": [ + { + "x": -40, + "y": 200 + }, + { + "x": -1216, + "y": 320 + } + ] + }, + { + "source": { + "block": "f69cff70-8365-4b3a-a4d9-1f0e211caaa0", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "c7934725-89bb-4c91-a3e5-eeef6b921f11", + "port": "97b51945-d716-4b6c-9db9-970d08541249" } }, { - "id": "63b64cd5-55d5-4a5b-be1f-55fce5dab709", - "type": "basic.info", - "data": { - "info": "**Estado de SCL** (Reloj) \nInicialmente a 1", - "readonly": true + "source": { + "block": "83cb1364-e769-4b68-a090-a78237494c57", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" }, - "position": { - "x": 920, - "y": 112 + "target": { + "block": "f69cff70-8365-4b3a-a4d9-1f0e211caaa0", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, - "size": { - "width": 168, - "height": 48 - } + "vertices": [ + { + "x": 752, + "y": 760 + } + ] }, { - "id": "0c5e2f7d-b563-465b-aa4d-770b1e14f1ab", - "type": "basic.info", - "data": { - "info": "Al activarse start, SDA \nbaja a 0", - "readonly": true - }, - "position": { - "x": 264, - "y": 336 + "source": { + "block": "ff11ff86-a76f-4122-b288-7122c87583f9", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "size": { - "width": 192, - "height": 64 + "target": { + "block": "83cb1364-e769-4b68-a090-a78237494c57", + "port": "5898179a-7390-429b-ac3c-b7a0df673610" } }, { - "id": "c61090f2-72e4-47e0-bd4e-f489b07e3d62", - "type": "basic.info", - "data": { - "info": "Volver al estado de \nreposo (SDA=1, SCL=1)", - "readonly": true + "source": { + "block": "83cb1364-e769-4b68-a090-a78237494c57", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" }, - "position": { - "x": 72, - "y": 152 + "target": { + "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", + "port": "90b13235-c3b7-46a1-bdfd-f9d3d6b7ddf5" }, - "size": { - "width": 192, - "height": 56 - } + "vertices": [ + { + "x": 752, + "y": 752 + } + ] }, { - "id": "d389f312-fb27-41f2-8683-b3771e5d628e", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", - "position": { - "x": 928, - "y": 424 + "source": { + "block": "83cb1364-e769-4b68-a090-a78237494c57", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "5fd0f75f-64b4-489d-94ba-466de809fa10", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" } }, { - "id": "ba8e435f-a5c4-47dc-96d8-b06ce5af1ceb", - "type": "basic.info", - "data": { - "info": "Emitir un tic para indicar \nque la condición de estar \nse ha ejecutado", - "readonly": true + "source": { + "block": "83cb1364-e769-4b68-a090-a78237494c57", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" }, - "position": { - "x": 1032, - "y": 360 + "target": { + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "0f70b35b-6842-4890-8201-e9a5f2278150" }, - "size": { - "width": 240, - "height": 72 - } - } - ], - "wires": [ + "vertices": [ + { + "x": 56, + "y": 624 + } + ] + }, { "source": { - "block": "da65e165-f890-456d-99b1-b01df995f4c6", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "6f59f402-ae30-4921-9b55-f979bb92b693", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" }, "target": { - "block": "e69a71cb-1e3d-49df-a1cc-81fa1126bbb9", - "port": "in" - }, - "vertices": [] + "block": "83cb1364-e769-4b68-a090-a78237494c57", + "port": "db089906-4326-4b59-8aa5-ebb61116a4cd" + } }, { "source": { - "block": "5dc401ee-7963-464f-8ab5-e8ddedf191e2", - "port": "constant-out" + "block": "5cdc523e-a6fc-4c9d-bfa8-8311f1589fb2", + "port": "out" }, "target": { - "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", - "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" + "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", + "port": "40e65064-7137-4959-aa9e-f6111677c062" }, - "vertices": [] + "vertices": [ + { + "x": 904, + "y": 360 + } + ] }, { "source": { - "block": "70332deb-97ed-4ae9-aab5-41813b842b63", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "ca3f2050-c5d1-40e4-9e8b-063623625d02", + "port": "b" }, "target": { - "block": "3d54bf83-8d31-4eb5-bb7a-ccbe53ede036", - "port": "in" + "block": "43205473-b036-4e36-8371-f424b8d09581", + "port": "1f4c1c55-ee75-41d6-8590-b4e650d636cc" }, - "vertices": [] + "vertices": [ + { + "x": -992, + "y": 1032 + } + ], + "size": 8 }, { "source": { - "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", - "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + "block": "43205473-b036-4e36-8371-f424b8d09581", + "port": "820e19c9-d979-418f-b2e5-d806fa3caca3" }, "target": { - "block": "70332deb-97ed-4ae9-aab5-41813b842b63", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "ed0e5489-e9b1-4b92-bcfb-22f3737d1c93" }, - "vertices": [] + "vertices": [ + { + "x": -688, + "y": 776 + } + ], + "size": 8 }, { "source": { - "block": "c73dcb8e-e43f-4550-bccf-cc3cdd24929b", - "port": "constant-out" + "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", + "port": "0f7487e5-b070-4277-bba6-acf69934afca" }, "target": { - "block": "70332deb-97ed-4ae9-aab5-41813b842b63", - "port": "bf12a800-db30-4289-a7c5-8c08438f9a39" + "block": "43205473-b036-4e36-8371-f424b8d09581", + "port": "2cd7e8ed-1ed2-4a5c-a72a-337d703c9712" }, - "vertices": [] + "vertices": [ + { + "x": -328, + "y": 1104 + } + ] }, { "source": { - "block": "a628dcfa-b41e-4605-a6b0-9637f4162e3d", - "port": "constant-out" + "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", + "port": "f5a71d7b-de20-4527-80c8-0eb20de0dc77" }, "target": { - "block": "da65e165-f890-456d-99b1-b01df995f4c6", - "port": "bf12a800-db30-4289-a7c5-8c08438f9a39" + "block": "43205473-b036-4e36-8371-f424b8d09581", + "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" }, - "vertices": [] + "vertices": [ + { + "x": -256, + "y": 1136 + }, + { + "x": -920, + "y": 1048 + } + ] }, { "source": { - "block": "2d249745-5883-469d-bf5a-5526f4e2f8c9", - "port": "out" + "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", + "port": "ca28abaf-359d-4f8f-a397-91d76dc936ec" }, "target": { - "block": "da65e165-f890-456d-99b1-b01df995f4c6", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "port": "8a0d51b6-8ab0-4ca6-8d57-7fa7e713c738" }, - "vertices": [] + "size": 2 }, { "source": { - "block": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", - "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" + "block": "23836a37-4ae5-4e06-be42-1a6047af199d", + "port": "6a253ddf-22b2-43cd-ba6f-561bd1af6970" }, "target": { - "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", - "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" + "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", + "port": "8197e6c5-cf9d-42d6-a9e9-3ecccafa27c2" }, - "vertices": [] + "size": 2 }, { "source": { - "block": "da65e165-f890-456d-99b1-b01df995f4c6", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "3a242407-5ac7-4348-beb7-b08d6f8c66f4", + "port": "6a253ddf-22b2-43cd-ba6f-561bd1af6970" }, "target": { - "block": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", - "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", + "port": "d220e4a2-bec7-4852-84bd-2baf3df5ccdb" }, - "vertices": [ - { - "x": 504, - "y": 240 - } - ] + "size": 2 }, { "source": { - "block": "779750dc-e68a-4a62-bb4a-a26b3b32c55c", + "block": "fba9c594-4b64-4f48-8979-25c1a001e90a", "port": "out" }, "target": { - "block": "da65e165-f890-456d-99b1-b01df995f4c6", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" - } + "block": "5339e7e3-3097-4ee7-bf79-07c1d3172a8e", + "port": "186c4116-7846-4c8e-98a0-7376675105f1" + }, + "size": 2 }, { "source": { - "block": "2d249745-5883-469d-bf5a-5526f4e2f8c9", - "port": "out" + "block": "5339e7e3-3097-4ee7-bf79-07c1d3172a8e", + "port": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5" }, "target": { - "block": "70332deb-97ed-4ae9-aab5-41813b842b63", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", + "port": "a409d207-7594-4558-8e15-89712262cf5b" }, - "vertices": [ - { - "x": 208, - "y": 456 - }, - { - "x": 856, - "y": 376 - } - ] + "size": 2 }, { "source": { - "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", - "port": "out" + "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", + "port": "0f7487e5-b070-4277-bba6-acf69934afca" + }, + "target": { + "block": "ca3f2050-c5d1-40e4-9e8b-063623625d02", + "port": "w" + } + }, + { + "source": { + "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", + "port": "0f7487e5-b070-4277-bba6-acf69934afca" }, "target": { - "block": "da65e165-f890-456d-99b1-b01df995f4c6", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "block": "83cb1364-e769-4b68-a090-a78237494c57", + "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" } }, { "source": { - "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", - "port": "out" + "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", + "port": "f5a71d7b-de20-4527-80c8-0eb20de0dc77" }, "target": { - "block": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", - "port": "4196184b-4a60-493b-bcc6-c95958483683" + "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", + "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" }, "vertices": [ { - "x": 528, - "y": 88 + "x": -1368, + "y": 920 } ] }, { "source": { - "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", + "block": "17680ad1-ed73-4b6c-a31e-c96c61fc88ef", "port": "out" }, "target": { - "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", - "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" - } + "block": "ca3f2050-c5d1-40e4-9e8b-063623625d02", + "port": "a" + }, + "vertices": [ + { + "x": -1576, + "y": 976 + } + ], + "size": 7 }, { "source": { - "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", + "block": "17ec9584-f1ef-4cd5-a0a5-850ecb89065c", "port": "out" }, "target": { - "block": "70332deb-97ed-4ae9-aab5-41813b842b63", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "block": "43205473-b036-4e36-8371-f424b8d09581", + "port": "bc9544e0-2199-4d6a-a6b9-6550b7dd7633" }, "vertices": [ { - "x": 896, - "y": 200 + "x": -1616, + "y": 968 } - ] - }, - { - "source": { - "block": "d389f312-fb27-41f2-8683-b3771e5d628e", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" - }, - "target": { - "block": "178cb827-993b-4cf3-b94f-282a9098fcd0", - "port": "in" - } + ], + "size": 8 }, { "source": { - "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", - "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + "block": "4f066abd-3ac4-45e9-ad20-d1eff038c986", + "port": "out" }, "target": { - "block": "d389f312-fb27-41f2-8683-b3771e5d628e", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "block": "43205473-b036-4e36-8371-f424b8d09581", + "port": "350946d5-2f29-4190-bcf2-e14e17224bb4" }, "vertices": [ { - "x": 880, - "y": 376 + "x": -1672, + "y": 888 } - ] + ], + "size": 8 }, { "source": { - "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", + "block": "b882b07a-a45e-429f-b442-f6547b67e98e", "port": "out" }, "target": { - "block": "d389f312-fb27-41f2-8683-b3771e5d628e", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "block": "87a39423-9ce6-4036-8776-cb7f14be9458", + "port": "779750dc-e68a-4a62-bb4a-a26b3b32c55c" }, "vertices": [ { - "x": 896, - "y": 368 + "x": -1520, + "y": 440 } ] - } - ] - } - } - }, - "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887": { - "package": { - "name": "timer-usec", - "version": "0.1", - "description": "Temporizador en microsegundos. La señal p está activa durante el tiempo indicado. Por tic se emite un tic al finalizar", - "author": "Juan Gonzalez-Gomez (obijuan)", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20293.13756%20181.35395%22%20width=%22293.137%22%20height=%22181.354%22%3E%3Ccircle%20cx=%22149.086%22%20cy=%2290.681%22%20r=%2270.101%22%20fill=%22#fff%22/%3E%3Cpath%20d=%22M149.086%2013.679c-42.531%200-77.003%2034.472-77.003%2077.002%200%2042.531%2034.472%2077.003%2077.003%2077.003%2042.53%200%2077.003-34.472%2077.003-77.003%200-42.53-34.472-77.002-77.003-77.002zm0%20145.175c-37.673%200-68.173-30.539-68.173-68.173%200-37.633%2030.539-68.172%2068.173-68.172%2037.633%200%2068.172%2030.539%2068.172%2068.172%200%2037.634-30.538%2068.173-68.172%2068.173z%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M146.772%2030.683h4.627v18.2h-4.627zM89.125%2092.965v-4.627h18.2v4.627zm62.261%2057.665h-4.627v-18.2h4.627zm57.647-62.28v4.628h-18.2V88.35zM105.044%2049.905l3.272-3.272%2012.87%2012.87-3.273%203.271zm3.28%2084.79l-3.27-3.272%2012.868-12.87%203.272%203.272zm84.774-3.265l-3.272%203.273-12.87-12.87%203.273-3.272zM189.85%2046.64l3.272%203.272-12.87%2012.87-3.271-3.272z%22%20fill=%22#333%22/%3E%3Ccircle%20cx=%22149.086%22%20cy=%2290.681%22%20r=%224.781%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M149.795%2070.653l2.722.288-2.109%2019.9-2.722-.288z%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M181.26%2072.13l1.276%202.422-32.859%2017.296-1.275-2.422z%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M152.016%2080.386c-1.08%200-1.928.887-1.928%201.928%200%20.656.309%201.234.81%201.581l-14.691%2041.451%201.002.347%2014.691-41.45h.116c1.08%200%201.928-.888%201.928-1.929a1.934%201.934%200%200%200-1.928-1.928z%22%20fill=%22#cf000f%22/%3E%3Ctext%20y=%2242.56%22%20x=%2219.84%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%2269.516%22%20letter-spacing=%220%22%20word-spacing=%220%22%20transform=%22scale(.99853%201.00147)%22%20font-family=%22sans-serif%22%20fill=%22#00f%22%20stroke-width=%221.289%22%3E%3Ctspan%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2242.56%22%20x=%2219.84%22%20font-weight=%22700%22%20font-size=%2239.724%22%3Eus%3C/tspan%3E%3C/text%3E%3Cg%20transform=%22matrix(2.99796%200%200%202.99796%20-53.023%20-84.502)%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(2.99796%200%200%202.99796%20-257.041%20-84.502)%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%3Ccircle%20cx=%22248.578%22%20cy=%2244.56%22%20r=%2243.648%22%20fill=%22#ececec%22%20stroke=%22green%22%20stroke-width=%221.824%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M279.216%2057.21h-5.01V30.018h-51.31v26.98h-5.456%22%20fill=%22none%22%20stroke=%22green%22%20stroke-width=%224.56%22%20stroke-linecap=%22round%22/%3E%3C/svg%3E" - }, - "design": { - "graph": { - "blocks": [ - { - "id": "c45dab76-9d0f-4742-9e4d-3048637d245d", - "type": "basic.output", - "data": { - "name": "p" - }, - "position": { - "x": 1224, - "y": 96 - } - }, - { - "id": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6", - "type": "basic.input", - "data": { - "name": "", - "clock": true - }, - "position": { - "x": 472, - "y": 96 - } - }, - { - "id": "61d11f03-6fbc-4467-a947-d546fa6f6429", - "type": "basic.input", - "data": { - "name": "", - "clock": false - }, - "position": { - "x": 456, - "y": 304 - } - }, - { - "id": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454", - "type": "basic.output", - "data": { - "name": "tic" - }, - "position": { - "x": 1216, - "y": 304 - } }, { - "id": "7ca578e5-8e36-4c04-bbea-144418c8e9af", - "type": "basic.constant", - "data": { - "name": "", - "value": "100", - "local": false + "source": { + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, - "position": { - "x": 848, - "y": -96 + "target": { + "block": "87a39423-9ce6-4036-8776-cb7f14be9458", + "port": "84b853c2-3707-4f0b-b32b-484b03b19f61" } }, { - "id": "e6b9690b-1da7-4600-9015-0bbed31633e2", - "type": "basic.info", - "data": { - "info": "**Arranque del** \n**temporizador**", - "readonly": true - }, - "position": { - "x": 448, - "y": 264 + "source": { + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, - "size": { - "width": 144, - "height": 56 + "target": { + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "7861c061-e90b-46bb-a639-6399f55f7f11" } }, { - "id": "f3af4211-e3df-4710-a0a8-96a035a833a9", - "type": "basic.info", - "data": { - "info": "**Salida de pulso**", - "readonly": true - }, - "position": { - "x": 1224, - "y": 72 + "source": { + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, - "size": { - "width": 176, - "height": 40 + "target": { + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "0f4f7955-4539-4804-a906-db4abd29fcac" } }, { - "id": "a15228f1-41aa-494c-82fb-5491bf5fcc13", - "type": "basic.info", - "data": { - "info": "**Salida de tic**", - "readonly": true - }, - "position": { - "x": 1216, - "y": 280 + "source": { + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, - "size": { - "width": 152, - "height": 40 + "target": { + "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "port": "9c68c5ce-2425-45f3-9f05-ee4581fa974d" } }, { - "id": "204eb46d-dd4f-47cf-b0f3-c9095263d325", - "type": "basic.info", - "data": { - "info": "**Parametro del timer** \nmicroseundos a esperar", - "readonly": true - }, - "position": { - "x": 824, - "y": -128 + "source": { + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, - "size": { - "width": 216, - "height": 56 - } - }, - { - "id": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", - "type": "basic.code", - "data": { - "code": "//localparam US;\n\n//-- Constante para dividir y obtener una señal de \n//-- periodo 1 micro-segundo\nlocalparam M = 12;\n\n//-- Calcular el numero de bits para almacenar M\nlocalparam N = $clog2(M);\n\n//-- Cable de reset para el corazon\nwire rst_heart;\n\n//-- Overflow del temporizador del corazon\nwire ov_heart;\n\n//-- Habilitacion del corazon\nwire ena;\n\n//-- Tics del corazon\nwire tic_heart;\n\n//-- Contador del corazon\nreg [N-1:0] heart=0;\n\nalways @(posedge clk)\n if (rst_heart)\n heart <= 0;\n else\n heart <= heart + 1;\n\n//-- Overflow del contador\nassign ov_heart = (heart == M-1);\n\n//-- La salida del corazon es la señal de overflow\nassign tic_heart = ov_heart;\n\n//-- Reset del corazon\nassign rst_heart =~ena | ov_heart;\n\n\n\n//--------------------------------------------\n//-- Contador de tics\n//--------------------------------------------\n\n//-- Calcular el numero de bits para almacenar US tics\nlocalparam CB = $clog2(US);\n\nreg [CB:0] counter = 0;\n\n//-- Overflow del contador\nwire ov;\n\n//-- Señal de reset del contador\nwire rst;\n\nalways @(posedge clk)\nif (rst)\n counter <= 0;\nelse\n if (tic_heart)\n counter <= counter + 1;\n\n//-- Evento: cuenta máxima de tics alcanzada\nassign ov = (counter == US);\n\n//---------------------------------------\n//-- Biestable de estado del timer\n//-- 0: Apagado \n//-- 1: Funcionando\nreg q = 0;\n\nalways @(posedge clk)\n if (start)\n q <= 1'b1;\n else if (rst)\n q<=1'b0;\n \n//-- Lógica de reset\n//En función de la entrada, el estado y \n// el overflow se inicializa el contador y \n// se habilita el corazón de tics\nassign rst = ~q | ov | start;\nassign ena = ~rst;\n\n//-- Salida de pulso\nassign p = q;\n\n//-- Salida de tic\n//-- Saca un tic cuando ha finalizado la cuenta\nassign tic = ov;\n", - "params": [ - { - "name": "US" - } - ], - "ports": { - "in": [ - { - "name": "clk" - }, - { - "name": "start" - } - ], - "out": [ - { - "name": "p" - }, - { - "name": "tic" - } - ] + "target": { + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "72e82947-787f-49f6-b4a4-7fe8f68e573d" + }, + "vertices": [ + { + "x": 16, + "y": 216 } + ] + }, + { + "source": { + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, - "position": { - "x": 632, - "y": 24 + "target": { + "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + } + }, + { + "source": { + "block": "7435a99e-3148-4748-aeb3-4bbe7cd9ee12", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, - "size": { - "width": 520, - "height": 416 + "target": { + "block": "efa38a4c-7d36-47f9-82de-6cf99cf88c3d", + "port": "in" } - } - ], - "wires": [ + }, { "source": { - "block": "61d11f03-6fbc-4467-a947-d546fa6f6429", + "block": "6355398c-628e-42d2-86e8-f85762c31939", "port": "out" }, "target": { - "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", - "port": "start" + "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", + "port": "53ae64df-468f-4f52-b3d9-99da065d5a22" } }, { "source": { - "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", - "port": "p" + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, "target": { - "block": "c45dab76-9d0f-4742-9e4d-3048637d245d", - "port": "in" + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "096f61b6-6d5c-4907-9512-e65b25969458" } }, { "source": { - "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", - "port": "tic" + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, "target": { - "block": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454", - "port": "in" - } + "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", + "port": "b2c9360e-b412-4621-af8b-a8762be2b072" + }, + "vertices": [ + { + "x": 1000, + "y": -80 + } + ] }, { "source": { - "block": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6", + "block": "6355398c-628e-42d2-86e8-f85762c31939", "port": "out" }, "target": { - "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", - "port": "clk" + "block": "7435a99e-3148-4748-aeb3-4bbe7cd9ee12", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + }, + "vertices": [ + { + "x": 1360, + "y": 200 + } + ] + }, + { + "source": { + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" + }, + "target": { + "block": "9e57aa64-2990-4ff3-8244-9a70f77ff6f5", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + }, + "vertices": [ + { + "x": 1360, + "y": 160 + } + ] + }, + { + "source": { + "block": "9e57aa64-2990-4ff3-8244-9a70f77ff6f5", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + }, + "target": { + "block": "18dc0bf6-35be-4fad-9e92-79ae207ff435", + "port": "in" } }, { "source": { - "block": "7ca578e5-8e36-4c04-bbea-144418c8e9af", - "port": "constant-out" + "block": "7d667955-709f-4725-8ce6-8e6383b19129", + "port": "memory-out" }, "target": { - "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", - "port": "US" + "block": "5339e7e3-3097-4ee7-bf79-07c1d3172a8e", + "port": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377" } + }, + { + "source": { + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "18918c51-cad4-4993-b228-985afc99944e" + }, + "target": { + "block": "9e57aa64-2990-4ff3-8244-9a70f77ff6f5", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + }, + "vertices": [ + { + "x": 248, + "y": 944 + } + ] } ] } } }, - "7eacdff4ce248b009935725889c8ae3339817d76": { + "e1a052c716ee278ec9830939ef171d742c56eafe": { "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" + "name": "Tri-state", + "version": "1.0.1", + "description": "Tri-state logic block", + "author": "Salvador E. Tropea", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%22-265%20401.5%2063.5%2038.4%22%20id=%22svg2%22%3E%3Cstyle%20id=%22style3%22/%3E%3Cpath%20d=%22M-9.78%203.538l-4.214%2024.984-19.53-16.141z%22%20transform=%22matrix(.62422%20-.11476%20.1058%20.67701%20-219.33%20413.046)%22%20id=%22path3008%22%20fill=%22none%22%20stroke=%22#0b0b0b%22%20stroke-width=%221.885%22/%3E%3Cpath%20d=%22M-9.78%203.538l-4.214%2024.984-19.53-16.141z%22%20transform=%22matrix(-.62422%20-.11476%20-.1058%20.67701%20-244.991%20400.53)%22%20id=%22path3008-6%22%20fill=%22none%22%20stroke=%22#0b0b0b%22%20stroke-width=%221.885%22/%3E%3Cpath%20d=%22M40.154%2011.247H63.74%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3800%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M25.945%2023.73l-7.364.058V11.305h7.076%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3802%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M-265.029%20412.747l18.582.058%22%20id=%22path3804%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M.081%2023.919h12.936v7.566h19.037V27.58%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3806%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M0%2035.96h49.302V24.162h-9.356%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3812%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3C/svg%3E" }, "design": { + "config": "true", "graph": { "blocks": [ { - "id": "4196184b-4a60-493b-bcc6-c95958483683", + "id": "076fd025-aa42-4f23-ae97-b65aec2298ce", "type": "basic.input", "data": { - "name": "", - "clock": true + "name": "pin" }, "position": { - "x": 152, - "y": 176 + "x": 32, + "y": 40 } }, { - "id": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", + "id": "f96a1baf-fc8b-4c25-b132-12552605743f", + "type": "basic.input", + "data": { + "name": "oe" + }, + "position": { + "x": 32, + "y": 128 + } + }, + { + "id": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058", "type": "basic.output", "data": { - "name": "" + "name": "din" }, "position": { - "x": 624, - "y": 200 + "x": 760, + "y": 128 } }, { - "id": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", + "id": "04fdb7a7-2740-4ff1-ad26-56407ef5b958", "type": "basic.input", "data": { - "name": "", + "name": "dout", "clock": false }, "position": { - "x": 152, - "y": 232 + "x": 32, + "y": 216 } }, { - "id": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "id": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", "type": "basic.code", "data": { - "code": "reg q = 0;\n\nalways @(posedge clk)\n q <= i;\n \nassign o = (q & ~i); ", + "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": "clk" + "name": "pin" }, { - "name": "i" + "name": "oe" + }, + { + "name": "dout" } ], "out": [ { - "name": "o" + "name": "din" } ] } }, "position": { - "x": 336, - "y": 176 + "x": 248, + "y": 32 }, "size": { - "width": 232, - "height": 112 + "width": 384, + "height": 256 } } ], "wires": [ { "source": { - "block": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", + "block": "076fd025-aa42-4f23-ae97-b65aec2298ce", "port": "out" }, "target": { - "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", - "port": "i" + "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", + "port": "pin" } }, { "source": { - "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", - "port": "o" + "block": "f96a1baf-fc8b-4c25-b132-12552605743f", + "port": "out" }, "target": { - "block": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", - "port": "in" + "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", + "port": "oe" } }, { "source": { - "block": "4196184b-4a60-493b-bcc6-c95958483683", + "block": "04fdb7a7-2740-4ff1-ad26-56407ef5b958", "port": "out" }, "target": { - "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", - "port": "clk" + "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" } } ] } } }, - "8ba640a4be8254a54e8c2dfad99a8fb6a07b5752": { + "23e63b4fd19d0e1897b3c2faf5316f824f998872": { "package": { - "name": "i2c-nak", + "name": "i2c-start", "version": "0.1", - "description": "Detección de los ACKs del esclavo. Si no se recibe, se activa la salida NAK", + "description": "Generar la condición de start en el bus I2C", "author": "Juan González-Gómez (Obijuan)", "image": "" }, @@ -5530,94 +5033,119 @@ "graph": { "blocks": [ { - "id": "b2c9360e-b412-4621-af8b-a8762be2b072", + "id": "84b853c2-3707-4f0b-b32b-484b03b19f61", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 88, + "y": -32 + } + }, + { + "id": "e69a71cb-1e3d-49df-a1cc-81fa1126bbb9", + "type": "basic.output", + "data": { + "name": "sda" + }, + "position": { + "x": 568, + "y": 200 + } + }, + { + "id": "2d249745-5883-469d-bf5a-5526f4e2f8c9", "type": "basic.input", "data": { - "name": "clk", + "name": "end", "clock": false }, "position": { - "x": 272, - "y": 152 + "x": 88, + "y": 200 } }, { - "id": "0b3c9646-6557-423b-90de-df434a651a71", + "id": "3d54bf83-8d31-4eb5-bb7a-ccbe53ede036", "type": "basic.output", "data": { - "name": "nak" + "name": "scl" }, "position": { - "x": 1136, - "y": 256 + "x": 1064, + "y": 272 } }, { - "id": "4f968b50-2b7d-4192-a522-aade138c8ae1", + "id": "779750dc-e68a-4a62-bb4a-a26b3b32c55c", "type": "basic.input", "data": { - "name": "sda_in", + "name": "start", "clock": false }, "position": { - "x": 256, - "y": 256 + "x": 232, + "y": 272 } }, { - "id": "4889ff2d-1850-4fad-bae9-8c1cc8efcdea", - "type": "basic.input", + "id": "178cb827-993b-4cf3-b94f-282a9098fcd0", + "type": "basic.output", "data": { - "name": "win", - "clock": false + "name": "done" }, "position": { - "x": 256, - "y": 344 + "x": 1072, + "y": 424 } }, { - "id": "90b13235-c3b7-46a1-bdfd-f9d3d6b7ddf5", - "type": "basic.input", + "id": "a628dcfa-b41e-4605-a6b0-9637f4162e3d", + "type": "basic.constant", "data": { - "name": "rs", - "clock": false + "name": "", + "value": "1", + "local": true }, "position": { - "x": 256, - "y": 432 + "x": 392, + "y": 88 } }, { - "id": "40e65064-7137-4959-aa9e-f6111677c062", - "type": "basic.input", + "id": "5dc401ee-7963-464f-8ab5-e8ddedf191e2", + "type": "basic.constant", "data": { - "name": "rst", - "clock": false + "name": "T1", + "value": "2", + "local": false }, "position": { - "x": 264, - "y": 496 + "x": 712, + "y": 192 } }, { - "id": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", - "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", - "position": { - "x": 560, - "y": 272 + "id": "c73dcb8e-e43f-4550-bccf-cc3cdd24929b", + "type": "basic.constant", + "data": { + "name": "", + "value": "1", + "local": true }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": 928, + "y": 160 } }, { - "id": "d56e056d-c720-4463-802b-b5454811164c", + "id": "da65e165-f890-456d-99b1-b01df995f4c6", "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", "position": { - "x": 984, - "y": 240 + "x": 392, + "y": 184 }, "size": { "width": 96, @@ -5625,11 +5153,11 @@ } }, { - "id": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", - "type": "8e2728307baccbf26c01cdb87bcfba8ca64a435c", + "id": "cd6c30b0-11d0-450f-ac49-90598206b72e", + "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", "position": { - "x": 704, - "y": 256 + "x": 712, + "y": 288 }, "size": { "width": 96, @@ -5637,518 +5165,561 @@ } }, { - "id": "e26aeb27-df86-4761-a854-d13b9e7fd79b", - "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "id": "70332deb-97ed-4ae9-aab5-41813b842b63", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", "position": { - "x": 432, - "y": 360 + "x": 928, + "y": 256 }, "size": { "width": 96, - "height": 64 + "height": 96 } - } - ], - "wires": [ - { - "source": { - "block": "d56e056d-c720-4463-802b-b5454811164c", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "0b3c9646-6557-423b-90de-df434a651a71", - "port": "in" - }, - "vertices": [] }, { - "source": { - "block": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", - "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" - }, - "target": { - "block": "d56e056d-c720-4463-802b-b5454811164c", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + "id": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", + "type": "7eacdff4ce248b009935725889c8ae3339817d76", + "position": { + "x": 568, + "y": 304 }, - "vertices": [] + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "4a80dfb1-abc5-4d93-9bd6-32ad4429fd8c", + "type": "basic.info", + "data": { + "info": "**I2C: Condicion de start**\n\nSDA y SCL están inicialmente en reposo (1). Al llegar un \ntic por start, se genera la condición de start, que consiste \nen poner SDA a 0 y trancurrido un tiempo T1, el reloj SCL \ntambién se pone a 0", + "readonly": true }, - "target": { - "block": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", - "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + "position": { + "x": -8, + "y": -184 }, - "vertices": [] + "size": { + "width": 488, + "height": 96 + } }, { - "source": { - "block": "e26aeb27-df86-4761-a854-d13b9e7fd79b", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", - "port": "97b51945-d716-4b6c-9db9-970d08541249" + "id": "99db5402-e938-480d-8af1-2d06de283e68", + "type": "basic.info", + "data": { + "info": "**Estado de SDA** \n(datos) \nInicialmente a 1", + "readonly": true }, - "vertices": [] - }, - { - "source": { - "block": "4f968b50-2b7d-4192-a522-aade138c8ae1", - "port": "out" + "position": { + "x": 400, + "y": 8 }, - "target": { - "block": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "size": { + "width": 176, + "height": 64 } }, { - "source": { - "block": "90b13235-c3b7-46a1-bdfd-f9d3d6b7ddf5", - "port": "out" + "id": "59ae699f-9133-4108-b510-b0969f8dfcf6", + "type": "basic.info", + "data": { + "info": "**Línea de datos**", + "readonly": true }, - "target": { - "block": "e26aeb27-df86-4761-a854-d13b9e7fd79b", - "port": "97b51945-d716-4b6c-9db9-970d08541249" - } - }, - { - "source": { - "block": "4889ff2d-1850-4fad-bae9-8c1cc8efcdea", - "port": "out" + "position": { + "x": 568, + "y": 184 }, - "target": { - "block": "e26aeb27-df86-4761-a854-d13b9e7fd79b", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "size": { + "width": 160, + "height": 40 } }, { - "source": { - "block": "40e65064-7137-4959-aa9e-f6111677c062", - "port": "out" + "id": "3b3ca662-cacb-4ee0-ac34-899858c76d9f", + "type": "basic.info", + "data": { + "info": "La señal SCL está \nretrasada T1 con \nrespecto a SDA", + "readonly": true }, - "target": { - "block": "d56e056d-c720-4463-802b-b5454811164c", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" - } - }, - { - "source": { - "block": "b2c9360e-b412-4621-af8b-a8762be2b072", - "port": "out" + "position": { + "x": 712, + "y": 360 }, - "target": { - "block": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", - "port": "4196184b-4a60-493b-bcc6-c95958483683" + "size": { + "width": 160, + "height": 64 } }, { - "source": { - "block": "b2c9360e-b412-4621-af8b-a8762be2b072", - "port": "out" - }, - "target": { - "block": "d56e056d-c720-4463-802b-b5454811164c", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" - } - } - ] - } - } - }, - "fc9dacc62ad25cd2832c3442bf277af9b708249b": { - "package": { - "name": "Separador-bus", - "version": "0.1", - "description": "Separador de bus de 2-bits en dos cables", - "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": "f5a71d7b-de20-4527-80c8-0eb20de0dc77", - "type": "basic.output", + "id": "0c7f5554-984c-47fa-8c23-06dca0323445", + "type": "basic.info", "data": { - "name": "o1" + "info": "Detectar cuando SDA \nha bajado a 0", + "readonly": true }, "position": { - "x": 568, - "y": 144 + "x": 544, + "y": 376 + }, + "size": { + "width": 176, + "height": 56 } }, { - "id": "a409d207-7594-4558-8e15-89712262cf5b", - "type": "basic.input", + "id": "63b64cd5-55d5-4a5b-be1f-55fce5dab709", + "type": "basic.info", "data": { - "name": "i", - "range": "[1:0]", - "clock": false, - "size": 2 + "info": "**Estado de SCL** (Reloj) \nInicialmente a 1", + "readonly": true }, "position": { - "x": 120, - "y": 200 + "x": 920, + "y": 112 + }, + "size": { + "width": 168, + "height": 48 } }, { - "id": "0f7487e5-b070-4277-bba6-acf69934afca", - "type": "basic.output", + "id": "0c5e2f7d-b563-465b-aa4d-770b1e14f1ab", + "type": "basic.info", "data": { - "name": "o0" + "info": "Al activarse start, SDA \nbaja a 0", + "readonly": true }, "position": { - "x": 568, - "y": 272 + "x": 264, + "y": 336 + }, + "size": { + "width": 192, + "height": 64 } }, { - "id": "16e78204-213e-4833-9096-89d735307ec2", - "type": "basic.code", + "id": "c61090f2-72e4-47e0-bd4e-f489b07e3d62", + "type": "basic.info", "data": { - "code": "assign o1 = i[1];\nassign o0 = i[0];", - "params": [], - "ports": { - "in": [ - { - "name": "i", - "range": "[1:0]", - "size": 2 - } - ], - "out": [ - { - "name": "o1" - }, - { - "name": "o0" - } - ] - } + "info": "Volver al estado de \nreposo (SDA=1, SCL=1)", + "readonly": true }, "position": { - "x": 296, - "y": 176 + "x": 72, + "y": 152 }, "size": { "width": 192, - "height": 112 + "height": 56 + } + }, + { + "id": "d389f312-fb27-41f2-8683-b3771e5d628e", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", + "position": { + "x": 928, + "y": 424 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "ba8e435f-a5c4-47dc-96d8-b06ce5af1ceb", + "type": "basic.info", + "data": { + "info": "Emitir un tic para indicar \nque la condición de estar \nse ha ejecutado", + "readonly": true + }, + "position": { + "x": 1032, + "y": 360 + }, + "size": { + "width": 240, + "height": 72 } } ], "wires": [ { "source": { - "block": "16e78204-213e-4833-9096-89d735307ec2", - "port": "o1" + "block": "da65e165-f890-456d-99b1-b01df995f4c6", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "f5a71d7b-de20-4527-80c8-0eb20de0dc77", + "block": "e69a71cb-1e3d-49df-a1cc-81fa1126bbb9", "port": "in" - } + }, + "vertices": [] }, { "source": { - "block": "16e78204-213e-4833-9096-89d735307ec2", - "port": "o0" + "block": "5dc401ee-7963-464f-8ab5-e8ddedf191e2", + "port": "constant-out" }, "target": { - "block": "0f7487e5-b070-4277-bba6-acf69934afca", + "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", + "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" + }, + "vertices": [] + }, + { + "source": { + "block": "70332deb-97ed-4ae9-aab5-41813b842b63", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "3d54bf83-8d31-4eb5-bb7a-ccbe53ede036", "port": "in" - } + }, + "vertices": [] }, { "source": { - "block": "a409d207-7594-4558-8e15-89712262cf5b", - "port": "out" + "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", + "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, "target": { - "block": "16e78204-213e-4833-9096-89d735307ec2", - "port": "i" + "block": "70332deb-97ed-4ae9-aab5-41813b842b63", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" }, - "size": 2 - } - ] - } - } - }, - "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": [ + "vertices": [] + }, { - "id": "53ae64df-468f-4f52-b3d9-99da065d5a22", - "type": "basic.input", - "data": { - "name": "", - "clock": true + "source": { + "block": "c73dcb8e-e43f-4550-bccf-cc3cdd24929b", + "port": "constant-out" }, - "position": { - "x": 224, - "y": 248 - } + "target": { + "block": "70332deb-97ed-4ae9-aab5-41813b842b63", + "port": "bf12a800-db30-4289-a7c5-8c08438f9a39" + }, + "vertices": [] }, { - "id": "21039c06-c932-498c-968d-879a68d66795", - "type": "basic.output", - "data": { - "name": "" + "source": { + "block": "a628dcfa-b41e-4605-a6b0-9637f4162e3d", + "port": "constant-out" }, - "position": { - "x": 920, - "y": 264 - } + "target": { + "block": "da65e165-f890-456d-99b1-b01df995f4c6", + "port": "bf12a800-db30-4289-a7c5-8c08438f9a39" + }, + "vertices": [] }, { - "id": "ed62d7ef-27fb-44ef-99e8-a19bad6342dd", - "type": "basic.input", - "data": { - "name": "", - "clock": false + "source": { + "block": "2d249745-5883-469d-bf5a-5526f4e2f8c9", + "port": "out" }, - "position": { - "x": 224, - "y": 312 - } + "target": { + "block": "da65e165-f890-456d-99b1-b01df995f4c6", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + }, + "vertices": [] }, { - "id": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", - "type": "basic.output", - "data": { - "name": "q", - "range": "[7:0]", - "size": 8 + "source": { + "block": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" }, - "position": { - "x": 928, - "y": 352 - } + "target": { + "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", + "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" + }, + "vertices": [] }, { - "id": "e6088243-1d79-4783-ac0f-528d9700b6df", - "type": "basic.input", - "data": { - "name": "shift", - "clock": false + "source": { + "block": "da65e165-f890-456d-99b1-b01df995f4c6", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, - "position": { - "x": 224, - "y": 368 + "target": { + "block": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + }, + "vertices": [ + { + "x": 504, + "y": 240 + } + ] + }, + { + "source": { + "block": "779750dc-e68a-4a62-bb4a-a26b3b32c55c", + "port": "out" + }, + "target": { + "block": "da65e165-f890-456d-99b1-b01df995f4c6", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" } }, { - "id": "5a757228-e2d2-45fb-9241-ebecb5a14315", - "type": "basic.constant", - "data": { - "name": "", - "value": "0", - "local": false + "source": { + "block": "2d249745-5883-469d-bf5a-5526f4e2f8c9", + "port": "out" }, - "position": { - "x": 576, - "y": 144 - } + "target": { + "block": "70332deb-97ed-4ae9-aab5-41813b842b63", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + }, + "vertices": [ + { + "x": 208, + "y": 456 + }, + { + "x": 856, + "y": 376 + } + ] }, { - "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 + "source": { + "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", + "port": "out" }, - "size": { - "width": 480, - "height": 184 + "target": { + "block": "da65e165-f890-456d-99b1-b01df995f4c6", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" } - } - ], - "wires": [ + }, { "source": { - "block": "5a757228-e2d2-45fb-9241-ebecb5a14315", - "port": "constant-out" + "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", + "port": "out" }, "target": { - "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", - "port": "INI" + "block": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", + "port": "4196184b-4a60-493b-bcc6-c95958483683" }, - "vertices": [] + "vertices": [ + { + "x": 528, + "y": 88 + } + ] }, { "source": { - "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", - "port": "so" + "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", + "port": "out" }, "target": { - "block": "21039c06-c932-498c-968d-879a68d66795", - "port": "in" + "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", + "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" } }, { "source": { - "block": "ed62d7ef-27fb-44ef-99e8-a19bad6342dd", + "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", "port": "out" }, "target": { - "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", - "port": "si" - } + "block": "70332deb-97ed-4ae9-aab5-41813b842b63", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + }, + "vertices": [ + { + "x": 896, + "y": 200 + } + ] }, { "source": { - "block": "e6088243-1d79-4783-ac0f-528d9700b6df", - "port": "out" + "block": "d389f312-fb27-41f2-8683-b3771e5d628e", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", - "port": "shift" + "block": "178cb827-993b-4cf3-b94f-282a9098fcd0", + "port": "in" } }, { "source": { - "block": "53ae64df-468f-4f52-b3d9-99da065d5a22", - "port": "out" + "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", + "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, "target": { - "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", - "port": "clk" - } + "block": "d389f312-fb27-41f2-8683-b3771e5d628e", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + }, + "vertices": [ + { + "x": 880, + "y": 376 + } + ] }, { "source": { - "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", - "port": "q" + "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", + "port": "out" }, "target": { - "block": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", - "port": "in" + "block": "d389f312-fb27-41f2-8683-b3771e5d628e", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" }, - "size": 8 + "vertices": [ + { + "x": 896, + "y": 368 + } + ] } ] } } }, - "42ebf732ed72b2aa979e6858281bfe62c10bec5f": { + "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887": { "package": { - "name": "Biestable-D", + "name": "timer-usec", "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=%22216.379%22%20height=%22279.911%22%20viewBox=%220%200%2057.25032%2074.059853%22%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M41.506%2040.152l13.608%2016.672-6.918-20.534%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%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-width=%221.0924880399999999%22/%3E%3C/g%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%3C/svg%3E" + "description": "Temporizador en microsegundos. La señal p está activa durante el tiempo indicado. Por tic se emite un tic al finalizar", + "author": "Juan Gonzalez-Gomez (obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20293.13756%20181.35395%22%20width=%22293.137%22%20height=%22181.354%22%3E%3Ccircle%20cx=%22149.086%22%20cy=%2290.681%22%20r=%2270.101%22%20fill=%22#fff%22/%3E%3Cpath%20d=%22M149.086%2013.679c-42.531%200-77.003%2034.472-77.003%2077.002%200%2042.531%2034.472%2077.003%2077.003%2077.003%2042.53%200%2077.003-34.472%2077.003-77.003%200-42.53-34.472-77.002-77.003-77.002zm0%20145.175c-37.673%200-68.173-30.539-68.173-68.173%200-37.633%2030.539-68.172%2068.173-68.172%2037.633%200%2068.172%2030.539%2068.172%2068.172%200%2037.634-30.538%2068.173-68.172%2068.173z%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M146.772%2030.683h4.627v18.2h-4.627zM89.125%2092.965v-4.627h18.2v4.627zm62.261%2057.665h-4.627v-18.2h4.627zm57.647-62.28v4.628h-18.2V88.35zM105.044%2049.905l3.272-3.272%2012.87%2012.87-3.273%203.271zm3.28%2084.79l-3.27-3.272%2012.868-12.87%203.272%203.272zm84.774-3.265l-3.272%203.273-12.87-12.87%203.273-3.272zM189.85%2046.64l3.272%203.272-12.87%2012.87-3.271-3.272z%22%20fill=%22#333%22/%3E%3Ccircle%20cx=%22149.086%22%20cy=%2290.681%22%20r=%224.781%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M149.795%2070.653l2.722.288-2.109%2019.9-2.722-.288z%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M181.26%2072.13l1.276%202.422-32.859%2017.296-1.275-2.422z%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M152.016%2080.386c-1.08%200-1.928.887-1.928%201.928%200%20.656.309%201.234.81%201.581l-14.691%2041.451%201.002.347%2014.691-41.45h.116c1.08%200%201.928-.888%201.928-1.929a1.934%201.934%200%200%200-1.928-1.928z%22%20fill=%22#cf000f%22/%3E%3Ctext%20y=%2242.56%22%20x=%2219.84%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%2269.516%22%20letter-spacing=%220%22%20word-spacing=%220%22%20transform=%22scale(.99853%201.00147)%22%20font-family=%22sans-serif%22%20fill=%22#00f%22%20stroke-width=%221.289%22%3E%3Ctspan%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2242.56%22%20x=%2219.84%22%20font-weight=%22700%22%20font-size=%2239.724%22%3Eus%3C/tspan%3E%3C/text%3E%3Cg%20transform=%22matrix(2.99796%200%200%202.99796%20-53.023%20-84.502)%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(2.99796%200%200%202.99796%20-257.041%20-84.502)%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%3Ccircle%20cx=%22248.578%22%20cy=%2244.56%22%20r=%2243.648%22%20fill=%22#ececec%22%20stroke=%22green%22%20stroke-width=%221.824%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M279.216%2057.21h-5.01V30.018h-51.31v26.98h-5.456%22%20fill=%22none%22%20stroke=%22green%22%20stroke-width=%224.56%22%20stroke-linecap=%22round%22/%3E%3C/svg%3E" }, "design": { "graph": { "blocks": [ { - "id": "3943e194-090b-4553-9df3-88bc4b17abc2", + "id": "c45dab76-9d0f-4742-9e4d-3048637d245d", + "type": "basic.output", + "data": { + "name": "p" + }, + "position": { + "x": 1224, + "y": 96 + } + }, + { + "id": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6", "type": "basic.input", "data": { "name": "", "clock": true }, "position": { - "x": 200, + "x": 472, "y": 96 } }, { - "id": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", + "id": "61d11f03-6fbc-4467-a947-d546fa6f6429", "type": "basic.input", "data": { - "name": "d", + "name": "", "clock": false }, "position": { - "x": 176, - "y": 184 + "x": 456, + "y": 304 } }, { - "id": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", + "id": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454", "type": "basic.output", "data": { - "name": "" + "name": "tic" }, "position": { - "x": 680, - "y": 184 + "x": 1216, + "y": 304 } }, { - "id": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", - "type": "basic.input", + "id": "7ca578e5-8e36-4c04-bbea-144418c8e9af", + "type": "basic.constant", "data": { - "name": "load", - "clock": false + "name": "", + "value": "100", + "local": false }, "position": { - "x": 176, - "y": 248 + "x": 848, + "y": -96 + } + }, + { + "id": "e6b9690b-1da7-4600-9015-0bbed31633e2", + "type": "basic.info", + "data": { + "info": "**Arranque del** \n**temporizador**", + "readonly": true + }, + "position": { + "x": 448, + "y": 264 + }, + "size": { + "width": 144, + "height": 56 + } + }, + { + "id": "f3af4211-e3df-4710-a0a8-96a035a833a9", + "type": "basic.info", + "data": { + "info": "**Salida de pulso**", + "readonly": true + }, + "position": { + "x": 1224, + "y": 72 + }, + "size": { + "width": 176, + "height": 40 + } + }, + { + "id": "a15228f1-41aa-494c-82fb-5491bf5fcc13", + "type": "basic.info", + "data": { + "info": "**Salida de tic**", + "readonly": true + }, + "position": { + "x": 1216, + "y": 280 + }, + "size": { + "width": 152, + "height": 40 } }, { - "id": "65194b18-5d2a-41b2-bd86-01be99978ad6", - "type": "basic.constant", + "id": "204eb46d-dd4f-47cf-b0f3-c9095263d325", + "type": "basic.info", "data": { - "name": "", - "value": "0", - "local": false + "info": "**Parametro del timer** \nmicroseundos a esperar", + "readonly": true }, "position": { - "x": 456, - "y": 64 + "x": 824, + "y": -128 + }, + "size": { + "width": 216, + "height": 56 } }, { - "id": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "id": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", "type": "basic.code", "data": { - "code": "reg q = INI;\nalways @(posedge clk)\n if (load)\n q <= d;", + "code": "//localparam US;\n\n//-- Constante para dividir y obtener una señal de \n//-- periodo 1 micro-segundo\nlocalparam M = 12;\n\n//-- Calcular el numero de bits para almacenar M\nlocalparam N = $clog2(M);\n\n//-- Cable de reset para el corazon\nwire rst_heart;\n\n//-- Overflow del temporizador del corazon\nwire ov_heart;\n\n//-- Habilitacion del corazon\nwire ena;\n\n//-- Tics del corazon\nwire tic_heart;\n\n//-- Contador del corazon\nreg [N-1:0] heart=0;\n\nalways @(posedge clk)\n if (rst_heart)\n heart <= 0;\n else\n heart <= heart + 1;\n\n//-- Overflow del contador\nassign ov_heart = (heart == M-1);\n\n//-- La salida del corazon es la señal de overflow\nassign tic_heart = ov_heart;\n\n//-- Reset del corazon\nassign rst_heart =~ena | ov_heart;\n\n\n\n//--------------------------------------------\n//-- Contador de tics\n//--------------------------------------------\n\n//-- Calcular el numero de bits para almacenar US tics\nlocalparam CB = $clog2(US);\n\nreg [CB:0] counter = 0;\n\n//-- Overflow del contador\nwire ov;\n\n//-- Señal de reset del contador\nwire rst;\n\nalways @(posedge clk)\nif (rst)\n counter <= 0;\nelse\n if (tic_heart)\n counter <= counter + 1;\n\n//-- Evento: cuenta máxima de tics alcanzada\nassign ov = (counter == US);\n\n//---------------------------------------\n//-- Biestable de estado del timer\n//-- 0: Apagado \n//-- 1: Funcionando\nreg q = 0;\n\nalways @(posedge clk)\n if (start)\n q <= 1'b1;\n else if (rst)\n q<=1'b0;\n \n//-- Lógica de reset\n//En función de la entrada, el estado y \n// el overflow se inicializa el contador y \n// se habilita el corazón de tics\nassign rst = ~q | ov | start;\nassign ena = ~rst;\n\n//-- Salida de pulso\nassign p = q;\n\n//-- Salida de tic\n//-- Saca un tic cuando ha finalizado la cuenta\nassign tic = ov;\n", "params": [ { - "name": "INI" + "name": "US" } ], "ports": { @@ -6157,297 +5728,297 @@ "name": "clk" }, { - "name": "d" - }, - { - "name": "load" + "name": "start" } ], "out": [ { - "name": "q" + "name": "p" + }, + { + "name": "tic" } ] } }, "position": { - "x": 384, - "y": 168 + "x": 632, + "y": 24 }, "size": { - "width": 232, - "height": 88 + "width": 520, + "height": 416 } } ], "wires": [ { "source": { - "block": "3943e194-090b-4553-9df3-88bc4b17abc2", + "block": "61d11f03-6fbc-4467-a947-d546fa6f6429", "port": "out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "clk" + "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", + "port": "start" } }, { "source": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "q" + "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", + "port": "p" }, "target": { - "block": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", + "block": "c45dab76-9d0f-4742-9e4d-3048637d245d", "port": "in" } }, { "source": { - "block": "65194b18-5d2a-41b2-bd86-01be99978ad6", - "port": "constant-out" + "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", + "port": "tic" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "INI" + "block": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454", + "port": "in" } }, { "source": { - "block": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", + "block": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6", "port": "out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "d" + "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", + "port": "clk" } }, { "source": { - "block": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", - "port": "out" + "block": "7ca578e5-8e36-4c04-bbea-144418c8e9af", + "port": "constant-out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "load" + "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", + "port": "US" } } ] } } }, - "c146d4232b872efc8bb891cd29094024e9cc2c54": { + "7eacdff4ce248b009935725889c8ae3339817d76": { "package": { - "name": "i2c-io", + "name": "Bajada", "version": "0.1", - "description": "Gestion de la entrada/salida en el bus i2c", - "author": "Juan Gonzalez-Gomez (Obijuan)", - "image": "" + "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": "72e82947-787f-49f6-b4a4-7fe8f68e573d", + "id": "4196184b-4a60-493b-bcc6-c95958483683", "type": "basic.input", "data": { "name": "", "clock": true }, "position": { - "x": 624, - "y": 160 + "x": 152, + "y": 176 } }, { - "id": "543d92bb-e56e-4aed-a598-1c40b3773841", + "id": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", "type": "basic.output", "data": { - "name": "win" + "name": "" }, "position": { - "x": 1464, - "y": 288 + "x": 624, + "y": 200 } }, { - "id": "0096caa8-5e84-418c-9f49-61cccdca8cc0", + "id": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", "type": "basic.input", "data": { - "name": "bitclk", + "name": "", "clock": false }, "position": { - "x": 624, - "y": 408 + "x": 152, + "y": 232 } }, { - "id": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52", - "type": "basic.output", + "id": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "type": "basic.code", "data": { - "name": "b9" + "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": 1472, - "y": 448 - } - }, - { - "id": "0f70b35b-6842-4890-8201-e9a5f2278150", - "type": "basic.input", - "data": { - "name": "rs", - "clock": false + "x": 336, + "y": 176 }, - "position": { - "x": 616, - "y": 576 + "size": { + "width": 232, + "height": 112 } - }, + } + ], + "wires": [ { - "id": "de068252-1546-4d1a-8452-955530fdf5de", - "type": "basic.output", - "data": { - "name": "oe" + "source": { + "block": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", + "port": "out" }, - "position": { - "x": 1520, - "y": 624 + "target": { + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "i" } }, { - "id": "3e14c77c-be98-43cb-aa0d-b1a391a5374e", - "type": "basic.input", - "data": { - "name": "start", - "clock": false + "source": { + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "o" }, - "position": { - "x": 616, - "y": 688 + "target": { + "block": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", + "port": "in" } }, { - "id": "20ba5dd2-31fb-49c1-96e4-0a4b1cc63de8", - "type": "basic.constant", - "data": { - "name": "", - "value": "1", - "local": true + "source": { + "block": "4196184b-4a60-493b-bcc6-c95958483683", + "port": "out" }, - "position": { - "x": 800, - "y": 536 + "target": { + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "clk" } - }, + } + ] + } + } + }, + "8ba640a4be8254a54e8c2dfad99a8fb6a07b5752": { + "package": { + "name": "i2c-nak", + "version": "0.1", + "description": "Detección de los ACKs del esclavo. Si no se recibe, se activa la salida NAK", + "author": "Juan González-Gómez (Obijuan)", + "image": "" + }, + "design": { + "graph": { + "blocks": [ { - "id": "a4e37a91-ed2c-4544-a8a1-88e361e6b85e", - "type": "basic.constant", + "id": "b2c9360e-b412-4621-af8b-a8762be2b072", + "type": "basic.input", "data": { - "name": "", - "value": "9", - "local": true + "name": "clk", + "clock": false }, "position": { - "x": 840, - "y": 264 + "x": 272, + "y": 152 } }, { - "id": "38a8060f-f313-449e-9214-25f933b9cd60", - "type": "basic.constant", + "id": "0b3c9646-6557-423b-90de-df434a651a71", + "type": "basic.output", "data": { - "name": "Anchura-bit", - "value": "5", - "local": true + "name": "nak" }, "position": { - "x": 1040, - "y": 280 - } - }, - { - "id": "17946732-21fc-48c5-93f3-e9d1ad735480", - "type": "d014cb3dfd6b6e5082638cf2bc2db2c35c5b37a8", - "position": { - "x": 840, - "y": 360 - }, - "size": { - "width": 96, - "height": 96 + "x": 1136, + "y": 256 } }, { - "id": "224c436d-92d3-4409-9218-c29ae5e585fb", - "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", - "position": { - "x": 1040, - "y": 384 + "id": "4f968b50-2b7d-4192-a522-aade138c8ae1", + "type": "basic.input", + "data": { + "name": "sda_in", + "clock": false }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": 256, + "y": 256 } }, { - "id": "d40380ec-f9b9-4be8-93ab-bcc30a6aa905", - "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", - "position": { - "x": 1192, - "y": 368 + "id": "4889ff2d-1850-4fad-bae9-8c1cc8efcdea", + "type": "basic.input", + "data": { + "name": "win", + "clock": false }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": 256, + "y": 344 } }, { - "id": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", - "type": "42ebf732ed72b2aa979e6858281bfe62c10bec5f", - "position": { - "x": 800, - "y": 640 + "id": "90b13235-c3b7-46a1-bdfd-f9d3d6b7ddf5", + "type": "basic.input", + "data": { + "name": "rs", + "clock": false }, - "size": { - "width": 96, - "height": 96 + "position": { + "x": 256, + "y": 432 } }, { - "id": "fecc8639-d6d9-4f93-bc5b-109017ef4ea1", - "type": "basic.info", + "id": "40e65064-7137-4959-aa9e-f6111677c062", + "type": "basic.input", "data": { - "info": "rs bit \n(receive/send) \n0: receive \n1: send ", - "readonly": true + "name": "rst", + "clock": false }, "position": { - "x": 816, - "y": 472 - }, - "size": { - "width": 136, - "height": 80 + "x": 264, + "y": 496 } }, { - "id": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "id": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", "position": { - "x": 1056, - "y": 496 + "x": 560, + "y": 272 }, "size": { "width": 96, - "height": 96 + "height": 64 } }, { - "id": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", - "type": "5cc6ec961df1a19b78d61422b28169fc0f69384b", + "id": "d56e056d-c720-4463-802b-b5454811164c", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", "position": { - "x": 1352, - "y": 608 + "x": 984, + "y": 240 }, "size": { "width": 96, @@ -6455,394 +6026,348 @@ } }, { - "id": "9483c808-f5f7-423e-ba81-52d9e12c812b", - "type": "basic.info", - "data": { - "info": "Receive-send bit", - "readonly": true - }, + "id": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", + "type": "8e2728307baccbf26c01cdb87bcfba8ca64a435c", "position": { - "x": 616, - "y": 552 + "x": 704, + "y": 256 }, "size": { - "width": 176, - "height": 40 + "width": 96, + "height": 64 } }, { - "id": "c061da2d-fea9-42bb-82f3-9cec484aa116", - "type": "basic.info", - "data": { - "info": "ack window \nThis output is 1 only \nwhen the 9th bit is being \nsent", - "readonly": true - }, + "id": "e26aeb27-df86-4761-a854-d13b9e7fd79b", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", "position": { - "x": 1392, - "y": 216 + "x": 432, + "y": 360 }, "size": { - "width": 232, - "height": 88 + "width": 96, + "height": 64 } } ], "wires": [ { "source": { - "block": "a4e37a91-ed2c-4544-a8a1-88e361e6b85e", - "port": "constant-out" - }, - "target": { - "block": "17946732-21fc-48c5-93f3-e9d1ad735480", - "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" - }, - "vertices": [] - }, - { - "source": { - "block": "38a8060f-f313-449e-9214-25f933b9cd60", - "port": "constant-out" - }, - "target": { - "block": "224c436d-92d3-4409-9218-c29ae5e585fb", - "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" - }, - "vertices": [] - }, - { - "source": { - "block": "17946732-21fc-48c5-93f3-e9d1ad735480", - "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" - }, - "target": { - "block": "224c436d-92d3-4409-9218-c29ae5e585fb", - "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" - }, - "vertices": [] - }, - { - "source": { - "block": "224c436d-92d3-4409-9218-c29ae5e585fb", - "port": "c45dab76-9d0f-4742-9e4d-3048637d245d" + "block": "d56e056d-c720-4463-802b-b5454811164c", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "d40380ec-f9b9-4be8-93ab-bcc30a6aa905", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "block": "0b3c9646-6557-423b-90de-df434a651a71", + "port": "in" }, "vertices": [] }, { "source": { - "block": "17946732-21fc-48c5-93f3-e9d1ad735480", - "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + "block": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" }, "target": { - "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", + "block": "d56e056d-c720-4463-802b-b5454811164c", "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" }, - "vertices": [ - { - "x": 992, - "y": 472 - } - ] - }, - { - "source": { - "block": "d40380ec-f9b9-4be8-93ab-bcc30a6aa905", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", - "port": "5898179a-7390-429b-ac3c-b7a0df673610" - }, "vertices": [] }, { "source": { - "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", - "port": "db089906-4326-4b59-8aa5-ebb61116a4cd" - }, - "vertices": [ - { - "x": 1200, - "y": 584 - } - ] - }, - { - "source": { - "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "block": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", - "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" + "block": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" }, "vertices": [] }, { "source": { - "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", - "port": "0ef557c8-5378-43b3-80af-176f129f1a07" + "block": "e26aeb27-df86-4761-a854-d13b9e7fd79b", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "de068252-1546-4d1a-8452-955530fdf5de", - "port": "in" + "block": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", + "port": "97b51945-d716-4b6c-9db9-970d08541249" }, "vertices": [] }, { "source": { - "block": "20ba5dd2-31fb-49c1-96e4-0a4b1cc63de8", - "port": "constant-out" - }, - "target": { - "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", - "port": "65194b18-5d2a-41b2-bd86-01be99978ad6" - } - }, - { - "source": { - "block": "3e14c77c-be98-43cb-aa0d-b1a391a5374e", - "port": "out" - }, - "target": { - "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", - "port": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7" - } - }, - { - "source": { - "block": "0f70b35b-6842-4890-8201-e9a5f2278150", - "port": "out" - }, - "target": { - "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" - }, - "vertices": [ - { - "x": 736, - "y": 632 - } - ] - }, - { - "source": { - "block": "0096caa8-5e84-418c-9f49-61cccdca8cc0", + "block": "4f968b50-2b7d-4192-a522-aade138c8ae1", "port": "out" }, "target": { - "block": "17946732-21fc-48c5-93f3-e9d1ad735480", - "port": "26aba23f-8567-4e9b-bd45-c26724030f33" + "block": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" } }, { "source": { - "block": "3e14c77c-be98-43cb-aa0d-b1a391a5374e", + "block": "90b13235-c3b7-46a1-bdfd-f9d3d6b7ddf5", "port": "out" }, "target": { - "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" - }, - "vertices": [ - { - "x": 880, - "y": 768 - } - ] + "block": "e26aeb27-df86-4761-a854-d13b9e7fd79b", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + } }, { "source": { - "block": "224c436d-92d3-4409-9218-c29ae5e585fb", - "port": "c45dab76-9d0f-4742-9e4d-3048637d245d" + "block": "4889ff2d-1850-4fad-bae9-8c1cc8efcdea", + "port": "out" }, "target": { - "block": "543d92bb-e56e-4aed-a598-1c40b3773841", - "port": "in" + "block": "e26aeb27-df86-4761-a854-d13b9e7fd79b", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" } }, { "source": { - "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", + "block": "40e65064-7137-4959-aa9e-f6111677c062", "port": "out" }, "target": { - "block": "224c436d-92d3-4409-9218-c29ae5e585fb", - "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" + "block": "d56e056d-c720-4463-802b-b5454811164c", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" } }, { "source": { - "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", + "block": "b2c9360e-b412-4621-af8b-a8762be2b072", "port": "out" }, "target": { - "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "block": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", + "port": "4196184b-4a60-493b-bcc6-c95958483683" } }, { "source": { - "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", + "block": "b2c9360e-b412-4621-af8b-a8762be2b072", "port": "out" }, "target": { - "block": "17946732-21fc-48c5-93f3-e9d1ad735480", - "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" + "block": "d56e056d-c720-4463-802b-b5454811164c", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + } + } + ] + } + } + }, + "fc9dacc62ad25cd2832c3442bf277af9b708249b": { + "package": { + "name": "Separador-bus", + "version": "0.1", + "description": "Separador de bus de 2-bits en dos cables", + "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": "f5a71d7b-de20-4527-80c8-0eb20de0dc77", + "type": "basic.output", + "data": { + "name": "o1" }, - "vertices": [ - { - "x": 784, - "y": 296 - } - ] + "position": { + "x": 568, + "y": 144 + } + }, + { + "id": "a409d207-7594-4558-8e15-89712262cf5b", + "type": "basic.input", + "data": { + "name": "i", + "range": "[1:0]", + "clock": false, + "size": 2 + }, + "position": { + "x": 120, + "y": 200 + } + }, + { + "id": "0f7487e5-b070-4277-bba6-acf69934afca", + "type": "basic.output", + "data": { + "name": "o0" + }, + "position": { + "x": 568, + "y": 272 + } }, + { + "id": "16e78204-213e-4833-9096-89d735307ec2", + "type": "basic.code", + "data": { + "code": "assign o1 = i[1];\nassign o0 = i[0];", + "params": [], + "ports": { + "in": [ + { + "name": "i", + "range": "[1:0]", + "size": 2 + } + ], + "out": [ + { + "name": "o1" + }, + { + "name": "o0" + } + ] + } + }, + "position": { + "x": 296, + "y": 176 + }, + "size": { + "width": 192, + "height": 112 + } + } + ], + "wires": [ { "source": { - "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", - "port": "out" + "block": "16e78204-213e-4833-9096-89d735307ec2", + "port": "o1" }, "target": { - "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "block": "f5a71d7b-de20-4527-80c8-0eb20de0dc77", + "port": "in" } }, { "source": { - "block": "17946732-21fc-48c5-93f3-e9d1ad735480", - "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + "block": "16e78204-213e-4833-9096-89d735307ec2", + "port": "o0" }, "target": { - "block": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52", + "block": "0f7487e5-b070-4277-bba6-acf69934afca", "port": "in" + } + }, + { + "source": { + "block": "a409d207-7594-4558-8e15-89712262cf5b", + "port": "out" }, - "vertices": [ - { - "x": 968, - "y": 464 - } - ] + "target": { + "block": "16e78204-213e-4833-9096-89d735307ec2", + "port": "i" + }, + "size": 2 } ] } } }, - "d014cb3dfd6b6e5082638cf2bc2db2c35c5b37a8": { + "56e0da7091190448826e12c0590f60e2927ced42": { "package": { - "name": "Contador-8bits-up-rst", + "name": "Registro-desplazamiento", "version": "0.1", - "description": "Contador módulo M, ascendente, de 8 bits, con reset ", + "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=%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" + "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": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "id": "53ae64df-468f-4f52-b3d9-99da065d5a22", "type": "basic.input", "data": { "name": "", "clock": true }, "position": { - "x": 264, - "y": 176 + "x": 224, + "y": 248 } }, { - "id": "e2091457-8509-494f-96fc-4a2907d9575f", + "id": "21039c06-c932-498c-968d-879a68d66795", "type": "basic.output", "data": { - "name": "", - "range": "[7:0]", - "size": 8 + "name": "" }, "position": { - "x": 800, - "y": 200 + "x": 920, + "y": 264 } }, { - "id": "743b5299-2d89-4783-b7c9-12a5b36df406", + "id": "ed62d7ef-27fb-44ef-99e8-a19bad6342dd", "type": "basic.input", "data": { - "name": "rst", + "name": "", "clock": false }, "position": { - "x": 264, - "y": 280 + "x": 224, + "y": 312 } }, { - "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "id": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", "type": "basic.output", "data": { - "name": "ov" + "name": "q", + "range": "[7:0]", + "size": 8 }, "position": { - "x": 800, + "x": 928, "y": 352 } }, { - "id": "26aba23f-8567-4e9b-bd45-c26724030f33", + "id": "e6088243-1d79-4783-ac0f-528d9700b6df", "type": "basic.input", "data": { - "name": "cnt", + "name": "shift", "clock": false }, "position": { - "x": 264, - "y": 376 + "x": 224, + "y": 368 } }, { - "id": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "id": "5a757228-e2d2-45fb-9241-ebecb5a14315", "type": "basic.constant", "data": { "name": "", - "value": "256", + "value": "0", "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 + "x": 576, + "y": 144 } }, { - "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "id": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", "type": "basic.code", "data": { - "code": "//-- Numero de bits del contador\nlocalparam N = 8; \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 ", + "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": "M" + "name": "INI" } ], "ports": { @@ -6851,92 +6376,93 @@ "name": "clk" }, { - "name": "rst" + "name": "si" }, { - "name": "cnt" + "name": "shift" } ], "out": [ + { + "name": "so" + }, { "name": "q", "range": "[7:0]", "size": 8 - }, - { - "name": "ov" } ] } }, "position": { - "x": 408, - "y": 160 + "x": 384, + "y": 248 }, "size": { - "width": 336, - "height": 296 + "width": 480, + "height": 184 } } ], "wires": [ { "source": { - "block": "743b5299-2d89-4783-b7c9-12a5b36df406", - "port": "out" + "block": "5a757228-e2d2-45fb-9241-ebecb5a14315", + "port": "constant-out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "rst" - } + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "port": "INI" + }, + "vertices": [] }, { "source": { - "block": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", - "port": "constant-out" + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "port": "so" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "M" + "block": "21039c06-c932-498c-968d-879a68d66795", + "port": "in" } }, { "source": { - "block": "26aba23f-8567-4e9b-bd45-c26724030f33", + "block": "ed62d7ef-27fb-44ef-99e8-a19bad6342dd", "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "cnt" + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "port": "si" } }, { "source": { - "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "block": "e6088243-1d79-4783-ac0f-528d9700b6df", "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "clk" + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "port": "shift" } }, { "source": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "ov" + "block": "53ae64df-468f-4f52-b3d9-99da065d5a22", + "port": "out" }, "target": { - "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", - "port": "in" + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "port": "clk" } }, { "source": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", "port": "q" }, "target": { - "block": "e2091457-8509-494f-96fc-4a2907d9575f", + "block": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", "port": "in" }, "size": 8 @@ -6945,660 +6471,1054 @@ } } }, - "5cc6ec961df1a19b78d61422b28169fc0f69384b": { + "42ebf732ed72b2aa979e6858281bfe62c10bec5f": { "package": { - "name": "Mux 2 a 1", - "version": "0.0.1", - "description": "Multiplexor de 2 a 1", - "author": "Juan Gonzalez-Gomez (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" + "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=%22216.379%22%20height=%22279.911%22%20viewBox=%220%200%2057.25032%2074.059853%22%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M41.506%2040.152l13.608%2016.672-6.918-20.534%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%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-width=%221.0924880399999999%22/%3E%3C/g%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%3C/svg%3E" }, "design": { "graph": { "blocks": [ { - "id": "5898179a-7390-429b-ac3c-b7a0df673610", + "id": "3943e194-090b-4553-9df3-88bc4b17abc2", "type": "basic.input", "data": { - "name": "i1", - "clock": false + "name": "", + "clock": true }, "position": { - "x": -704, - "y": -88 + "x": 200, + "y": 96 } }, { - "id": "db089906-4326-4b59-8aa5-ebb61116a4cd", + "id": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", "type": "basic.input", "data": { - "name": "i0", + "name": "d", "clock": false }, "position": { - "x": -704, - "y": 0 + "x": 176, + "y": 184 } }, { - "id": "0ef557c8-5378-43b3-80af-176f129f1a07", + "id": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", "type": "basic.output", "data": { "name": "" }, "position": { - "x": -48, - "y": 0 + "x": 680, + "y": 184 } }, { - "id": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", + "id": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", "type": "basic.input", "data": { - "name": "sel", + "name": "load", "clock": false }, "position": { - "x": -704, - "y": 88 + "x": 176, + "y": 248 } }, { - "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "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": "//-- Multiplexor de 2 a 1, \n//-- de 8 bits\n\nreg _o;\n\nalways @(*) begin\n case(sel)\n 0: _o = i0;\n 1: _o = i1;\n default: _o = i0;\n endcase\nend\n\nassign o = _o;\n", - "params": [], + "code": "reg q = INI;\nalways @(posedge clk)\n if (load)\n q <= d;", + "params": [ + { + "name": "INI" + } + ], "ports": { "in": [ { - "name": "i1" + "name": "clk" }, { - "name": "i0" + "name": "d" }, { - "name": "sel" + "name": "load" } ], "out": [ { - "name": "o" + "name": "q" } ] } }, "position": { - "x": -464, - "y": -104 + "x": 384, + "y": 168 }, "size": { - "width": 304, - "height": 272 + "width": 232, + "height": 88 } } ], "wires": [ { "source": { - "block": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", + "block": "3943e194-090b-4553-9df3-88bc4b17abc2", "port": "out" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "sel" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "clk" } }, { "source": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "o" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "q" }, "target": { - "block": "0ef557c8-5378-43b3-80af-176f129f1a07", + "block": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", "port": "in" } }, { "source": { - "block": "db089906-4326-4b59-8aa5-ebb61116a4cd", + "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": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i0" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "d" } }, { "source": { - "block": "5898179a-7390-429b-ac3c-b7a0df673610", + "block": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", "port": "out" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i1" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "load" } } ] } } }, - "3e4cef8e5d182ddc9806ac0f5a9ee24351737373": { + "c146d4232b872efc8bb891cd29094024e9cc2c54": { "package": { - "name": "i2c-stop", + "name": "i2c-io", "version": "0.1", - "description": "Generar una condición de parada en el bus i2c", - "author": "Juan González-Gómez (Obijuan)", + "description": "Gestion de la entrada/salida en el bus i2c", + "author": "Juan Gonzalez-Gomez (Obijuan)", "image": "" }, "design": { "graph": { "blocks": [ { - "id": "0f4f7955-4539-4804-a906-db4abd29fcac", + "id": "72e82947-787f-49f6-b4a4-7fe8f68e573d", "type": "basic.input", "data": { - "name": "clk", + "name": "", + "clock": true + }, + "position": { + "x": 624, + "y": 160 + } + }, + { + "id": "543d92bb-e56e-4aed-a598-1c40b3773841", + "type": "basic.output", + "data": { + "name": "win" + }, + "position": { + "x": 1464, + "y": 288 + } + }, + { + "id": "0096caa8-5e84-418c-9f49-61cccdca8cc0", + "type": "basic.input", + "data": { + "name": "bitclk", "clock": false }, "position": { - "x": 192, - "y": -8 + "x": 624, + "y": 408 } }, { - "id": "7d9cf16e-b23e-4358-a2fb-baaa07df6deb", + "id": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52", "type": "basic.output", "data": { - "name": "sda" + "name": "b9" }, "position": { "x": 1472, - "y": 304 + "y": 448 + } + }, + { + "id": "0f70b35b-6842-4890-8201-e9a5f2278150", + "type": "basic.input", + "data": { + "name": "rs", + "clock": false + }, + "position": { + "x": 616, + "y": 576 + } + }, + { + "id": "de068252-1546-4d1a-8452-955530fdf5de", + "type": "basic.output", + "data": { + "name": "oe" + }, + "position": { + "x": 1520, + "y": 624 + } + }, + { + "id": "3e14c77c-be98-43cb-aa0d-b1a391a5374e", + "type": "basic.input", + "data": { + "name": "start", + "clock": false + }, + "position": { + "x": 616, + "y": 688 + } + }, + { + "id": "20ba5dd2-31fb-49c1-96e4-0a4b1cc63de8", + "type": "basic.constant", + "data": { + "name": "", + "value": "1", + "local": true + }, + "position": { + "x": 800, + "y": 536 + } + }, + { + "id": "a4e37a91-ed2c-4544-a8a1-88e361e6b85e", + "type": "basic.constant", + "data": { + "name": "", + "value": "9", + "local": true + }, + "position": { + "x": 840, + "y": 264 } }, { - "id": "bcadfb63-1fdf-43bc-9899-675e5f3658cb", - "type": "basic.input", + "id": "38a8060f-f313-449e-9214-25f933b9cd60", + "type": "basic.constant", "data": { - "name": "sda", - "clock": false + "name": "Anchura-bit", + "value": "5", + "local": true }, "position": { - "x": 440, - "y": 320 + "x": 1040, + "y": 280 } }, { - "id": "dbf76d1d-8bfd-4200-b03e-eb455043634d", - "type": "basic.input", - "data": { - "name": "scl", - "clock": false + "id": "17946732-21fc-48c5-93f3-e9d1ad735480", + "type": "d014cb3dfd6b6e5082638cf2bc2db2c35c5b37a8", + "position": { + "x": 840, + "y": 360 }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "224c436d-92d3-4409-9218-c29ae5e585fb", + "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", "position": { - "x": 440, + "x": 1040, "y": 384 + }, + "size": { + "width": 96, + "height": 64 } }, { - "id": "a405ecb1-98ac-4483-8159-6045ca825985", - "type": "basic.output", - "data": { - "name": "scl" - }, + "id": "d40380ec-f9b9-4be8-93ab-bcc30a6aa905", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", "position": { - "x": 1472, - "y": 448 + "x": 1192, + "y": 368 + }, + "size": { + "width": 96, + "height": 64 } }, { - "id": "58c39529-9934-4dc2-af86-ab5efe0bbad1", - "type": "basic.input", - "data": { - "name": "start", - "clock": false - }, + "id": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", + "type": "42ebf732ed72b2aa979e6858281bfe62c10bec5f", "position": { - "x": 440, - "y": 592 + "x": 800, + "y": 640 + }, + "size": { + "width": 96, + "height": 96 } }, { - "id": "18918c51-cad4-4993-b228-985afc99944e", - "type": "basic.output", + "id": "fecc8639-d6d9-4f93-bc5b-109017ef4ea1", + "type": "basic.info", "data": { - "name": "done" + "info": "rs bit \n(receive/send) \n0: receive \n1: send ", + "readonly": true }, "position": { - "x": 1608, - "y": 624 + "x": 816, + "y": 472 + }, + "size": { + "width": 136, + "height": 80 } }, { - "id": "f673b29c-1604-497b-b36d-2f180e7db0ce", - "type": "basic.constant", - "data": { - "name": "T3", - "value": "5", - "local": true + "id": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 1056, + "y": 496 }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", + "type": "5cc6ec961df1a19b78d61422b28169fc0f69384b", "position": { - "x": 664, - "y": 480 + "x": 1352, + "y": 608 + }, + "size": { + "width": 96, + "height": 96 } }, { - "id": "b4ecabd8-4c81-45fa-a288-cdd1053a7103", - "type": "basic.constant", + "id": "9483c808-f5f7-423e-ba81-52d9e12c812b", + "type": "basic.info", "data": { - "name": "T2", - "value": "2", - "local": false + "info": "Receive-send bit", + "readonly": true }, "position": { - "x": 872, - "y": 128 + "x": 616, + "y": 552 + }, + "size": { + "width": 176, + "height": 40 } }, { - "id": "e9bd53c9-72d0-4807-9517-94854161e068", + "id": "c061da2d-fea9-42bb-82f3-9cec484aa116", "type": "basic.info", "data": { - "info": "Generar una condición de Stop en el Bus I2C \nCuando está en reposo, las entradas sda y scl atraviesan el \nbloque sin modificación. Cuando se activa start, comienza la \ngeneración de la condición de parada, y SCL se pone a 1. \nTranscurrido un tiempo T2, SDA se pone a 1 también \nSe señalliza en done que se ha completado", + "info": "ack window \nThis output is 1 only \nwhen the 9th bit is being \nsent", "readonly": true }, "position": { - "x": 656, - "y": -168 + "x": 1392, + "y": 216 }, "size": { - "width": 504, - "height": 104 + "width": 232, + "height": 88 } }, { - "id": "5f981830-9909-48eb-a685-1866414de350", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "id": "dd7847f3-ea23-454b-a234-13b78250d000", + "type": "d30ca9ee4f35f6cb76d5e5701447fc2b739bc640", "position": { - "x": 912, - "y": 576 + "x": 592, + "y": 312 }, "size": { "width": 96, - "height": 96 + "height": 64 } + } + ], + "wires": [ + { + "source": { + "block": "a4e37a91-ed2c-4544-a8a1-88e361e6b85e", + "port": "constant-out" + }, + "target": { + "block": "17946732-21fc-48c5-93f3-e9d1ad735480", + "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" + }, + "vertices": [] + }, + { + "source": { + "block": "38a8060f-f313-449e-9214-25f933b9cd60", + "port": "constant-out" + }, + "target": { + "block": "224c436d-92d3-4409-9218-c29ae5e585fb", + "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" + }, + "vertices": [] + }, + { + "source": { + "block": "17946732-21fc-48c5-93f3-e9d1ad735480", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + }, + "target": { + "block": "224c436d-92d3-4409-9218-c29ae5e585fb", + "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" + }, + "vertices": [] + }, + { + "source": { + "block": "224c436d-92d3-4409-9218-c29ae5e585fb", + "port": "c45dab76-9d0f-4742-9e4d-3048637d245d" + }, + "target": { + "block": "d40380ec-f9b9-4be8-93ab-bcc30a6aa905", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "17946732-21fc-48c5-93f3-e9d1ad735480", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + }, + "target": { + "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + }, + "vertices": [ + { + "x": 992, + "y": 472 + } + ] + }, + { + "source": { + "block": "d40380ec-f9b9-4be8-93ab-bcc30a6aa905", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", + "port": "5898179a-7390-429b-ac3c-b7a0df673610" + }, + "vertices": [] + }, + { + "source": { + "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", + "port": "db089906-4326-4b59-8aa5-ebb61116a4cd" + }, + "vertices": [ + { + "x": 1200, + "y": 584 + } + ] + }, + { + "source": { + "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + }, + "target": { + "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", + "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" + }, + "vertices": [] + }, + { + "source": { + "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" + }, + "target": { + "block": "de068252-1546-4d1a-8452-955530fdf5de", + "port": "in" + }, + "vertices": [] }, { - "id": "1adf02bf-5c06-4fab-99bc-de5acac28e78", - "type": "81613874c6152f06c06ed7014bf4235900cfcc30", - "position": { - "x": 1040, - "y": 448 + "source": { + "block": "20ba5dd2-31fb-49c1-96e4-0a4b1cc63de8", + "port": "constant-out" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", + "port": "65194b18-5d2a-41b2-bd86-01be99978ad6" } }, { - "id": "596d476b-7130-4489-81e7-e94e8fdde5b9", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", - "position": { - "x": 1208, - "y": 224 + "source": { + "block": "3e14c77c-be98-43cb-aa0d-b1a391a5374e", + "port": "out" }, - "size": { - "width": 96, - "height": 96 + "target": { + "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", + "port": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7" } }, { - "id": "151846a8-1a98-4690-b266-d72e69da52b2", - "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", - "position": { - "x": 872, - "y": 224 + "source": { + "block": "0f70b35b-6842-4890-8201-e9a5f2278150", + "port": "out" }, - "size": { - "width": 96, - "height": 64 - } + "target": { + "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + }, + "vertices": [ + { + "x": 736, + "y": 632 + } + ] }, { - "id": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", - "type": "81613874c6152f06c06ed7014bf4235900cfcc30", - "position": { - "x": 1336, - "y": 304 + "source": { + "block": "0096caa8-5e84-418c-9f49-61cccdca8cc0", + "port": "out" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "17946732-21fc-48c5-93f3-e9d1ad735480", + "port": "26aba23f-8567-4e9b-bd45-c26724030f33" } }, { - "id": "2e6b8317-5b98-49ef-8e02-012434195806", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", - "position": { - "x": 1040, - "y": 128 + "source": { + "block": "3e14c77c-be98-43cb-aa0d-b1a391a5374e", + "port": "out" }, - "size": { - "width": 96, - "height": 64 - } + "target": { + "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + }, + "vertices": [ + { + "x": 880, + "y": 768 + } + ] }, { - "id": "9c32849d-8da7-429a-9768-582042551076", - "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", - "position": { - "x": 664, - "y": 576 + "source": { + "block": "224c436d-92d3-4409-9218-c29ae5e585fb", + "port": "c45dab76-9d0f-4742-9e4d-3048637d245d" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "543d92bb-e56e-4aed-a598-1c40b3773841", + "port": "in" } }, { - "id": "8d308b75-de5a-4a05-b8cf-f64d9674ddaf", - "type": "basic.info", - "data": { - "info": "Espera previa al stop", - "readonly": true - }, - "position": { - "x": 672, - "y": 440 + "source": { + "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", + "port": "out" }, - "size": { - "width": 192, - "height": 32 + "target": { + "block": "224c436d-92d3-4409-9218-c29ae5e585fb", + "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" } }, { - "id": "a10c878a-a76e-47e2-87cb-579131d83cfb", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", - "position": { - "x": 440, - "y": 512 + "source": { + "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", + "port": "out" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" } - } - ], - "wires": [ + }, { "source": { - "block": "1adf02bf-5c06-4fab-99bc-de5acac28e78", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", + "port": "out" }, "target": { - "block": "a405ecb1-98ac-4483-8159-6045ca825985", - "port": "in" + "block": "17946732-21fc-48c5-93f3-e9d1ad735480", + "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" }, - "vertices": [] + "vertices": [ + { + "x": 784, + "y": 296 + } + ] }, { "source": { - "block": "5f981830-9909-48eb-a685-1866414de350", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", + "port": "out" }, "target": { - "block": "1adf02bf-5c06-4fab-99bc-de5acac28e78", - "port": "97b51945-d716-4b6c-9db9-970d08541249" - }, - "vertices": [] + "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + } }, { "source": { - "block": "151846a8-1a98-4690-b266-d72e69da52b2", - "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + "block": "17946732-21fc-48c5-93f3-e9d1ad735480", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" }, "target": { - "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + "block": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52", + "port": "in" }, - "vertices": [] + "vertices": [ + { + "x": 968, + "y": 464 + } + ] }, { "source": { - "block": "b4ecabd8-4c81-45fa-a288-cdd1053a7103", - "port": "constant-out" + "block": "dd7847f3-ea23-454b-a234-13b78250d000", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" }, "target": { - "block": "151846a8-1a98-4690-b266-d72e69da52b2", - "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" + "block": "17946732-21fc-48c5-93f3-e9d1ad735480", + "port": "743b5299-2d89-4783-b7c9-12a5b36df406" }, - "vertices": [] + "vertices": [ + { + "x": 744, + "y": 360 + } + ] + } + ] + } + } + }, + "d014cb3dfd6b6e5082638cf2bc2db2c35c5b37a8": { + "package": { + "name": "Contador-8bits-up-rst", + "version": "0.1", + "description": "Contador módulo M, ascendente, de 8 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 + } }, { - "source": { - "block": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "e2091457-8509-494f-96fc-4a2907d9575f", + "type": "basic.output", + "data": { + "name": "", + "range": "[7:0]", + "size": 8 }, - "target": { - "block": "7d9cf16e-b23e-4358-a2fb-baaa07df6deb", - "port": "in" + "position": { + "x": 800, + "y": 200 + } + }, + { + "id": "743b5299-2d89-4783-b7c9-12a5b36df406", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false }, - "vertices": [] + "position": { + "x": 264, + "y": 280 + } + }, + { + "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "type": "basic.output", + "data": { + "name": "ov" + }, + "position": { + "x": 800, + "y": 352 + } }, { - "source": { - "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "id": "26aba23f-8567-4e9b-bd45-c26724030f33", + "type": "basic.input", + "data": { + "name": "cnt", + "clock": false }, - "vertices": [] + "position": { + "x": 264, + "y": 376 + } }, { - "source": { - "block": "2e6b8317-5b98-49ef-8e02-012434195806", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" - }, - "target": { - "block": "18918c51-cad4-4993-b228-985afc99944e", - "port": "in" + "id": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "type": "basic.constant", + "data": { + "name": "", + "value": "256", + "local": false }, - "vertices": [] + "position": { + "x": 528, + "y": 48 + } }, { - "source": { - "block": "151846a8-1a98-4690-b266-d72e69da52b2", - "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + "id": "b35ae5de-a490-4f7b-9200-ac52cd3f333e", + "type": "basic.info", + "data": { + "info": "**Parámetro**: Módulo del contador", + "readonly": true }, - "target": { - "block": "2e6b8317-5b98-49ef-8e02-012434195806", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "position": { + "x": 472, + "y": 32 }, - "vertices": [] + "size": { + "width": 280, + "height": 56 + } }, { - "source": { - "block": "dbf76d1d-8bfd-4200-b03e-eb455043634d", - "port": "out" + "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "type": "basic.code", + "data": { + "code": "//-- Numero de bits del contador\nlocalparam N = 8; \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": "[7:0]", + "size": 8 + }, + { + "name": "ov" + } + ] + } }, - "target": { - "block": "1adf02bf-5c06-4fab-99bc-de5acac28e78", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "position": { + "x": 408, + "y": 160 + }, + "size": { + "width": 336, + "height": 296 } - }, + } + ], + "wires": [ { "source": { - "block": "bcadfb63-1fdf-43bc-9899-675e5f3658cb", + "block": "743b5299-2d89-4783-b7c9-12a5b36df406", "port": "out" }, "target": { - "block": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", - "port": "97b51945-d716-4b6c-9db9-970d08541249" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "rst" } }, { "source": { - "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "block": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "port": "constant-out" }, "target": { - "block": "5f981830-9909-48eb-a685-1866414de350", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" - }, - "vertices": [ - { - "x": 568, - "y": 600 - } - ] + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "M" + } }, { "source": { - "block": "0f4f7955-4539-4804-a906-db4abd29fcac", + "block": "26aba23f-8567-4e9b-bd45-c26724030f33", "port": "out" }, "target": { - "block": "151846a8-1a98-4690-b266-d72e69da52b2", - "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "cnt" } }, { "source": { - "block": "0f4f7955-4539-4804-a906-db4abd29fcac", + "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", "port": "out" }, "target": { - "block": "5f981830-9909-48eb-a685-1866414de350", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "clk" } }, { "source": { - "block": "0f4f7955-4539-4804-a906-db4abd29fcac", - "port": "out" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "ov" }, "target": { - "block": "2e6b8317-5b98-49ef-8e02-012434195806", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "port": "in" } }, { "source": { - "block": "0f4f7955-4539-4804-a906-db4abd29fcac", - "port": "out" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "q" }, "target": { - "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "block": "e2091457-8509-494f-96fc-4a2907d9575f", + "port": "in" + }, + "size": 8 + } + ] + } + } + }, + "5cc6ec961df1a19b78d61422b28169fc0f69384b": { + "package": { + "name": "Mux 2 a 1", + "version": "0.0.1", + "description": "Multiplexor de 2 a 1", + "author": "Juan Gonzalez-Gomez (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" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "5898179a-7390-429b-ac3c-b7a0df673610", + "type": "basic.input", + "data": { + "name": "i1", + "clock": false + }, + "position": { + "x": -704, + "y": -88 } }, { - "source": { - "block": "f673b29c-1604-497b-b36d-2f180e7db0ce", - "port": "constant-out" - }, - "target": { - "block": "9c32849d-8da7-429a-9768-582042551076", - "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" + "id": "db089906-4326-4b59-8aa5-ebb61116a4cd", + "type": "basic.input", + "data": { + "name": "i0", + "clock": false }, - "vertices": [] + "position": { + "x": -704, + "y": 0 + } }, { - "source": { - "block": "58c39529-9934-4dc2-af86-ab5efe0bbad1", - "port": "out" + "id": "0ef557c8-5378-43b3-80af-176f129f1a07", + "type": "basic.output", + "data": { + "name": "" }, - "target": { - "block": "9c32849d-8da7-429a-9768-582042551076", - "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" + "position": { + "x": -48, + "y": 0 } }, { - "source": { - "block": "9c32849d-8da7-429a-9768-582042551076", - "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + "id": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", + "type": "basic.input", + "data": { + "name": "sel", + "clock": false }, - "target": { - "block": "5f981830-9909-48eb-a685-1866414de350", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + "position": { + "x": -704, + "y": 88 } }, { - "source": { - "block": "9c32849d-8da7-429a-9768-582042551076", - "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "type": "basic.code", + "data": { + "code": "//-- Multiplexor de 2 a 1, \n//-- de 8 bits\n\nreg _o;\n\nalways @(*) begin\n case(sel)\n 0: _o = i0;\n 1: _o = i1;\n default: _o = i0;\n endcase\nend\n\nassign o = _o;\n", + "params": [], + "ports": { + "in": [ + { + "name": "i1" + }, + { + "name": "i0" + }, + { + "name": "sel" + } + ], + "out": [ + { + "name": "o" + } + ] + } + }, + "position": { + "x": -464, + "y": -104 }, - "target": { - "block": "151846a8-1a98-4690-b266-d72e69da52b2", - "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" + "size": { + "width": 304, + "height": 272 } - }, + } + ], + "wires": [ { "source": { - "block": "0f4f7955-4539-4804-a906-db4abd29fcac", + "block": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", "port": "out" }, "target": { - "block": "9c32849d-8da7-429a-9768-582042551076", - "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "sel" } }, { "source": { - "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "o" }, "target": { - "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" - }, - "vertices": [ - { - "x": 608, - "y": 376 - } - ] + "block": "0ef557c8-5378-43b3-80af-176f129f1a07", + "port": "in" + } }, { "source": { - "block": "2e6b8317-5b98-49ef-8e02-012434195806", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "block": "db089906-4326-4b59-8aa5-ebb61116a4cd", + "port": "out" }, "target": { - "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" - }, - "vertices": [ - { - "x": 1168, - "y": 712 - } - ] + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i0" + } }, { "source": { - "block": "0f4f7955-4539-4804-a906-db4abd29fcac", + "block": "5898179a-7390-429b-ac3c-b7a0df673610", "port": "out" }, "target": { - "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i1" } } ] } } }, - "725b7e2cb9666b5ed3183537d9c898f096dab82a": { + "d30ca9ee4f35f6cb76d5e5701447fc2b739bc640": { "package": { - "name": "1", - "version": "0.1", - "description": "Un bit constante a 1", + "name": "bit-0", + "version": "0.2", + "description": "Constant bit 0", "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" + "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": { @@ -7610,15 +7530,15 @@ "name": "" }, "position": { - "x": 512, - "y": 160 + "x": 456, + "y": 120 } }, { "id": "61331ec5-2c56-4cdd-b607-e63b1502fa65", "type": "basic.code", "data": { - "code": "//-- Bit constante a 1\nassign q = 1'b1;\n\n", + "code": "//-- Constant bit-0\nassign q = 1'b0;\n\n", "params": [], "ports": { "in": [], @@ -7634,8 +7554,8 @@ "y": 112 }, "size": { - "width": 256, - "height": 160 + "width": 248, + "height": 80 } } ], @@ -7654,11 +7574,11 @@ } } }, - "f1c84b11f2df5ee213cec33e6f9af2d0c66e6924": { + "3e4cef8e5d182ddc9806ac0f5a9ee24351737373": { "package": { - "name": "i2c-data", + "name": "i2c-stop", "version": "0.1", - "description": "Inyectar un byte en el bus i2c", + "description": "Generar una condición de parada en el bus i2c", "author": "Juan González-Gómez (Obijuan)", "image": "" }, @@ -7666,220 +7586,146 @@ "graph": { "blocks": [ { - "id": "7861c061-e90b-46bb-a639-6399f55f7f11", + "id": "0f4f7955-4539-4804-a906-db4abd29fcac", "type": "basic.input", "data": { - "name": "", - "clock": true + "name": "clk", + "clock": false }, "position": { - "x": 800, - "y": 320 + "x": 192, + "y": -8 } }, { - "id": "20e1709f-bff4-4373-a485-5af7052a37d7", + "id": "7d9cf16e-b23e-4358-a2fb-baaa07df6deb", "type": "basic.output", "data": { "name": "sda" }, "position": { - "x": 1760, - "y": 648 + "x": 1472, + "y": 304 } }, { - "id": "748fced1-f2be-412a-87de-a0d8276e6a06", + "id": "bcadfb63-1fdf-43bc-9899-675e5f3658cb", "type": "basic.input", "data": { "name": "sda", "clock": false }, "position": { - "x": 552, - "y": 664 + "x": 440, + "y": 320 } }, { - "id": "63a0f19e-1e7c-4e61-b89a-f6fc4eb74afb", + "id": "dbf76d1d-8bfd-4200-b03e-eb455043634d", "type": "basic.input", "data": { "name": "scl", "clock": false }, "position": { - "x": 568, - "y": 744 + "x": 440, + "y": 384 } }, { - "id": "9290b4c2-5520-4b99-97d3-a140a411a149", + "id": "a405ecb1-98ac-4483-8159-6045ca825985", "type": "basic.output", "data": { "name": "scl" }, "position": { - "x": 1760, - "y": 760 - } - }, - { - "id": "ed0e5489-e9b1-4b92-bcfb-22f3737d1c93", - "type": "basic.input", - "data": { - "name": "data", - "range": "[7:0]", - "clock": false, - "size": 8 - }, - "position": { - "x": 576, - "y": 840 - } - }, - { - "id": "b987c71e-d76f-43eb-8371-a2aa09d98d15", - "type": "basic.output", - "data": { - "name": "bitclk" - }, - "position": { - "x": 1760, - "y": 880 + "x": 1472, + "y": 448 } }, { - "id": "cdf85427-0efe-4adb-b48d-dab3daccacce", + "id": "58c39529-9934-4dc2-af86-ab5efe0bbad1", "type": "basic.input", "data": { "name": "start", "clock": false }, "position": { - "x": 560, - "y": 1008 - } - }, - { - "id": "1d8c0dd2-96bc-462a-8a33-05472851522d", - "type": "basic.output", - "data": { - "name": "io_start" - }, - "position": { - "x": 1800, - "y": 1080 + "x": 440, + "y": 592 } }, { - "id": "412c6872-b61e-4af8-8ece-577a8adb185c", + "id": "18918c51-cad4-4993-b228-985afc99944e", "type": "basic.output", "data": { "name": "done" }, "position": { - "x": 1784, - "y": 1176 - } - }, - { - "id": "9873b349-7163-44e3-9df0-a07acbfd5246", - "type": "basic.constant", - "data": { - "name": "T_tics", - "value": "121", - "local": false - }, - "position": { - "x": 960, - "y": 816 + "x": 1608, + "y": 624 } }, { - "id": "6f699db9-abd0-4949-a539-cfeda25e33bb", + "id": "f673b29c-1604-497b-b36d-2f180e7db0ce", "type": "basic.constant", "data": { - "name": "", - "value": "9", + "name": "T3", + "value": "5", "local": true }, "position": { - "x": 1064, - "y": 800 + "x": 664, + "y": 480 } }, { - "id": "0f091ac3-4f1e-4e21-bc52-01c9a5ca5f5f", + "id": "b4ecabd8-4c81-45fa-a288-cdd1053a7103", "type": "basic.constant", "data": { - "name": "Desfase", + "name": "T2", "value": "2", - "local": true - }, - "position": { - "x": 1256, - "y": 840 - } - }, - { - "id": "41219c53-959c-4775-a2b7-db9651d3ed72", - "type": "basic.constant", - "data": { - "name": "Anchura-bit", - "value": "5", - "local": true + "local": false }, "position": { - "x": 1432, - "y": 832 - } - }, - { - "id": "4cded02d-9798-4ac7-85b2-88f9ca82752a", - "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", - "position": { - "x": 1432, - "y": 952 - }, - "size": { - "width": 96, - "height": 64 + "x": 872, + "y": 128 } }, { - "id": "a917add8-1ea1-42af-8b62-6f2d1992bce8", + "id": "e9bd53c9-72d0-4807-9517-94854161e068", "type": "basic.info", "data": { - "info": "121 tics son 10us", + "info": "Generar una condición de Stop en el Bus I2C \nCuando está en reposo, las entradas sda y scl atraviesan el \nbloque sin modificación. Cuando se activa start, comienza la \ngeneración de la condición de parada, y SCL se pone a 1. \nTranscurrido un tiempo T2, SDA se pone a 1 también \nSe señalliza en done que se ha completado", "readonly": true }, "position": { - "x": 936, - "y": 784 + "x": 656, + "y": -168 }, "size": { - "width": 168, - "height": 40 + "width": 504, + "height": 104 } }, { - "id": "73336d4a-efcf-49a6-860f-eca956b28ec6", - "type": "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542", + "id": "5f981830-9909-48eb-a685-1866414de350", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", "position": { - "x": 936, - "y": 480 + "x": 912, + "y": 576 }, "size": { "width": 96, - "height": 64 + "height": 96 } }, { - "id": "896d8abc-4f3f-49d5-8bb3-d155a702b357", - "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", + "id": "1adf02bf-5c06-4fab-99bc-de5acac28e78", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", "position": { - "x": 1256, - "y": 936 + "x": 1040, + "y": 448 }, "size": { "width": 96, @@ -7887,23 +7733,23 @@ } }, { - "id": "8395e674-0340-4dc6-9e01-751771607b4d", - "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "id": "596d476b-7130-4489-81e7-e94e8fdde5b9", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", "position": { - "x": 1568, - "y": 760 + "x": 1208, + "y": 224 }, "size": { "width": 96, - "height": 64 + "height": 96 } }, { - "id": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", - "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "id": "151846a8-1a98-4690-b266-d72e69da52b2", + "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", "position": { - "x": 1568, - "y": 648 + "x": 872, + "y": 224 }, "size": { "width": 96, @@ -7911,23 +7757,23 @@ } }, { - "id": "7d4113a9-19b2-4434-8002-7f671360852b", - "type": "086d7dc26b794983217c4161c26b85dc62375d9d", + "id": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", "position": { - "x": 984, - "y": 968 + "x": 1336, + "y": 304 }, "size": { "width": 96, - "height": 96 + "height": 64 } }, { - "id": "f3da83aa-48cf-4e21-8e2f-60e045183b92", - "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "id": "2e6b8317-5b98-49ef-8e02-012434195806", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", "position": { - "x": 1168, - "y": 1016 + "x": 1040, + "y": 128 }, "size": { "width": 96, @@ -7935,11 +7781,11 @@ } }, { - "id": "8849d683-2013-4619-9116-4adde501529e", - "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "id": "9c32849d-8da7-429a-9768-582042551076", + "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", "position": { - "x": 1656, - "y": 944 + "x": 664, + "y": 576 }, "size": { "width": 96, @@ -7947,441 +7793,303 @@ } }, { - "id": "cf48b06f-8921-4666-afba-ccc17b535b28", + "id": "8d308b75-de5a-4a05-b8cf-f64d9674ddaf", "type": "basic.info", "data": { - "info": "Arrancar el módulo \nde gestión del pin io", + "info": "Espera previa al stop", "readonly": true }, "position": { - "x": 1784, - "y": 1024 - }, - "size": { - "width": 200, - "height": 56 - } - }, - { - "id": "44073844-b550-4911-affe-bdadca704a6f", - "type": "45f630ea95c6847db8df0598c312ef9acfa981a3", - "position": { - "x": 1432, - "y": 456 + "x": 672, + "y": 440 }, "size": { - "width": 96, - "height": 128 + "width": 192, + "height": 32 } }, { - "id": "1e424507-5096-47f9-8437-b35c1c3b343d", - "type": "53847c98bfef0fe28fbef1f4f65042911f361c44", + "id": "a10c878a-a76e-47e2-87cb-579131d83cfb", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", "position": { - "x": 1208, - "y": 480 + "x": 440, + "y": 512 }, "size": { "width": 96, - "height": 160 + "height": 64 } } ], "wires": [ { "source": { - "block": "6f699db9-abd0-4949-a539-cfeda25e33bb", - "port": "constant-out" - }, - "target": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "1caece2e-e3d8-4102-af87-572c05b24e16" - }, - "vertices": [] - }, - { - "source": { - "block": "9873b349-7163-44e3-9df0-a07acbfd5246", - "port": "constant-out" - }, - "target": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "96ad1612-7936-4672-b660-9285d183f749" - }, - "vertices": [] - }, - { - "source": { - "block": "41219c53-959c-4775-a2b7-db9651d3ed72", - "port": "constant-out" + "block": "1adf02bf-5c06-4fab-99bc-de5acac28e78", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", - "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" + "block": "a405ecb1-98ac-4483-8159-6045ca825985", + "port": "in" }, "vertices": [] }, { "source": { - "block": "1e424507-5096-47f9-8437-b35c1c3b343d", - "port": "21039c06-c932-498c-968d-879a68d66795" + "block": "5f981830-9909-48eb-a685-1866414de350", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "44073844-b550-4911-affe-bdadca704a6f", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "block": "1adf02bf-5c06-4fab-99bc-de5acac28e78", + "port": "97b51945-d716-4b6c-9db9-970d08541249" }, "vertices": [] }, { "source": { - "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "block": "151846a8-1a98-4690-b266-d72e69da52b2", "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, "target": { - "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", - "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" + "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" }, "vertices": [] }, { "source": { - "block": "0f091ac3-4f1e-4e21-bc52-01c9a5ca5f5f", + "block": "b4ecabd8-4c81-45fa-a288-cdd1053a7103", "port": "constant-out" }, "target": { - "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "block": "151846a8-1a98-4690-b266-d72e69da52b2", "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" }, "vertices": [] }, { "source": { - "block": "8395e674-0340-4dc6-9e01-751771607b4d", + "block": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "9290b4c2-5520-4b99-97d3-a140a411a149", + "block": "7d9cf16e-b23e-4358-a2fb-baaa07df6deb", "port": "in" }, "vertices": [] }, { "source": { - "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", - "port": "c45dab76-9d0f-4742-9e4d-3048637d245d" - }, - "target": { - "block": "8395e674-0340-4dc6-9e01-751771607b4d", - "port": "97b51945-d716-4b6c-9db9-970d08541249" - }, - "vertices": [] - }, - { - "source": { - "block": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "20e1709f-bff4-4373-a485-5af7052a37d7", - "port": "in" + "block": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, "vertices": [] }, { "source": { - "block": "44073844-b550-4911-affe-bdadca704a6f", + "block": "2e6b8317-5b98-49ef-8e02-012434195806", "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "block": "18918c51-cad4-4993-b228-985afc99944e", + "port": "in" }, "vertices": [] }, { "source": { - "block": "748fced1-f2be-412a-87de-a0d8276e6a06", - "port": "out" + "block": "151846a8-1a98-4690-b266-d72e69da52b2", + "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, "target": { - "block": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", - "port": "97b51945-d716-4b6c-9db9-970d08541249" + "block": "2e6b8317-5b98-49ef-8e02-012434195806", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" }, "vertices": [] }, { "source": { - "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", - "port": "out" - }, - "target": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "bcfe1e9b-4bb8-43c2-bbea-d82aeb7dce9d" - } - }, - { - "source": { - "block": "63a0f19e-1e7c-4e61-b89a-f6fc4eb74afb", + "block": "dbf76d1d-8bfd-4200-b03e-eb455043634d", "port": "out" }, "target": { - "block": "8395e674-0340-4dc6-9e01-751771607b4d", + "block": "1adf02bf-5c06-4fab-99bc-de5acac28e78", "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" } }, { "source": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a" - }, - "target": { - "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", - "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" - } - }, - { - "source": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a" + "block": "bcadfb63-1fdf-43bc-9899-675e5f3658cb", + "port": "out" }, "target": { - "block": "1e424507-5096-47f9-8437-b35c1c3b343d", - "port": "ec65c3cd-0951-4d74-bbfc-c37f87a78e66" + "block": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", + "port": "97b51945-d716-4b6c-9db9-970d08541249" } }, { "source": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a" + "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "44073844-b550-4911-affe-bdadca704a6f", - "port": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7" + "block": "5f981830-9909-48eb-a685-1866414de350", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" }, "vertices": [ { - "x": 1192, - "y": 720 + "x": 568, + "y": 600 } ] }, { "source": { - "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "block": "0f4f7955-4539-4804-a906-db4abd29fcac", "port": "out" }, "target": { - "block": "1e424507-5096-47f9-8437-b35c1c3b343d", - "port": "a265c13d-af7a-437b-97ae-424872381a93" + "block": "151846a8-1a98-4690-b266-d72e69da52b2", + "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" } }, { "source": { - "block": "7861c061-e90b-46bb-a639-6399f55f7f11", - "port": "out" - }, - "target": { - "block": "44073844-b550-4911-affe-bdadca704a6f", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" - }, - "vertices": [ - { - "x": 1392, - "y": 432 - } - ] - }, - { - "source": { - "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "block": "0f4f7955-4539-4804-a906-db4abd29fcac", "port": "out" }, "target": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "2d69e282-542b-48cc-b0ec-dd419e06f97e" - }, - "vertices": [ - { - "x": 920, - "y": 728 - } - ] + "block": "5f981830-9909-48eb-a685-1866414de350", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + } }, { "source": { - "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "block": "0f4f7955-4539-4804-a906-db4abd29fcac", "port": "out" }, "target": { - "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", - "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" - }, - "vertices": [ - { - "x": 920, - "y": 912 - } - ] + "block": "2e6b8317-5b98-49ef-8e02-012434195806", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + } }, { "source": { - "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "block": "0f4f7955-4539-4804-a906-db4abd29fcac", "port": "out" }, "target": { - "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", - "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" - }, - "vertices": [ - { - "x": 1392, - "y": 752 - } - ] + "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + } }, { "source": { - "block": "f3da83aa-48cf-4e21-8e2f-60e045183b92", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "block": "f673b29c-1604-497b-b36d-2f180e7db0ce", + "port": "constant-out" }, "target": { - "block": "8849d683-2013-4619-9116-4adde501529e", - "port": "97b51945-d716-4b6c-9db9-970d08541249" + "block": "9c32849d-8da7-429a-9768-582042551076", + "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" }, "vertices": [] }, { "source": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "c554ffa6-9397-4270-96af-6d4ff9abfc16" + "block": "58c39529-9934-4dc2-af86-ab5efe0bbad1", + "port": "out" }, "target": { - "block": "f3da83aa-48cf-4e21-8e2f-60e045183b92", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "block": "9c32849d-8da7-429a-9768-582042551076", + "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" } }, { "source": { - "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", + "block": "9c32849d-8da7-429a-9768-582042551076", "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, "target": { - "block": "8849d683-2013-4619-9116-4adde501529e", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" - }, - "vertices": [ - { - "x": 1592, - "y": 960 - } - ] - }, - { - "source": { - "block": "8849d683-2013-4619-9116-4adde501529e", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "412c6872-b61e-4af8-8ece-577a8adb185c", - "port": "in" + "block": "5f981830-9909-48eb-a685-1866414de350", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" } }, { "source": { - "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "block": "9c32849d-8da7-429a-9768-582042551076", "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, "target": { - "block": "b987c71e-d76f-43eb-8371-a2aa09d98d15", - "port": "in" - }, - "vertices": [ - { - "x": 1400, - "y": 936 - } - ] + "block": "151846a8-1a98-4690-b266-d72e69da52b2", + "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" + } }, { "source": { - "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", + "block": "0f4f7955-4539-4804-a906-db4abd29fcac", "port": "out" }, "target": { - "block": "1d8c0dd2-96bc-462a-8a33-05472851522d", - "port": "in" + "block": "9c32849d-8da7-429a-9768-582042551076", + "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" } }, { "source": { - "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", - "port": "out" + "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "44073844-b550-4911-affe-bdadca704a6f", - "port": "755eb5f6-70bb-4449-adb7-196ead041df1" + "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" }, "vertices": [ { - "x": 744, - "y": 520 + "x": 608, + "y": 376 } ] }, { "source": { - "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", - "port": "out" + "block": "2e6b8317-5b98-49ef-8e02-012434195806", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "1e424507-5096-47f9-8437-b35c1c3b343d", - "port": "b916c09a-8848-4500-a1a0-0cc09e8f23c1" + "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" }, "vertices": [ { - "x": 848, - "y": 688 + "x": 1168, + "y": 712 } ] }, { "source": { - "block": "73336d4a-efcf-49a6-860f-eca956b28ec6", - "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" - }, - "target": { - "block": "1e424507-5096-47f9-8437-b35c1c3b343d", - "port": "02007399-7499-4b76-ad4f-91094344d055" - } - }, - { - "source": { - "block": "ed0e5489-e9b1-4b92-bcfb-22f3737d1c93", + "block": "0f4f7955-4539-4804-a906-db4abd29fcac", "port": "out" }, "target": { - "block": "1e424507-5096-47f9-8437-b35c1c3b343d", - "port": "05394100-6c4a-4bd5-b479-739c16ede30c" - }, - "vertices": [ - { - "x": 792, - "y": 640 - } - ], - "size": 8 + "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + } } ] } } }, - "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542": { + "725b7e2cb9666b5ed3183537d9c898f096dab82a": { "package": { - "name": "0", + "name": "1", "version": "0.1", - "description": "Un bit constante a 0", + "description": "Un bit constante a 1", "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" + "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": { @@ -8401,7 +8109,7 @@ "id": "61331ec5-2c56-4cdd-b607-e63b1502fa65", "type": "basic.code", "data": { - "code": "//-- Bit constante a 0\nassign q = 1'b0;\n\n", + "code": "//-- Bit constante a 1\nassign q = 1'b1;\n\n", "params": [], "ports": { "in": [], @@ -8437,118 +8145,256 @@ } } }, - "086d7dc26b794983217c4161c26b85dc62375d9d": { + "f1c84b11f2df5ee213cec33e6f9af2d0c66e6924": { "package": { - "name": "Heart-tics", + "name": "i2c-data", "version": "0.1", - "description": "Corazón finito de tics. Emitir num tics cuando se recibe un tic de start", - "author": "Juan Gonzalez-Gomez (obijuan)", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22227.691%22%20height=%22159.585%22%20viewBox=%220%200%2060.243259%2042.223434%22%3E%3Cpath%20d=%22M30.137%2040.073c-.726-1.25-1.853-2.474-3.987-4.332-1.156-1.006-1.859-1.565-5.863-4.658-3.138-2.425-4.704-3.77-6.519-5.602-1.813-1.83-2.879-3.289-3.793-5.19a15.321%2015.321%200%200%201-1.236-3.6c-.316-1.545-.36-2.068-.358-4.342.002-2.984.1-3.48%201.08-5.47.729-1.479%201.282-2.257%202.433-3.427%201.119-1.135%201.845-1.65%203.415-2.427C17.053.162%2018.315-.065%2020.914.02c2.02.065%202.759.266%204.36%201.187%202.52%201.45%204.476%203.778%205.017%205.973.088.358.18.652.203.652.023%200%20.227-.42.453-.933.77-1.743%201.485-2.808%202.62-3.902%203.477-3.353%208.96-3.959%2013.392-1.482C48.769%202.527%2050.242%204%2051.383%205.94c.898%201.527%201.358%203.555%201.436%206.34.114%204.035-.624%206.832-2.589%209.811-.78%201.183-1.356%201.9-2.438%203.029-1.744%201.822-3.318%203.162-7.033%205.987-2.344%201.783-3.733%202.93-5.744%204.742-1.612%201.451-4.109%203.979-4.35%204.401-.104.185-.2.336-.21.336-.012%200-.154-.23-.318-.512z%22%20fill=%22red%22/%3E%3Ctext%20y=%2263.446%22%20x=%2264.25%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-42.66%20-45.386)%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=%2263.446%22%20x=%2264.25%22%20font-weight=%22700%22%20font-size=%228.695%22%3Etics%3C/tspan%3E%3C/text%3E%3Cg%20transform=%22matrix(.79321%200%200%20.79321%20-31.345%20-28.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%3Cg%20transform=%22matrix(.79321%200%200%20.79321%20-68.009%20-28.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%3Ctext%20y=%2258.351%22%20x=%2280.998%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%2222.577%22%20letter-spacing=%220%22%20word-spacing=%220%22%20transform=%22matrix(.99853%200%200%201.00147%20-42.66%20-45.386)%22%20font-family=%22sans-serif%22%20fill=%22#00f%22%20stroke-width=%22.419%22%3E%3Ctspan%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2258.351%22%20x=%2280.998%22%20font-weight=%22700%22%20font-size=%2212.901%22%3E#%3C/tspan%3E%3C/text%3E%3C/svg%3E" + "description": "Inyectar un byte en el bus i2c", + "author": "Juan González-Gómez (Obijuan)", + "image": "" }, "design": { "graph": { "blocks": [ { - "id": "2d69e282-542b-48cc-b0ec-dd419e06f97e", + "id": "7861c061-e90b-46bb-a639-6399f55f7f11", "type": "basic.input", "data": { "name": "", "clock": true }, "position": { - "x": 520, - "y": 456 + "x": 800, + "y": 320 } }, { - "id": "bcfe1e9b-4bb8-43c2-bbea-d82aeb7dce9d", + "id": "20e1709f-bff4-4373-a485-5af7052a37d7", + "type": "basic.output", + "data": { + "name": "sda" + }, + "position": { + "x": 1760, + "y": 648 + } + }, + { + "id": "748fced1-f2be-412a-87de-a0d8276e6a06", + "type": "basic.input", + "data": { + "name": "sda", + "clock": false + }, + "position": { + "x": 552, + "y": 664 + } + }, + { + "id": "63a0f19e-1e7c-4e61-b89a-f6fc4eb74afb", + "type": "basic.input", + "data": { + "name": "scl", + "clock": false + }, + "position": { + "x": 568, + "y": 744 + } + }, + { + "id": "9290b4c2-5520-4b99-97d3-a140a411a149", + "type": "basic.output", + "data": { + "name": "scl" + }, + "position": { + "x": 1760, + "y": 760 + } + }, + { + "id": "ed0e5489-e9b1-4b92-bcfb-22f3737d1c93", + "type": "basic.input", + "data": { + "name": "data", + "range": "[7:0]", + "clock": false, + "size": 8 + }, + "position": { + "x": 576, + "y": 840 + } + }, + { + "id": "b987c71e-d76f-43eb-8371-a2aa09d98d15", + "type": "basic.output", + "data": { + "name": "bitclk" + }, + "position": { + "x": 1760, + "y": 880 + } + }, + { + "id": "cdf85427-0efe-4adb-b48d-dab3daccacce", "type": "basic.input", "data": { - "name": "start", - "clock": false + "name": "start", + "clock": false + }, + "position": { + "x": 560, + "y": 1008 + } + }, + { + "id": "1d8c0dd2-96bc-462a-8a33-05472851522d", + "type": "basic.output", + "data": { + "name": "io_start" + }, + "position": { + "x": 1800, + "y": 1080 + } + }, + { + "id": "412c6872-b61e-4af8-8ece-577a8adb185c", + "type": "basic.output", + "data": { + "name": "done" + }, + "position": { + "x": 1784, + "y": 1176 + } + }, + { + "id": "9873b349-7163-44e3-9df0-a07acbfd5246", + "type": "basic.constant", + "data": { + "name": "T_tics", + "value": "121", + "local": false + }, + "position": { + "x": 960, + "y": 816 + } + }, + { + "id": "6f699db9-abd0-4949-a539-cfeda25e33bb", + "type": "basic.constant", + "data": { + "name": "", + "value": "9", + "local": true }, "position": { - "x": 520, - "y": 536 + "x": 1064, + "y": 800 } }, { - "id": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a", - "type": "basic.output", + "id": "0f091ac3-4f1e-4e21-bc52-01c9a5ca5f5f", + "type": "basic.constant", "data": { - "name": "out" + "name": "Desfase", + "value": "2", + "local": true }, "position": { - "x": 1352, - "y": 560 + "x": 1256, + "y": 840 } }, { - "id": "c554ffa6-9397-4270-96af-6d4ff9abfc16", - "type": "basic.output", + "id": "41219c53-959c-4775-a2b7-db9651d3ed72", + "type": "basic.constant", "data": { - "name": "busy" + "name": "Anchura-bit", + "value": "5", + "local": true }, "position": { - "x": 872, - "y": 672 + "x": 1432, + "y": 832 } }, { - "id": "7cfc535a-b3a4-4bf7-8f94-8759e822e67e", - "type": "basic.output", - "data": { - "name": "end" - }, + "id": "4cded02d-9798-4ac7-85b2-88f9ca82752a", + "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", "position": { - "x": 1352, - "y": 752 + "x": 1432, + "y": 952 + }, + "size": { + "width": 96, + "height": 64 } }, { - "id": "96ad1612-7936-4672-b660-9285d183f749", - "type": "basic.constant", + "id": "a917add8-1ea1-42af-8b62-6f2d1992bce8", + "type": "basic.info", "data": { - "name": "Tics", - "value": "15", - "local": false + "info": "121 tics son 10us", + "readonly": true }, "position": { - "x": 952, - "y": 376 + "x": 936, + "y": 784 + }, + "size": { + "width": 168, + "height": 40 } }, { - "id": "1caece2e-e3d8-4102-af87-572c05b24e16", - "type": "basic.constant", - "data": { - "name": "Num", - "value": "24", - "local": false + "id": "73336d4a-efcf-49a6-860f-eca956b28ec6", + "type": "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542", + "position": { + "x": 936, + "y": 480 }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", "position": { - "x": 1152, - "y": 376 + "x": 1256, + "y": 936 + }, + "size": { + "width": 96, + "height": 64 } }, { - "id": "f6388518-4c42-4573-8f49-63d43d444669", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "id": "8395e674-0340-4dc6-9e01-751771607b4d", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", "position": { - "x": 720, - "y": 520 + "x": 1568, + "y": 760 }, "size": { "width": 96, - "height": 96 + "height": 64 } }, { - "id": "eab6a459-411c-406b-9185-872a44f305e5", - "type": "d585a59868290d4af219e92f887128dc4b7c8a51", + "id": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", "position": { - "x": 952, - "y": 520 + "x": 1568, + "y": 648 }, "size": { "width": 96, @@ -8556,11 +8402,11 @@ } }, { - "id": "a05b1ecb-b766-482a-9f49-bd698cec989f", - "type": "d0fde25a657f5921d86a889c7f69e379c4d8e91e", + "id": "7d4113a9-19b2-4434-8002-7f671360852b", + "type": "086d7dc26b794983217c4161c26b85dc62375d9d", "position": { - "x": 1152, - "y": 472 + "x": 984, + "y": 968 }, "size": { "width": 96, @@ -8568,861 +8414,909 @@ } }, { - "id": "cd007087-7c8b-49b1-a5ba-b02fdd440737", + "id": "f3da83aa-48cf-4e21-8e2f-60e045183b92", "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", "position": { - "x": 944, - "y": 600 + "x": 1168, + "y": 1016 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "8849d683-2013-4619-9116-4adde501529e", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 1656, + "y": 944 }, "size": { "width": 96, "height": 64 } + }, + { + "id": "cf48b06f-8921-4666-afba-ccc17b535b28", + "type": "basic.info", + "data": { + "info": "Arrancar el módulo \nde gestión del pin io", + "readonly": true + }, + "position": { + "x": 1784, + "y": 1024 + }, + "size": { + "width": 200, + "height": 56 + } + }, + { + "id": "44073844-b550-4911-affe-bdadca704a6f", + "type": "45f630ea95c6847db8df0598c312ef9acfa981a3", + "position": { + "x": 1432, + "y": 456 + }, + "size": { + "width": 96, + "height": 128 + } + }, + { + "id": "1e424507-5096-47f9-8437-b35c1c3b343d", + "type": "53847c98bfef0fe28fbef1f4f65042911f361c44", + "position": { + "x": 1208, + "y": 480 + }, + "size": { + "width": 96, + "height": 160 + } } ], "wires": [ { "source": { - "block": "f6388518-4c42-4573-8f49-63d43d444669", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "6f699db9-abd0-4949-a539-cfeda25e33bb", + "port": "constant-out" }, "target": { - "block": "eab6a459-411c-406b-9185-872a44f305e5", - "port": "2e992b62-97db-4d64-9620-3fe3310a9a5f" + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "1caece2e-e3d8-4102-af87-572c05b24e16" }, "vertices": [] }, { "source": { - "block": "96ad1612-7936-4672-b660-9285d183f749", + "block": "9873b349-7163-44e3-9df0-a07acbfd5246", "port": "constant-out" }, "target": { - "block": "eab6a459-411c-406b-9185-872a44f305e5", - "port": "136e8d6d-892a-4f14-8d6d-0c5bc6c3e844" + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "96ad1612-7936-4672-b660-9285d183f749" }, "vertices": [] }, { "source": { - "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", - "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + "block": "41219c53-959c-4775-a2b7-db9651d3ed72", + "port": "constant-out" }, "target": { - "block": "f6388518-4c42-4573-8f49-63d43d444669", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", + "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" }, - "vertices": [ - { - "x": 680, - "y": 760 - } - ] + "vertices": [] }, { "source": { - "block": "eab6a459-411c-406b-9185-872a44f305e5", - "port": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c" + "block": "1e424507-5096-47f9-8437-b35c1c3b343d", + "port": "21039c06-c932-498c-968d-879a68d66795" }, "target": { - "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", - "port": "26aba23f-8567-4e9b-bd45-c26724030f33" + "block": "44073844-b550-4911-affe-bdadca704a6f", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" }, "vertices": [] }, { "source": { - "block": "cd007087-7c8b-49b1-a5ba-b02fdd440737", + "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + }, + "target": { + "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", + "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" + }, + "vertices": [] + }, + { + "source": { + "block": "0f091ac3-4f1e-4e21-bc52-01c9a5ca5f5f", + "port": "constant-out" + }, + "target": { + "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" + }, + "vertices": [] + }, + { + "source": { + "block": "8395e674-0340-4dc6-9e01-751771607b4d", "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", - "port": "743b5299-2d89-4783-b7c9-12a5b36df406" + "block": "9290b4c2-5520-4b99-97d3-a140a411a149", + "port": "in" }, - "vertices": [ - { - "x": 1080, - "y": 608 - } - ] + "vertices": [] + }, + { + "source": { + "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", + "port": "c45dab76-9d0f-4742-9e4d-3048637d245d" + }, + "target": { + "block": "8395e674-0340-4dc6-9e01-751771607b4d", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] }, { "source": { - "block": "f6388518-4c42-4573-8f49-63d43d444669", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "cd007087-7c8b-49b1-a5ba-b02fdd440737", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "block": "20e1709f-bff4-4373-a485-5af7052a37d7", + "port": "in" }, - "vertices": [ - { - "x": 920, - "y": 592 - } - ] + "vertices": [] }, { "source": { - "block": "1caece2e-e3d8-4102-af87-572c05b24e16", - "port": "constant-out" + "block": "44073844-b550-4911-affe-bdadca704a6f", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", - "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" + "block": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, "vertices": [] }, { "source": { - "block": "bcfe1e9b-4bb8-43c2-bbea-d82aeb7dce9d", + "block": "748fced1-f2be-412a-87de-a0d8276e6a06", "port": "out" }, "target": { - "block": "f6388518-4c42-4573-8f49-63d43d444669", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" - } + "block": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] }, { "source": { - "block": "2d69e282-542b-48cc-b0ec-dd419e06f97e", + "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", "port": "out" }, "target": { - "block": "f6388518-4c42-4573-8f49-63d43d444669", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "bcfe1e9b-4bb8-43c2-bbea-d82aeb7dce9d" } }, { "source": { - "block": "2d69e282-542b-48cc-b0ec-dd419e06f97e", + "block": "63a0f19e-1e7c-4e61-b89a-f6fc4eb74afb", "port": "out" }, "target": { - "block": "eab6a459-411c-406b-9185-872a44f305e5", - "port": "503869f1-ddfd-4d13-93ad-5f90281ba88c" + "block": "8395e674-0340-4dc6-9e01-751771607b4d", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" } }, { "source": { - "block": "2d69e282-542b-48cc-b0ec-dd419e06f97e", - "port": "out" + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a" }, "target": { - "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", - "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" + "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" } }, { "source": { - "block": "eab6a459-411c-406b-9185-872a44f305e5", - "port": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c" + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a" }, "target": { - "block": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a", - "port": "in" - }, - "vertices": [ - { - "x": 1120, - "y": 576 - } - ] + "block": "1e424507-5096-47f9-8437-b35c1c3b343d", + "port": "ec65c3cd-0951-4d74-bbfc-c37f87a78e66" + } }, { "source": { - "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", - "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a" }, "target": { - "block": "7cfc535a-b3a4-4bf7-8f94-8759e822e67e", - "port": "in" + "block": "44073844-b550-4911-affe-bdadca704a6f", + "port": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7" }, "vertices": [ { - "x": 1264, + "x": 1192, "y": 720 } ] }, { "source": { - "block": "f6388518-4c42-4573-8f49-63d43d444669", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "c554ffa6-9397-4270-96af-6d4ff9abfc16", - "port": "in" - } - } - ] - } - } - }, - "d585a59868290d4af219e92f887128dc4b7c8a51": { - "package": { - "name": "Corazon-tics", - "version": "0.1", - "description": "Corazón de bombeo de tics, cuyo periodo está especificado en tics también", - "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=%2263.446%22%20x=%2264.25%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=%2263.446%22%20x=%2264.25%22%20font-weight=%22700%22%20font-size=%228.695%22%3Etics%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": 112, - "y": 72 - } - }, - { - "id": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c", - "type": "basic.output", - "data": { - "name": "" - }, - "position": { - "x": 912, - "y": 192 - } - }, - { - "id": "2e992b62-97db-4d64-9620-3fe3310a9a5f", - "type": "basic.input", - "data": { - "name": "", - "clock": false - }, - "position": { - "x": 112, - "y": 304 - } - }, - { - "id": "136e8d6d-892a-4f14-8d6d-0c5bc6c3e844", - "type": "basic.constant", - "data": { - "name": "", - "value": "15", - "local": false - }, - "position": { - "x": 520, - "y": -128 - } - }, - { - "id": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", - "type": "basic.code", - "data": { - "code": "\n\n//-- Los TICs son directamente el módulo del contador\nlocalparam M = TICS;\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": "TICS" - } - ], - "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" + "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "port": "out" }, "target": { - "block": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c", - "port": "in" + "block": "1e424507-5096-47f9-8437-b35c1c3b343d", + "port": "a265c13d-af7a-437b-97ae-424872381a93" } }, { "source": { - "block": "503869f1-ddfd-4d13-93ad-5f90281ba88c", + "block": "7861c061-e90b-46bb-a639-6399f55f7f11", "port": "out" }, "target": { - "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", - "port": "clk" - } - }, - { - "source": { - "block": "136e8d6d-892a-4f14-8d6d-0c5bc6c3e844", - "port": "constant-out" + "block": "44073844-b550-4911-affe-bdadca704a6f", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" }, - "target": { - "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", - "port": "TICS" - } + "vertices": [ + { + "x": 1392, + "y": 432 + } + ] }, { "source": { - "block": "2e992b62-97db-4d64-9620-3fe3310a9a5f", + "block": "7861c061-e90b-46bb-a639-6399f55f7f11", "port": "out" }, "target": { - "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", - "port": "ena" - } - } - ] - } - } - }, - "d0fde25a657f5921d86a889c7f69e379c4d8e91e": { - "package": { - "name": "Contador-5bits-up-rst", - "version": "0.1", - "description": "Contador módulo M, ascendente, de 5 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 + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "2d69e282-542b-48cc-b0ec-dd419e06f97e" }, - "position": { - "x": 264, - "y": 176 - } + "vertices": [ + { + "x": 920, + "y": 728 + } + ] }, { - "id": "6c029178-38c2-43a1-bd73-4b5a6b932090", - "type": "basic.output", - "data": { - "name": "", - "range": "[4:0]", - "size": 5 + "source": { + "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "port": "out" }, - "position": { - "x": 800, - "y": 200 - } + "target": { + "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" + }, + "vertices": [ + { + "x": 920, + "y": 912 + } + ] }, { - "id": "743b5299-2d89-4783-b7c9-12a5b36df406", - "type": "basic.input", - "data": { - "name": "rst", - "clock": false + "source": { + "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "port": "out" }, - "position": { - "x": 264, - "y": 280 - } + "target": { + "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", + "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" + }, + "vertices": [ + { + "x": 1392, + "y": 752 + } + ] }, { - "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", - "type": "basic.output", - "data": { - "name": "ov" + "source": { + "block": "f3da83aa-48cf-4e21-8e2f-60e045183b92", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "position": { - "x": 800, - "y": 352 - } + "target": { + "block": "8849d683-2013-4619-9116-4adde501529e", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] }, { - "id": "26aba23f-8567-4e9b-bd45-c26724030f33", - "type": "basic.input", - "data": { - "name": "cnt", - "clock": false + "source": { + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "c554ffa6-9397-4270-96af-6d4ff9abfc16" }, - "position": { - "x": 264, - "y": 376 + "target": { + "block": "f3da83aa-48cf-4e21-8e2f-60e045183b92", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" } }, { - "id": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", - "type": "basic.constant", - "data": { - "name": "", - "value": "32", - "local": false + "source": { + "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", + "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, - "position": { - "x": 528, - "y": 48 - } + "target": { + "block": "8849d683-2013-4619-9116-4adde501529e", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": 1592, + "y": 960 + } + ] }, { - "id": "b35ae5de-a490-4f7b-9200-ac52cd3f333e", - "type": "basic.info", - "data": { - "info": "**Parámetro**: Módulo del contador", - "readonly": true - }, - "position": { - "x": 472, - "y": 32 + "source": { + "block": "8849d683-2013-4619-9116-4adde501529e", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "size": { - "width": 280, - "height": 56 + "target": { + "block": "412c6872-b61e-4af8-8ece-577a8adb185c", + "port": "in" } }, { - "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "type": "basic.code", - "data": { - "code": "//-- Numero de bits del contador\nlocalparam N = 5; \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": "[4:0]", - "size": 5 - }, - { - "name": "ov" - } - ] - } + "source": { + "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, - "position": { - "x": 408, - "y": 160 + "target": { + "block": "b987c71e-d76f-43eb-8371-a2aa09d98d15", + "port": "in" }, - "size": { - "width": 336, - "height": 296 - } - } - ], - "wires": [ + "vertices": [ + { + "x": 1400, + "y": 936 + } + ] + }, { "source": { - "block": "743b5299-2d89-4783-b7c9-12a5b36df406", + "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "rst" + "block": "1d8c0dd2-96bc-462a-8a33-05472851522d", + "port": "in" } }, { "source": { - "block": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", - "port": "constant-out" + "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", + "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "M" - } + "block": "44073844-b550-4911-affe-bdadca704a6f", + "port": "755eb5f6-70bb-4449-adb7-196ead041df1" + }, + "vertices": [ + { + "x": 744, + "y": 520 + } + ] }, { "source": { - "block": "26aba23f-8567-4e9b-bd45-c26724030f33", + "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "cnt" + "block": "1e424507-5096-47f9-8437-b35c1c3b343d", + "port": "b916c09a-8848-4500-a1a0-0cc09e8f23c1" + }, + "vertices": [ + { + "x": 848, + "y": 688 + } + ] + }, + { + "source": { + "block": "73336d4a-efcf-49a6-860f-eca956b28ec6", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "1e424507-5096-47f9-8437-b35c1c3b343d", + "port": "02007399-7499-4b76-ad4f-91094344d055" } }, { "source": { - "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "block": "ed0e5489-e9b1-4b92-bcfb-22f3737d1c93", "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "clk" + "block": "1e424507-5096-47f9-8437-b35c1c3b343d", + "port": "05394100-6c4a-4bd5-b479-739c16ede30c" + }, + "vertices": [ + { + "x": 792, + "y": 640 + } + ], + "size": 8 + } + ] + } + } + }, + "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 } }, { - "source": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "ov" + "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" + } + ] + } }, - "target": { - "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", - "port": "in" + "position": { + "x": 168, + "y": 112 + }, + "size": { + "width": 256, + "height": 160 } - }, + } + ], + "wires": [ { "source": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "block": "61331ec5-2c56-4cdd-b607-e63b1502fa65", "port": "q" }, "target": { - "block": "6c029178-38c2-43a1-bd73-4b5a6b932090", + "block": "3d584b0a-29eb-47af-8c43-c0822282ef05", "port": "in" - }, - "size": 5 + } } ] } } }, - "45f630ea95c6847db8df0598c312ef9acfa981a3": { + "086d7dc26b794983217c4161c26b85dc62375d9d": { "package": { - "name": "Biestable-D", + "name": "Heart-tics", "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=%22216.379%22%20height=%22279.911%22%20viewBox=%220%200%2057.25032%2074.059853%22%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M41.506%2040.152l13.608%2016.672-6.918-20.534%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%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-width=%221.0924880399999999%22/%3E%3C/g%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%3C/svg%3E" + "description": "Corazón finito de tics. Emitir num tics cuando se recibe un tic de start", + "author": "Juan Gonzalez-Gomez (obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22227.691%22%20height=%22159.585%22%20viewBox=%220%200%2060.243259%2042.223434%22%3E%3Cpath%20d=%22M30.137%2040.073c-.726-1.25-1.853-2.474-3.987-4.332-1.156-1.006-1.859-1.565-5.863-4.658-3.138-2.425-4.704-3.77-6.519-5.602-1.813-1.83-2.879-3.289-3.793-5.19a15.321%2015.321%200%200%201-1.236-3.6c-.316-1.545-.36-2.068-.358-4.342.002-2.984.1-3.48%201.08-5.47.729-1.479%201.282-2.257%202.433-3.427%201.119-1.135%201.845-1.65%203.415-2.427C17.053.162%2018.315-.065%2020.914.02c2.02.065%202.759.266%204.36%201.187%202.52%201.45%204.476%203.778%205.017%205.973.088.358.18.652.203.652.023%200%20.227-.42.453-.933.77-1.743%201.485-2.808%202.62-3.902%203.477-3.353%208.96-3.959%2013.392-1.482C48.769%202.527%2050.242%204%2051.383%205.94c.898%201.527%201.358%203.555%201.436%206.34.114%204.035-.624%206.832-2.589%209.811-.78%201.183-1.356%201.9-2.438%203.029-1.744%201.822-3.318%203.162-7.033%205.987-2.344%201.783-3.733%202.93-5.744%204.742-1.612%201.451-4.109%203.979-4.35%204.401-.104.185-.2.336-.21.336-.012%200-.154-.23-.318-.512z%22%20fill=%22red%22/%3E%3Ctext%20y=%2263.446%22%20x=%2264.25%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-42.66%20-45.386)%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=%2263.446%22%20x=%2264.25%22%20font-weight=%22700%22%20font-size=%228.695%22%3Etics%3C/tspan%3E%3C/text%3E%3Cg%20transform=%22matrix(.79321%200%200%20.79321%20-31.345%20-28.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%3Cg%20transform=%22matrix(.79321%200%200%20.79321%20-68.009%20-28.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%3Ctext%20y=%2258.351%22%20x=%2280.998%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%2222.577%22%20letter-spacing=%220%22%20word-spacing=%220%22%20transform=%22matrix(.99853%200%200%201.00147%20-42.66%20-45.386)%22%20font-family=%22sans-serif%22%20fill=%22#00f%22%20stroke-width=%22.419%22%3E%3Ctspan%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2258.351%22%20x=%2280.998%22%20font-weight=%22700%22%20font-size=%2212.901%22%3E#%3C/tspan%3E%3C/text%3E%3C/svg%3E" }, "design": { "graph": { "blocks": [ { - "id": "3943e194-090b-4553-9df3-88bc4b17abc2", + "id": "2d69e282-542b-48cc-b0ec-dd419e06f97e", "type": "basic.input", "data": { "name": "", "clock": true }, "position": { - "x": 176, - "y": 64 + "x": 520, + "y": 456 } }, { - "id": "755eb5f6-70bb-4449-adb7-196ead041df1", + "id": "bcfe1e9b-4bb8-43c2-bbea-d82aeb7dce9d", "type": "basic.input", "data": { - "name": "rst", + "name": "start", "clock": false }, "position": { - "x": 168, - "y": 144 + "x": 520, + "y": 536 } }, { - "id": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", + "id": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a", "type": "basic.output", "data": { - "name": "" + "name": "out" }, "position": { - "x": 680, - "y": 200 + "x": 1352, + "y": 560 } }, { - "id": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", - "type": "basic.input", + "id": "c554ffa6-9397-4270-96af-6d4ff9abfc16", + "type": "basic.output", "data": { - "name": "d", - "clock": false + "name": "busy" }, "position": { - "x": 168, - "y": 216 + "x": 872, + "y": 672 } }, { - "id": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", - "type": "basic.input", + "id": "7cfc535a-b3a4-4bf7-8f94-8759e822e67e", + "type": "basic.output", "data": { - "name": "load", - "clock": false + "name": "end" }, "position": { - "x": 168, - "y": 296 + "x": 1352, + "y": 752 } }, { - "id": "65194b18-5d2a-41b2-bd86-01be99978ad6", + "id": "96ad1612-7936-4672-b660-9285d183f749", "type": "basic.constant", "data": { - "name": "", - "value": "0", + "name": "Tics", + "value": "15", "local": false }, "position": { - "x": 456, - "y": 64 + "x": 952, + "y": 376 } }, { - "id": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "type": "basic.code", + "id": "1caece2e-e3d8-4102-af87-572c05b24e16", + "type": "basic.constant", "data": { - "code": "reg q = INI;\nalways @(posedge clk)\n if (rst)\n q <= INI;\n else if (load)\n q <= d;", - "params": [ - { - "name": "INI" - } - ], - "ports": { - "in": [ - { - "name": "clk" - }, - { - "name": "rst" - }, - { - "name": "d" - }, - { - "name": "load" - } - ], - "out": [ - { - "name": "q" - } - ] + "name": "Num", + "value": "24", + "local": false + }, + "position": { + "x": 1152, + "y": 376 + } + }, + { + "id": "f6388518-4c42-4573-8f49-63d43d444669", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 720, + "y": 520 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "eab6a459-411c-406b-9185-872a44f305e5", + "type": "d585a59868290d4af219e92f887128dc4b7c8a51", + "position": { + "x": 952, + "y": 520 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "a05b1ecb-b766-482a-9f49-bd698cec989f", + "type": "d0fde25a657f5921d86a889c7f69e379c4d8e91e", + "position": { + "x": 1152, + "y": 472 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "cd007087-7c8b-49b1-a5ba-b02fdd440737", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 944, + "y": 600 + }, + "size": { + "width": 96, + "height": 64 + } + } + ], + "wires": [ + { + "source": { + "block": "f6388518-4c42-4573-8f49-63d43d444669", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "eab6a459-411c-406b-9185-872a44f305e5", + "port": "2e992b62-97db-4d64-9620-3fe3310a9a5f" + }, + "vertices": [] + }, + { + "source": { + "block": "96ad1612-7936-4672-b660-9285d183f749", + "port": "constant-out" + }, + "target": { + "block": "eab6a459-411c-406b-9185-872a44f305e5", + "port": "136e8d6d-892a-4f14-8d6d-0c5bc6c3e844" + }, + "vertices": [] + }, + { + "source": { + "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + }, + "target": { + "block": "f6388518-4c42-4573-8f49-63d43d444669", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + }, + "vertices": [ + { + "x": 680, + "y": 760 + } + ] + }, + { + "source": { + "block": "eab6a459-411c-406b-9185-872a44f305e5", + "port": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c" + }, + "target": { + "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", + "port": "26aba23f-8567-4e9b-bd45-c26724030f33" + }, + "vertices": [] + }, + { + "source": { + "block": "cd007087-7c8b-49b1-a5ba-b02fdd440737", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", + "port": "743b5299-2d89-4783-b7c9-12a5b36df406" + }, + "vertices": [ + { + "x": 1080, + "y": 608 + } + ] + }, + { + "source": { + "block": "f6388518-4c42-4573-8f49-63d43d444669", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "cd007087-7c8b-49b1-a5ba-b02fdd440737", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": 920, + "y": 592 } + ] + }, + { + "source": { + "block": "1caece2e-e3d8-4102-af87-572c05b24e16", + "port": "constant-out" }, - "position": { - "x": 384, - "y": 168 + "target": { + "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", + "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" }, - "size": { - "width": 232, - "height": 128 - } - } - ], - "wires": [ + "vertices": [] + }, { "source": { - "block": "3943e194-090b-4553-9df3-88bc4b17abc2", + "block": "bcfe1e9b-4bb8-43c2-bbea-d82aeb7dce9d", "port": "out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "clk" + "block": "f6388518-4c42-4573-8f49-63d43d444669", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" } }, { "source": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "q" + "block": "2d69e282-542b-48cc-b0ec-dd419e06f97e", + "port": "out" }, "target": { - "block": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", - "port": "in" + "block": "f6388518-4c42-4573-8f49-63d43d444669", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" } }, { "source": { - "block": "65194b18-5d2a-41b2-bd86-01be99978ad6", - "port": "constant-out" + "block": "2d69e282-542b-48cc-b0ec-dd419e06f97e", + "port": "out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "INI" + "block": "eab6a459-411c-406b-9185-872a44f305e5", + "port": "503869f1-ddfd-4d13-93ad-5f90281ba88c" } }, { "source": { - "block": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", + "block": "2d69e282-542b-48cc-b0ec-dd419e06f97e", "port": "out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "d" + "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", + "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" } }, { "source": { - "block": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", - "port": "out" + "block": "eab6a459-411c-406b-9185-872a44f305e5", + "port": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "load" - } + "block": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a", + "port": "in" + }, + "vertices": [ + { + "x": 1120, + "y": 576 + } + ] }, { "source": { - "block": "755eb5f6-70bb-4449-adb7-196ead041df1", - "port": "out" + "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "rst" + "block": "7cfc535a-b3a4-4bf7-8f94-8759e822e67e", + "port": "in" }, "vertices": [ { - "x": 304, - "y": 192 + "x": 1264, + "y": 720 } ] + }, + { + "source": { + "block": "f6388518-4c42-4573-8f49-63d43d444669", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "c554ffa6-9397-4270-96af-6d4ff9abfc16", + "port": "in" + } } ] } } }, - "53847c98bfef0fe28fbef1f4f65042911f361c44": { + "d585a59868290d4af219e92f887128dc4b7c8a51": { "package": { - "name": "Registro-desplazamiento", + "name": "Corazon-tics", "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" + "description": "Corazón de bombeo de tics, cuyo periodo está especificado en tics también", + "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=%2263.446%22%20x=%2264.25%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=%2263.446%22%20x=%2264.25%22%20font-weight=%22700%22%20font-size=%228.695%22%3Etics%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": "a265c13d-af7a-437b-97ae-424872381a93", + "id": "503869f1-ddfd-4d13-93ad-5f90281ba88c", "type": "basic.input", "data": { "name": "", "clock": true }, "position": { - "x": 224, - "y": 648 + "x": 112, + "y": 72 } }, { - "id": "21039c06-c932-498c-968d-879a68d66795", + "id": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c", "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 + "x": 912, + "y": 192 } }, { - "id": "ec65c3cd-0951-4d74-bbfc-c37f87a78e66", + "id": "2e992b62-97db-4d64-9620-3fe3310a9a5f", "type": "basic.input", "data": { - "name": "shift", + "name": "", "clock": false }, "position": { - "x": 224, - "y": 856 + "x": 112, + "y": 304 } }, { - "id": "4fef4dd0-ce33-42df-96b7-6c92c543f8eb", + "id": "136e8d6d-892a-4f14-8d6d-0c5bc6c3e844", "type": "basic.constant", "data": { "name": "", - "value": "0", + "value": "15", "local": false }, "position": { - "x": 624, - "y": 544 + "x": 520, + "y": -128 } }, { - "id": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "id": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", "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];", + "code": "\n\n//-- Los TICs son directamente el módulo del contador\nlocalparam M = TICS;\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": "INI" + "name": "TICS" } ], "ports": { @@ -9431,1627 +9325,1696 @@ "name": "clk" }, { - "name": "si" - }, - { - "name": "d", - "range": "[7:0]", - "size": 8 - }, - { - "name": "load" - }, - { - "name": "shift" + "name": "ena" } ], "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" + "name": "o" + } + ] + } }, - "target": { - "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", - "port": "clk" - } - }, - { - "source": { - "block": "02007399-7499-4b76-ad4f-91094344d055", - "port": "out" + "position": { + "x": 296, + "y": -8 }, - "target": { - "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", - "port": "si" + "size": { + "width": 544, + "height": 456 } - }, + } + ], + "wires": [ { "source": { - "block": "05394100-6c4a-4bd5-b479-739c16ede30c", - "port": "out" + "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", + "port": "o" }, "target": { - "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", - "port": "d" - }, - "size": 8 + "block": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c", + "port": "in" + } }, { "source": { - "block": "ec65c3cd-0951-4d74-bbfc-c37f87a78e66", + "block": "503869f1-ddfd-4d13-93ad-5f90281ba88c", "port": "out" }, "target": { - "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", - "port": "shift" + "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", + "port": "clk" } }, { "source": { - "block": "b916c09a-8848-4500-a1a0-0cc09e8f23c1", - "port": "out" + "block": "136e8d6d-892a-4f14-8d6d-0c5bc6c3e844", + "port": "constant-out" }, "target": { - "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", - "port": "load" + "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", + "port": "TICS" } }, { "source": { - "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", - "port": "so" + "block": "2e992b62-97db-4d64-9620-3fe3310a9a5f", + "port": "out" }, "target": { - "block": "21039c06-c932-498c-968d-879a68d66795", - "port": "in" + "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", + "port": "ena" } } ] } } }, - "5483349a60d7c0f7f4146228196d6f4c4ad7604d": { + "d0fde25a657f5921d86a889c7f69e379c4d8e91e": { "package": { - "name": "machine-loop", + "name": "Contador-5bits-up-rst", "version": "0.1", - "description": "Máquina para hacer repeticiones", + "description": "Contador módulo M, ascendente, de 5 bits, con reset ", "author": "Juan González-Gómez (Obijuan)", - "image": "" + "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": "162f5f2d-17dc-4d0e-b6f9-6ebdf74392f0", - "type": "basic.output", - "data": { - "name": "exec" - }, - "position": { - "x": 1352, - "y": 224 - } - }, - { - "id": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", + "id": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", "type": "basic.input", "data": { "name": "", "clock": true }, "position": { - "x": 48, - "y": 280 + "x": 264, + "y": 176 } }, { - "id": "8a0d51b6-8ab0-4ca6-8d57-7fa7e713c738", - "type": "basic.input", + "id": "6c029178-38c2-43a1-bd73-4b5a6b932090", + "type": "basic.output", "data": { - "name": "mod", - "range": "[1:0]", - "clock": false, - "size": 2 + "name": "", + "range": "[4:0]", + "size": 5 }, "position": { - "x": 48, - "y": 400 + "x": 800, + "y": 200 } }, { - "id": "f966672f-ae05-4499-8a8d-3c9394a1119e", + "id": "743b5299-2d89-4783-b7c9-12a5b36df406", "type": "basic.input", "data": { - "name": "next", + "name": "rst", "clock": false }, "position": { - "x": 48, - "y": 464 + "x": 264, + "y": 280 } }, { - "id": "453471d0-fe0d-4cbf-a4df-411b6035dd44", + "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", "type": "basic.output", "data": { - "name": "busy" + "name": "ov" }, "position": { - "x": 1224, - "y": 528 + "x": 800, + "y": 352 } }, { - "id": "0319df1a-5bd5-4abc-8681-6f3a8fa4e108", + "id": "26aba23f-8567-4e9b-bd45-c26724030f33", "type": "basic.input", "data": { - "name": "start", + "name": "cnt", "clock": false }, "position": { - "x": 40, - "y": 608 + "x": 264, + "y": 376 } }, { - "id": "088c7d8e-99b1-4f2e-a6c0-a672e5239844", - "type": "basic.output", + "id": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "type": "basic.constant", "data": { "name": "", - "range": "[1:0]", - "size": 2 + "value": "32", + "local": false }, "position": { - "x": 1208, - "y": 720 + "x": 528, + "y": 48 } }, { - "id": "5dc54e8b-49c1-4ddb-94ab-843b247b73c4", - "type": "basic.output", + "id": "b35ae5de-a490-4f7b-9200-ac52cd3f333e", + "type": "basic.info", "data": { - "name": "done" - }, - "position": { - "x": 1208, - "y": 792 - } - }, - { - "id": "576020ce-bd52-4c01-8d5c-28605e677436", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", - "position": { - "x": 304, - "y": 592 - }, - "size": { - "width": 96, - "height": 96 - } - }, - { - "id": "728a5e86-7762-44da-8f55-f0f6c949abf2", - "type": "8e2728307baccbf26c01cdb87bcfba8ca64a435c", - "position": { - "x": 496, - "y": 328 - }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "18d5bf1a-171b-4474-9505-b9be4292c1ec", - "type": "81613874c6152f06c06ed7014bf4235900cfcc30", - "position": { - "x": 1064, - "y": 416 - }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", - "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", - "position": { - "x": 1192, - "y": 432 - }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", - "position": { - "x": 912, - "y": 432 - }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", - "position": { - "x": 688, - "y": 448 + "info": "**Parámetro**: Módulo del contador", + "readonly": true }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "27312c73-6414-4f2e-88e3-e4fd9eb4d2ca", - "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", "position": { - "x": 464, - "y": 792 + "x": 472, + "y": 32 }, "size": { - "width": 96, - "height": 64 + "width": 280, + "height": 56 } }, { - "id": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", - "type": "7eacdff4ce248b009935725889c8ae3339817d76", - "position": { - "x": 912, - "y": 672 + "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "type": "basic.code", + "data": { + "code": "//-- Numero de bits del contador\nlocalparam N = 5; \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": "[4:0]", + "size": 5 + }, + { + "name": "ov" + } + ] + } }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "8934d1b4-e751-4360-8a2c-fcc90c045fec", - "type": "b82ff1ae5d4441d6da2bec090398f0eb86405bf4", "position": { - "x": 696, - "y": 776 + "x": 408, + "y": 160 }, "size": { - "width": 96, - "height": 128 + "width": 336, + "height": 296 } } ], "wires": [ { "source": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "728a5e86-7762-44da-8f55-f0f6c949abf2", - "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" - }, - "vertices": [] - }, - { - "source": { - "block": "728a5e86-7762-44da-8f55-f0f6c949abf2", - "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" + "block": "743b5299-2d89-4783-b7c9-12a5b36df406", + "port": "out" }, "target": { - "block": "18d5bf1a-171b-4474-9505-b9be4292c1ec", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" - }, - "vertices": [] + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "rst" + } }, { "source": { - "block": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "block": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "port": "constant-out" }, "target": { - "block": "162f5f2d-17dc-4d0e-b6f9-6ebdf74392f0", - "port": "in" - }, - "vertices": [] + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "M" + } }, { "source": { - "block": "18d5bf1a-171b-4474-9505-b9be4292c1ec", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "block": "26aba23f-8567-4e9b-bd45-c26724030f33", + "port": "out" }, "target": { - "block": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" - }, - "vertices": [] + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "cnt" + } }, { "source": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "port": "out" }, "target": { - "block": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", - "port": "97b51945-d716-4b6c-9db9-970d08541249" - }, - "vertices": [] + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "clk" + } }, { "source": { - "block": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "ov" }, "target": { - "block": "18d5bf1a-171b-4474-9505-b9be4292c1ec", - "port": "97b51945-d716-4b6c-9db9-970d08541249" - }, - "vertices": [] + "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "port": "in" + } }, { "source": { - "block": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "q" }, "target": { - "block": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "block": "6c029178-38c2-43a1-bd73-4b5a6b932090", + "port": "in" }, - "vertices": [] - }, + "size": 5 + } + ] + } + } + }, + "45f630ea95c6847db8df0598c312ef9acfa981a3": { + "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=%22216.379%22%20height=%22279.911%22%20viewBox=%220%200%2057.25032%2074.059853%22%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M41.506%2040.152l13.608%2016.672-6.918-20.534%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%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-width=%221.0924880399999999%22/%3E%3C/g%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%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ { - "source": { - "block": "0319df1a-5bd5-4abc-8681-6f3a8fa4e108", - "port": "out" + "id": "3943e194-090b-4553-9df3-88bc4b17abc2", + "type": "basic.input", + "data": { + "name": "", + "clock": true }, - "target": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + "position": { + "x": 176, + "y": 64 } }, { - "source": { - "block": "f966672f-ae05-4499-8a8d-3c9394a1119e", - "port": "out" + "id": "755eb5f6-70bb-4449-adb7-196ead041df1", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false }, - "target": { - "block": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "position": { + "x": 168, + "y": 144 } }, { - "source": { - "block": "f966672f-ae05-4499-8a8d-3c9394a1119e", - "port": "out" - }, - "target": { - "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", - "port": "26aba23f-8567-4e9b-bd45-c26724030f33" + "id": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", + "type": "basic.output", + "data": { + "name": "" }, - "vertices": [ - { - "x": 592, - "y": 712 - } - ] + "position": { + "x": 680, + "y": 200 + } }, { - "source": { - "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", - "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" - }, - "target": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + "id": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", + "type": "basic.input", + "data": { + "name": "d", + "clock": false }, - "vertices": [ - { - "x": 824, - "y": 920 - } - ] + "position": { + "x": 168, + "y": 216 + } }, { - "source": { - "block": "27312c73-6414-4f2e-88e3-e4fd9eb4d2ca", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", + "type": "basic.input", + "data": { + "name": "load", + "clock": false }, - "target": { - "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", - "port": "743b5299-2d89-4783-b7c9-12a5b36df406" + "position": { + "x": 168, + "y": 296 } }, { - "source": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "id": "65194b18-5d2a-41b2-bd86-01be99978ad6", + "type": "basic.constant", + "data": { + "name": "", + "value": "0", + "local": false }, - "target": { - "block": "27312c73-6414-4f2e-88e3-e4fd9eb4d2ca", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "position": { + "x": 456, + "y": 64 } }, { - "source": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", - "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" - }, - "vertices": [ - { - "x": 824, - "y": 664 + "id": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "type": "basic.code", + "data": { + "code": "reg q = INI;\nalways @(posedge clk)\n if (rst)\n q <= INI;\n else if (load)\n q <= d;", + "params": [ + { + "name": "INI" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "rst" + }, + { + "name": "d" + }, + { + "name": "load" + } + ], + "out": [ + { + "name": "q" + } + ] } - ] - }, - { - "source": { - "block": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", - "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" }, - "target": { - "block": "5dc54e8b-49c1-4ddb-94ab-843b247b73c4", - "port": "in" - } - }, - { - "source": { - "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", - "port": "out" + "position": { + "x": 384, + "y": 168 }, - "target": { - "block": "728a5e86-7762-44da-8f55-f0f6c949abf2", - "port": "4196184b-4a60-493b-bcc6-c95958483683" + "size": { + "width": 232, + "height": 128 } - }, + } + ], + "wires": [ { "source": { - "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", + "block": "3943e194-090b-4553-9df3-88bc4b17abc2", "port": "out" }, "target": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "clk" } }, { "source": { - "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", - "port": "out" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "q" }, "target": { - "block": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "block": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", + "port": "in" } }, { "source": { - "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", - "port": "out" - }, - "target": { - "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", - "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" - }, - "vertices": [ - { - "x": 640, - "y": 664 - } - ] - }, - { - "source": { - "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", - "port": "out" + "block": "65194b18-5d2a-41b2-bd86-01be99978ad6", + "port": "constant-out" }, "target": { - "block": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "INI" } }, { "source": { - "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", + "block": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", "port": "out" }, "target": { - "block": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", - "port": "4196184b-4a60-493b-bcc6-c95958483683" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "d" } }, { "source": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", + "port": "out" }, "target": { - "block": "453471d0-fe0d-4cbf-a4df-411b6035dd44", - "port": "in" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "load" } }, { "source": { - "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", - "port": "7a982450-c842-4aa2-8e77-43cc628266e0" - }, - "target": { - "block": "088c7d8e-99b1-4f2e-a6c0-a672e5239844", - "port": "in" - }, - "vertices": [ - { - "x": 1048, - "y": 760 - } - ], - "size": 2 - }, - { - "source": { - "block": "8a0d51b6-8ab0-4ca6-8d57-7fa7e713c738", + "block": "755eb5f6-70bb-4449-adb7-196ead041df1", "port": "out" }, "target": { - "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", - "port": "4cafbdca-bdb2-421a-a742-f5de7a452c86" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "rst" }, "vertices": [ { - "x": 616, - "y": 616 + "x": 304, + "y": 192 } - ], - "size": 2 + ] } ] } } }, - "b82ff1ae5d4441d6da2bec090398f0eb86405bf4": { + "53847c98bfef0fe28fbef1f4f65042911f361c44": { "package": { - "name": "Contador-2bits-up-rst-mod-M", + "name": "Registro-desplazamiento", "version": "0.1", - "description": "Contador módulo M, ascendente, de 2 bits, con reset ", + "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=%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" + "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": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "id": "a265c13d-af7a-437b-97ae-424872381a93", "type": "basic.input", "data": { "name": "", "clock": true }, "position": { - "x": 240, - "y": 168 + "x": 224, + "y": 648 } }, { - "id": "7a982450-c842-4aa2-8e77-43cc628266e0", + "id": "21039c06-c932-498c-968d-879a68d66795", "type": "basic.output", "data": { - "name": "", - "range": "[1:0]", - "size": 2 + "name": "" }, "position": { - "x": 800, - "y": 200 + "x": 952, + "y": 680 } }, { - "id": "743b5299-2d89-4783-b7c9-12a5b36df406", + "id": "02007399-7499-4b76-ad4f-91094344d055", "type": "basic.input", "data": { - "name": "rst", + "name": "sin", "clock": false }, "position": { - "x": 240, - "y": 240 + "x": 224, + "y": 696 } }, { - "id": "4cafbdca-bdb2-421a-a742-f5de7a452c86", + "id": "05394100-6c4a-4bd5-b479-739c16ede30c", "type": "basic.input", "data": { - "name": "mod", - "range": "[1:0]", + "name": "d", + "range": "[7:0]", "clock": false, - "size": 2 + "size": 8 }, "position": { - "x": 240, - "y": 312 + "x": 224, + "y": 744 } }, { - "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "id": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", "type": "basic.output", "data": { - "name": "ov" + "name": "q", + "range": "[7:0]", + "size": 8 }, "position": { - "x": 800, - "y": 352 + "x": 968, + "y": 800 } }, { - "id": "26aba23f-8567-4e9b-bd45-c26724030f33", + "id": "b916c09a-8848-4500-a1a0-0cc09e8f23c1", "type": "basic.input", "data": { - "name": "cnt", + "name": "load", "clock": false }, "position": { - "x": 240, - "y": 384 + "x": 224, + "y": 800 } }, { - "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "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 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 == mod);\n ", - "params": [], + "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": "rst" + "name": "si" }, { - "name": "mod", - "range": "[1:0]", - "size": 2 + "name": "d", + "range": "[7:0]", + "size": 8 }, { - "name": "cnt" + "name": "load" + }, + { + "name": "shift" } ], "out": [ { - "name": "q", - "range": "[1:0]", - "size": 2 + "name": "so" }, { - "name": "ov" + "name": "q", + "range": "[7:0]", + "size": 8 } ] } }, "position": { - "x": 408, - "y": 160 + "x": 440, + "y": 656 }, "size": { - "width": 336, - "height": 296 + "width": 464, + "height": 232 } } ], "wires": [ { "source": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "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": "7a982450-c842-4aa2-8e77-43cc628266e0", + "block": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", "port": "in" }, - "size": 2 + "size": 8 }, { "source": { - "block": "743b5299-2d89-4783-b7c9-12a5b36df406", + "block": "a265c13d-af7a-437b-97ae-424872381a93", "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "rst" + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "clk" } }, { "source": { - "block": "26aba23f-8567-4e9b-bd45-c26724030f33", + "block": "02007399-7499-4b76-ad4f-91094344d055", "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "cnt" + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "si" } }, { "source": { - "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "block": "05394100-6c4a-4bd5-b479-739c16ede30c", "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "clk" - } + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "d" + }, + "size": 8 }, { "source": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "ov" + "block": "ec65c3cd-0951-4d74-bbfc-c37f87a78e66", + "port": "out" }, "target": { - "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", - "port": "in" + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "shift" } }, { "source": { - "block": "4cafbdca-bdb2-421a-a742-f5de7a452c86", + "block": "b916c09a-8848-4500-a1a0-0cc09e8f23c1", "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "mod" + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "load" + } + }, + { + "source": { + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "so" }, - "size": 2 + "target": { + "block": "21039c06-c932-498c-968d-879a68d66795", + "port": "in" + } } ] } } }, - "56cc183f8c704107b94d882715f6e43592dcaf61": { + "5483349a60d7c0f7f4146228196d6f4c4ad7604d": { "package": { - "name": "Mux 4 a 1 de 8 bits", - "version": "0.0.1", - "description": "Multiplexor de 4 a 1 de 8 bits", - "author": "Juan Gonzalez-Gomez (obijuan)", - "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" + "name": "machine-loop", + "version": "0.1", + "description": "Máquina para hacer repeticiones", + "author": "Juan González-Gómez (Obijuan)", + "image": "" }, "design": { "graph": { "blocks": [ { - "id": "fbc03b1e-bcb0-42b2-9b09-33968aa35d0f", - "type": "basic.input", + "id": "162f5f2d-17dc-4d0e-b6f9-6ebdf74392f0", + "type": "basic.output", "data": { - "name": "i3", - "range": "[7:0]", - "clock": false, - "size": 8 + "name": "exec" }, "position": { - "x": -712, - "y": -200 + "x": 1352, + "y": 224 } }, { - "id": "350946d5-2f29-4190-bcf2-e14e17224bb4", + "id": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", "type": "basic.input", "data": { - "name": "i2", - "range": "[7:0]", - "clock": false, - "size": 8 + "name": "", + "clock": true }, "position": { - "x": -712, - "y": -128 + "x": 48, + "y": 280 } }, { - "id": "bc9544e0-2199-4d6a-a6b9-6550b7dd7633", + "id": "8a0d51b6-8ab0-4ca6-8d57-7fa7e713c738", "type": "basic.input", "data": { - "name": "i1", - "range": "[7:0]", + "name": "mod", + "range": "[1:0]", "clock": false, - "size": 8 + "size": 2 }, "position": { - "x": -712, - "y": -48 + "x": 48, + "y": 400 } }, { - "id": "820e19c9-d979-418f-b2e5-d806fa3caca3", - "type": "basic.output", + "id": "f966672f-ae05-4499-8a8d-3c9394a1119e", + "type": "basic.input", "data": { - "name": "o", - "range": "[7:0]", - "size": 8 + "name": "next", + "clock": false }, "position": { - "x": 0, - "y": -8 + "x": 48, + "y": 464 } }, { - "id": "1f4c1c55-ee75-41d6-8590-b4e650d636cc", - "type": "basic.input", + "id": "453471d0-fe0d-4cbf-a4df-411b6035dd44", + "type": "basic.output", "data": { - "name": "i0", - "range": "[7:0]", - "clock": false, - "size": 8 + "name": "busy" }, "position": { - "x": -712, - "y": 16 + "x": 1224, + "y": 528 } }, { - "id": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", + "id": "0319df1a-5bd5-4abc-8681-6f3a8fa4e108", "type": "basic.input", "data": { - "name": "sel1", + "name": "start", "clock": false }, "position": { - "x": -704, - "y": 112 + "x": 40, + "y": 608 } }, { - "id": "2cd7e8ed-1ed2-4a5c-a72a-337d703c9712", - "type": "basic.input", + "id": "088c7d8e-99b1-4f2e-a6c0-a672e5239844", + "type": "basic.output", "data": { - "name": "sel0", - "clock": false + "name": "", + "range": "[1:0]", + "size": 2 }, "position": { - "x": -704, - "y": 176 + "x": 1208, + "y": 720 } }, { - "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "type": "basic.code", + "id": "5dc54e8b-49c1-4ddb-94ab-843b247b73c4", + "type": "basic.output", "data": { - "code": "//-- Multiplexor de 4 a 1, \n//-- de 8 bits\n\nwire [1:0] sel = {s1, s0};\n\nassign o = (sel == 2'b00) ? i0 :\n (sel == 2'b01) ? i1 :\n (sel == 2'b10) ? i2 : i3;\n\n", - "params": [], - "ports": { - "in": [ - { - "name": "i3", - "range": "[7:0]", - "size": 8 - }, - { - "name": "i2", - "range": "[7:0]", - "size": 8 - }, - { - "name": "i1", - "range": "[7:0]", - "size": 8 - }, - { - "name": "i0", - "range": "[7:0]", - "size": 8 - }, - { - "name": "s1" - }, - { - "name": "s0" - } - ], - "out": [ - { - "name": "o", - "range": "[7:0]", - "size": 8 - } - ] - } + "name": "done" + }, + "position": { + "x": 1208, + "y": 792 + } + }, + { + "id": "576020ce-bd52-4c01-8d5c-28605e677436", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 304, + "y": 592 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "728a5e86-7762-44da-8f55-f0f6c949abf2", + "type": "8e2728307baccbf26c01cdb87bcfba8ca64a435c", + "position": { + "x": 496, + "y": 328 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "18d5bf1a-171b-4474-9505-b9be4292c1ec", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "position": { + "x": 1064, + "y": 416 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 1192, + "y": 432 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", + "position": { + "x": 912, + "y": 432 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", + "position": { + "x": 688, + "y": 448 }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "27312c73-6414-4f2e-88e3-e4fd9eb4d2ca", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", "position": { - "x": -464, - "y": -104 + "x": 464, + "y": 792 }, "size": { - "width": 352, - "height": 256 + "width": 96, + "height": 64 + } + }, + { + "id": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", + "type": "7eacdff4ce248b009935725889c8ae3339817d76", + "position": { + "x": 912, + "y": 672 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "8934d1b4-e751-4360-8a2c-fcc90c045fec", + "type": "b82ff1ae5d4441d6da2bec090398f0eb86405bf4", + "position": { + "x": 696, + "y": 776 + }, + "size": { + "width": 96, + "height": 128 } } ], "wires": [ { "source": { - "block": "2cd7e8ed-1ed2-4a5c-a72a-337d703c9712", - "port": "out" + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "s0" - } + "block": "728a5e86-7762-44da-8f55-f0f6c949abf2", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + }, + "vertices": [] }, { "source": { - "block": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", - "port": "out" + "block": "728a5e86-7762-44da-8f55-f0f6c949abf2", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "s1" + "block": "18d5bf1a-171b-4474-9505-b9be4292c1ec", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, - "vertices": [ - { - "x": -520, - "y": 104 - } - ] + "vertices": [] }, { "source": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "o" + "block": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "820e19c9-d979-418f-b2e5-d806fa3caca3", + "block": "162f5f2d-17dc-4d0e-b6f9-6ebdf74392f0", "port": "in" }, - "size": 8 + "vertices": [] }, { "source": { - "block": "1f4c1c55-ee75-41d6-8590-b4e650d636cc", + "block": "18d5bf1a-171b-4474-9505-b9be4292c1ec", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] + }, + { + "source": { + "block": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + }, + "target": { + "block": "18d5bf1a-171b-4474-9505-b9be4292c1ec", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] + }, + { + "source": { + "block": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + }, + "target": { + "block": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + }, + "vertices": [] + }, + { + "source": { + "block": "0319df1a-5bd5-4abc-8681-6f3a8fa4e108", "port": "out" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i0" + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + } + }, + { + "source": { + "block": "f966672f-ae05-4499-8a8d-3c9394a1119e", + "port": "out" }, - "size": 8 + "target": { + "block": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + } }, { "source": { - "block": "bc9544e0-2199-4d6a-a6b9-6550b7dd7633", + "block": "f966672f-ae05-4499-8a8d-3c9394a1119e", "port": "out" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i1" + "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", + "port": "26aba23f-8567-4e9b-bd45-c26724030f33" }, "vertices": [ { - "x": -576, - "y": 0 + "x": 592, + "y": 712 } - ], - "size": 8 + ] }, { "source": { - "block": "350946d5-2f29-4190-bcf2-e14e17224bb4", - "port": "out" + "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i2" + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" }, "vertices": [ { - "x": -576, - "y": -72 + "x": 824, + "y": 920 } - ], - "size": 8 + ] }, { "source": { - "block": "fbc03b1e-bcb0-42b2-9b09-33968aa35d0f", - "port": "out" + "block": "27312c73-6414-4f2e-88e3-e4fd9eb4d2ca", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i3" + "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", + "port": "743b5299-2d89-4783-b7c9-12a5b36df406" + } + }, + { + "source": { + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "27312c73-6414-4f2e-88e3-e4fd9eb4d2ca", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + } + }, + { + "source": { + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" }, "vertices": [ { - "x": -544, - "y": -128 + "x": 824, + "y": 664 } - ], - "size": 8 - } - ] - } - } - }, - "eebee1482748e838ffef3618817cc1fa911e4952": { - "package": { - "name": "Mux 2 a 1 de 2 bits", - "version": "0.0.1", - "description": "Multiplexor de 2 a 1 de 2 bits", - "author": "Juan Gonzalez-Gomez (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" - }, - "design": { - "graph": { - "blocks": [ + ] + }, { - "id": "d220e4a2-bec7-4852-84bd-2baf3df5ccdb", - "type": "basic.input", - "data": { - "name": "i1", - "range": "[1:0]", - "clock": false, - "size": 2 + "source": { + "block": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" }, - "position": { - "x": -704, - "y": -88 + "target": { + "block": "5dc54e8b-49c1-4ddb-94ab-843b247b73c4", + "port": "in" } }, { - "id": "ca28abaf-359d-4f8f-a397-91d76dc936ec", - "type": "basic.output", - "data": { - "name": "o", - "range": "[1:0]", - "size": 2 + "source": { + "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", + "port": "out" }, - "position": { - "x": -48, - "y": 0 + "target": { + "block": "728a5e86-7762-44da-8f55-f0f6c949abf2", + "port": "4196184b-4a60-493b-bcc6-c95958483683" } }, { - "id": "8197e6c5-cf9d-42d6-a9e9-3ecccafa27c2", - "type": "basic.input", - "data": { - "name": "i0", - "range": "[1:0]", - "clock": false, - "size": 2 + "source": { + "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", + "port": "out" }, - "position": { - "x": -704, - "y": 0 + "target": { + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" } }, { - "id": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", - "type": "basic.input", - "data": { - "name": "sel", - "clock": false + "source": { + "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", + "port": "out" }, - "position": { - "x": -704, - "y": 88 + "target": { + "block": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" } }, { - "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "type": "basic.code", - "data": { - "code": "//-- Multiplexor de 2 a 1, \n//-- de 2 bits\n\nreg [1:0] o;\n\nalways @(*) begin\n case(sel)\n 0: o = i0;\n 1: o = i1;\n default: o = i0;\n endcase\nend\n\n", - "params": [], - "ports": { - "in": [ - { - "name": "i1", - "range": "[1:0]", - "size": 2 - }, - { - "name": "i0", - "range": "[1:0]", - "size": 2 - }, - { - "name": "sel" - } - ], - "out": [ - { - "name": "o", - "range": "[1:0]", - "size": 2 - } - ] - } + "source": { + "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", + "port": "out" }, - "position": { - "x": -464, - "y": -104 + "target": { + "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", + "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" }, - "size": { - "width": 304, - "height": 272 + "vertices": [ + { + "x": 640, + "y": 664 + } + ] + }, + { + "source": { + "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", + "port": "out" + }, + "target": { + "block": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" } - } - ], - "wires": [ + }, { "source": { - "block": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", + "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", "port": "out" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "sel" + "block": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", + "port": "4196184b-4a60-493b-bcc6-c95958483683" } }, { "source": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "o" + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "ca28abaf-359d-4f8f-a397-91d76dc936ec", + "block": "453471d0-fe0d-4cbf-a4df-411b6035dd44", "port": "in" - }, - "size": 2 + } }, { "source": { - "block": "d220e4a2-bec7-4852-84bd-2baf3df5ccdb", - "port": "out" + "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", + "port": "7a982450-c842-4aa2-8e77-43cc628266e0" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i1" + "block": "088c7d8e-99b1-4f2e-a6c0-a672e5239844", + "port": "in" }, + "vertices": [ + { + "x": 1048, + "y": 760 + } + ], "size": 2 }, { "source": { - "block": "8197e6c5-cf9d-42d6-a9e9-3ecccafa27c2", + "block": "8a0d51b6-8ab0-4ca6-8d57-7fa7e713c738", "port": "out" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i0" + "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", + "port": "4cafbdca-bdb2-421a-a742-f5de7a452c86" }, + "vertices": [ + { + "x": 616, + "y": 616 + } + ], "size": 2 } ] } } }, - "945d5c43e22d4f1d3f8e379417d47f170e4adcf6": { + "b82ff1ae5d4441d6da2bec090398f0eb86405bf4": { "package": { - "name": "Valor_2_2bits", - "version": "0.0.1", - "description": "Valor constante 2 para bus de 2 bits", - "author": "Juan Gonzalez-Gomez (Obijuan)", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22138.81%22%20height=%22305.779%22%20viewBox=%220%200%20130.13472%20286.66758%22%3E%3Cg%20font-weight=%22400%22%20font-family=%22Ubuntu%20Mono%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-size=%22335.399%22%20fill=%22green%22%20transform=%22translate(-312.233%20-436.037)%22%3E%3Ctspan%20x=%22293.115%22%20y=%22648.344%22%3E2%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22341.722%22%20y=%22721.624%22%20font-size=%2283.077%22%20transform=%22translate(-312.233%20-436.037)%22%3E%3Ctspan%20x=%22341.722%22%20y=%22721.624%22%3E10%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" + "name": "Contador-2bits-up-rst-mod-M", + "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": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", - "type": "basic.output", + "id": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "type": "basic.input", "data": { - "name": "k", - "range": "[1:0]", - "size": 2 + "name": "", + "clock": true }, "position": { - "x": 928, - "y": 256 + "x": 240, + "y": 168 } }, { - "id": "ad7918eb-22dd-4b6c-949f-e428f5a55530", - "type": "basic.constant", + "id": "7a982450-c842-4aa2-8e77-43cc628266e0", + "type": "basic.output", "data": { "name": "", - "value": "2", - "local": true + "range": "[1:0]", + "size": 2 }, "position": { - "x": 728, - "y": 144 + "x": 800, + "y": 200 } }, { - "id": "ca6198dd-3208-49f0-8089-7a221c78637d", - "type": "1577535d38e0077281a8de7dc00933b07ec4f543", - "position": { - "x": 728, - "y": 256 + "id": "743b5299-2d89-4783-b7c9-12a5b36df406", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": 240, + "y": 240 } - } - ], - "wires": [ - { - "source": { - "block": "ca6198dd-3208-49f0-8089-7a221c78637d", - "port": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26" - }, - "target": { - "block": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", - "port": "in" - }, - "size": 2 }, { - "source": { - "block": "ad7918eb-22dd-4b6c-949f-e428f5a55530", - "port": "constant-out" + "id": "4cafbdca-bdb2-421a-a742-f5de7a452c86", + "type": "basic.input", + "data": { + "name": "mod", + "range": "[1:0]", + "clock": false, + "size": 2 }, - "target": { - "block": "ca6198dd-3208-49f0-8089-7a221c78637d", - "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" + "position": { + "x": 240, + "y": 312 } - } - ] - } - } - }, - "1577535d38e0077281a8de7dc00933b07ec4f543": { - "package": { - "name": "Constante-2bits", - "version": "0.0.1", - "description": "Valor genérico constante, de 2 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=%22145.608%22%20height=%22247.927%22%20viewBox=%220%200%20136.50729%20232.43134%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-weight=%22400%22%20font-size=%22335.399%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%3Ek%3C/tspan%3E%3C/text%3E%3C/svg%3E" - }, - "design": { - "graph": { - "blocks": [ + }, { - "id": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26", + "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", "type": "basic.output", "data": { - "name": "k", - "range": "[1:0]", - "size": 2 + "name": "ov" }, "position": { - "x": 960, - "y": 248 + "x": 800, + "y": 352 } }, { - "id": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", - "type": "basic.constant", + "id": "26aba23f-8567-4e9b-bd45-c26724030f33", + "type": "basic.input", "data": { - "name": "", - "value": "0", - "local": false + "name": "cnt", + "clock": false }, "position": { - "x": 728, - "y": 112 + "x": 240, + "y": 384 } }, { - "id": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", + "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", "type": "basic.code", "data": { - "code": "assign k = VALUE;", - "params": [ - { - "name": "VALUE" - } - ], + "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 == mod);\n ", + "params": [], "ports": { - "in": [], + "in": [ + { + "name": "clk" + }, + { + "name": "rst" + }, + { + "name": "mod", + "range": "[1:0]", + "size": 2 + }, + { + "name": "cnt" + } + ], "out": [ { - "name": "k", + "name": "q", "range": "[1:0]", "size": 2 + }, + { + "name": "ov" } ] } }, "position": { - "x": 672, - "y": 248 + "x": 408, + "y": 160 }, "size": { - "width": 208, - "height": 64 + "width": 336, + "height": 296 } } ], "wires": [ { "source": { - "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", - "port": "k" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "q" }, "target": { - "block": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26", + "block": "7a982450-c842-4aa2-8e77-43cc628266e0", "port": "in" }, "size": 2 }, { "source": { - "block": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", - "port": "constant-out" + "block": "743b5299-2d89-4783-b7c9-12a5b36df406", + "port": "out" }, "target": { - "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", - "port": "VALUE" - } - } - ] - } - } - }, - "ceff2da3577d3e4da3ad522a234b993cfc71e21a": { - "package": { - "name": "Valor_3_2bits", - "version": "0.0.1", - "description": "Valor constante 3 para bus de 2 bits", - "author": "Juan Gonzalez-Gomez (Obijuan)", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22137.022%22%20height=%22304.627%22%20viewBox=%220%200%20128.45774%20285.58757%22%3E%3Cg%20font-weight=%22400%22%20font-family=%22Ubuntu%20Mono%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-size=%22335.399%22%20fill=%22green%22%20transform=%22translate(-312.904%20-436.037)%22%3E%3Ctspan%20x=%22293.115%22%20y=%22648.344%22%3E3%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22341.722%22%20y=%22721.624%22%20font-size=%2283.077%22%20transform=%22translate(-312.904%20-436.037)%22%3E%3Ctspan%20x=%22341.722%22%20y=%22721.624%22%3E11%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" - }, - "design": { - "graph": { - "blocks": [ - { - "id": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", - "type": "basic.output", - "data": { - "name": "k", - "range": "[1:0]", - "size": 2 - }, - "position": { - "x": 928, - "y": 256 + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "rst" } }, { - "id": "ad7918eb-22dd-4b6c-949f-e428f5a55530", - "type": "basic.constant", - "data": { - "name": "", - "value": "3", - "local": true + "source": { + "block": "26aba23f-8567-4e9b-bd45-c26724030f33", + "port": "out" }, - "position": { - "x": 728, - "y": 152 + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "cnt" } }, { - "id": "cfb4d1d2-7686-45c7-9af0-0293f03a9881", - "type": "1577535d38e0077281a8de7dc00933b07ec4f543", - "position": { - "x": 728, - "y": 256 + "source": { + "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "port": "out" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "clk" } - } - ], - "wires": [ + }, { "source": { - "block": "cfb4d1d2-7686-45c7-9af0-0293f03a9881", - "port": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "ov" }, "target": { - "block": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", + "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", "port": "in" - }, - "size": 2 + } }, { "source": { - "block": "ad7918eb-22dd-4b6c-949f-e428f5a55530", - "port": "constant-out" + "block": "4cafbdca-bdb2-421a-a742-f5de7a452c86", + "port": "out" }, "target": { - "block": "cfb4d1d2-7686-45c7-9af0-0293f03a9881", - "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" - } + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "mod" + }, + "size": 2 } ] } } }, - "a475867b1a8ac28299ed315b271747ba4ec10c54": { + "56cc183f8c704107b94d882715f6e43592dcaf61": { "package": { - "name": "mi-tabla2-2", - "version": "0.1", - "description": "Circuito combinacional de 2 entradas y 2 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=%22268.594%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=%22268.594%22%20y=%22368.911%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%20font-size=%2270%22%3EBIN%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" + "name": "Mux 4 a 1 de 8 bits", + "version": "0.0.1", + "description": "Multiplexor de 4 a 1 de 8 bits", + "author": "Juan Gonzalez-Gomez (obijuan)", + "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": "186c4116-7846-4c8e-98a0-7376675105f1", + "id": "fbc03b1e-bcb0-42b2-9b09-33968aa35d0f", "type": "basic.input", "data": { - "name": "", - "range": "[1:0]", + "name": "i3", + "range": "[7:0]", "clock": false, - "size": 2 + "size": 8 }, "position": { - "x": -8, - "y": 424 + "x": -712, + "y": -200 } }, { - "id": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", + "id": "350946d5-2f29-4190-bcf2-e14e17224bb4", + "type": "basic.input", + "data": { + "name": "i2", + "range": "[7:0]", + "clock": false, + "size": 8 + }, + "position": { + "x": -712, + "y": -128 + } + }, + { + "id": "bc9544e0-2199-4d6a-a6b9-6550b7dd7633", + "type": "basic.input", + "data": { + "name": "i1", + "range": "[7:0]", + "clock": false, + "size": 8 + }, + "position": { + "x": -712, + "y": -48 + } + }, + { + "id": "820e19c9-d979-418f-b2e5-d806fa3caca3", "type": "basic.output", "data": { - "name": "", - "range": "[1:0]", - "size": 2 + "name": "o", + "range": "[7:0]", + "size": 8 }, "position": { - "x": 632, - "y": 424 + "x": 0, + "y": -8 } }, { - "id": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", - "type": "basic.memory", + "id": "1f4c1c55-ee75-41d6-8590-b4e650d636cc", + "type": "basic.input", "data": { - "name": "", - "list": "0\n0\n0\n0", - "local": false + "name": "i0", + "range": "[7:0]", + "clock": false, + "size": 8 }, "position": { - "x": 328, - "y": 96 + "x": -712, + "y": 16 + } + }, + { + "id": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", + "type": "basic.input", + "data": { + "name": "sel1", + "clock": false }, - "size": { - "width": 96, - "height": 104 + "position": { + "x": -704, + "y": 112 } }, { - "id": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "id": "2cd7e8ed-1ed2-4a5c-a72a-337d703c9712", + "type": "basic.input", + "data": { + "name": "sel0", + "clock": false + }, + "position": { + "x": -704, + "y": 176 + } + }, + { + "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", "type": "basic.code", "data": { - "code": "\n//-- Bits del bus de entrada\nlocalparam N = 2;\n\n//-- Bits del bus de salida\nlocalparam M = 2;\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) $readmemb(DATA, tabla);\nend", - "params": [ - { - "name": "DATA" - } - ], + "code": "//-- Multiplexor de 4 a 1, \n//-- de 8 bits\n\nwire [1:0] sel = {s1, s0};\n\nassign o = (sel == 2'b00) ? i0 :\n (sel == 2'b01) ? i1 :\n (sel == 2'b10) ? i2 : i3;\n\n", + "params": [], "ports": { "in": [ { - "name": "i", - "range": "[1:0]", - "size": 2 + "name": "i3", + "range": "[7:0]", + "size": 8 + }, + { + "name": "i2", + "range": "[7:0]", + "size": 8 + }, + { + "name": "i1", + "range": "[7:0]", + "size": 8 + }, + { + "name": "i0", + "range": "[7:0]", + "size": 8 + }, + { + "name": "s1" + }, + { + "name": "s0" } ], "out": [ { - "name": "q", - "range": "[1:0]", - "size": 2 + "name": "o", + "range": "[7:0]", + "size": 8 } ] } }, "position": { - "x": 176, - "y": 264 + "x": -464, + "y": -104 }, "size": { - "width": 392, - "height": 384 + "width": 352, + "height": 256 } } ], "wires": [ { "source": { - "block": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", - "port": "memory-out" + "block": "2cd7e8ed-1ed2-4a5c-a72a-337d703c9712", + "port": "out" }, "target": { - "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", - "port": "DATA" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "s0" } }, { "source": { - "block": "186c4116-7846-4c8e-98a0-7376675105f1", + "block": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", "port": "out" }, "target": { - "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", - "port": "i" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "s1" }, - "size": 2 + "vertices": [ + { + "x": -520, + "y": 104 + } + ] }, { "source": { - "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", - "port": "q" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "o" }, "target": { - "block": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", + "block": "820e19c9-d979-418f-b2e5-d806fa3caca3", "port": "in" }, - "size": 2 + "size": 8 + }, + { + "source": { + "block": "1f4c1c55-ee75-41d6-8590-b4e650d636cc", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i0" + }, + "size": 8 + }, + { + "source": { + "block": "bc9544e0-2199-4d6a-a6b9-6550b7dd7633", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i1" + }, + "vertices": [ + { + "x": -576, + "y": 0 + } + ], + "size": 8 + }, + { + "source": { + "block": "350946d5-2f29-4190-bcf2-e14e17224bb4", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i2" + }, + "vertices": [ + { + "x": -576, + "y": -72 + } + ], + "size": 8 + }, + { + "source": { + "block": "fbc03b1e-bcb0-42b2-9b09-33968aa35d0f", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i3" + }, + "vertices": [ + { + "x": -544, + "y": -128 + } + ], + "size": 8 } ] } } }, - "359a555a147b0afd9d84e4a720ec84b7cdfbc034": { + "eebee1482748e838ffef3618817cc1fa911e4952": { "package": { - "name": "Mux 2 a 1 de 8 bits", + "name": "Mux 2 a 1 de 2 bits", "version": "0.0.1", - "description": "Multiplexor de 2 a 1 de 8 bits", + "description": "Multiplexor de 2 a 1 de 2 bits", "author": "Juan Gonzalez-Gomez (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" }, @@ -11059,13 +11022,13 @@ "graph": { "blocks": [ { - "id": "9f5a1c91-1b93-4609-877c-816ed8fd0871", + "id": "d220e4a2-bec7-4852-84bd-2baf3df5ccdb", "type": "basic.input", "data": { "name": "i1", - "range": "[7:0]", + "range": "[1:0]", "clock": false, - "size": 8 + "size": 2 }, "position": { "x": -704, @@ -11073,29 +11036,29 @@ } }, { - "id": "325fbba1-e929-4921-a644-95f918e6e4ee", - "type": "basic.input", + "id": "ca28abaf-359d-4f8f-a397-91d76dc936ec", + "type": "basic.output", "data": { - "name": "i0", - "range": "[7:0]", - "clock": false, - "size": 8 + "name": "o", + "range": "[1:0]", + "size": 2 }, "position": { - "x": -704, + "x": -48, "y": 0 } }, { - "id": "bf25756a-65a4-4b09-915d-494010d6f4ff", - "type": "basic.output", + "id": "8197e6c5-cf9d-42d6-a9e9-3ecccafa27c2", + "type": "basic.input", "data": { - "name": "o", - "range": "[7:0]", - "size": 8 + "name": "i0", + "range": "[1:0]", + "clock": false, + "size": 2 }, "position": { - "x": -48, + "x": -704, "y": 0 } }, @@ -11115,19 +11078,19 @@ "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", "type": "basic.code", "data": { - "code": "//-- Multiplexor de 2 a 1, \n//-- de 8 bits\n\nreg [7:0] o;\n\nalways @(*) begin\n case(sel)\n 0: o = i0;\n 1: o = i1;\n default: o = i0;\n endcase\nend\n\n", + "code": "//-- Multiplexor de 2 a 1, \n//-- de 2 bits\n\nreg [1:0] o;\n\nalways @(*) begin\n case(sel)\n 0: o = i0;\n 1: o = i1;\n default: o = i0;\n endcase\nend\n\n", "params": [], "ports": { "in": [ { "name": "i1", - "range": "[7:0]", - "size": 8 + "range": "[1:0]", + "size": 2 }, { "name": "i0", - "range": "[7:0]", - "size": 8 + "range": "[1:0]", + "size": 2 }, { "name": "sel" @@ -11136,8 +11099,8 @@ "out": [ { "name": "o", - "range": "[7:0]", - "size": 8 + "range": "[1:0]", + "size": 2 } ] } @@ -11165,121 +11128,163 @@ }, { "source": { - "block": "325fbba1-e929-4921-a644-95f918e6e4ee", + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "o" + }, + "target": { + "block": "ca28abaf-359d-4f8f-a397-91d76dc936ec", + "port": "in" + }, + "size": 2 + }, + { + "source": { + "block": "d220e4a2-bec7-4852-84bd-2baf3df5ccdb", "port": "out" }, "target": { "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i0" + "port": "i1" }, - "size": 8 + "size": 2 }, { "source": { - "block": "9f5a1c91-1b93-4609-877c-816ed8fd0871", + "block": "8197e6c5-cf9d-42d6-a9e9-3ecccafa27c2", "port": "out" }, "target": { "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i1" + "port": "i0" }, - "size": 8 + "size": 2 + } + ] + } + } + }, + "945d5c43e22d4f1d3f8e379417d47f170e4adcf6": { + "package": { + "name": "Valor_2_2bits", + "version": "0.0.1", + "description": "Valor constante 2 para bus de 2 bits", + "author": "Juan Gonzalez-Gomez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22138.81%22%20height=%22305.779%22%20viewBox=%220%200%20130.13472%20286.66758%22%3E%3Cg%20font-weight=%22400%22%20font-family=%22Ubuntu%20Mono%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-size=%22335.399%22%20fill=%22green%22%20transform=%22translate(-312.233%20-436.037)%22%3E%3Ctspan%20x=%22293.115%22%20y=%22648.344%22%3E2%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22341.722%22%20y=%22721.624%22%20font-size=%2283.077%22%20transform=%22translate(-312.233%20-436.037)%22%3E%3Ctspan%20x=%22341.722%22%20y=%22721.624%22%3E10%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", + "type": "basic.output", + "data": { + "name": "k", + "range": "[1:0]", + "size": 2 + }, + "position": { + "x": 928, + "y": 256 + } + }, + { + "id": "ad7918eb-22dd-4b6c-949f-e428f5a55530", + "type": "basic.constant", + "data": { + "name": "", + "value": "2", + "local": true + }, + "position": { + "x": 728, + "y": 144 + } + }, + { + "id": "ca6198dd-3208-49f0-8089-7a221c78637d", + "type": "1577535d38e0077281a8de7dc00933b07ec4f543", + "position": { + "x": 728, + "y": 256 + }, + "size": { + "width": 96, + "height": 64 + } + } + ], + "wires": [ + { + "source": { + "block": "ca6198dd-3208-49f0-8089-7a221c78637d", + "port": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26" + }, + "target": { + "block": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", + "port": "in" + }, + "size": 2 }, { "source": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "o" + "block": "ad7918eb-22dd-4b6c-949f-e428f5a55530", + "port": "constant-out" }, "target": { - "block": "bf25756a-65a4-4b09-915d-494010d6f4ff", - "port": "in" - }, - "size": 8 + "block": "ca6198dd-3208-49f0-8089-7a221c78637d", + "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" + } } ] } } }, - "d9a3cf565602d237c50136543d558affa15c7654": { + "ceff2da3577d3e4da3ad522a234b993cfc71e21a": { "package": { - "name": "Igual-1-op", - "version": "0.1", - "description": "Comparador de igualdad, de un operando de 3 bits", + "name": "Valor_3_2bits", + "version": "0.0.1", + "description": "Valor constante 3 para bus de 2 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" + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22137.022%22%20height=%22304.627%22%20viewBox=%220%200%20128.45774%20285.58757%22%3E%3Cg%20font-weight=%22400%22%20font-family=%22Ubuntu%20Mono%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-size=%22335.399%22%20fill=%22green%22%20transform=%22translate(-312.904%20-436.037)%22%3E%3Ctspan%20x=%22293.115%22%20y=%22648.344%22%3E3%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22341.722%22%20y=%22721.624%22%20font-size=%2283.077%22%20transform=%22translate(-312.904%20-436.037)%22%3E%3Ctspan%20x=%22341.722%22%20y=%22721.624%22%3E11%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" }, "design": { "graph": { "blocks": [ { - "id": "0344dacc-8583-456b-b377-8cb4ab97cf94", + "id": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", "type": "basic.output", "data": { - "name": "" - }, - "position": { - "x": 616, - "y": 160 - } - }, - { - "id": "0867b1bc-1cc5-4707-8ddb-40d0318d237c", - "type": "basic.input", - "data": { - "name": "", - "range": "[2:0]", - "clock": false, - "size": 3 + "name": "k", + "range": "[1:0]", + "size": 2 }, "position": { - "x": 152, - "y": 160 + "x": 928, + "y": 256 } }, { - "id": "437fac17-b8b4-4d9f-8d03-27300b3b9466", + "id": "ad7918eb-22dd-4b6c-949f-e428f5a55530", "type": "basic.constant", "data": { "name": "", - "value": "0", - "local": false + "value": "3", + "local": true }, "position": { - "x": 408, - "y": 48 + "x": 728, + "y": 152 } }, { - "id": "9c811723-c900-4ceb-9989-036b071ee3fe", - "type": "basic.code", - "data": { - "code": "assign eq = (a == B);", - "params": [ - { - "name": "B" - } - ], - "ports": { - "in": [ - { - "name": "a", - "range": "[2:0]", - "size": 3 - } - ], - "out": [ - { - "name": "eq" - } - ] - } - }, + "id": "cfb4d1d2-7686-45c7-9af0-0293f03a9881", + "type": "1577535d38e0077281a8de7dc00933b07ec4f543", "position": { - "x": 344, - "y": 160 + "x": 728, + "y": 256 }, "size": { - "width": 224, + "width": 96, "height": 64 } } @@ -11287,46 +11292,36 @@ "wires": [ { "source": { - "block": "9c811723-c900-4ceb-9989-036b071ee3fe", - "port": "eq" + "block": "cfb4d1d2-7686-45c7-9af0-0293f03a9881", + "port": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26" }, "target": { - "block": "0344dacc-8583-456b-b377-8cb4ab97cf94", + "block": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", "port": "in" - } - }, - { - "source": { - "block": "0867b1bc-1cc5-4707-8ddb-40d0318d237c", - "port": "out" - }, - "target": { - "block": "9c811723-c900-4ceb-9989-036b071ee3fe", - "port": "a" }, - "size": 3 + "size": 2 }, { "source": { - "block": "437fac17-b8b4-4d9f-8d03-27300b3b9466", + "block": "ad7918eb-22dd-4b6c-949f-e428f5a55530", "port": "constant-out" }, "target": { - "block": "9c811723-c900-4ceb-9989-036b071ee3fe", - "port": "B" + "block": "cfb4d1d2-7686-45c7-9af0-0293f03a9881", + "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" } } ] } } }, - "fbbede7f059cd50db81d1e80b2e575ed877c91a0": { + "a475867b1a8ac28299ed315b271747ba4ec10c54": { "package": { - "name": "mi-tabla2-8", + "name": "mi-tabla2-2", "version": "0.1", - "description": "Circuito combinacional de 2 entradas y 8 salidas", + "description": "Circuito combinacional de 2 entradas y 2 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" + "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=%22268.594%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=%22268.594%22%20y=%22368.911%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%20font-size=%2270%22%3EBIN%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" }, "design": { "graph": { @@ -11350,8 +11345,8 @@ "type": "basic.output", "data": { "name": "", - "range": "[7:0]", - "size": 8 + "range": "[1:0]", + "size": 2 }, "position": { "x": 632, @@ -11379,7 +11374,7 @@ "id": "48c38eba-4e12-44d9-a55b-a93def6a27db", "type": "basic.code", "data": { - "code": "\n//-- Bits del bus de entrada\nlocalparam N = 2;\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", + "code": "\n//-- Bits del bus de entrada\nlocalparam N = 2;\n\n//-- Bits del bus de salida\nlocalparam M = 2;\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) $readmemb(DATA, tabla);\nend", "params": [ { "name": "DATA" @@ -11396,8 +11391,8 @@ "out": [ { "name": "q", - "range": "[7:0]", - "size": 8 + "range": "[1:0]", + "size": 2 } ] } @@ -11443,308 +11438,409 @@ "block": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", "port": "in" }, - "size": 8 + "size": 2 } ] } } }, - "18fd28fbb97a4fd982053988e015aa934dcd6014": { + "359a555a147b0afd9d84e4a720ec84b7cdfbc034": { "package": { - "name": "Valor_0_2bits", + "name": "Mux 2 a 1 de 8 bits", "version": "0.0.1", - "description": "Valor constante 0 para bus de 2 bits", - "author": "Juan Gonzalez-Gomez (Obijuan)", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22145.966%22%20height=%22305.779%22%20viewBox=%220%200%20136.8427%20286.66758%22%3E%3Cg%20font-weight=%22400%22%20font-family=%22Ubuntu%20Mono%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-size=%22335.399%22%20fill=%22green%22%20transform=%22translate(-308.544%20-436.037)%22%3E%3Ctspan%20x=%22293.115%22%20y=%22648.344%22%3E0%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22341.722%22%20y=%22721.624%22%20font-size=%2283.077%22%20transform=%22translate(-308.544%20-436.037)%22%3E%3Ctspan%20x=%22341.722%22%20y=%22721.624%22%3E00%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" + "description": "Multiplexor de 2 a 1 de 8 bits", + "author": "Juan Gonzalez-Gomez (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" }, "design": { "graph": { "blocks": [ { - "id": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", + "id": "9f5a1c91-1b93-4609-877c-816ed8fd0871", + "type": "basic.input", + "data": { + "name": "i1", + "range": "[7:0]", + "clock": false, + "size": 8 + }, + "position": { + "x": -704, + "y": -88 + } + }, + { + "id": "325fbba1-e929-4921-a644-95f918e6e4ee", + "type": "basic.input", + "data": { + "name": "i0", + "range": "[7:0]", + "clock": false, + "size": 8 + }, + "position": { + "x": -704, + "y": 0 + } + }, + { + "id": "bf25756a-65a4-4b09-915d-494010d6f4ff", "type": "basic.output", "data": { - "name": "k", - "range": "[1:0]", - "size": 2 + "name": "o", + "range": "[7:0]", + "size": 8 }, "position": { - "x": 928, - "y": 256 + "x": -48, + "y": 0 } }, { - "id": "ad7918eb-22dd-4b6c-949f-e428f5a55530", - "type": "basic.constant", + "id": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", + "type": "basic.input", "data": { - "name": "", - "value": "0", - "local": true + "name": "sel", + "clock": false + }, + "position": { + "x": -704, + "y": 88 + } + }, + { + "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "type": "basic.code", + "data": { + "code": "//-- Multiplexor de 2 a 1, \n//-- de 8 bits\n\nreg [7:0] o;\n\nalways @(*) begin\n case(sel)\n 0: o = i0;\n 1: o = i1;\n default: o = i0;\n endcase\nend\n\n", + "params": [], + "ports": { + "in": [ + { + "name": "i1", + "range": "[7:0]", + "size": 8 + }, + { + "name": "i0", + "range": "[7:0]", + "size": 8 + }, + { + "name": "sel" + } + ], + "out": [ + { + "name": "o", + "range": "[7:0]", + "size": 8 + } + ] + } + }, + "position": { + "x": -464, + "y": -104 + }, + "size": { + "width": 304, + "height": 272 + } + } + ], + "wires": [ + { + "source": { + "block": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "sel" + } + }, + { + "source": { + "block": "325fbba1-e929-4921-a644-95f918e6e4ee", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i0" }, - "position": { - "x": 728, - "y": 136 - } + "size": 8 }, - { - "id": "ae9e32fe-296d-4700-a429-1178ece2609d", - "type": "1577535d38e0077281a8de7dc00933b07ec4f543", - "position": { - "x": 728, - "y": 256 - }, - "size": { - "width": 96, - "height": 64 - } - } - ], - "wires": [ { "source": { - "block": "ae9e32fe-296d-4700-a429-1178ece2609d", - "port": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26" + "block": "9f5a1c91-1b93-4609-877c-816ed8fd0871", + "port": "out" }, "target": { - "block": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", - "port": "in" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i1" }, - "size": 2 + "size": 8 }, { "source": { - "block": "ad7918eb-22dd-4b6c-949f-e428f5a55530", - "port": "constant-out" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "o" }, "target": { - "block": "ae9e32fe-296d-4700-a429-1178ece2609d", - "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" - } + "block": "bf25756a-65a4-4b09-915d-494010d6f4ff", + "port": "in" + }, + "size": 8 } ] } } }, - "73403c45b7d6c8a2f38a63b138254c4d2f2449b1": { + "d9a3cf565602d237c50136543d558affa15c7654": { "package": { - "name": "Separador-bus", + "name": "Igual-1-op", "version": "0.1", - "description": "Separador de bus de 8-bits en buses de 4 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" + "description": "Comparador de igualdad, de un operando 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": "bdc69e70-a23c-4f1b-99df-3cf0ed126746", + "id": "0344dacc-8583-456b-b377-8cb4ab97cf94", "type": "basic.output", "data": { - "name": "o1", - "range": "[3:0]", - "size": 4 + "name": "" }, "position": { - "x": 584, - "y": 144 + "x": 616, + "y": 160 } }, { - "id": "1f5c81aa-ebb1-4cd7-87fd-b9092de9a34f", + "id": "0867b1bc-1cc5-4707-8ddb-40d0318d237c", "type": "basic.input", "data": { - "name": "i", - "range": "[7:0]", + "name": "", + "range": "[2:0]", "clock": false, - "size": 8 + "size": 3 }, "position": { - "x": 120, - "y": 200 + "x": 152, + "y": 160 } }, { - "id": "e91fbbe5-8055-4686-9ff0-2894026e8306", - "type": "basic.output", + "id": "437fac17-b8b4-4d9f-8d03-27300b3b9466", + "type": "basic.constant", "data": { - "name": "o0", - "range": "[3:0]", - "size": 4 + "name": "", + "value": "0", + "local": false }, "position": { - "x": 584, - "y": 272 + "x": 408, + "y": 48 } }, { - "id": "16e78204-213e-4833-9096-89d735307ec2", + "id": "9c811723-c900-4ceb-9989-036b071ee3fe", "type": "basic.code", "data": { - "code": "assign o1 = i[7:4];\nassign o0 = i[3:0];", - "params": [], + "code": "assign eq = (a == B);", + "params": [ + { + "name": "B" + } + ], "ports": { "in": [ { - "name": "i", - "range": "[7:0]", - "size": 8 + "name": "a", + "range": "[2:0]", + "size": 3 } ], "out": [ { - "name": "o1", - "range": "[3:0]", - "size": 4 - }, - { - "name": "o0", - "range": "[3:0]", - "size": 4 + "name": "eq" } ] } }, "position": { - "x": 296, - "y": 176 + "x": 344, + "y": 160 }, "size": { - "width": 208, - "height": 112 + "width": 224, + "height": 64 } } ], "wires": [ { "source": { - "block": "16e78204-213e-4833-9096-89d735307ec2", - "port": "o1" + "block": "9c811723-c900-4ceb-9989-036b071ee3fe", + "port": "eq" }, "target": { - "block": "bdc69e70-a23c-4f1b-99df-3cf0ed126746", + "block": "0344dacc-8583-456b-b377-8cb4ab97cf94", "port": "in" - }, - "size": 4 + } }, { "source": { - "block": "16e78204-213e-4833-9096-89d735307ec2", - "port": "o0" + "block": "0867b1bc-1cc5-4707-8ddb-40d0318d237c", + "port": "out" }, "target": { - "block": "e91fbbe5-8055-4686-9ff0-2894026e8306", - "port": "in" + "block": "9c811723-c900-4ceb-9989-036b071ee3fe", + "port": "a" }, - "size": 4 + "size": 3 }, { "source": { - "block": "1f5c81aa-ebb1-4cd7-87fd-b9092de9a34f", - "port": "out" + "block": "437fac17-b8b4-4d9f-8d03-27300b3b9466", + "port": "constant-out" }, "target": { - "block": "16e78204-213e-4833-9096-89d735307ec2", - "port": "i" - }, - "size": 8 + "block": "9c811723-c900-4ceb-9989-036b071ee3fe", + "port": "B" + } } ] } } }, - "7b4337a92f7f91647ae69eb13d0d79ec07b1c53c": { + "fbbede7f059cd50db81d1e80b2e575ed877c91a0": { "package": { - "name": "DisplayHEX", + "name": "mi-tabla2-8", "version": "0.1", - "description": "DisplayHEX. Decodificador de binario a hexadecimal-7 segmentos. Cátodo común", - "author": "Juan González-Gómez (Obijuan)", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22165.784%22%20height=%22222.76%22%20viewBox=%220%200%2043.863567%2058.938523%22%3E%3Crect%20width=%2242.906%22%20height=%2257.981%22%20x=%226.108%22%20y=%22-145.921%22%20ry=%22.555%22%20fill=%22#8a7a7a%22%20stroke=%22#000%22%20stroke-width=%22.958%22%20stroke-linejoin=%22round%22%20transform=%22translate(-5.63%20146.4)%22/%3E%3Cg%20transform=%22translate(-5.63%20146.4)%22%3E%3Cpath%20d=%22M14.12-121.766c-.188-.61%202.966-16.632%203.196-16.837.23-.204%201.125-.742%201.355-.716.23.026%202.916%202.968%203.018%203.3.102.333-2.318%2014.76-2.557%2015.148-.18.292-1.765%201.97-2.353%201.92-.588-.052-2.471-2.204-2.66-2.815zM19.592-139.652l2.276%202.764%2016.007-.18s3.708-2.814%203.478-3.454c-.23-.64-1.177-1.1-1.177-1.1s-18.027-.128-18.999.205c-.971.332-1.687%201.049-1.687%201.28%200%20.23.102.485.102.485zM35.86-120.476c-.319-.835%202.55-15.94%202.694-16.193.145-.253%203.2-2.696%203.67-2.642.47.055%201.32.742%201.447%201.122.127.38-2.44%2016.428-2.604%2016.808-.162.38-2.404%202.57-3.001%202.624-.597.054-1.887-.884-2.206-1.719zM19.84-120.367c.718-.191%2014.133-.158%2014.818-.008.684.15%202.143%201.512%202.169%202.344.025.832-1.509%201.868-2.123%202.252-.613.384-14.626.333-15.086.102-.46-.23-2.302-1.919-2.302-2.482%200-.563%201.806-2.018%202.524-2.209zM12.893-114.857c.344-.682%202.684-2.508%203.4-2.534.716-.025%201.586%201.1%201.688%201.69.102.588-2.685%2016.682-3.068%2017.296-.384.614-2.813%202.815-3.427%202.84-.614.026-1.687-1.228-1.764-1.842-.077-.614%202.826-16.769%203.17-17.45zM15.756-98.2c.939-.44%2016.037-.55%2016.596-.307.558.243%202.608%202.2%202.66%202.994.05.793-1.382%201.867-1.97%201.97-.588.102-19.51.716-20.047.384-.537-.333-1.074-.998-1.125-1.459-.051-.46%202.948-3.142%203.886-3.582zM32.53-99.966c-.35-1.035%202.336-14.684%202.553-15.118.217-.435%201.49-2.029%202.314-1.954.824.074%202.17%201.592%202.423%202.28.253.687-1.829%2018.785-3.313%2018.83-1.484.043-3.625-3.002-3.976-4.038z%22%20fill=%22red%22%20stroke=%22#000%22%20stroke-width=%22.958%22/%3E%3Cellipse%20cx=%2243.78%22%20cy=%22-97.407%22%20rx=%222.875%22%20ry=%222.877%22%20fill=%22red%22%20stroke=%22#000%22%20stroke-width=%22.958%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20style=%22line-height:1.25%22%20x=%22100.815%22%20y=%22242.206%22%20font-weight=%22400%22%20font-size=%2210.583%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20stroke-width=%22.265%22/%3E%3Ctext%20style=%22line-height:1.25%22%20x=%226.245%22%20y=%22-88.731%22%20font-weight=%22400%22%20font-size=%2213.108%22%20font-family=%22sans-serif%22%20letter-spacing=%220%22%20word-spacing=%220%22%20stroke-width=%22.328%22%3E%3Ctspan%20x=%226.245%22%20y=%22-88.731%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%20fill=%22#ff0%22%3EHEX%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" + "description": "Circuito combinacional de 2 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": "41c13e73-0b44-430e-94c9-a32415133ae4", + "id": "186c4116-7846-4c8e-98a0-7376675105f1", + "type": "basic.input", + "data": { + "name": "", + "range": "[1:0]", + "clock": false, + "size": 2 + }, + "position": { + "x": -8, + "y": 424 + } + }, + { + "id": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", "type": "basic.output", "data": { "name": "", - "range": "[6:0]", - "size": 7 + "range": "[7:0]", + "size": 8 }, "position": { - "x": 704, - "y": 360 + "x": 632, + "y": 424 } }, { - "id": "ad153a4b-fef0-423f-a84d-61a59c3283e5", - "type": "basic.input", + "id": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", + "type": "basic.memory", "data": { "name": "", - "range": "[3:0]", - "clock": false, - "size": 4 + "list": "0\n0\n0\n0", + "local": false }, "position": { - "x": 104, - "y": 360 + "x": 328, + "y": 96 + }, + "size": { + "width": 96, + "height": 104 } }, { - "id": "cdd743bb-3b27-43ef-88a6-f33405eb3e8d", + "id": "48c38eba-4e12-44d9-a55b-a93def6a27db", "type": "basic.code", "data": { - "code": "reg o;\n\nalways @(*) \nbegin\n\tcase(i)\n 4'h0: o = 7'b111_1110;\n 4'h1: o = 7'b011_0000;\n 4'h2: o = 7'b110_1101;\n 4'h3: o = 7'b111_1001;\n 4'h4: o = 7'b011_0011;\n 4'h5: o = 7'b101_1011;\n 4'h6: o = 7'b101_1111;\n 4'h7: o = 7'b111_0000;\n 4'h8: o = 7'b111_1111;\n 4'h9: o = 7'b111_1011;\n 4'hA: o = 7'b111_0111;\n 4'hB: o = 7'b001_1111;\n 4'hC: o = 7'b100_1110;\n 4'hD: o = 7'b011_1101;\n 4'HE: o = 7'b100_1111;\n 4'hF: o = 7'b100_0111;\n default: o = 7'b0000000;\n\tendcase\nend\n", - "params": [], + "code": "\n//-- Bits del bus de entrada\nlocalparam N = 2;\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": "[3:0]", - "size": 4 + "range": "[1:0]", + "size": 2 } ], "out": [ { - "name": "o", - "range": "[6:0]", - "size": 7 + "name": "q", + "range": "[7:0]", + "size": 8 } ] } }, "position": { - "x": 304, - "y": 200 + "x": 176, + "y": 264 }, "size": { - "width": 320, - "height": 376 + "width": 392, + "height": 384 } } ], "wires": [ { "source": { - "block": "cdd743bb-3b27-43ef-88a6-f33405eb3e8d", - "port": "o" + "block": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", + "port": "memory-out" }, "target": { - "block": "41c13e73-0b44-430e-94c9-a32415133ae4", - "port": "in" - }, - "size": 7 + "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "port": "DATA" + } }, { "source": { - "block": "ad153a4b-fef0-423f-a84d-61a59c3283e5", + "block": "186c4116-7846-4c8e-98a0-7376675105f1", "port": "out" }, "target": { - "block": "cdd743bb-3b27-43ef-88a6-f33405eb3e8d", + "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", "port": "i" }, - "size": 4 + "size": 2 + }, + { + "source": { + "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "port": "q" + }, + "target": { + "block": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", + "port": "in" + }, + "size": 8 } ] } diff --git a/examples/ADC/05-Potentiometer-8LEDs.ice b/examples/ADC/05-Potentiometer-8LEDs.ice index 6ad2d3f..5f893d8 100644 --- a/examples/ADC/05-Potentiometer-8LEDs.ice +++ b/examples/ADC/05-Potentiometer-8LEDs.ice @@ -8,7 +8,7 @@ "image": "" }, "design": { - "board": "icezum", + "board": "alhambra-ii", "graph": { "blocks": [ { @@ -20,7 +20,7 @@ { "index": "0", "name": "ADC_SDA", - "value": "90" + "value": "83" } ], "virtual": false, @@ -41,42 +41,42 @@ { "index": "7", "name": "LED7", - "value": "104" + "value": "37" }, { "index": "6", "name": "LED6", - "value": "102" + "value": "38" }, { "index": "5", "name": "LED5", - "value": "101" + "value": "39" }, { "index": "4", "name": "LED4", - "value": "99" + "value": "41" }, { "index": "3", "name": "LED3", - "value": "98" + "value": "42" }, { "index": "2", "name": "LED2", - "value": "97" + "value": "43" }, { "index": "1", "name": "LED1", - "value": "96" + "value": "44" }, { "index": "0", "name": "LED0", - "value": "95" + "value": "45" } ], "virtual": false @@ -95,7 +95,7 @@ { "index": "0", "name": "ADC_SCL", - "value": "91" + "value": "84" } ], "virtual": false @@ -194,18 +194,6 @@ "height": 56 } }, - { - "id": "1aa1089f-d81a-4699-a162-c100423720b6", - "type": "0851e7c0bc752c07a32e339ef30176e3180dca90", - "position": { - "x": -1872, - "y": -312 - }, - "size": { - "width": 96, - "height": 128 - } - }, { "id": "219023e3-d4b1-4ed0-9c5d-e93d6df062a3", "type": "18fd28fbb97a4fd982053988e015aa934dcd6014", @@ -305,6 +293,18 @@ "width": 96, "height": 64 } + }, + { + "id": "9468d208-35a9-4b0f-a3e3-c54b64c691e9", + "type": "fe216fc3f7e19209c184579380d23a46cb3ac1b5", + "position": { + "x": -1872, + "y": -312 + }, + "size": { + "width": 96, + "height": 128 + } } ], "wires": [ @@ -320,48 +320,40 @@ }, { "source": { - "block": "219023e3-d4b1-4ed0-9c5d-e93d6df062a3", - "port": "6a253ddf-22b2-43cd-ba6f-561bd1af6970" + "block": "12e199e8-a817-4636-ab6e-85bd44910b35", + "port": "1e587d7e-30ec-4f6e-80fc-87e0112770e1" }, "target": { - "block": "1aa1089f-d81a-4699-a162-c100423720b6", - "port": "09a84e89-0e4a-43cc-a5b9-6c8ac6ce5742" + "block": "e365c0d5-bc20-4479-9d50-ddc4217546af", + "port": "0681ff98-5f08-475e-bc4a-17e2dce312fd" }, - "size": 2 + "size": 3 }, { "source": { - "block": "6901f9c0-d7de-4616-ac84-4fd92cc1d12f", - "port": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c" + "block": "e365c0d5-bc20-4479-9d50-ddc4217546af", + "port": "3cfb6498-15fc-431f-ae55-2adeaf26434a" }, "target": { - "block": "1aa1089f-d81a-4699-a162-c100423720b6", - "port": "bfc6f0ec-0d3a-4caa-9d40-9f4e8f59f112" - } - }, - { - "source": { - "block": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a", - "port": "out" + "block": "139b7ca2-85c6-414a-80de-4e09e1a59ae7", + "port": "in" }, - "target": { - "block": "1aa1089f-d81a-4699-a162-c100423720b6", - "port": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a" - } + "size": 8 }, { "source": { - "block": "1aa1089f-d81a-4699-a162-c100423720b6", - "port": "43bc16ab-b91d-405c-bef0-887bd1a85fd7" + "block": "219023e3-d4b1-4ed0-9c5d-e93d6df062a3", + "port": "6a253ddf-22b2-43cd-ba6f-561bd1af6970" }, "target": { - "block": "43bc16ab-b91d-405c-bef0-887bd1a85fd7", - "port": "in" - } + "block": "9468d208-35a9-4b0f-a3e3-c54b64c691e9", + "port": "09a84e89-0e4a-43cc-a5b9-6c8ac6ce5742" + }, + "size": 2 }, { "source": { - "block": "1aa1089f-d81a-4699-a162-c100423720b6", + "block": "9468d208-35a9-4b0f-a3e3-c54b64c691e9", "port": "2dd424a5-e616-4505-8a89-4982cdd7539d" }, "target": { @@ -372,25 +364,33 @@ }, { "source": { - "block": "12e199e8-a817-4636-ab6e-85bd44910b35", - "port": "1e587d7e-30ec-4f6e-80fc-87e0112770e1" + "block": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a", + "port": "out" }, "target": { - "block": "e365c0d5-bc20-4479-9d50-ddc4217546af", - "port": "0681ff98-5f08-475e-bc4a-17e2dce312fd" - }, - "size": 3 + "block": "9468d208-35a9-4b0f-a3e3-c54b64c691e9", + "port": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a" + } }, { "source": { - "block": "e365c0d5-bc20-4479-9d50-ddc4217546af", - "port": "3cfb6498-15fc-431f-ae55-2adeaf26434a" + "block": "9468d208-35a9-4b0f-a3e3-c54b64c691e9", + "port": "43bc16ab-b91d-405c-bef0-887bd1a85fd7" }, "target": { - "block": "139b7ca2-85c6-414a-80de-4e09e1a59ae7", + "block": "43bc16ab-b91d-405c-bef0-887bd1a85fd7", "port": "in" + } + }, + { + "source": { + "block": "6901f9c0-d7de-4616-ac84-4fd92cc1d12f", + "port": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c" }, - "size": 8 + "target": { + "block": "9468d208-35a9-4b0f-a3e3-c54b64c691e9", + "port": "bfc6f0ec-0d3a-4caa-9d40-9f4e8f59f112" + } } ] } @@ -511,452 +511,370 @@ } } }, - "0851e7c0bc752c07a32e339ef30176e3180dca90": { + "18fd28fbb97a4fd982053988e015aa934dcd6014": { "package": { - "name": "adc", - "version": "0.1", - "description": "Analog-to-digital-converter", - "author": "Juan Gonzalez-Gomez (Obiuan)", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20id=%22Ebene_1%22%20width=%22272.885%22%20height=%22360.534%22%20viewBox=%220%200%20272.88513%20360.53439%22%3E%3Cdefs%20id=%22defs25%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=%22path880%22%20d=%22M-58.3-45h653.6v640H-58.3z%22/%3E%3Cmarker%20id=%22TriangleInM%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-2.308%200l3.46-2v4z%22%20id=%22path4321%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22EmptyTriangleInM%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-.508%200l3.46-2v4z%22%20id=%22path4339%22%20fill=%22#fff%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22TriangleOutM-3%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20id=%22path4297%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22marker4456%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=%22path4458%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cmarker%20id=%22marker4428%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=%22path4430%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-67%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=%22path4179%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cpath%20id=%22path919%22%20d=%22M-58.3-45h653.6v640H-58.3z%22/%3E%3Cpath%20id=%22path998%22%20d=%22M-58.3-45h653.6v640H-58.3z%22/%3E%3Cmarker%20orient=%22auto%22%20id=%22TriangleOutM-4%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path972-7%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-2%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path836-4%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-0%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path854-62%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-99%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path854-6-0%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-8%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path836-3-1%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%20id=%22TriangleOutM-7-3%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20id=%22path972-5-1%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22Arrow1Mend-3-1%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-4%200l-2%202%207-2-7-2z%22%20id=%22path836-5-0%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22Arrow2Mend-6-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-2-4%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-9-0%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-1-3%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-2-9%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-4%200l-2%202%207-2-7-2z%22%20id=%22path836-3-7-1%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%20d=%22M-58.3-45h653.6v640H-58.3z%22%20id=%22a-6%22/%3E%3C/defs%3E%3Cpath%20d=%22M-58.3-45h653.6v640H-58.3z%22%20id=%22path880-9%22/%3E%3Cmarker%20orient=%22auto%22%20id=%22TriangleInM-3%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4321-3%22%20d=%22M-2.308%200l3.46-2v4z%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22EmptyTriangleInM-8%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4339-0%22%20d=%22M-.508%200l3.46-2v4z%22%20fill=%22#fff%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22TriangleOutM-3-5%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4297-6%22%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%3Cmarker%20orient=%22auto%22%20id=%22marker4456-6%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4458-4%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=%22marker4428-0%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4430-0%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-67-4%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4179-6%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%3Cpath%20d=%22M-58.3-45h653.6v640H-58.3z%22%20id=%22path1228%22/%3E%3C/defs%3E%3Ctitle%20id=%22title2%22%3EAnalogsignal%3C/title%3E%3Cg%20id=%22g6%22%20transform=%22matrix(2.66197%200%200%20-2.6081%20-266.143%20348.922)%22%20fill=%22#ff0%22%20stroke-width=%22.631%22%20stroke-linecap=%22round%22%3E%3Cpath%20id=%22path4%22%20d=%22M136.595%2057.528l14.719-12.747%2014.663%2012.747m-6.246-3.93v17.136h-15.754V53.598z%22/%3E%3C/g%3E%3Cg%20id=%22g992-3%22%20transform=%22matrix(2.49948%200%200%202.49948%20-213.902%20137.88)%22%20stroke-width=%221.526%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-6%22%20fill=%22#ececec%22%20stroke-width=%22.929%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20id=%22path1773-2-3-1-8-9-7%22%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%222.322%22/%3E%3C/g%3E%3Cpath%20id=%22path10%22%20d=%22M7.61%2080.976C14.27%2036.763%2021.114-7.26%2027.77%205.32c6.846%2012.575%2011.841%20145.026%2020.35%20151.315%208.324%206.291%2021.83-109.323%2030.34-113.58%208.324-4.066%2011.838%2094.531%2020.16%2088.238%208.512-6.288%2022.015-130.229%2030.337-125.973%208.51%204.253%2011.84%20149.098%2020.351%20151.315%208.326%202.037%2020.163-136.516%2030.339-138.738%209.99-2.034%2020.161%20119.69%2030.337%20125.978%2010.174%206.473%2023.676-79.732%2030.335-88.053%206.662-8.509%206.662%2031.447%2010.177%2037.734%203.33%206.293%206.66%203.147%209.99%200%22%20stroke-miterlimit=%2210%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%226.281%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:ubuntu;text-align:center%22%20x=%22131.832%22%20y=%22272.84%22%20id=%22text849%22%20font-weight=%22400%22%20font-size=%2247.637%22%20font-family=%22ubuntu%22%20letter-spacing=%220%22%20word-spacing=%220%22%20text-anchor=%22middle%22%20stroke-width=%221.662%22%20stroke-linecap=%22round%22%3E%3Ctspan%20id=%22tspan847%22%20x=%22131.832%22%20y=%22272.84%22%20style=%22-inkscape-font-specification:'ubuntu%20Medium'%22%20font-weight=%22500%22%20stroke-width=%22.928%22%20fill=%22green%22%3E01001100%3C/tspan%3E%3C/text%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=%22g992-3-2%22%20transform=%22matrix(2.49948%200%200%202.49948%20-16.118%20138.484)%22%20stroke-width=%221.526%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-6-67%22%20fill=%22#ececec%22%20stroke-width=%22.929%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20id=%22path1773-2-3-1-8-9-7-5%22%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%222.322%22/%3E%3C/g%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:ubuntu;text-align:center%22%20x=%22133.042%22%20y=%22334.844%22%20id=%22text849-6%22%20font-weight=%22400%22%20font-size=%2247.637%22%20font-family=%22ubuntu%22%20letter-spacing=%220%22%20word-spacing=%220%22%20text-anchor=%22middle%22%20stroke-width=%221.662%22%20stroke-linecap=%22round%22%3E%3Ctspan%20id=%22tspan847-9%22%20x=%22133.042%22%20y=%22334.844%22%20style=%22-inkscape-font-specification:'ubuntu%20Medium'%22%20font-weight=%22500%22%20stroke-width=%22.928%22%3EADC%3C/tspan%3E%3C/text%3E%3C/svg%3E" + "name": "Valor_0_2bits", + "version": "0.0.1", + "description": "Valor constante 0 para bus de 2 bits", + "author": "Juan Gonzalez-Gomez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22145.966%22%20height=%22305.779%22%20viewBox=%220%200%20136.8427%20286.66758%22%3E%3Cg%20font-weight=%22400%22%20font-family=%22Ubuntu%20Mono%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-size=%22335.399%22%20fill=%22green%22%20transform=%22translate(-308.544%20-436.037)%22%3E%3Ctspan%20x=%22293.115%22%20y=%22648.344%22%3E0%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22341.722%22%20y=%22721.624%22%20font-size=%2283.077%22%20transform=%22translate(-308.544%20-436.037)%22%3E%3Ctspan%20x=%22341.722%22%20y=%22721.624%22%3E00%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" }, "design": { "graph": { "blocks": [ { - "id": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "type": "basic.input", - "data": { - "name": "", - "clock": true - }, - "position": { - "x": -2048, - "y": -232 - } - }, - { - "id": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a", - "type": "basic.input", - "data": { - "name": "adc-sda", - "clock": false - }, - "position": { - "x": -544, - "y": -184 - } - }, - { - "id": "43bc16ab-b91d-405c-bef0-887bd1a85fd7", + "id": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", "type": "basic.output", "data": { - "name": "adc_scl" - }, - "position": { - "x": 24, - "y": -104 - } - }, - { - "id": "09a84e89-0e4a-43cc-a5b9-6c8ac6ce5742", - "type": "basic.input", - "data": { - "name": "ch", + "name": "k", "range": "[1:0]", - "clock": false, "size": 2 }, "position": { - "x": -2040, - "y": 88 + "x": 928, + "y": 256 } }, { - "id": "2dd424a5-e616-4505-8a89-4982cdd7539d", - "type": "basic.output", + "id": "ad7918eb-22dd-4b6c-949f-e428f5a55530", + "type": "basic.constant", "data": { "name": "", - "range": "[7:0]", - "size": 8 + "value": "0", + "local": true }, "position": { - "x": 208, - "y": 312 + "x": 728, + "y": 136 } }, { - "id": "bfc6f0ec-0d3a-4caa-9d40-9f4e8f59f112", - "type": "basic.input", - "data": { - "name": "start", - "clock": false - }, + "id": "ae9e32fe-296d-4700-a429-1178ece2609d", + "type": "1577535d38e0077281a8de7dc00933b07ec4f543", "position": { - "x": -2040, - "y": 696 + "x": 728, + "y": 256 + }, + "size": { + "width": 96, + "height": 64 } - }, + } + ], + "wires": [ { - "id": "f4f0b0cc-6b11-417f-b8de-933dd739752b", - "type": "basic.output", - "data": { - "name": "done" + "source": { + "block": "ae9e32fe-296d-4700-a429-1178ece2609d", + "port": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26" }, - "position": { - "x": -1280, - "y": 864 - } + "target": { + "block": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", + "port": "in" + }, + "size": 2 }, { - "id": "5d1a3bb7-8f31-4c17-9f0e-09fdcf7bd807", - "type": "basic.memory", - "data": { - "name": "Canal-reg", - "list": "02 //-- Canal 0\n04 //-- Canal 1\n06 //-- Canal 2\n08 //-- Canal 3", - "local": true, - "format": 10 - }, - "position": { - "x": -1728, - "y": -80 + "source": { + "block": "ad7918eb-22dd-4b6c-949f-e428f5a55530", + "port": "constant-out" }, - "size": { - "width": 224, - "height": 104 + "target": { + "block": "ae9e32fe-296d-4700-a429-1178ece2609d", + "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" } - }, + } + ] + } + } + }, + "1577535d38e0077281a8de7dc00933b07ec4f543": { + "package": { + "name": "Constante-2bits", + "version": "0.0.1", + "description": "Valor genérico constante, de 2 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=%22145.608%22%20height=%22247.927%22%20viewBox=%220%200%20136.50729%20232.43134%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-weight=%22400%22%20font-size=%22335.399%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%3Ek%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ { - "id": "3b4b7515-4e2b-46d2-8994-7ea4b3ad22e3", - "type": "basic.constant", + "id": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26", + "type": "basic.output", "data": { - "name": "", - "value": "3", - "local": true + "name": "k", + "range": "[1:0]", + "size": 2 }, "position": { - "x": -1416, + "x": 960, "y": 248 } }, { - "id": "9e7fbae9-cce7-42d1-b650-6e315c04c922", + "id": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", "type": "basic.constant", "data": { "name": "", - "value": "1", - "local": true + "value": "0", + "local": false }, "position": { - "x": -1216, - "y": 128 + "x": 728, + "y": 112 } }, { - "id": "22ab7ece-cc08-4d88-8169-0c27996f429f", - "type": "basic.memory", + "id": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", + "type": "basic.code", "data": { - "name": "Comandos i2c", - "list": "03_00_cc //-- Write. Reg 0 <-- CC. Modo Auto-scan\n01_02_00 //-- Sel Reg 2\n00_00_00 //-- Lectura!", - "local": true, - "format": 10 - }, - "position": { - "x": -1152, - "y": -64 - }, - "size": { - "width": 416, - "height": 120 - } - }, - { - "id": "3f0866f0-c93f-4d57-9aab-b2e1ec7d135b", - "type": "basic.constant", - "data": { - "name": "Direccion-i2c", - "value": "7'h48", - "local": true - }, - "position": { - "x": -696, - "y": -128 - } - }, - { - "id": "3e21cde1-61ca-4036-b448-bdb96e3b7b43", - "type": "basic.info", - "data": { - "info": "**SDA**\n(INOUT) ", - "readonly": true + "code": "assign k = VALUE;", + "params": [ + { + "name": "VALUE" + } + ], + "ports": { + "in": [], + "out": [ + { + "name": "k", + "range": "[1:0]", + "size": 2 + } + ] + } }, "position": { - "x": -528, - "y": -272 + "x": 672, + "y": 248 }, "size": { - "width": 104, - "height": 48 + "width": 208, + "height": 64 } - }, + } + ], + "wires": [ { - "id": "bca7a427-a08f-48d3-807c-64a27a08db52", - "type": "89d2342d9664348db3e70e823cacbc8eb24ea3d0", - "position": { - "x": 0, - "y": 296 + "source": { + "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", + "port": "k" }, - "size": { - "width": 96, - "height": 96 - } + "target": { + "block": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26", + "port": "in" + }, + "size": 2 }, { - "id": "ada801ec-97ac-4d32-a9fd-a997ce0d2c16", - "type": "20b7dbadd419751f1658977d442517896b210c75", - "position": { - "x": -696, - "y": -32 + "source": { + "block": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", + "port": "constant-out" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", + "port": "VALUE" } - }, + } + ] + } + } + }, + "f572977478b6b214dfcfdb7d161e840e4dcef2c4": { + "package": { + "name": "Separador-bus-3-4", + "version": "0.1", + "description": "Separador de bus de 8-bits en 2 buses de 3 y 4 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": "6465077c-afae-49b4-b488-7d920e4c7f61", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", - "position": { - "x": -1776, - "y": 680 + "id": "1e587d7e-30ec-4f6e-80fc-87e0112770e1", + "type": "basic.output", + "data": { + "name": "o1", + "range": "[2:0]", + "size": 3 }, - "size": { - "width": 96, - "height": 96 + "position": { + "x": 584, + "y": 144 } }, { - "id": "dd7d5998-c070-46ea-863f-49da091eda29", - "type": "8e2728307baccbf26c01cdb87bcfba8ca64a435c", - "position": { - "x": -1216, - "y": 680 + "id": "1f5c81aa-ebb1-4cd7-87fd-b9092de9a34f", + "type": "basic.input", + "data": { + "name": "i", + "range": "[7:0]", + "clock": false, + "size": 8 }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": 120, + "y": 200 } }, { - "id": "f6118dec-faf4-4b86-8c20-aa0368015453", - "type": "1535f6f47d269b5d2de10c9fcd212e580a4d640c", - "position": { - "x": -1208, - "y": 360 + "id": "82ec499a-721d-46dd-a253-1d41f5fdae17", + "type": "basic.output", + "data": { + "name": "o0", + "range": "[4:0]", + "size": 5 }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": 584, + "y": 272 } }, { - "id": "665884f2-d123-4f55-9a11-4c8f431c3020", + "id": "16e78204-213e-4833-9096-89d735307ec2", "type": "basic.code", "data": { - "code": "assign op = i[17:16];\nassign regis = i[15:8];\nassign value = i[7:0];", + "code": "assign o1 = i[7:5];\nassign o0 = i[4:0];", "params": [], "ports": { "in": [ { "name": "i", - "range": "[17:0]", - "size": 18 + "range": "[7:0]", + "size": 8 } ], "out": [ { - "name": "regis", - "range": "[7:0]", - "size": 8 - }, - { - "name": "value", - "range": "[7:0]", - "size": 8 + "name": "o1", + "range": "[2:0]", + "size": 3 }, { - "name": "op", - "range": "[1:0]", - "size": 2 + "name": "o0", + "range": "[4:0]", + "size": 5 } ] } }, "position": { - "x": -1032, - "y": 344 + "x": 296, + "y": 176 }, "size": { - "width": 224, - "height": 96 + "width": 208, + "height": 112 } - }, + } + ], + "wires": [ { - "id": "032db993-b0ca-47dd-ba47-7e65fe70e0f3", - "type": "basic.info", - "data": { - "info": "Decoddificador", - "readonly": true + "source": { + "block": "1f5c81aa-ebb1-4cd7-87fd-b9092de9a34f", + "port": "out" }, - "position": { - "x": -712, - "y": 88 + "target": { + "block": "16e78204-213e-4833-9096-89d735307ec2", + "port": "i" }, - "size": { - "width": 144, - "height": 40 - } + "size": 8 }, { - "id": "056f271d-dcca-4550-aa60-083c7d9515e3", - "type": "117a3398e8b038aec02d56f0f0ebdd6197dd5305", - "position": { - "x": -1424, - "y": 360 + "source": { + "block": "16e78204-213e-4833-9096-89d735307ec2", + "port": "o1" }, - "size": { - "width": 96, - "height": 96 - } - }, - { - "id": "2223e693-de97-453c-8372-5df27eac1ef1", - "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", - "position": { - "x": -1608, - "y": 384 + "target": { + "block": "1e587d7e-30ec-4f6e-80fc-87e0112770e1", + "port": "in" }, - "size": { - "width": 96, - "height": 64 - } + "size": 3 }, { - "id": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", - "type": "81613874c6152f06c06ed7014bf4235900cfcc30", - "position": { - "x": -784, - "y": 496 + "source": { + "block": "16e78204-213e-4833-9096-89d735307ec2", + "port": "o0" }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "e7415f08-799e-4142-a6a0-5543b49d8c73", - "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", - "position": { - "x": -1608, - "y": 592 + "target": { + "block": "82ec499a-721d-46dd-a253-1d41f5fdae17", + "port": "in" }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", - "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", - "position": { - "x": -648, - "y": 464 - }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "a594d32c-f8bc-4931-a350-e660f1754f7c", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", - "position": { - "x": -160, - "y": 616 - }, - "size": { - "width": 96, - "height": 64 - } - }, + "size": 5 + } + ] + } + } + }, + "448035fad327bfacd5fa0f2684e9c9b415658ce4": { + "package": { + "name": "Decodificador-3-8-bus", + "version": "0.1", + "description": "Decodificador de 3 a 8, con salida en bus", + "author": "Juan González-Gómez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20179.10693%20356.59582%22%20width=%22179.107%22%20height=%22356.596%22%3E%3Cpath%20d=%22M130.817%20197.651c0-6.286-1.87-12.518-5.411-18.025-7.306-11.352-11.168-24.924-11.168-39.247v-9.94a5.63%205.63%200%200%200-5.629-5.63H60.222a5.63%205.63%200%200%200-5.629%205.63v9.94c0%2014.324-3.861%2027.895-11.168%2039.25-3.54%205.504-5.412%2011.736-5.412%2018.023%200%209.492%204.123%2018.426%2011.65%2025.43v44.017c0%2019.164%2015.589%2034.755%2034.75%2034.755%2019.163%200%2034.754-15.59%2034.754-34.755v-44.017c7.528-7.004%2011.65-15.938%2011.65-25.43zM107.91%20267.1c0%2012.956-10.54%2023.497-23.497%2023.497-12.953%200-23.49-10.541-23.49-23.497v-50.18c0-6.38%202.55-12.304%206.872-16.623%201.274%208.027%208.241%2014.184%2016.62%2014.184%208.375%200%2015.339-6.149%2016.619-14.169%204.434%204.439%206.877%2010.336%206.877%2016.608v50.18zM78.842%20197.65v-22.403c0-3.073%202.499-5.573%205.572-5.573s5.572%202.5%205.572%205.573v22.403c0%203.073-2.5%205.573-5.572%205.573a5.578%205.578%200%200%201-5.572-5.573zm38.752%208.896c-1.651-5.302-4.569-10.162-8.608-14.201a34.654%2034.654%200%200%200-7.742-5.829v-11.269c0-9.28-7.55-16.83-16.83-16.83-9.28%200-16.83%207.55-16.83%2016.83v11.257a34.626%2034.626%200%200%200-16.348%2020.044c-1.29-2.834-1.966-5.834-1.966-8.896%200-4.181%201.219-8.196%203.622-11.932%208.478-13.173%2012.958-28.851%2012.958-45.34v-4.313h37.13v4.312c0%2016.489%204.48%2032.167%2012.957%2045.339%202.404%203.737%203.623%207.752%203.623%2011.933-.001%203.062-.677%206.062-1.966%208.895z%22%20fill=%22#00f%22/%3E%3Cpath%20d=%22M84.414%20244.445c-8.291%200-15.038%206.746-15.038%2015.038v7.617c0%208.291%206.746%2015.037%2015.038%2015.037s15.038-6.746%2015.038-15.037v-7.617c0-8.292-6.746-15.038-15.038-15.038zm3.78%2022.655a3.784%203.784%200%200%201-3.78%203.78%203.784%203.784%200%200%201-3.78-3.78v-7.617a3.784%203.784%200%200%201%203.78-3.78%203.784%203.784%200%200%201%203.78%203.78zM66.493%20316.17h18.819a5.63%205.63%200%200%200%200-11.257h-18.82a5.63%205.63%200%200%200%200%2011.258zM102.338%20318.388H83.52a5.63%205.63%200%200%200%200%2011.258h18.82a5.63%205.63%200%200%200%200-11.258zM66.493%20343.12h18.819a5.63%205.63%200%200%200%200-11.257h-18.82a5.63%205.63%200%200%200%200%2011.258zM102.338%20345.338H83.52a5.63%205.63%200%200%200%200%2011.258h18.82a5.63%205.63%200%200%200%200-11.258zM10.525%2030.22l9.292-16.364a5.63%205.63%200%200%200-9.79-5.56L.735%2024.662a5.63%205.63%200%200%200%209.79%205.56zM155.355%2032.526l-11.64-14.788a5.63%205.63%200%200%200-8.846%206.963l11.64%2014.788a5.63%205.63%200%200%200%208.846-6.963zM30.63%2045.73l11.559-14.851a5.63%205.63%200%200%200-8.884-6.915l-11.56%2014.85a5.63%205.63%200%200%200%208.884%206.915zM134.874%2048.248l-13.616-12.991a5.63%205.63%200%200%200-7.771%208.145l13.615%2012.991a5.63%205.63%200%200%200%207.772-8.145zM63.518%2045.414a5.63%205.63%200%200%200-7.954-.329L41.718%2057.831a5.63%205.63%200%200%200%207.625%208.283l13.845-12.746a5.63%205.63%200%200%200%20.33-7.954zM117.855%2067.305l-16.457-9.129a5.63%205.63%200%200%200-5.461%209.845l16.456%209.129a5.63%205.63%200%200%200%205.462-9.845zM80.167%2072.202a5.63%205.63%200%200%200-7.417-2.89l-17.231%207.565a5.63%205.63%200%200%200%204.526%2010.308l17.231-7.566a5.63%205.63%200%200%200%202.89-7.417zM107.766%2088.12L89.63%2083.1a5.63%205.63%200%200%200-3.003%2010.85l18.138%205.02a5.63%205.63%200%200%200%203.002-10.85zM90.434%20100.067a5.63%205.63%200%200%200-7.016-3.76l-18.015%205.44a5.63%205.63%200%200%200%203.255%2010.777l18.015-5.44a5.63%205.63%200%200%200%203.761-7.017zM102.474%20112.262H83.655a5.63%205.63%200%200%200%200%2011.258h18.819a5.63%205.63%200%200%200%200-11.258zM178.633%2020.61l-7.55-17.238a5.63%205.63%200%200%200-10.312%204.517l7.55%2017.238a5.63%205.63%200%200%200%2010.312-4.517z%22%20fill=%22#00f%22/%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ { - "id": "f56d83b1-73c7-433d-810b-94107609ceb1", - "type": "2b27874a703dd0b148b08ecb5a00d1867eebe92c", - "position": { - "x": -328, - "y": 216 + "id": "3cfb6498-15fc-431f-ae55-2adeaf26434a", + "type": "basic.output", + "data": { + "name": "", + "range": "[7:0]", + "size": 8 }, - "size": { - "width": 96, - "height": 256 - } - }, - { - "id": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", "position": { - "x": 72, - "y": 600 - }, - "size": { - "width": 96, - "height": 64 + "x": 536, + "y": 184 } }, { - "id": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", - "type": "359a555a147b0afd9d84e4a720ec84b7cdfbc034", - "position": { - "x": -704, - "y": 176 + "id": "0681ff98-5f08-475e-bc4a-17e2dce312fd", + "type": "basic.input", + "data": { + "name": "y", + "range": "[2:0]", + "clock": false, + "size": 3 }, - "size": { - "width": 96, - "height": 96 - } - }, - { - "id": "fbdf2179-d67b-4d89-ae41-928932a492f9", - "type": "d9a3cf565602d237c50136543d558affa15c7654", "position": { - "x": -1216, - "y": 232 - }, - "size": { - "width": 96, - "height": 64 + "x": 40, + "y": 184 } }, { - "id": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", - "type": "fbbede7f059cd50db81d1e80b2e575ed877c91a0", - "position": { - "x": -1664, - "y": 88 + "id": "8442894d-b93c-4aff-a7cb-dea7176ac3db", + "type": "basic.code", + "data": { + "code": "assign i = 1 << y;\n \n", + "params": [], + "ports": { + "in": [ + { + "name": "y", + "range": "[2:0]", + "size": 3 + } + ], + "out": [ + { + "name": "i", + "range": "[7:0]", + "size": 8 + } + ] + } }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "94b801a2-93e1-4d50-984d-d366909343ea", - "type": "7eacdff4ce248b009935725889c8ae3339817d76", "position": { - "x": -1456, - "y": 864 + "x": 184, + "y": 184 }, "size": { - "width": 96, + "width": 280, "height": 64 } } @@ -964,898 +882,1109 @@ "wires": [ { "source": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "d3e4f800-c611-4f65-88e7-8b7d2def0021" + "block": "0681ff98-5f08-475e-bc4a-17e2dce312fd", + "port": "out" }, "target": { - "block": "2dd424a5-e616-4505-8a89-4982cdd7539d", - "port": "in" + "block": "8442894d-b93c-4aff-a7cb-dea7176ac3db", + "port": "y" }, - "size": 8 + "size": 3 }, { "source": { - "block": "3f0866f0-c93f-4d57-9aab-b2e1ec7d135b", - "port": "constant-out" + "block": "8442894d-b93c-4aff-a7cb-dea7176ac3db", + "port": "i" }, "target": { - "block": "ada801ec-97ac-4d32-a9fd-a997ce0d2c16", - "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" - } - }, + "block": "3cfb6498-15fc-431f-ae55-2adeaf26434a", + "port": "in" + }, + "size": 8 + } + ] + } + } + }, + "fe216fc3f7e19209c184579380d23a46cb3ac1b5": { + "package": { + "name": "adc", + "version": "0.2", + "description": "Analog-to-digital-converter", + "author": "Juan Gonzalez-Gomez (Obiuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20id=%22Ebene_1%22%20width=%22272.885%22%20height=%22360.534%22%20viewBox=%220%200%20272.88513%20360.53439%22%3E%3Cdefs%20id=%22defs25%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=%22path880%22%20d=%22M-58.3-45h653.6v640H-58.3z%22/%3E%3Cmarker%20id=%22TriangleInM%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-2.308%200l3.46-2v4z%22%20id=%22path4321%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22EmptyTriangleInM%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-.508%200l3.46-2v4z%22%20id=%22path4339%22%20fill=%22#fff%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22TriangleOutM-3%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20id=%22path4297%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22marker4456%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=%22path4458%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cmarker%20id=%22marker4428%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=%22path4430%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-67%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=%22path4179%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.375%22%20stroke-linejoin=%22round%22/%3E%3C/marker%3E%3Cpath%20id=%22path919%22%20d=%22M-58.3-45h653.6v640H-58.3z%22/%3E%3Cpath%20id=%22path998%22%20d=%22M-58.3-45h653.6v640H-58.3z%22/%3E%3Cmarker%20orient=%22auto%22%20id=%22TriangleOutM-4%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path972-7%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-2%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path836-4%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-0%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path854-62%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-99%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path854-6-0%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-8%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path836-3-1%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%20id=%22TriangleOutM-7-3%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M2.308%200l-3.46%202v-4z%22%20id=%22path972-5-1%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22Arrow1Mend-3-1%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-4%200l-2%202%207-2-7-2z%22%20id=%22path836-5-0%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20id=%22Arrow2Mend-6-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-2-4%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-9-0%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-1-3%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-2-9%22%20orient=%22auto%22%20overflow=%22visible%22%3E%3Cpath%20d=%22M-4%200l-2%202%207-2-7-2z%22%20id=%22path836-3-7-1%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%20d=%22M-58.3-45h653.6v640H-58.3z%22%20id=%22a-6%22/%3E%3C/defs%3E%3Cpath%20d=%22M-58.3-45h653.6v640H-58.3z%22%20id=%22path880-9%22/%3E%3Cmarker%20orient=%22auto%22%20id=%22TriangleInM-3%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4321-3%22%20d=%22M-2.308%200l3.46-2v4z%22%20fill=%22#00f%22%20fill-rule=%22evenodd%22%20stroke=%22#00f%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22EmptyTriangleInM-8%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4339-0%22%20d=%22M-.508%200l3.46-2v4z%22%20fill=%22#fff%22%20fill-rule=%22evenodd%22%20stroke=%22#000%22%20stroke-width=%22.5332%22/%3E%3C/marker%3E%3Cmarker%20orient=%22auto%22%20id=%22TriangleOutM-3-5%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4297-6%22%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%3Cmarker%20orient=%22auto%22%20id=%22marker4456-6%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4458-4%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=%22marker4428-0%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4430-0%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-67-4%22%20overflow=%22visible%22%3E%3Cpath%20id=%22path4179-6%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%3Cpath%20d=%22M-58.3-45h653.6v640H-58.3z%22%20id=%22path1228%22/%3E%3C/defs%3E%3Ctitle%20id=%22title2%22%3EAnalogsignal%3C/title%3E%3Cg%20id=%22g6%22%20transform=%22matrix(2.66197%200%200%20-2.6081%20-266.143%20348.922)%22%20fill=%22#ff0%22%20stroke-width=%22.631%22%20stroke-linecap=%22round%22%3E%3Cpath%20id=%22path4%22%20d=%22M136.595%2057.528l14.719-12.747%2014.663%2012.747m-6.246-3.93v17.136h-15.754V53.598z%22/%3E%3C/g%3E%3Cg%20id=%22g992-3%22%20transform=%22matrix(2.49948%200%200%202.49948%20-213.902%20137.88)%22%20stroke-width=%221.526%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-6%22%20fill=%22#ececec%22%20stroke-width=%22.929%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20id=%22path1773-2-3-1-8-9-7%22%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%222.322%22/%3E%3C/g%3E%3Cpath%20id=%22path10%22%20d=%22M7.61%2080.976C14.27%2036.763%2021.114-7.26%2027.77%205.32c6.846%2012.575%2011.841%20145.026%2020.35%20151.315%208.324%206.291%2021.83-109.323%2030.34-113.58%208.324-4.066%2011.838%2094.531%2020.16%2088.238%208.512-6.288%2022.015-130.229%2030.337-125.973%208.51%204.253%2011.84%20149.098%2020.351%20151.315%208.326%202.037%2020.163-136.516%2030.339-138.738%209.99-2.034%2020.161%20119.69%2030.337%20125.978%2010.174%206.473%2023.676-79.732%2030.335-88.053%206.662-8.509%206.662%2031.447%2010.177%2037.734%203.33%206.293%206.66%203.147%209.99%200%22%20stroke-miterlimit=%2210%22%20fill=%22none%22%20stroke=%22#00f%22%20stroke-width=%226.281%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:ubuntu;text-align:center%22%20x=%22131.832%22%20y=%22272.84%22%20id=%22text849%22%20font-weight=%22400%22%20font-size=%2247.637%22%20font-family=%22ubuntu%22%20letter-spacing=%220%22%20word-spacing=%220%22%20text-anchor=%22middle%22%20stroke-width=%221.662%22%20stroke-linecap=%22round%22%3E%3Ctspan%20id=%22tspan847%22%20x=%22131.832%22%20y=%22272.84%22%20style=%22-inkscape-font-specification:'ubuntu%20Medium'%22%20font-weight=%22500%22%20stroke-width=%22.928%22%20fill=%22green%22%3E01001100%3C/tspan%3E%3C/text%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=%22g992-3-2%22%20transform=%22matrix(2.49948%200%200%202.49948%20-16.118%20138.484)%22%20stroke-width=%221.526%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-6-67%22%20fill=%22#ececec%22%20stroke-width=%22.929%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20id=%22path1773-2-3-1-8-9-7-5%22%20d=%22M106.978%2082.142h-3.353V63.316H97.54v18.678h-3.652%22%20fill=%22none%22%20stroke-width=%222.322%22/%3E%3C/g%3E%3Ctext%20style=%22line-height:1.25;-inkscape-font-specification:ubuntu;text-align:center%22%20x=%22133.042%22%20y=%22334.844%22%20id=%22text849-6%22%20font-weight=%22400%22%20font-size=%2247.637%22%20font-family=%22ubuntu%22%20letter-spacing=%220%22%20word-spacing=%220%22%20text-anchor=%22middle%22%20stroke-width=%221.662%22%20stroke-linecap=%22round%22%3E%3Ctspan%20id=%22tspan847-9%22%20x=%22133.042%22%20y=%22334.844%22%20style=%22-inkscape-font-specification:'ubuntu%20Medium'%22%20font-weight=%22500%22%20stroke-width=%22.928%22%3EADC%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ { - "source": { - "block": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a", - "port": "out" + "id": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "type": "basic.input", + "data": { + "name": "", + "clock": true }, - "target": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a" + "position": { + "x": -2048, + "y": -232 } }, { - "source": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "43bc16ab-b91d-405c-bef0-887bd1a85fd7" + "id": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a", + "type": "basic.input", + "data": { + "name": "adc-sda", + "clock": false }, - "target": { - "block": "43bc16ab-b91d-405c-bef0-887bd1a85fd7", - "port": "in" + "position": { + "x": -544, + "y": -184 } }, { - "source": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "2dd424a5-e616-4505-8a89-4982cdd7539d" - }, - "target": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "42b35cc2-aa64-4e66-be42-169958246799" + "id": "43bc16ab-b91d-405c-bef0-887bd1a85fd7", + "type": "basic.output", + "data": { + "name": "adc_scl" }, - "size": 8 + "position": { + "x": 24, + "y": -104 + } }, { - "source": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "efa38a4c-7d36-47f9-82de-6cf99cf88c3d" + "id": "09a84e89-0e4a-43cc-a5b9-6c8ac6ce5742", + "type": "basic.input", + "data": { + "name": "ch", + "range": "[1:0]", + "clock": false, + "size": 2 }, - "target": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "065ea371-8398-43b3-8341-287c234a3acb" + "position": { + "x": -2040, + "y": 88 } }, { - "source": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "id": "2dd424a5-e616-4505-8a89-4982cdd7539d", + "type": "basic.output", + "data": { + "name": "", + "range": "[7:0]", + "size": 8 }, - "target": { - "block": "dd7d5998-c070-46ea-863f-49da091eda29", - "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + "position": { + "x": 208, + "y": 312 } }, { - "source": { - "block": "ada801ec-97ac-4d32-a9fd-a997ce0d2c16", - "port": "cf56e668-4c75-451d-ab35-b8457ab06e22" - }, - "target": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "17680ad1-ed73-4b6c-a31e-c96c61fc88ef" + "id": "bfc6f0ec-0d3a-4caa-9d40-9f4e8f59f112", + "type": "basic.input", + "data": { + "name": "start", + "clock": false }, - "vertices": [ - { - "x": -552, - "y": 48 - } - ], - "size": 7 + "position": { + "x": -2040, + "y": 696 + } }, { - "source": { - "block": "665884f2-d123-4f55-9a11-4c8f431c3020", - "port": "op" - }, - "target": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "fba9c594-4b64-4f48-8979-25c1a001e90a" + "id": "f4f0b0cc-6b11-417f-b8de-933dd739752b", + "type": "basic.output", + "data": { + "name": "done" }, - "size": 2 + "position": { + "x": -1280, + "y": 864 + } }, { - "source": { - "block": "22ab7ece-cc08-4d88-8169-0c27996f429f", - "port": "memory-out" + "id": "5d1a3bb7-8f31-4c17-9f0e-09fdcf7bd807", + "type": "basic.memory", + "data": { + "name": "Canal-reg", + "list": "02 //-- Canal 0\n04 //-- Canal 1\n06 //-- Canal 2\n08 //-- Canal 3", + "local": true, + "format": 10 }, - "target": { - "block": "f6118dec-faf4-4b86-8c20-aa0368015453", - "port": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377" + "position": { + "x": -1728, + "y": -80 + }, + "size": { + "width": 224, + "height": 104 } }, { - "source": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "2223e693-de97-453c-8372-5df27eac1ef1", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "id": "3b4b7515-4e2b-46d2-8994-7ea4b3ad22e3", + "type": "basic.constant", + "data": { + "name": "", + "value": "3", + "local": true }, - "vertices": [ - { - "x": -1656, - "y": 552 - } - ] + "position": { + "x": -1416, + "y": 248 + } }, { - "source": { - "block": "dd7d5998-c070-46ea-863f-49da091eda29", - "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" - }, - "target": { - "block": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "id": "9e7fbae9-cce7-42d1-b650-6e315c04c922", + "type": "basic.constant", + "data": { + "name": "", + "value": "1", + "local": true }, - "vertices": [ - { - "x": -936, - "y": 656 - } - ] + "position": { + "x": -1216, + "y": 128 + } }, { - "source": { - "block": "3b4b7515-4e2b-46d2-8994-7ea4b3ad22e3", - "port": "constant-out" + "id": "22ab7ece-cc08-4d88-8169-0c27996f429f", + "type": "basic.memory", + "data": { + "name": "Comandos i2c", + "list": "03_00_cc //-- Write. Reg 0 <-- CC. Modo Auto-scan\n01_02_00 //-- Sel Reg 2\n00_00_00 //-- Lectura!", + "local": true, + "format": 10 }, - "target": { - "block": "056f271d-dcca-4550-aa60-083c7d9515e3", - "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" + "position": { + "x": -1152, + "y": -64 + }, + "size": { + "width": 416, + "height": 120 } }, { - "source": { - "block": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "3f0866f0-c93f-4d57-9aab-b2e1ec7d135b", + "type": "basic.constant", + "data": { + "name": "Direccion-i2c", + "value": "7'h48", + "local": true }, - "target": { - "block": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", - "port": "97b51945-d716-4b6c-9db9-970d08541249" + "position": { + "x": -696, + "y": -128 } }, { - "source": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "id": "3e21cde1-61ca-4036-b448-bdb96e3b7b43", + "type": "basic.info", + "data": { + "info": "**SDA**\n(INOUT) ", + "readonly": true }, - "target": { - "block": "e7415f08-799e-4142-a6a0-5543b49d8c73", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "position": { + "x": -528, + "y": -272 }, - "vertices": [ - { - "x": -1656, - "y": 624 - } - ] + "size": { + "width": 104, + "height": 48 + } }, { - "source": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "18dc0bf6-35be-4fad-9e92-79ae207ff435" - }, - "target": { - "block": "a594d32c-f8bc-4931-a350-e660f1754f7c", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "id": "bca7a427-a08f-48d3-807c-64a27a08db52", + "type": "89d2342d9664348db3e70e823cacbc8eb24ea3d0", + "position": { + "x": 0, + "y": 296 }, - "vertices": [ - { - "x": -208, - "y": 560 - } - ] + "size": { + "width": 96, + "height": 96 + } }, { - "source": { - "block": "056f271d-dcca-4550-aa60-083c7d9515e3", - "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" - }, - "target": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + "id": "ada801ec-97ac-4d32-a9fd-a997ce0d2c16", + "type": "20b7dbadd419751f1658977d442517896b210c75", + "position": { + "x": -696, + "y": -32 }, - "vertices": [ - { - "x": -1344, - "y": 800 - } - ] + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "6465077c-afae-49b4-b488-7d920e4c7f61", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": -1776, + "y": 680 }, - "target": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "b882b07a-a45e-429f-b442-f6547b67e98e" + "size": { + "width": 96, + "height": 96 } }, { - "source": { - "block": "2223e693-de97-453c-8372-5df27eac1ef1", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "dd7d5998-c070-46ea-863f-49da091eda29", + "type": "8e2728307baccbf26c01cdb87bcfba8ca64a435c", + "position": { + "x": -1216, + "y": 680 }, - "target": { - "block": "056f271d-dcca-4550-aa60-083c7d9515e3", - "port": "743b5299-2d89-4783-b7c9-12a5b36df406" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "e7415f08-799e-4142-a6a0-5543b49d8c73", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "f6118dec-faf4-4b86-8c20-aa0368015453", + "type": "1535f6f47d269b5d2de10c9fcd212e580a4d640c", + "position": { + "x": -1208, + "y": 360 }, - "target": { - "block": "056f271d-dcca-4550-aa60-083c7d9515e3", - "port": "26aba23f-8567-4e9b-bd45-c26724030f33" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" - }, - "vertices": [ - { - "x": -1656, - "y": 624 + "id": "665884f2-d123-4f55-9a11-4c8f431c3020", + "type": "basic.code", + "data": { + "code": "assign op = i[17:16];\nassign regis = i[15:8];\nassign value = i[7:0];", + "params": [], + "ports": { + "in": [ + { + "name": "i", + "range": "[17:0]", + "size": 18 + } + ], + "out": [ + { + "name": "regis", + "range": "[7:0]", + "size": 8 + }, + { + "name": "value", + "range": "[7:0]", + "size": 8 + }, + { + "name": "op", + "range": "[1:0]", + "size": 2 + } + ] } - ] + }, + "position": { + "x": -1032, + "y": 344 + }, + "size": { + "width": 224, + "height": 96 + } }, { - "source": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "18dc0bf6-35be-4fad-9e92-79ae207ff435" + "id": "032db993-b0ca-47dd-ba47-7e65fe70e0f3", + "type": "basic.info", + "data": { + "info": "Decoddificador", + "readonly": true }, - "target": { - "block": "e7415f08-799e-4142-a6a0-5543b49d8c73", - "port": "97b51945-d716-4b6c-9db9-970d08541249" + "position": { + "x": -712, + "y": 88 }, - "vertices": [ - { - "x": -320, - "y": 568 - } - ] + "size": { + "width": 144, + "height": 40 + } }, { - "source": { - "block": "a594d32c-f8bc-4931-a350-e660f1754f7c", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "id": "056f271d-dcca-4550-aa60-083c7d9515e3", + "type": "117a3398e8b038aec02d56f0f0ebdd6197dd5305", + "position": { + "x": -1424, + "y": 360 }, - "target": { - "block": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "size": { + "width": 96, + "height": 96 } }, { - "source": { - "block": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "id": "2223e693-de97-453c-8372-5df27eac1ef1", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": -1608, + "y": 384 }, - "target": { - "block": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", - "port": "97b51945-d716-4b6c-9db9-970d08541249" + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "position": { + "x": -784, + "y": 496 }, - "vertices": [ - { - "x": -520, - "y": 720 - }, - { - "x": -856, - "y": 648 - } - ] + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "f6118dec-faf4-4b86-8c20-aa0368015453", - "port": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5" + "id": "e7415f08-799e-4142-a6a0-5543b49d8c73", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": -1608, + "y": 592 }, - "target": { - "block": "665884f2-d123-4f55-9a11-4c8f431c3020", - "port": "i" + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": -648, + "y": 464 }, - "size": 18 + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "056f271d-dcca-4550-aa60-083c7d9515e3", - "port": "2124c987-5d1b-4335-858f-502559b11a26" + "id": "a594d32c-f8bc-4931-a350-e660f1754f7c", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", + "position": { + "x": -160, + "y": 616 }, - "target": { - "block": "f6118dec-faf4-4b86-8c20-aa0368015453", - "port": "186c4116-7846-4c8e-98a0-7376675105f1" + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "f56d83b1-73c7-433d-810b-94107609ceb1", + "type": "2b27874a703dd0b148b08ecb5a00d1867eebe92c", + "position": { + "x": -328, + "y": 216 }, - "size": 3 + "size": { + "width": 96, + "height": 256 + } }, { - "source": { - "block": "056f271d-dcca-4550-aa60-083c7d9515e3", - "port": "2124c987-5d1b-4335-858f-502559b11a26" + "id": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", + "position": { + "x": 72, + "y": 600 }, - "target": { - "block": "fbdf2179-d67b-4d89-ae41-928932a492f9", - "port": "0867b1bc-1cc5-4707-8ddb-40d0318d237c" + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", + "type": "359a555a147b0afd9d84e4a720ec84b7cdfbc034", + "position": { + "x": -704, + "y": 176 }, - "vertices": [ - { - "x": -1264, - "y": 256 - } - ], - "size": 3 + "size": { + "width": 96, + "height": 96 + } }, { - "source": { - "block": "9e7fbae9-cce7-42d1-b650-6e315c04c922", - "port": "constant-out" + "id": "fbdf2179-d67b-4d89-ae41-928932a492f9", + "type": "d9a3cf565602d237c50136543d558affa15c7654", + "position": { + "x": -1216, + "y": 232 }, - "target": { - "block": "fbdf2179-d67b-4d89-ae41-928932a492f9", - "port": "437fac17-b8b4-4d9f-8d03-27300b3b9466" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "fbdf2179-d67b-4d89-ae41-928932a492f9", - "port": "0344dacc-8583-456b-b377-8cb4ab97cf94" + "id": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", + "type": "fbbede7f059cd50db81d1e80b2e575ed877c91a0", + "position": { + "x": -1664, + "y": 88 }, - "target": { - "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", - "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" + "size": { + "width": 96, + "height": 64 } }, + { + "id": "94b801a2-93e1-4d50-984d-d366909343ea", + "type": "7eacdff4ce248b009935725889c8ae3339817d76", + "position": { + "x": -1456, + "y": 864 + }, + "size": { + "width": 96, + "height": 64 + } + } + ], + "wires": [ { "source": { - "block": "665884f2-d123-4f55-9a11-4c8f431c3020", - "port": "value" + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "d3e4f800-c611-4f65-88e7-8b7d2def0021" }, "target": { - "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "4f066abd-3ac4-45e9-ad20-d1eff038c986" + "block": "2dd424a5-e616-4505-8a89-4982cdd7539d", + "port": "in" }, "size": 8 }, { "source": { - "block": "665884f2-d123-4f55-9a11-4c8f431c3020", - "port": "regis" - }, + "block": "3f0866f0-c93f-4d57-9aab-b2e1ec7d135b", + "port": "constant-out" + }, "target": { - "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", - "port": "325fbba1-e929-4921-a644-95f918e6e4ee" + "block": "ada801ec-97ac-4d32-a9fd-a997ce0d2c16", + "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" + } + }, + { + "source": { + "block": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a", + "port": "out" + }, + "target": { + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a" + } + }, + { + "source": { + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "43bc16ab-b91d-405c-bef0-887bd1a85fd7" + }, + "target": { + "block": "43bc16ab-b91d-405c-bef0-887bd1a85fd7", + "port": "in" + } + }, + { + "source": { + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "2dd424a5-e616-4505-8a89-4982cdd7539d" + }, + "target": { + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "42b35cc2-aa64-4e66-be42-169958246799" }, "size": 8 }, { "source": { - "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", - "port": "bf25756a-65a4-4b09-915d-494010d6f4ff" + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "efa38a4c-7d36-47f9-82de-6cf99cf88c3d" + }, + "target": { + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "065ea371-8398-43b3-8341-287c234a3acb" + } + }, + { + "source": { + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "dd7d5998-c070-46ea-863f-49da091eda29", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + } + }, + { + "source": { + "block": "ada801ec-97ac-4d32-a9fd-a997ce0d2c16", + "port": "cf56e668-4c75-451d-ab35-b8457ab06e22" }, "target": { "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "17ec9584-f1ef-4cd5-a0a5-850ecb89065c" + "port": "17680ad1-ed73-4b6c-a31e-c96c61fc88ef" }, "vertices": [ { - "x": -584, - "y": 336 + "x": -552, + "y": 48 } ], - "size": 8 + "size": 7 }, { "source": { - "block": "09a84e89-0e4a-43cc-a5b9-6c8ac6ce5742", - "port": "out" + "block": "665884f2-d123-4f55-9a11-4c8f431c3020", + "port": "op" }, "target": { - "block": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", - "port": "186c4116-7846-4c8e-98a0-7376675105f1" + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "fba9c594-4b64-4f48-8979-25c1a001e90a" }, "size": 2 }, { "source": { - "block": "5d1a3bb7-8f31-4c17-9f0e-09fdcf7bd807", + "block": "22ab7ece-cc08-4d88-8169-0c27996f429f", "port": "memory-out" }, "target": { - "block": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", + "block": "f6118dec-faf4-4b86-8c20-aa0368015453", "port": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377" } }, { "source": { - "block": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", - "port": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5" + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", - "port": "9f5a1c91-1b93-4609-877c-816ed8fd0871" + "block": "2223e693-de97-453c-8372-5df27eac1ef1", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, - "size": 8 + "vertices": [ + { + "x": -1656, + "y": 552 + } + ] }, { "source": { - "block": "bfc6f0ec-0d3a-4caa-9d40-9f4e8f59f112", - "port": "out" + "block": "dd7d5998-c070-46ea-863f-49da091eda29", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" }, "target": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" - } + "block": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": -936, + "y": 656 + } + ] }, { "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" + "block": "3b4b7515-4e2b-46d2-8994-7ea4b3ad22e3", + "port": "constant-out" }, "target": { "block": "056f271d-dcca-4550-aa60-083c7d9515e3", - "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" + "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" } }, { "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" + "block": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "block": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", + "port": "97b51945-d716-4b6c-9db9-970d08541249" } }, { "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "dd7d5998-c070-46ea-863f-49da091eda29", - "port": "4196184b-4a60-493b-bcc6-c95958483683" + "block": "e7415f08-799e-4142-a6a0-5543b49d8c73", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, "vertices": [ { - "x": -1296, - "y": 520 + "x": -1656, + "y": 624 } ] }, { "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "18dc0bf6-35be-4fad-9e92-79ae207ff435" + }, + "target": { + "block": "a594d32c-f8bc-4931-a350-e660f1754f7c", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + }, + "vertices": [ + { + "x": -208, + "y": 560 + } + ] + }, + { + "source": { + "block": "056f271d-dcca-4550-aa60-083c7d9515e3", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + }, + "target": { + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + }, + "vertices": [ + { + "x": -1344, + "y": 800 + } + ] + }, + { + "source": { + "block": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { "block": "f56d83b1-73c7-433d-810b-94107609ceb1", - "port": "6355398c-628e-42d2-86e8-f85762c31939" + "port": "b882b07a-a45e-429f-b442-f6547b67e98e" } }, { "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" + "block": "2223e693-de97-453c-8372-5df27eac1ef1", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "096f61b6-6d5c-4907-9512-e65b25969458" + "block": "056f271d-dcca-4550-aa60-083c7d9515e3", + "port": "743b5299-2d89-4783-b7c9-12a5b36df406" } }, { "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" + "block": "e7415f08-799e-4142-a6a0-5543b49d8c73", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "a594d32c-f8bc-4931-a350-e660f1754f7c", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "block": "056f271d-dcca-4550-aa60-083c7d9515e3", + "port": "26aba23f-8567-4e9b-bd45-c26724030f33" } }, { "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "block": "ee385cc9-71e1-4f87-9a4c-36addf869a7b", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, "vertices": [ { - "x": -48, - "y": 464 + "x": -1656, + "y": 624 } ] }, { "source": { - "block": "6465077c-afae-49b4-b488-7d920e4c7f61", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "18dc0bf6-35be-4fad-9e92-79ae207ff435" }, "target": { - "block": "94b801a2-93e1-4d50-984d-d366909343ea", - "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + "block": "e7415f08-799e-4142-a6a0-5543b49d8c73", + "port": "97b51945-d716-4b6c-9db9-970d08541249" }, "vertices": [ { - "x": -1648, - "y": 856 + "x": -320, + "y": 568 } ] }, { "source": { - "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", - "port": "out" + "block": "a594d32c-f8bc-4931-a350-e660f1754f7c", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "94b801a2-93e1-4d50-984d-d366909343ea", - "port": "4196184b-4a60-493b-bcc6-c95958483683" + "block": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" } }, { "source": { - "block": "94b801a2-93e1-4d50-984d-d366909343ea", - "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" + "block": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "f4f0b0cc-6b11-417f-b8de-933dd739752b", - "port": "in" - } - } - ] - } - } - }, - "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 + "block": "fa5f3d4c-5527-4b08-a5cb-eca7a792b7d8", + "port": "97b51945-d716-4b6c-9db9-970d08541249" }, - "position": { - "x": 80, - "y": 176 - } + "vertices": [ + { + "x": -520, + "y": 720 + }, + { + "x": -856, + "y": 648 + } + ] }, { - "id": "d3e4f800-c611-4f65-88e7-8b7d2def0021", - "type": "basic.output", - "data": { - "name": "q", - "range": "[7:0]", - "size": 8 + "source": { + "block": "f6118dec-faf4-4b86-8c20-aa0368015453", + "port": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5" }, - "position": { - "x": 632, - "y": 248 - } + "target": { + "block": "665884f2-d123-4f55-9a11-4c8f431c3020", + "port": "i" + }, + "size": 18 }, { - "id": "42b35cc2-aa64-4e66-be42-169958246799", - "type": "basic.input", - "data": { - "name": "", - "range": "[7:0]", - "clock": false, - "size": 8 + "source": { + "block": "056f271d-dcca-4550-aa60-083c7d9515e3", + "port": "2124c987-5d1b-4335-858f-502559b11a26" }, - "position": { - "x": 80, - "y": 248 - } + "target": { + "block": "f6118dec-faf4-4b86-8c20-aa0368015453", + "port": "186c4116-7846-4c8e-98a0-7376675105f1" + }, + "size": 3 }, { - "id": "065ea371-8398-43b3-8341-287c234a3acb", - "type": "basic.input", - "data": { - "name": "load", - "clock": false + "source": { + "block": "056f271d-dcca-4550-aa60-083c7d9515e3", + "port": "2124c987-5d1b-4335-858f-502559b11a26" }, - "position": { - "x": 80, - "y": 312 - } + "target": { + "block": "fbdf2179-d67b-4d89-ae41-928932a492f9", + "port": "0867b1bc-1cc5-4707-8ddb-40d0318d237c" + }, + "vertices": [ + { + "x": -1264, + "y": 256 + } + ], + "size": 3 }, { - "id": "f3b434e4-0c8f-4dd7-90c7-305189a807f1", - "type": "basic.constant", - "data": { - "name": "", - "value": "0", - "local": false + "source": { + "block": "9e7fbae9-cce7-42d1-b650-6e315c04c922", + "port": "constant-out" }, - "position": { - "x": 376, - "y": 56 + "target": { + "block": "fbdf2179-d67b-4d89-ae41-928932a492f9", + "port": "437fac17-b8b4-4d9f-8d03-27300b3b9466" } }, { - "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 + "source": { + "block": "fbdf2179-d67b-4d89-ae41-928932a492f9", + "port": "0344dacc-8583-456b-b377-8cb4ab97cf94" }, - "size": { - "width": 288, - "height": 200 + "target": { + "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", + "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" } - } - ], - "wires": [ + }, { "source": { - "block": "f3b434e4-0c8f-4dd7-90c7-305189a807f1", - "port": "constant-out" + "block": "665884f2-d123-4f55-9a11-4c8f431c3020", + "port": "value" }, "target": { - "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", - "port": "INI" + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "4f066abd-3ac4-45e9-ad20-d1eff038c986" }, - "vertices": [] + "size": 8 }, { "source": { - "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", - "port": "q" + "block": "665884f2-d123-4f55-9a11-4c8f431c3020", + "port": "regis" }, "target": { - "block": "d3e4f800-c611-4f65-88e7-8b7d2def0021", - "port": "in" + "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", + "port": "325fbba1-e929-4921-a644-95f918e6e4ee" }, "size": 8 }, { "source": { - "block": "42b35cc2-aa64-4e66-be42-169958246799", - "port": "out" + "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", + "port": "bf25756a-65a4-4b09-915d-494010d6f4ff" }, "target": { - "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", - "port": "d" + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "17ec9584-f1ef-4cd5-a0a5-850ecb89065c" }, + "vertices": [ + { + "x": -584, + "y": 336 + } + ], "size": 8 }, { "source": { - "block": "065ea371-8398-43b3-8341-287c234a3acb", + "block": "09a84e89-0e4a-43cc-a5b9-6c8ac6ce5742", "port": "out" }, "target": { - "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", - "port": "load" + "block": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", + "port": "186c4116-7846-4c8e-98a0-7376675105f1" + }, + "size": 2 + }, + { + "source": { + "block": "5d1a3bb7-8f31-4c17-9f0e-09fdcf7bd807", + "port": "memory-out" + }, + "target": { + "block": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", + "port": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377" } }, { "source": { - "block": "096f61b6-6d5c-4907-9512-e65b25969458", + "block": "07c0f4d5-8027-400b-ab21-cd4712f7a0b2", + "port": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5" + }, + "target": { + "block": "0c5f0894-f0ed-443a-8ab7-9c80d5d958c6", + "port": "9f5a1c91-1b93-4609-877c-816ed8fd0871" + }, + "size": 8 + }, + { + "source": { + "block": "bfc6f0ec-0d3a-4caa-9d40-9f4e8f59f112", "port": "out" }, "target": { - "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", - "port": "clk" + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" } - } - ] - } - } - }, - "20b7dbadd419751f1658977d442517896b210c75": { - "package": { - "name": "Constante-7bits", - "version": "0.0.1", - "description": "Valor genérico constante, de 7 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=%22145.608%22%20height=%22247.927%22%20viewBox=%220%200%20136.50729%20232.43134%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-weight=%22400%22%20font-size=%22335.399%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%3Ek%3C/tspan%3E%3C/text%3E%3C/svg%3E" - }, - "design": { - "graph": { - "blocks": [ + }, { - "id": "cf56e668-4c75-451d-ab35-b8457ab06e22", - "type": "basic.output", - "data": { - "name": "k", - "range": "[6:0]", - "size": 7 + "source": { + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "port": "out" }, - "position": { - "x": 960, - "y": 248 + "target": { + "block": "056f271d-dcca-4550-aa60-083c7d9515e3", + "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" } }, { - "id": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", - "type": "basic.constant", - "data": { - "name": "", - "value": "0", - "local": false + "source": { + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "port": "out" }, - "position": { - "x": 728, - "y": 128 + "target": { + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" } }, { - "id": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", - "type": "basic.code", - "data": { - "code": "assign k = VALUE;", - "params": [ - { - "name": "VALUE" - } - ], - "ports": { - "in": [], - "out": [ - { - "name": "k", - "range": "[6:0]", - "size": 7 - } - ] + "source": { + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "port": "out" + }, + "target": { + "block": "dd7d5998-c070-46ea-863f-49da091eda29", + "port": "4196184b-4a60-493b-bcc6-c95958483683" + }, + "vertices": [ + { + "x": -1296, + "y": 520 } + ] + }, + { + "source": { + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "port": "out" }, - "position": { - "x": 672, - "y": 248 + "target": { + "block": "f56d83b1-73c7-433d-810b-94107609ceb1", + "port": "6355398c-628e-42d2-86e8-f85762c31939" + } + }, + { + "source": { + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "port": "out" }, - "size": { - "width": 208, - "height": 64 + "target": { + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "096f61b6-6d5c-4907-9512-e65b25969458" } - } - ], - "wires": [ + }, { "source": { - "block": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", - "port": "constant-out" + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "port": "out" }, "target": { - "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", - "port": "VALUE" + "block": "a594d32c-f8bc-4931-a350-e660f1754f7c", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" } }, { "source": { - "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", - "port": "k" + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "port": "out" }, "target": { - "block": "cf56e668-4c75-451d-ab35-b8457ab06e22", - "port": "in" + "block": "bc3cf5e5-3130-494e-b5b0-49298d4e52c2", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" }, - "size": 7 + "vertices": [ + { + "x": -48, + "y": 464 + } + ] + }, + { + "source": { + "block": "6465077c-afae-49b4-b488-7d920e4c7f61", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "94b801a2-93e1-4d50-984d-d366909343ea", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + }, + "vertices": [ + { + "x": -1648, + "y": 856 + } + ] + }, + { + "source": { + "block": "25c04d0a-ea74-40e4-af03-b65df00fafd0", + "port": "out" + }, + "target": { + "block": "94b801a2-93e1-4d50-984d-d366909343ea", + "port": "4196184b-4a60-493b-bcc6-c95958483683" + } + }, + { + "source": { + "block": "94b801a2-93e1-4d50-984d-d366909343ea", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" + }, + "target": { + "block": "f4f0b0cc-6b11-417f-b8de-933dd739752b", + "port": "in" + } } ] } } }, - "b959c256104d1064a5ef7b38632ffb6eed3b396f": { + "89d2342d9664348db3e70e823cacbc8eb24ea3d0": { "package": { - "name": "Biestable-Set-Reset", + "name": "Registro", "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" + "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": "9f09a4af-8f7a-45c3-af7b-293a244e76d9", + "id": "096f61b6-6d5c-4907-9512-e65b25969458", "type": "basic.input", "data": { "name": "", "clock": true }, "position": { - "x": 200, - "y": 64 + "x": 80, + "y": 176 } }, { - "id": "3ae2d46d-7981-497a-899f-b60bfae0f43e", - "type": "basic.input", + "id": "d3e4f800-c611-4f65-88e7-8b7d2def0021", + "type": "basic.output", "data": { - "name": "set", - "clock": false + "name": "q", + "range": "[7:0]", + "size": 8 }, "position": { - "x": 200, - "y": 152 + "x": 632, + "y": 248 } }, { - "id": "1cb167a4-9e2a-416b-803e-da7b6151eaa5", - "type": "basic.output", + "id": "42b35cc2-aa64-4e66-be42-169958246799", + "type": "basic.input", "data": { - "name": "" + "name": "", + "range": "[7:0]", + "clock": false, + "size": 8 }, "position": { - "x": 720, - "y": 152 + "x": 80, + "y": 248 } }, { - "id": "86eb8c81-17fc-4371-bd21-51f429191f3c", + "id": "065ea371-8398-43b3-8341-287c234a3acb", "type": "basic.input", "data": { - "name": "rst", + "name": "load", "clock": false }, "position": { - "x": 200, - "y": 232 + "x": 80, + "y": 312 } }, { - "id": "bf12a800-db30-4289-a7c5-8c08438f9a39", + "id": "f3b434e4-0c8f-4dd7-90c7-305189a807f1", "type": "basic.constant", "data": { "name": "", @@ -1863,15 +1992,15 @@ "local": false }, "position": { - "x": 464, - "y": 0 + "x": 376, + "y": 56 } }, { - "id": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", + "id": "32106310-bfdc-41db-9a7c-2dadd5016c3f", "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;", + "code": "localparam N = 8;\n\nreg [N-1:0] q = INI;\n\nalways @(posedge clk)\n if (load)\n q <= d;", "params": [ { "name": "INI" @@ -1883,371 +2012,637 @@ "name": "clk" }, { - "name": "set" + "name": "d", + "range": "[7:0]", + "size": 8 }, { - "name": "rst" + "name": "load" } ], "out": [ { - "name": "q" + "name": "q", + "range": "[7:0]", + "size": 8 } ] } }, "position": { - "x": 400, - "y": 120 + "x": 280, + "y": 176 }, "size": { - "width": 224, - "height": 128 + "width": 288, + "height": 200 } } ], "wires": [ { "source": { - "block": "9f09a4af-8f7a-45c3-af7b-293a244e76d9", - "port": "out" + "block": "f3b434e4-0c8f-4dd7-90c7-305189a807f1", + "port": "constant-out" }, "target": { - "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", - "port": "clk" + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "INI" }, - "vertices": [ - { - "x": 336, - "y": 104 - } - ] + "vertices": [] }, { "source": { - "block": "3ae2d46d-7981-497a-899f-b60bfae0f43e", - "port": "out" + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "q" }, "target": { - "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", - "port": "set" - } + "block": "d3e4f800-c611-4f65-88e7-8b7d2def0021", + "port": "in" + }, + "size": 8 }, { "source": { - "block": "86eb8c81-17fc-4371-bd21-51f429191f3c", + "block": "42b35cc2-aa64-4e66-be42-169958246799", "port": "out" }, "target": { - "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", - "port": "rst" + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "d" }, - "vertices": [ - { - "x": 344, - "y": 248 - } - ] + "size": 8 }, { "source": { - "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", - "port": "q" + "block": "065ea371-8398-43b3-8341-287c234a3acb", + "port": "out" }, "target": { - "block": "1cb167a4-9e2a-416b-803e-da7b6151eaa5", - "port": "in" + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "load" } }, { "source": { - "block": "bf12a800-db30-4289-a7c5-8c08438f9a39", - "port": "constant-out" + "block": "096f61b6-6d5c-4907-9512-e65b25969458", + "port": "out" }, "target": { - "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", - "port": "INI" + "block": "32106310-bfdc-41db-9a7c-2dadd5016c3f", + "port": "clk" } } ] } } }, - "8e2728307baccbf26c01cdb87bcfba8ca64a435c": { + "20b7dbadd419751f1658977d442517896b210c75": { "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" + "name": "Constante-7bits", + "version": "0.0.1", + "description": "Valor genérico constante, de 7 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=%22145.608%22%20height=%22247.927%22%20viewBox=%220%200%20136.50729%20232.43134%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-weight=%22400%22%20font-size=%22335.399%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%3Ek%3C/tspan%3E%3C/text%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", + "id": "cf56e668-4c75-451d-ab35-b8457ab06e22", "type": "basic.output", "data": { - "name": "" + "name": "k", + "range": "[6:0]", + "size": 7 }, "position": { - "x": 624, - "y": 200 + "x": 960, + "y": 248 } }, { - "id": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", - "type": "basic.input", + "id": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", + "type": "basic.constant", "data": { "name": "", - "clock": false + "value": "0", + "local": false }, "position": { - "x": 152, - "y": 232 + "x": 728, + "y": 128 } }, { - "id": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "id": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", "type": "basic.code", "data": { - "code": "reg q = 0;\n\nalways @(posedge clk)\n q <= i;\n \nassign o = (~q & i); ", - "params": [], + "code": "assign k = VALUE;", + "params": [ + { + "name": "VALUE" + } + ], "ports": { - "in": [ - { - "name": "clk" - }, - { - "name": "i" - } - ], + "in": [], "out": [ { - "name": "o" + "name": "k", + "range": "[6:0]", + "size": 7 } ] } }, "position": { - "x": 336, - "y": 176 + "x": 672, + "y": 248 }, "size": { - "width": 232, - "height": 112 + "width": 208, + "height": 64 } } ], "wires": [ { "source": { - "block": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", - "port": "out" + "block": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", + "port": "constant-out" }, "target": { - "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", - "port": "i" + "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", + "port": "VALUE" } }, { "source": { - "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", - "port": "o" + "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", + "port": "k" }, "target": { - "block": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", + "block": "cf56e668-4c75-451d-ab35-b8457ab06e22", "port": "in" - } - }, - { - "source": { - "block": "4196184b-4a60-493b-bcc6-c95958483683", - "port": "out" }, - "target": { - "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", - "port": "clk" - } + "size": 7 } ] } } }, - "1535f6f47d269b5d2de10c9fcd212e580a4d640c": { + "b959c256104d1064a5ef7b38632ffb6eed3b396f": { "package": { - "name": "mi-tabla3-18", + "name": "Biestable-Set-Reset", "version": "0.1", - "description": "Circuito combinacional de 3 entradas y 18 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" + "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": "186c4116-7846-4c8e-98a0-7376675105f1", + "id": "9f09a4af-8f7a-45c3-af7b-293a244e76d9", "type": "basic.input", "data": { "name": "", - "range": "[2:0]", - "clock": false, - "size": 3 + "clock": true }, "position": { - "x": -8, - "y": 424 + "x": 200, + "y": 64 } }, { - "id": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", + "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": "", - "range": "[17:0]", - "size": 18 + "name": "" }, "position": { - "x": 632, - "y": 424 + "x": 720, + "y": 152 } }, { - "id": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", - "type": "basic.memory", + "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": "", - "list": "0\n0\n0\n0", + "value": "0", "local": false }, "position": { - "x": 328, - "y": 96 - }, - "size": { - "width": 96, - "height": 104 + "x": 464, + "y": 0 } }, { - "id": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "id": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", "type": "basic.code", "data": { - "code": "\n//-- Bits del bus de entrada\nlocalparam N = 3;\n\n//-- Bits del bus de salida\nlocalparam M = 18;\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", + "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": "DATA" + "name": "INI" } ], "ports": { "in": [ { - "name": "i", - "range": "[2:0]", - "size": 3 + "name": "clk" + }, + { + "name": "set" + }, + { + "name": "rst" } ], "out": [ { - "name": "q", - "range": "[17:0]", - "size": 18 + "name": "q" } ] } }, "position": { - "x": 176, - "y": 264 + "x": 400, + "y": 120 }, "size": { - "width": 392, - "height": 384 + "width": 224, + "height": 128 } } ], "wires": [ { "source": { - "block": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", - "port": "memory-out" + "block": "9f09a4af-8f7a-45c3-af7b-293a244e76d9", + "port": "out" }, "target": { - "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", - "port": "DATA" + "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": "186c4116-7846-4c8e-98a0-7376675105f1", + "block": "86eb8c81-17fc-4371-bd21-51f429191f3c", "port": "out" }, "target": { - "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", - "port": "i" + "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", + "port": "rst" }, - "size": 3 + "vertices": [ + { + "x": 344, + "y": 248 + } + ] }, { "source": { - "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", "port": "q" }, "target": { - "block": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", + "block": "1cb167a4-9e2a-416b-803e-da7b6151eaa5", "port": "in" + } + }, + { + "source": { + "block": "bf12a800-db30-4289-a7c5-8c08438f9a39", + "port": "constant-out" }, - "size": 18 + "target": { + "block": "90068dea-9e7b-4a0f-afa3-e6585d0d8542", + "port": "INI" + } } ] } } }, - "117a3398e8b038aec02d56f0f0ebdd6197dd5305": { + "8e2728307baccbf26c01cdb87bcfba8ca64a435c": { "package": { - "name": "Contador-3bits-up-rst", + "name": "Subida", "version": "0.1", - "description": "Contador módulo M, ascendente, de 3 bits, con reset ", + "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=%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" + "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": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "id": "4196184b-4a60-493b-bcc6-c95958483683", "type": "basic.input", "data": { "name": "", "clock": true }, "position": { - "x": 264, + "x": 152, "y": 176 } }, { - "id": "2124c987-5d1b-4335-858f-502559b11a26", + "id": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", "type": "basic.output", "data": { - "name": "", - "range": "[2:0]", - "size": 3 + "name": "" }, "position": { - "x": 800, + "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" + } + } + ] + } + } + }, + "1535f6f47d269b5d2de10c9fcd212e580a4d640c": { + "package": { + "name": "mi-tabla3-18", + "version": "0.1", + "description": "Circuito combinacional de 3 entradas y 18 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": "[17:0]", + "size": 18 + }, + "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 = 18;\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": "[17:0]", + "size": 18 + } + ] + } + }, + "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": 18 + } + ] + } + } + }, + "117a3398e8b038aec02d56f0f0ebdd6197dd5305": { + "package": { + "name": "Contador-3bits-up-rst", + "version": "0.1", + "description": "Contador módulo M, ascendente, de 3 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": "2124c987-5d1b-4335-858f-502559b11a26", + "type": "basic.output", + "data": { + "name": "", + "range": "[2:0]", + "size": 3 + }, + "position": { + "x": 800, "y": 200 } }, @@ -3393,2063 +3788,1165 @@ } }, { - "id": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "type": "5483349a60d7c0f7f4146228196d6f4c4ad7604d", - "position": { - "x": -568, - "y": 512 - }, - "size": { - "width": 96, - "height": 128 - } - }, - { - "id": "43205473-b036-4e36-8371-f424b8d09581", - "type": "56cc183f8c704107b94d882715f6e43592dcaf61", - "position": { - "x": -856, - "y": 880 - }, - "size": { - "width": 96, - "height": 192 - } - }, - { - "id": "a0139b24-fc4f-4a98-911b-6a510b929bca", - "type": "eebee1482748e838ffef3618817cc1fa911e4952", - "position": { - "x": -928, - "y": 528 - }, - "size": { - "width": 96, - "height": 96 - } - }, - { - "id": "23836a37-4ae5-4e06-be42-1a6047af199d", - "type": "945d5c43e22d4f1d3f8e379417d47f170e4adcf6", - "position": { - "x": -1144, - "y": 528 - }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "3a242407-5ac7-4348-beb7-b08d6f8c66f4", - "type": "ceff2da3577d3e4da3ad522a234b993cfc71e21a", - "position": { - "x": -1144, - "y": 448 - }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "5339e7e3-3097-4ee7-bf79-07c1d3172a8e", - "type": "a475867b1a8ac28299ed315b271747ba4ec10c54", - "position": { - "x": -1760, - "y": 1256 - }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "c7a93f63-7a23-4049-ab68-220c1a70b111", - "type": "fc9dacc62ad25cd2832c3442bf277af9b708249b", - "position": { - "x": -1488, - "y": 1256 - }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "9e57aa64-2990-4ff3-8244-9a70f77ff6f5", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", - "position": { - "x": 1408, - "y": 744 - }, - "size": { - "width": 96, - "height": 64 - } - } - ], - "wires": [ - { - "source": { - "block": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a", - "port": "out" - }, - "target": { - "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", - "port": "076fd025-aa42-4f23-ae97-b65aec2298ce" - } - }, - { - "source": { - "block": "a3b7a6de-f60f-4b9b-b215-04dc02da40ef", - "port": "constant-out" - }, - "target": { - "block": "87a39423-9ce6-4036-8776-cb7f14be9458", - "port": "5dc401ee-7963-464f-8ab5-e8ddedf191e2" - } - }, - { - "source": { - "block": "87a39423-9ce6-4036-8776-cb7f14be9458", - "port": "e69a71cb-1e3d-49df-a1cc-81fa1126bbb9" - }, - "target": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "748fced1-f2be-412a-87de-a0d8276e6a06" - } - }, - { - "source": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "20e1709f-bff4-4373-a485-5af7052a37d7" - }, - "target": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "bcadfb63-1fdf-43bc-9899-675e5f3658cb" - } - }, - { - "source": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "9290b4c2-5520-4b99-97d3-a140a411a149" - }, - "target": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "dbf76d1d-8bfd-4200-b03e-eb455043634d" - } - }, - { - "source": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "7d9cf16e-b23e-4358-a2fb-baaa07df6deb" - }, - "target": { - "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", - "port": "04fdb7a7-2740-4ff1-ad26-56407ef5b958" - } - }, - { - "source": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "a405ecb1-98ac-4483-8159-6045ca825985" - }, - "target": { - "block": "43bc16ab-b91d-405c-bef0-887bd1a85fd7", - "port": "in" - } - }, - { - "source": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "b987c71e-d76f-43eb-8371-a2aa09d98d15" - }, - "target": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "0096caa8-5e84-418c-9f49-61cccdca8cc0" - }, - "vertices": [ - { - "x": 0, - "y": 432 - } - ] - }, - { - "source": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "de068252-1546-4d1a-8452-955530fdf5de" - }, - "target": { - "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", - "port": "f96a1baf-fc8b-4c25-b132-12552605743f" - }, - "vertices": [ - { - "x": 328, - "y": 408 - } - ] - }, - { - "source": { - "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", - "port": "0b3c9646-6557-423b-90de-df434a651a71" - }, - "target": { - "block": "11599aed-e7f9-4b50-9552-18a18327fe0a", - "port": "in" - } - }, - { - "source": { - "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", - "port": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058" - }, - "target": { - "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", - "port": "4f968b50-2b7d-4192-a522-aade138c8ae1" - }, - "vertices": [] - }, - { - "source": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "543d92bb-e56e-4aed-a598-1c40b3773841" - }, - "target": { - "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", - "port": "4889ff2d-1850-4fad-bae9-8c1cc8efcdea" - } - }, - { - "source": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "1d8c0dd2-96bc-462a-8a33-05472851522d" - }, - "target": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "3e14c77c-be98-43cb-aa0d-b1a391a5374e" - }, - "vertices": [ - { - "x": -72, - "y": 464 - } - ] - }, - { - "source": { - "block": "87a39423-9ce6-4036-8776-cb7f14be9458", - "port": "178cb827-993b-4cf3-b94f-282a9098fcd0" - }, - "target": { - "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "port": "0319df1a-5bd5-4abc-8681-6f3a8fa4e108" - }, - "vertices": [ - { - "x": -792, - "y": 528 - } - ] - }, - { - "source": { - "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "port": "162f5f2d-17dc-4d0e-b6f9-6ebdf74392f0" - }, - "target": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "cdf85427-0efe-4adb-b48d-dab3daccacce" - }, - "vertices": [ - { - "x": -424, - "y": 472 - } - ] - }, - { - "source": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "412c6872-b61e-4af8-8ece-577a8adb185c" - }, - "target": { - "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "port": "f966672f-ae05-4499-8a8d-3c9394a1119e" - }, - "vertices": [ - { - "x": -296, - "y": 656 - } - ] - }, - { - "source": { - "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "port": "5dc54e8b-49c1-4ddb-94ab-843b247b73c4" - }, - "target": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "58c39529-9934-4dc2-af86-ab5efe0bbad1" - }, - "vertices": [ - { - "x": -32, - "y": 448 - } - ] - }, - { - "source": { - "block": "87a39423-9ce6-4036-8776-cb7f14be9458", - "port": "3d54bf83-8d31-4eb5-bb7a-ccbe53ede036" - }, - "target": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "63a0f19e-1e7c-4e61-b89a-f6fc4eb74afb" - } - }, - { - "source": { - "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "port": "088c7d8e-99b1-4f2e-a6c0-a672e5239844" - }, - "target": { - "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", - "port": "a409d207-7594-4558-8e15-89712262cf5b" - }, - "size": 2 - }, - { - "source": { - "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", - "port": "0f7487e5-b070-4277-bba6-acf69934afca" - }, - "target": { - "block": "ff11ff86-a76f-4122-b288-7122c87583f9", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" - } - }, - { - "source": { - "block": "5fd0f75f-64b4-489d-94ba-466de809fa10", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", - "port": "97b51945-d716-4b6c-9db9-970d08541249" - } - }, - { - "source": { - "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", - "port": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7" - } - }, - { - "source": { - "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" - }, - "target": { - "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", - "port": "ed62d7ef-27fb-44ef-99e8-a19bad6342dd" - } - }, - { - "source": { - "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", - "port": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058" - }, - "target": { - "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" - }, - "vertices": [ - { - "x": 984, - "y": 32 - } - ] - }, - { - "source": { - "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", - "port": "e6088243-1d79-4783-ac0f-528d9700b6df" - } - }, - { - "source": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "b987c71e-d76f-43eb-8371-a2aa09d98d15" - }, - "target": { - "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" - }, - "vertices": [ - { - "x": -8, - "y": 136 - } - ] - }, - { - "source": { - "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", - "port": "90654ccb-afdd-41ec-aaf8-b9be5b51253b" - }, - "target": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "42b35cc2-aa64-4e66-be42-169958246799" - }, - "size": 8 - }, - { - "source": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52" - }, - "target": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "065ea371-8398-43b3-8341-287c234a3acb" - }, - "vertices": [ - { - "x": 576, - "y": 632 - }, - { - "x": 1232, - "y": 328 - } - ] - }, - { - "source": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "d3e4f800-c611-4f65-88e7-8b7d2def0021" - }, - "target": { - "block": "2dd424a5-e616-4505-8a89-4982cdd7539d", - "port": "in" - }, - "size": 8 - }, - { - "source": { - "block": "c7934725-89bb-4c91-a3e5-eeef6b921f11", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "7435a99e-3148-4748-aeb3-4bbe7cd9ee12", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" - } - }, - { - "source": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52" - }, - "target": { - "block": "c7934725-89bb-4c91-a3e5-eeef6b921f11", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" - }, - "vertices": [ - { - "x": 712, - "y": 576 - } - ] - }, - { - "source": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "18918c51-cad4-4993-b228-985afc99944e" - }, - "target": { - "block": "87a39423-9ce6-4036-8776-cb7f14be9458", - "port": "2d249745-5883-469d-bf5a-5526f4e2f8c9" - }, - "vertices": [ - { - "x": -40, - "y": 200 - }, - { - "x": -1216, - "y": 320 - } - ] - }, - { - "source": { - "block": "f69cff70-8365-4b3a-a4d9-1f0e211caaa0", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "c7934725-89bb-4c91-a3e5-eeef6b921f11", - "port": "97b51945-d716-4b6c-9db9-970d08541249" - } - }, - { - "source": { - "block": "83cb1364-e769-4b68-a090-a78237494c57", - "port": "0ef557c8-5378-43b3-80af-176f129f1a07" - }, - "target": { - "block": "f69cff70-8365-4b3a-a4d9-1f0e211caaa0", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" - }, - "vertices": [ - { - "x": 752, - "y": 760 - } - ] - }, - { - "source": { - "block": "ff11ff86-a76f-4122-b288-7122c87583f9", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "83cb1364-e769-4b68-a090-a78237494c57", - "port": "5898179a-7390-429b-ac3c-b7a0df673610" - } - }, - { - "source": { - "block": "83cb1364-e769-4b68-a090-a78237494c57", - "port": "0ef557c8-5378-43b3-80af-176f129f1a07" - }, - "target": { - "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", - "port": "90b13235-c3b7-46a1-bdfd-f9d3d6b7ddf5" - }, - "vertices": [ - { - "x": 752, - "y": 752 - } - ] - }, - { - "source": { - "block": "83cb1364-e769-4b68-a090-a78237494c57", - "port": "0ef557c8-5378-43b3-80af-176f129f1a07" - }, - "target": { - "block": "5fd0f75f-64b4-489d-94ba-466de809fa10", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" - } - }, - { - "source": { - "block": "83cb1364-e769-4b68-a090-a78237494c57", - "port": "0ef557c8-5378-43b3-80af-176f129f1a07" - }, - "target": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "0f70b35b-6842-4890-8201-e9a5f2278150" - }, - "vertices": [ - { - "x": 56, - "y": 624 - } - ] - }, - { - "source": { - "block": "6f59f402-ae30-4921-9b55-f979bb92b693", - "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" - }, - "target": { - "block": "83cb1364-e769-4b68-a090-a78237494c57", - "port": "db089906-4326-4b59-8aa5-ebb61116a4cd" - } - }, - { - "source": { - "block": "5cdc523e-a6fc-4c9d-bfa8-8311f1589fb2", - "port": "out" - }, - "target": { - "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", - "port": "40e65064-7137-4959-aa9e-f6111677c062" - }, - "vertices": [ - { - "x": 904, - "y": 360 - } - ] - }, - { - "source": { - "block": "ca3f2050-c5d1-40e4-9e8b-063623625d02", - "port": "b" - }, - "target": { - "block": "43205473-b036-4e36-8371-f424b8d09581", - "port": "1f4c1c55-ee75-41d6-8590-b4e650d636cc" - }, - "vertices": [ - { - "x": -992, - "y": 1032 - } - ], - "size": 8 - }, - { - "source": { - "block": "43205473-b036-4e36-8371-f424b8d09581", - "port": "820e19c9-d979-418f-b2e5-d806fa3caca3" - }, - "target": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "ed0e5489-e9b1-4b92-bcfb-22f3737d1c93" - }, - "vertices": [ - { - "x": -688, - "y": 776 - } - ], - "size": 8 - }, - { - "source": { - "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", - "port": "0f7487e5-b070-4277-bba6-acf69934afca" - }, - "target": { - "block": "43205473-b036-4e36-8371-f424b8d09581", - "port": "2cd7e8ed-1ed2-4a5c-a72a-337d703c9712" - }, - "vertices": [ - { - "x": -328, - "y": 1104 - } - ] - }, - { - "source": { - "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", - "port": "f5a71d7b-de20-4527-80c8-0eb20de0dc77" - }, - "target": { - "block": "43205473-b036-4e36-8371-f424b8d09581", - "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" - }, - "vertices": [ - { - "x": -256, - "y": 1136 - }, - { - "x": -920, - "y": 1048 - } - ] - }, - { - "source": { - "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", - "port": "ca28abaf-359d-4f8f-a397-91d76dc936ec" - }, - "target": { - "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "port": "8a0d51b6-8ab0-4ca6-8d57-7fa7e713c738" - }, - "size": 2 - }, - { - "source": { - "block": "23836a37-4ae5-4e06-be42-1a6047af199d", - "port": "6a253ddf-22b2-43cd-ba6f-561bd1af6970" - }, - "target": { - "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", - "port": "8197e6c5-cf9d-42d6-a9e9-3ecccafa27c2" - }, - "size": 2 - }, - { - "source": { - "block": "3a242407-5ac7-4348-beb7-b08d6f8c66f4", - "port": "6a253ddf-22b2-43cd-ba6f-561bd1af6970" - }, - "target": { - "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", - "port": "d220e4a2-bec7-4852-84bd-2baf3df5ccdb" - }, - "size": 2 - }, - { - "source": { - "block": "fba9c594-4b64-4f48-8979-25c1a001e90a", - "port": "out" - }, - "target": { - "block": "5339e7e3-3097-4ee7-bf79-07c1d3172a8e", - "port": "186c4116-7846-4c8e-98a0-7376675105f1" - }, - "size": 2 - }, - { - "source": { - "block": "5339e7e3-3097-4ee7-bf79-07c1d3172a8e", - "port": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5" - }, - "target": { - "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", - "port": "a409d207-7594-4558-8e15-89712262cf5b" - }, - "size": 2 - }, - { - "source": { - "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", - "port": "0f7487e5-b070-4277-bba6-acf69934afca" - }, - "target": { - "block": "ca3f2050-c5d1-40e4-9e8b-063623625d02", - "port": "w" - } - }, - { - "source": { - "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", - "port": "0f7487e5-b070-4277-bba6-acf69934afca" - }, - "target": { - "block": "83cb1364-e769-4b68-a090-a78237494c57", - "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" - } - }, - { - "source": { - "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", - "port": "f5a71d7b-de20-4527-80c8-0eb20de0dc77" - }, - "target": { - "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", - "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" - }, - "vertices": [ - { - "x": -1368, - "y": 920 - } - ] - }, - { - "source": { - "block": "17680ad1-ed73-4b6c-a31e-c96c61fc88ef", - "port": "out" - }, - "target": { - "block": "ca3f2050-c5d1-40e4-9e8b-063623625d02", - "port": "a" - }, - "vertices": [ - { - "x": -1576, - "y": 976 - } - ], - "size": 7 - }, - { - "source": { - "block": "17ec9584-f1ef-4cd5-a0a5-850ecb89065c", - "port": "out" - }, - "target": { - "block": "43205473-b036-4e36-8371-f424b8d09581", - "port": "bc9544e0-2199-4d6a-a6b9-6550b7dd7633" - }, - "vertices": [ - { - "x": -1616, - "y": 968 - } - ], - "size": 8 - }, - { - "source": { - "block": "4f066abd-3ac4-45e9-ad20-d1eff038c986", - "port": "out" - }, - "target": { - "block": "43205473-b036-4e36-8371-f424b8d09581", - "port": "350946d5-2f29-4190-bcf2-e14e17224bb4" - }, - "vertices": [ - { - "x": -1672, - "y": 888 - } - ], - "size": 8 - }, - { - "source": { - "block": "b882b07a-a45e-429f-b442-f6547b67e98e", - "port": "out" - }, - "target": { - "block": "87a39423-9ce6-4036-8776-cb7f14be9458", - "port": "779750dc-e68a-4a62-bb4a-a26b3b32c55c" - }, - "vertices": [ - { - "x": -1520, - "y": 440 - } - ] - }, - { - "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "id": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "type": "5483349a60d7c0f7f4146228196d6f4c4ad7604d", + "position": { + "x": -568, + "y": 512 }, - "target": { - "block": "87a39423-9ce6-4036-8776-cb7f14be9458", - "port": "84b853c2-3707-4f0b-b32b-484b03b19f61" + "size": { + "width": 96, + "height": 128 } }, { - "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "id": "43205473-b036-4e36-8371-f424b8d09581", + "type": "56cc183f8c704107b94d882715f6e43592dcaf61", + "position": { + "x": -856, + "y": 880 }, - "target": { - "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", - "port": "7861c061-e90b-46bb-a639-6399f55f7f11" + "size": { + "width": 96, + "height": 192 } }, { - "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "id": "a0139b24-fc4f-4a98-911b-6a510b929bca", + "type": "eebee1482748e838ffef3618817cc1fa911e4952", + "position": { + "x": -928, + "y": 528 }, - "target": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "0f4f7955-4539-4804-a906-db4abd29fcac" + "size": { + "width": 96, + "height": 96 } }, { - "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "id": "23836a37-4ae5-4e06-be42-1a6047af199d", + "type": "945d5c43e22d4f1d3f8e379417d47f170e4adcf6", + "position": { + "x": -1144, + "y": 528 }, - "target": { - "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", - "port": "9c68c5ce-2425-45f3-9f05-ee4581fa974d" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" - }, - "target": { - "block": "8e70dbf5-9819-427a-8240-c431acd28680", - "port": "72e82947-787f-49f6-b4a4-7fe8f68e573d" + "id": "3a242407-5ac7-4348-beb7-b08d6f8c66f4", + "type": "ceff2da3577d3e4da3ad522a234b993cfc71e21a", + "position": { + "x": -1144, + "y": 448 }, - "vertices": [ - { - "x": 16, - "y": 216 - } - ] + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "id": "5339e7e3-3097-4ee7-bf79-07c1d3172a8e", + "type": "a475867b1a8ac28299ed315b271747ba4ec10c54", + "position": { + "x": -1760, + "y": 1256 }, - "target": { - "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "7435a99e-3148-4748-aeb3-4bbe7cd9ee12", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "id": "c7a93f63-7a23-4049-ab68-220c1a70b111", + "type": "fc9dacc62ad25cd2832c3442bf277af9b708249b", + "position": { + "x": -1488, + "y": 1256 }, - "target": { - "block": "efa38a4c-7d36-47f9-82de-6cf99cf88c3d", - "port": "in" + "size": { + "width": 96, + "height": 64 } }, + { + "id": "9e57aa64-2990-4ff3-8244-9a70f77ff6f5", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", + "position": { + "x": 1408, + "y": 744 + }, + "size": { + "width": 96, + "height": 64 + } + } + ], + "wires": [ { "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", + "block": "2be9e09c-41a7-4b56-b5c9-ce8d03fceb0a", "port": "out" }, "target": { - "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", - "port": "53ae64df-468f-4f52-b3d9-99da065d5a22" + "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", + "port": "076fd025-aa42-4f23-ae97-b65aec2298ce" } }, { "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "block": "a3b7a6de-f60f-4b9b-b215-04dc02da40ef", + "port": "constant-out" }, "target": { - "block": "bca7a427-a08f-48d3-807c-64a27a08db52", - "port": "096f61b6-6d5c-4907-9512-e65b25969458" + "block": "87a39423-9ce6-4036-8776-cb7f14be9458", + "port": "5dc401ee-7963-464f-8ab5-e8ddedf191e2" } }, { "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "block": "87a39423-9ce6-4036-8776-cb7f14be9458", + "port": "e69a71cb-1e3d-49df-a1cc-81fa1126bbb9" }, "target": { - "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", - "port": "b2c9360e-b412-4621-af8b-a8762be2b072" - }, - "vertices": [ - { - "x": 1000, - "y": -80 - } - ] + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "748fced1-f2be-412a-87de-a0d8276e6a06" + } }, { "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "20e1709f-bff4-4373-a485-5af7052a37d7" }, "target": { - "block": "7435a99e-3148-4748-aeb3-4bbe7cd9ee12", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" - }, - "vertices": [ - { - "x": 1360, - "y": 200 - } - ] + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "bcadfb63-1fdf-43bc-9899-675e5f3658cb" + } }, { "source": { - "block": "6355398c-628e-42d2-86e8-f85762c31939", - "port": "out" + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "9290b4c2-5520-4b99-97d3-a140a411a149" }, "target": { - "block": "9e57aa64-2990-4ff3-8244-9a70f77ff6f5", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" - }, - "vertices": [ - { - "x": 1360, - "y": 160 - } - ] + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "dbf76d1d-8bfd-4200-b03e-eb455043634d" + } }, { "source": { - "block": "9e57aa64-2990-4ff3-8244-9a70f77ff6f5", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "7d9cf16e-b23e-4358-a2fb-baaa07df6deb" }, "target": { - "block": "18dc0bf6-35be-4fad-9e92-79ae207ff435", - "port": "in" + "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", + "port": "04fdb7a7-2740-4ff1-ad26-56407ef5b958" } }, { "source": { - "block": "7d667955-709f-4725-8ce6-8e6383b19129", - "port": "memory-out" + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "a405ecb1-98ac-4483-8159-6045ca825985" }, "target": { - "block": "5339e7e3-3097-4ee7-bf79-07c1d3172a8e", - "port": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377" + "block": "43bc16ab-b91d-405c-bef0-887bd1a85fd7", + "port": "in" } }, { "source": { - "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", - "port": "18918c51-cad4-4993-b228-985afc99944e" + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "b987c71e-d76f-43eb-8371-a2aa09d98d15" }, "target": { - "block": "9e57aa64-2990-4ff3-8244-9a70f77ff6f5", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "0096caa8-5e84-418c-9f49-61cccdca8cc0" }, "vertices": [ { - "x": 248, - "y": 944 + "x": 0, + "y": 432 } ] - } - ] - } - } - }, - "e1a052c716ee278ec9830939ef171d742c56eafe": { - "package": { - "name": "Tri-state", - "version": "1.0.1", - "description": "Tri-state logic block", - "author": "Salvador E. Tropea", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%22-265%20401.5%2063.5%2038.4%22%20id=%22svg2%22%3E%3Cstyle%20id=%22style3%22/%3E%3Cpath%20d=%22M-9.78%203.538l-4.214%2024.984-19.53-16.141z%22%20transform=%22matrix(.62422%20-.11476%20.1058%20.67701%20-219.33%20413.046)%22%20id=%22path3008%22%20fill=%22none%22%20stroke=%22#0b0b0b%22%20stroke-width=%221.885%22/%3E%3Cpath%20d=%22M-9.78%203.538l-4.214%2024.984-19.53-16.141z%22%20transform=%22matrix(-.62422%20-.11476%20-.1058%20.67701%20-244.991%20400.53)%22%20id=%22path3008-6%22%20fill=%22none%22%20stroke=%22#0b0b0b%22%20stroke-width=%221.885%22/%3E%3Cpath%20d=%22M40.154%2011.247H63.74%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3800%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M25.945%2023.73l-7.364.058V11.305h7.076%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3802%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M-265.029%20412.747l18.582.058%22%20id=%22path3804%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M.081%2023.919h12.936v7.566h19.037V27.58%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3806%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M0%2035.96h49.302V24.162h-9.356%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3812%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3C/svg%3E" - }, - "design": { - "config": "true", - "graph": { - "blocks": [ - { - "id": "076fd025-aa42-4f23-ae97-b65aec2298ce", - "type": "basic.input", - "data": { - "name": "pin" - }, - "position": { - "x": 32, - "y": 40 - } }, { - "id": "f96a1baf-fc8b-4c25-b132-12552605743f", - "type": "basic.input", - "data": { - "name": "oe" + "source": { + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "de068252-1546-4d1a-8452-955530fdf5de" }, - "position": { - "x": 32, - "y": 128 - } - }, - { - "id": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058", - "type": "basic.output", - "data": { - "name": "din" + "target": { + "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", + "port": "f96a1baf-fc8b-4c25-b132-12552605743f" }, - "position": { - "x": 760, - "y": 128 - } + "vertices": [ + { + "x": 328, + "y": 408 + } + ] }, { - "id": "04fdb7a7-2740-4ff1-ad26-56407ef5b958", - "type": "basic.input", - "data": { - "name": "dout", - "clock": false + "source": { + "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", + "port": "0b3c9646-6557-423b-90de-df434a651a71" }, - "position": { - "x": 32, - "y": 216 + "target": { + "block": "11599aed-e7f9-4b50-9552-18a18327fe0a", + "port": "in" } }, { - "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": "pin" - }, - { - "name": "oe" - }, - { - "name": "dout" - } - ], - "out": [ - { - "name": "din" - } - ] - } + "source": { + "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", + "port": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058" }, - "position": { - "x": 248, - "y": 32 + "target": { + "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", + "port": "4f968b50-2b7d-4192-a522-aade138c8ae1" }, - "size": { - "width": 384, - "height": 256 - } - } - ], - "wires": [ + "vertices": [] + }, { "source": { - "block": "076fd025-aa42-4f23-ae97-b65aec2298ce", - "port": "out" + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "543d92bb-e56e-4aed-a598-1c40b3773841" }, "target": { - "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", - "port": "pin" + "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", + "port": "4889ff2d-1850-4fad-bae9-8c1cc8efcdea" } }, { "source": { - "block": "f96a1baf-fc8b-4c25-b132-12552605743f", - "port": "out" + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "1d8c0dd2-96bc-462a-8a33-05472851522d" }, "target": { - "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", - "port": "oe" - } + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "3e14c77c-be98-43cb-aa0d-b1a391a5374e" + }, + "vertices": [ + { + "x": -72, + "y": 464 + } + ] }, { "source": { - "block": "04fdb7a7-2740-4ff1-ad26-56407ef5b958", - "port": "out" + "block": "87a39423-9ce6-4036-8776-cb7f14be9458", + "port": "178cb827-993b-4cf3-b94f-282a9098fcd0" }, "target": { - "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", - "port": "dout" - } + "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "port": "0319df1a-5bd5-4abc-8681-6f3a8fa4e108" + }, + "vertices": [ + { + "x": -792, + "y": 528 + } + ] }, { "source": { - "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", - "port": "din" + "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "port": "162f5f2d-17dc-4d0e-b6f9-6ebdf74392f0" }, "target": { - "block": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058", - "port": "in" - } - } - ] - } - } - }, - "23e63b4fd19d0e1897b3c2faf5316f824f998872": { - "package": { - "name": "i2c-start", - "version": "0.1", - "description": "Generar la condición de start en el bus I2C", - "author": "Juan González-Gómez (Obijuan)", - "image": "" - }, - "design": { - "graph": { - "blocks": [ - { - "id": "84b853c2-3707-4f0b-b32b-484b03b19f61", - "type": "basic.input", - "data": { - "name": "", - "clock": true + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "cdf85427-0efe-4adb-b48d-dab3daccacce" }, - "position": { - "x": 88, - "y": -32 - } + "vertices": [ + { + "x": -424, + "y": 472 + } + ] }, { - "id": "e69a71cb-1e3d-49df-a1cc-81fa1126bbb9", - "type": "basic.output", - "data": { - "name": "sda" + "source": { + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "412c6872-b61e-4af8-8ece-577a8adb185c" }, - "position": { - "x": 568, - "y": 200 - } - }, - { - "id": "2d249745-5883-469d-bf5a-5526f4e2f8c9", - "type": "basic.input", - "data": { - "name": "end", - "clock": false + "target": { + "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "port": "f966672f-ae05-4499-8a8d-3c9394a1119e" }, - "position": { - "x": 88, - "y": 200 - } + "vertices": [ + { + "x": -296, + "y": 656 + } + ] }, { - "id": "3d54bf83-8d31-4eb5-bb7a-ccbe53ede036", - "type": "basic.output", - "data": { - "name": "scl" + "source": { + "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "port": "5dc54e8b-49c1-4ddb-94ab-843b247b73c4" }, - "position": { - "x": 1064, - "y": 272 - } + "target": { + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "58c39529-9934-4dc2-af86-ab5efe0bbad1" + }, + "vertices": [ + { + "x": -32, + "y": 448 + } + ] }, { - "id": "779750dc-e68a-4a62-bb4a-a26b3b32c55c", - "type": "basic.input", - "data": { - "name": "start", - "clock": false + "source": { + "block": "87a39423-9ce6-4036-8776-cb7f14be9458", + "port": "3d54bf83-8d31-4eb5-bb7a-ccbe53ede036" }, - "position": { - "x": 232, - "y": 272 + "target": { + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "63a0f19e-1e7c-4e61-b89a-f6fc4eb74afb" } }, { - "id": "178cb827-993b-4cf3-b94f-282a9098fcd0", - "type": "basic.output", - "data": { - "name": "done" + "source": { + "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "port": "088c7d8e-99b1-4f2e-a6c0-a672e5239844" }, - "position": { - "x": 1072, - "y": 424 - } + "target": { + "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", + "port": "a409d207-7594-4558-8e15-89712262cf5b" + }, + "size": 2 }, { - "id": "a628dcfa-b41e-4605-a6b0-9637f4162e3d", - "type": "basic.constant", - "data": { - "name": "", - "value": "1", - "local": true + "source": { + "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", + "port": "0f7487e5-b070-4277-bba6-acf69934afca" }, - "position": { - "x": 392, - "y": 88 + "target": { + "block": "ff11ff86-a76f-4122-b288-7122c87583f9", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" } }, { - "id": "5dc401ee-7963-464f-8ab5-e8ddedf191e2", - "type": "basic.constant", - "data": { - "name": "T1", - "value": "2", - "local": false + "source": { + "block": "5fd0f75f-64b4-489d-94ba-466de809fa10", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "position": { - "x": 712, - "y": 192 + "target": { + "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", + "port": "97b51945-d716-4b6c-9db9-970d08541249" } }, { - "id": "c73dcb8e-e43f-4550-bccf-cc3cdd24929b", - "type": "basic.constant", - "data": { - "name": "", - "value": "1", - "local": true + "source": { + "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "position": { - "x": 928, - "y": 160 + "target": { + "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", + "port": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7" } }, { - "id": "da65e165-f890-456d-99b1-b01df995f4c6", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", - "position": { - "x": 392, - "y": 184 + "source": { + "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, - "size": { - "width": 96, - "height": 96 + "target": { + "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", + "port": "ed62d7ef-27fb-44ef-99e8-a19bad6342dd" } }, { - "id": "cd6c30b0-11d0-450f-ac49-90598206b72e", - "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", - "position": { - "x": 712, - "y": 288 + "source": { + "block": "ce94e964-10b6-468f-8339-a08ee1c8134e", + "port": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058" }, - "size": { - "width": 96, - "height": 64 - } + "target": { + "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + }, + "vertices": [ + { + "x": 984, + "y": 32 + } + ] }, { - "id": "70332deb-97ed-4ae9-aab5-41813b842b63", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", - "position": { - "x": 928, - "y": 256 + "source": { + "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "size": { - "width": 96, - "height": 96 + "target": { + "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", + "port": "e6088243-1d79-4783-ac0f-528d9700b6df" } }, { - "id": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", - "type": "7eacdff4ce248b009935725889c8ae3339817d76", - "position": { - "x": 568, - "y": 304 + "source": { + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "b987c71e-d76f-43eb-8371-a2aa09d98d15" }, - "size": { - "width": 96, - "height": 64 - } + "target": { + "block": "f6f25263-c9d3-4dbf-9150-547e55b2a13e", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": -8, + "y": 136 + } + ] }, { - "id": "4a80dfb1-abc5-4d93-9bd6-32ad4429fd8c", - "type": "basic.info", - "data": { - "info": "**I2C: Condicion de start**\n\nSDA y SCL están inicialmente en reposo (1). Al llegar un \ntic por start, se genera la condición de start, que consiste \nen poner SDA a 0 y trancurrido un tiempo T1, el reloj SCL \ntambién se pone a 0", - "readonly": true + "source": { + "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", + "port": "90654ccb-afdd-41ec-aaf8-b9be5b51253b" }, - "position": { - "x": -8, - "y": -184 + "target": { + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "42b35cc2-aa64-4e66-be42-169958246799" }, - "size": { - "width": 488, - "height": 96 - } + "size": 8 }, { - "id": "99db5402-e938-480d-8af1-2d06de283e68", - "type": "basic.info", - "data": { - "info": "**Estado de SDA** \n(datos) \nInicialmente a 1", - "readonly": true + "source": { + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52" }, - "position": { - "x": 400, - "y": 8 + "target": { + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "065ea371-8398-43b3-8341-287c234a3acb" }, - "size": { - "width": 176, - "height": 64 - } + "vertices": [ + { + "x": 576, + "y": 632 + }, + { + "x": 1232, + "y": 328 + } + ] }, { - "id": "59ae699f-9133-4108-b510-b0969f8dfcf6", - "type": "basic.info", - "data": { - "info": "**Línea de datos**", - "readonly": true + "source": { + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "d3e4f800-c611-4f65-88e7-8b7d2def0021" }, - "position": { - "x": 568, - "y": 184 + "target": { + "block": "2dd424a5-e616-4505-8a89-4982cdd7539d", + "port": "in" }, - "size": { - "width": 160, - "height": 40 - } + "size": 8 }, { - "id": "3b3ca662-cacb-4ee0-ac34-899858c76d9f", - "type": "basic.info", - "data": { - "info": "La señal SCL está \nretrasada T1 con \nrespecto a SDA", - "readonly": true - }, - "position": { - "x": 712, - "y": 360 + "source": { + "block": "c7934725-89bb-4c91-a3e5-eeef6b921f11", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "size": { - "width": 160, - "height": 64 + "target": { + "block": "7435a99e-3148-4748-aeb3-4bbe7cd9ee12", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" } }, { - "id": "0c7f5554-984c-47fa-8c23-06dca0323445", - "type": "basic.info", - "data": { - "info": "Detectar cuando SDA \nha bajado a 0", - "readonly": true + "source": { + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52" }, - "position": { - "x": 544, - "y": 376 + "target": { + "block": "c7934725-89bb-4c91-a3e5-eeef6b921f11", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, - "size": { - "width": 176, - "height": 56 - } + "vertices": [ + { + "x": 712, + "y": 576 + } + ] }, { - "id": "63b64cd5-55d5-4a5b-be1f-55fce5dab709", - "type": "basic.info", - "data": { - "info": "**Estado de SCL** (Reloj) \nInicialmente a 1", - "readonly": true + "source": { + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "18918c51-cad4-4993-b228-985afc99944e" }, - "position": { - "x": 920, - "y": 112 + "target": { + "block": "87a39423-9ce6-4036-8776-cb7f14be9458", + "port": "2d249745-5883-469d-bf5a-5526f4e2f8c9" }, - "size": { - "width": 168, - "height": 48 + "vertices": [ + { + "x": -40, + "y": 200 + }, + { + "x": -1216, + "y": 320 + } + ] + }, + { + "source": { + "block": "f69cff70-8365-4b3a-a4d9-1f0e211caaa0", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "c7934725-89bb-4c91-a3e5-eeef6b921f11", + "port": "97b51945-d716-4b6c-9db9-970d08541249" } }, { - "id": "0c5e2f7d-b563-465b-aa4d-770b1e14f1ab", - "type": "basic.info", - "data": { - "info": "Al activarse start, SDA \nbaja a 0", - "readonly": true + "source": { + "block": "83cb1364-e769-4b68-a090-a78237494c57", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" }, - "position": { - "x": 264, - "y": 336 + "target": { + "block": "f69cff70-8365-4b3a-a4d9-1f0e211caaa0", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": 752, + "y": 760 + } + ] + }, + { + "source": { + "block": "ff11ff86-a76f-4122-b288-7122c87583f9", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "size": { - "width": 192, - "height": 64 + "target": { + "block": "83cb1364-e769-4b68-a090-a78237494c57", + "port": "5898179a-7390-429b-ac3c-b7a0df673610" } }, { - "id": "c61090f2-72e4-47e0-bd4e-f489b07e3d62", - "type": "basic.info", - "data": { - "info": "Volver al estado de \nreposo (SDA=1, SCL=1)", - "readonly": true + "source": { + "block": "83cb1364-e769-4b68-a090-a78237494c57", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" }, - "position": { - "x": 72, - "y": 152 + "target": { + "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", + "port": "90b13235-c3b7-46a1-bdfd-f9d3d6b7ddf5" }, - "size": { - "width": 192, - "height": 56 - } + "vertices": [ + { + "x": 752, + "y": 752 + } + ] }, { - "id": "d389f312-fb27-41f2-8683-b3771e5d628e", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", - "position": { - "x": 928, - "y": 424 + "source": { + "block": "83cb1364-e769-4b68-a090-a78237494c57", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "5fd0f75f-64b4-489d-94ba-466de809fa10", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" } }, { - "id": "ba8e435f-a5c4-47dc-96d8-b06ce5af1ceb", - "type": "basic.info", - "data": { - "info": "Emitir un tic para indicar \nque la condición de estar \nse ha ejecutado", - "readonly": true + "source": { + "block": "83cb1364-e769-4b68-a090-a78237494c57", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" }, - "position": { - "x": 1032, - "y": 360 + "target": { + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "0f70b35b-6842-4890-8201-e9a5f2278150" }, - "size": { - "width": 240, - "height": 72 - } - } - ], - "wires": [ + "vertices": [ + { + "x": 56, + "y": 624 + } + ] + }, { "source": { - "block": "da65e165-f890-456d-99b1-b01df995f4c6", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "6f59f402-ae30-4921-9b55-f979bb92b693", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" }, "target": { - "block": "e69a71cb-1e3d-49df-a1cc-81fa1126bbb9", - "port": "in" - }, - "vertices": [] + "block": "83cb1364-e769-4b68-a090-a78237494c57", + "port": "db089906-4326-4b59-8aa5-ebb61116a4cd" + } }, { "source": { - "block": "5dc401ee-7963-464f-8ab5-e8ddedf191e2", - "port": "constant-out" + "block": "5cdc523e-a6fc-4c9d-bfa8-8311f1589fb2", + "port": "out" }, "target": { - "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", - "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" + "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", + "port": "40e65064-7137-4959-aa9e-f6111677c062" }, - "vertices": [] + "vertices": [ + { + "x": 904, + "y": 360 + } + ] }, { "source": { - "block": "70332deb-97ed-4ae9-aab5-41813b842b63", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "ca3f2050-c5d1-40e4-9e8b-063623625d02", + "port": "b" }, "target": { - "block": "3d54bf83-8d31-4eb5-bb7a-ccbe53ede036", - "port": "in" + "block": "43205473-b036-4e36-8371-f424b8d09581", + "port": "1f4c1c55-ee75-41d6-8590-b4e650d636cc" }, - "vertices": [] + "vertices": [ + { + "x": -992, + "y": 1032 + } + ], + "size": 8 }, { "source": { - "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", - "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + "block": "43205473-b036-4e36-8371-f424b8d09581", + "port": "820e19c9-d979-418f-b2e5-d806fa3caca3" }, "target": { - "block": "70332deb-97ed-4ae9-aab5-41813b842b63", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "ed0e5489-e9b1-4b92-bcfb-22f3737d1c93" }, - "vertices": [] + "vertices": [ + { + "x": -688, + "y": 776 + } + ], + "size": 8 }, { "source": { - "block": "c73dcb8e-e43f-4550-bccf-cc3cdd24929b", - "port": "constant-out" + "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", + "port": "0f7487e5-b070-4277-bba6-acf69934afca" }, "target": { - "block": "70332deb-97ed-4ae9-aab5-41813b842b63", - "port": "bf12a800-db30-4289-a7c5-8c08438f9a39" + "block": "43205473-b036-4e36-8371-f424b8d09581", + "port": "2cd7e8ed-1ed2-4a5c-a72a-337d703c9712" }, - "vertices": [] + "vertices": [ + { + "x": -328, + "y": 1104 + } + ] }, { "source": { - "block": "a628dcfa-b41e-4605-a6b0-9637f4162e3d", - "port": "constant-out" + "block": "4ea344b1-0d16-4d26-8ec6-528135ff4526", + "port": "f5a71d7b-de20-4527-80c8-0eb20de0dc77" }, "target": { - "block": "da65e165-f890-456d-99b1-b01df995f4c6", - "port": "bf12a800-db30-4289-a7c5-8c08438f9a39" + "block": "43205473-b036-4e36-8371-f424b8d09581", + "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" }, - "vertices": [] + "vertices": [ + { + "x": -256, + "y": 1136 + }, + { + "x": -920, + "y": 1048 + } + ] }, { "source": { - "block": "2d249745-5883-469d-bf5a-5526f4e2f8c9", - "port": "out" + "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", + "port": "ca28abaf-359d-4f8f-a397-91d76dc936ec" }, "target": { - "block": "da65e165-f890-456d-99b1-b01df995f4c6", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "port": "8a0d51b6-8ab0-4ca6-8d57-7fa7e713c738" }, - "vertices": [] + "size": 2 }, { "source": { - "block": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", - "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" + "block": "23836a37-4ae5-4e06-be42-1a6047af199d", + "port": "6a253ddf-22b2-43cd-ba6f-561bd1af6970" }, "target": { - "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", - "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" + "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", + "port": "8197e6c5-cf9d-42d6-a9e9-3ecccafa27c2" }, - "vertices": [] + "size": 2 }, { "source": { - "block": "da65e165-f890-456d-99b1-b01df995f4c6", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "3a242407-5ac7-4348-beb7-b08d6f8c66f4", + "port": "6a253ddf-22b2-43cd-ba6f-561bd1af6970" }, "target": { - "block": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", - "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", + "port": "d220e4a2-bec7-4852-84bd-2baf3df5ccdb" }, - "vertices": [ - { - "x": 504, - "y": 240 - } - ] + "size": 2 }, { "source": { - "block": "779750dc-e68a-4a62-bb4a-a26b3b32c55c", + "block": "fba9c594-4b64-4f48-8979-25c1a001e90a", "port": "out" }, "target": { - "block": "da65e165-f890-456d-99b1-b01df995f4c6", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" - } + "block": "5339e7e3-3097-4ee7-bf79-07c1d3172a8e", + "port": "186c4116-7846-4c8e-98a0-7376675105f1" + }, + "size": 2 }, { "source": { - "block": "2d249745-5883-469d-bf5a-5526f4e2f8c9", - "port": "out" + "block": "5339e7e3-3097-4ee7-bf79-07c1d3172a8e", + "port": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5" }, "target": { - "block": "70332deb-97ed-4ae9-aab5-41813b842b63", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", + "port": "a409d207-7594-4558-8e15-89712262cf5b" }, - "vertices": [ - { - "x": 208, - "y": 456 - }, - { - "x": 856, - "y": 376 - } - ] + "size": 2 }, { "source": { - "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", - "port": "out" + "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", + "port": "0f7487e5-b070-4277-bba6-acf69934afca" }, "target": { - "block": "da65e165-f890-456d-99b1-b01df995f4c6", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "block": "ca3f2050-c5d1-40e4-9e8b-063623625d02", + "port": "w" } }, { "source": { - "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", - "port": "out" + "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", + "port": "0f7487e5-b070-4277-bba6-acf69934afca" }, "target": { - "block": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", - "port": "4196184b-4a60-493b-bcc6-c95958483683" + "block": "83cb1364-e769-4b68-a090-a78237494c57", + "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" + } + }, + { + "source": { + "block": "c7a93f63-7a23-4049-ab68-220c1a70b111", + "port": "f5a71d7b-de20-4527-80c8-0eb20de0dc77" + }, + "target": { + "block": "a0139b24-fc4f-4a98-911b-6a510b929bca", + "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" }, "vertices": [ { - "x": 528, - "y": 88 + "x": -1368, + "y": 920 } ] }, { "source": { - "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", + "block": "17680ad1-ed73-4b6c-a31e-c96c61fc88ef", "port": "out" }, "target": { - "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", - "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" - } + "block": "ca3f2050-c5d1-40e4-9e8b-063623625d02", + "port": "a" + }, + "vertices": [ + { + "x": -1576, + "y": 976 + } + ], + "size": 7 }, { "source": { - "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", + "block": "17ec9584-f1ef-4cd5-a0a5-850ecb89065c", "port": "out" }, "target": { - "block": "70332deb-97ed-4ae9-aab5-41813b842b63", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "block": "43205473-b036-4e36-8371-f424b8d09581", + "port": "bc9544e0-2199-4d6a-a6b9-6550b7dd7633" }, "vertices": [ { - "x": 896, - "y": 200 + "x": -1616, + "y": 968 } - ] - }, - { - "source": { - "block": "d389f312-fb27-41f2-8683-b3771e5d628e", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" - }, - "target": { - "block": "178cb827-993b-4cf3-b94f-282a9098fcd0", - "port": "in" - } + ], + "size": 8 }, { "source": { - "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", - "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + "block": "4f066abd-3ac4-45e9-ad20-d1eff038c986", + "port": "out" }, "target": { - "block": "d389f312-fb27-41f2-8683-b3771e5d628e", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "block": "43205473-b036-4e36-8371-f424b8d09581", + "port": "350946d5-2f29-4190-bcf2-e14e17224bb4" }, "vertices": [ { - "x": 880, - "y": 376 + "x": -1672, + "y": 888 } - ] + ], + "size": 8 }, { "source": { - "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", + "block": "b882b07a-a45e-429f-b442-f6547b67e98e", "port": "out" }, "target": { - "block": "d389f312-fb27-41f2-8683-b3771e5d628e", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "block": "87a39423-9ce6-4036-8776-cb7f14be9458", + "port": "779750dc-e68a-4a62-bb4a-a26b3b32c55c" }, "vertices": [ { - "x": 896, - "y": 368 + "x": -1520, + "y": 440 } ] - } - ] - } - } - }, - "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887": { - "package": { - "name": "timer-usec", - "version": "0.1", - "description": "Temporizador en microsegundos. La señal p está activa durante el tiempo indicado. Por tic se emite un tic al finalizar", - "author": "Juan Gonzalez-Gomez (obijuan)", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20293.13756%20181.35395%22%20width=%22293.137%22%20height=%22181.354%22%3E%3Ccircle%20cx=%22149.086%22%20cy=%2290.681%22%20r=%2270.101%22%20fill=%22#fff%22/%3E%3Cpath%20d=%22M149.086%2013.679c-42.531%200-77.003%2034.472-77.003%2077.002%200%2042.531%2034.472%2077.003%2077.003%2077.003%2042.53%200%2077.003-34.472%2077.003-77.003%200-42.53-34.472-77.002-77.003-77.002zm0%20145.175c-37.673%200-68.173-30.539-68.173-68.173%200-37.633%2030.539-68.172%2068.173-68.172%2037.633%200%2068.172%2030.539%2068.172%2068.172%200%2037.634-30.538%2068.173-68.172%2068.173z%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M146.772%2030.683h4.627v18.2h-4.627zM89.125%2092.965v-4.627h18.2v4.627zm62.261%2057.665h-4.627v-18.2h4.627zm57.647-62.28v4.628h-18.2V88.35zM105.044%2049.905l3.272-3.272%2012.87%2012.87-3.273%203.271zm3.28%2084.79l-3.27-3.272%2012.868-12.87%203.272%203.272zm84.774-3.265l-3.272%203.273-12.87-12.87%203.273-3.272zM189.85%2046.64l3.272%203.272-12.87%2012.87-3.271-3.272z%22%20fill=%22#333%22/%3E%3Ccircle%20cx=%22149.086%22%20cy=%2290.681%22%20r=%224.781%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M149.795%2070.653l2.722.288-2.109%2019.9-2.722-.288z%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M181.26%2072.13l1.276%202.422-32.859%2017.296-1.275-2.422z%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M152.016%2080.386c-1.08%200-1.928.887-1.928%201.928%200%20.656.309%201.234.81%201.581l-14.691%2041.451%201.002.347%2014.691-41.45h.116c1.08%200%201.928-.888%201.928-1.929a1.934%201.934%200%200%200-1.928-1.928z%22%20fill=%22#cf000f%22/%3E%3Ctext%20y=%2242.56%22%20x=%2219.84%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%2269.516%22%20letter-spacing=%220%22%20word-spacing=%220%22%20transform=%22scale(.99853%201.00147)%22%20font-family=%22sans-serif%22%20fill=%22#00f%22%20stroke-width=%221.289%22%3E%3Ctspan%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2242.56%22%20x=%2219.84%22%20font-weight=%22700%22%20font-size=%2239.724%22%3Eus%3C/tspan%3E%3C/text%3E%3Cg%20transform=%22matrix(2.99796%200%200%202.99796%20-53.023%20-84.502)%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(2.99796%200%200%202.99796%20-257.041%20-84.502)%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%3Ccircle%20cx=%22248.578%22%20cy=%2244.56%22%20r=%2243.648%22%20fill=%22#ececec%22%20stroke=%22green%22%20stroke-width=%221.824%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M279.216%2057.21h-5.01V30.018h-51.31v26.98h-5.456%22%20fill=%22none%22%20stroke=%22green%22%20stroke-width=%224.56%22%20stroke-linecap=%22round%22/%3E%3C/svg%3E" - }, - "design": { - "graph": { - "blocks": [ - { - "id": "c45dab76-9d0f-4742-9e4d-3048637d245d", - "type": "basic.output", - "data": { - "name": "p" - }, - "position": { - "x": 1224, - "y": 96 - } - }, - { - "id": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6", - "type": "basic.input", - "data": { - "name": "", - "clock": true - }, - "position": { - "x": 472, - "y": 96 - } - }, - { - "id": "61d11f03-6fbc-4467-a947-d546fa6f6429", - "type": "basic.input", - "data": { - "name": "", - "clock": false - }, - "position": { - "x": 456, - "y": 304 - } }, { - "id": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454", - "type": "basic.output", - "data": { - "name": "tic" + "source": { + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, - "position": { - "x": 1216, - "y": 304 + "target": { + "block": "87a39423-9ce6-4036-8776-cb7f14be9458", + "port": "84b853c2-3707-4f0b-b32b-484b03b19f61" } }, { - "id": "7ca578e5-8e36-4c04-bbea-144418c8e9af", - "type": "basic.constant", - "data": { - "name": "", - "value": "100", - "local": false + "source": { + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, - "position": { - "x": 848, - "y": -96 + "target": { + "block": "cc69a8f8-3c9b-4e89-91d0-e885b455e32b", + "port": "7861c061-e90b-46bb-a639-6399f55f7f11" } }, { - "id": "e6b9690b-1da7-4600-9015-0bbed31633e2", - "type": "basic.info", - "data": { - "info": "**Arranque del** \n**temporizador**", - "readonly": true - }, - "position": { - "x": 448, - "y": 264 + "source": { + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, - "size": { - "width": 144, - "height": 56 + "target": { + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "0f4f7955-4539-4804-a906-db4abd29fcac" } }, { - "id": "f3af4211-e3df-4710-a0a8-96a035a833a9", - "type": "basic.info", - "data": { - "info": "**Salida de pulso**", - "readonly": true - }, - "position": { - "x": 1224, - "y": 72 + "source": { + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, - "size": { - "width": 176, - "height": 40 + "target": { + "block": "e1361008-ba3c-45c7-ab27-5ce2e5dbf1ac", + "port": "9c68c5ce-2425-45f3-9f05-ee4581fa974d" } }, { - "id": "a15228f1-41aa-494c-82fb-5491bf5fcc13", - "type": "basic.info", - "data": { - "info": "**Salida de tic**", - "readonly": true + "source": { + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, - "position": { - "x": 1216, - "y": 280 + "target": { + "block": "8e70dbf5-9819-427a-8240-c431acd28680", + "port": "72e82947-787f-49f6-b4a4-7fe8f68e573d" }, - "size": { - "width": 152, - "height": 40 - } + "vertices": [ + { + "x": 16, + "y": 216 + } + ] }, { - "id": "204eb46d-dd4f-47cf-b0f3-c9095263d325", - "type": "basic.info", - "data": { - "info": "**Parametro del timer** \nmicroseundos a esperar", - "readonly": true - }, - "position": { - "x": 824, - "y": -128 + "source": { + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, - "size": { - "width": 216, - "height": 56 + "target": { + "block": "7df65402-4c8d-4e5f-a0c2-c90579f40266", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" } }, { - "id": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", - "type": "basic.code", - "data": { - "code": "//localparam US;\n\n//-- Constante para dividir y obtener una señal de \n//-- periodo 1 micro-segundo\nlocalparam M = 12;\n\n//-- Calcular el numero de bits para almacenar M\nlocalparam N = $clog2(M);\n\n//-- Cable de reset para el corazon\nwire rst_heart;\n\n//-- Overflow del temporizador del corazon\nwire ov_heart;\n\n//-- Habilitacion del corazon\nwire ena;\n\n//-- Tics del corazon\nwire tic_heart;\n\n//-- Contador del corazon\nreg [N-1:0] heart=0;\n\nalways @(posedge clk)\n if (rst_heart)\n heart <= 0;\n else\n heart <= heart + 1;\n\n//-- Overflow del contador\nassign ov_heart = (heart == M-1);\n\n//-- La salida del corazon es la señal de overflow\nassign tic_heart = ov_heart;\n\n//-- Reset del corazon\nassign rst_heart =~ena | ov_heart;\n\n\n\n//--------------------------------------------\n//-- Contador de tics\n//--------------------------------------------\n\n//-- Calcular el numero de bits para almacenar US tics\nlocalparam CB = $clog2(US);\n\nreg [CB:0] counter = 0;\n\n//-- Overflow del contador\nwire ov;\n\n//-- Señal de reset del contador\nwire rst;\n\nalways @(posedge clk)\nif (rst)\n counter <= 0;\nelse\n if (tic_heart)\n counter <= counter + 1;\n\n//-- Evento: cuenta máxima de tics alcanzada\nassign ov = (counter == US);\n\n//---------------------------------------\n//-- Biestable de estado del timer\n//-- 0: Apagado \n//-- 1: Funcionando\nreg q = 0;\n\nalways @(posedge clk)\n if (start)\n q <= 1'b1;\n else if (rst)\n q<=1'b0;\n \n//-- Lógica de reset\n//En función de la entrada, el estado y \n// el overflow se inicializa el contador y \n// se habilita el corazón de tics\nassign rst = ~q | ov | start;\nassign ena = ~rst;\n\n//-- Salida de pulso\nassign p = q;\n\n//-- Salida de tic\n//-- Saca un tic cuando ha finalizado la cuenta\nassign tic = ov;\n", - "params": [ - { - "name": "US" - } - ], - "ports": { - "in": [ - { - "name": "clk" - }, - { - "name": "start" - } - ], - "out": [ - { - "name": "p" - }, - { - "name": "tic" - } - ] - } - }, - "position": { - "x": 632, - "y": 24 + "source": { + "block": "7435a99e-3148-4748-aeb3-4bbe7cd9ee12", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, - "size": { - "width": 520, - "height": 416 + "target": { + "block": "efa38a4c-7d36-47f9-82de-6cf99cf88c3d", + "port": "in" } - } - ], - "wires": [ + }, { "source": { - "block": "61d11f03-6fbc-4467-a947-d546fa6f6429", + "block": "6355398c-628e-42d2-86e8-f85762c31939", "port": "out" }, "target": { - "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", - "port": "start" + "block": "6b201e25-d04f-4385-a8fb-3e3a2d2bb5e7", + "port": "53ae64df-468f-4f52-b3d9-99da065d5a22" } }, { "source": { - "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", - "port": "p" + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, "target": { - "block": "c45dab76-9d0f-4742-9e4d-3048637d245d", - "port": "in" + "block": "bca7a427-a08f-48d3-807c-64a27a08db52", + "port": "096f61b6-6d5c-4907-9512-e65b25969458" } }, { "source": { - "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", - "port": "tic" + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" }, "target": { - "block": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454", - "port": "in" - } + "block": "d5f67b5c-b5e8-4793-987c-cccd28e4d261", + "port": "b2c9360e-b412-4621-af8b-a8762be2b072" + }, + "vertices": [ + { + "x": 1000, + "y": -80 + } + ] }, { "source": { - "block": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6", + "block": "6355398c-628e-42d2-86e8-f85762c31939", "port": "out" }, "target": { - "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", - "port": "clk" + "block": "7435a99e-3148-4748-aeb3-4bbe7cd9ee12", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + }, + "vertices": [ + { + "x": 1360, + "y": 200 + } + ] + }, + { + "source": { + "block": "6355398c-628e-42d2-86e8-f85762c31939", + "port": "out" + }, + "target": { + "block": "9e57aa64-2990-4ff3-8244-9a70f77ff6f5", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + }, + "vertices": [ + { + "x": 1360, + "y": 160 + } + ] + }, + { + "source": { + "block": "9e57aa64-2990-4ff3-8244-9a70f77ff6f5", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + }, + "target": { + "block": "18dc0bf6-35be-4fad-9e92-79ae207ff435", + "port": "in" } }, { "source": { - "block": "7ca578e5-8e36-4c04-bbea-144418c8e9af", - "port": "constant-out" + "block": "7d667955-709f-4725-8ce6-8e6383b19129", + "port": "memory-out" }, "target": { - "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", - "port": "US" + "block": "5339e7e3-3097-4ee7-bf79-07c1d3172a8e", + "port": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377" } + }, + { + "source": { + "block": "07843396-53b1-40ac-9a93-941f31a3a1b0", + "port": "18918c51-cad4-4993-b228-985afc99944e" + }, + "target": { + "block": "9e57aa64-2990-4ff3-8244-9a70f77ff6f5", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + }, + "vertices": [ + { + "x": 248, + "y": 944 + } + ] } ] } } }, - "7eacdff4ce248b009935725889c8ae3339817d76": { + "e1a052c716ee278ec9830939ef171d742c56eafe": { "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" + "name": "Tri-state", + "version": "1.0.1", + "description": "Tri-state logic block", + "author": "Salvador E. Tropea", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%22-265%20401.5%2063.5%2038.4%22%20id=%22svg2%22%3E%3Cstyle%20id=%22style3%22/%3E%3Cpath%20d=%22M-9.78%203.538l-4.214%2024.984-19.53-16.141z%22%20transform=%22matrix(.62422%20-.11476%20.1058%20.67701%20-219.33%20413.046)%22%20id=%22path3008%22%20fill=%22none%22%20stroke=%22#0b0b0b%22%20stroke-width=%221.885%22/%3E%3Cpath%20d=%22M-9.78%203.538l-4.214%2024.984-19.53-16.141z%22%20transform=%22matrix(-.62422%20-.11476%20-.1058%20.67701%20-244.991%20400.53)%22%20id=%22path3008-6%22%20fill=%22none%22%20stroke=%22#0b0b0b%22%20stroke-width=%221.885%22/%3E%3Cpath%20d=%22M40.154%2011.247H63.74%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3800%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M25.945%2023.73l-7.364.058V11.305h7.076%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3802%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M-265.029%20412.747l18.582.058%22%20id=%22path3804%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M.081%2023.919h12.936v7.566h19.037V27.58%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3806%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3Cpath%20d=%22M0%2035.96h49.302V24.162h-9.356%22%20transform=%22translate(-265%20401.5)%22%20id=%22path3812%22%20fill=%22none%22%20stroke=%22#000%22/%3E%3C/svg%3E" }, "design": { + "config": "true", "graph": { "blocks": [ { - "id": "4196184b-4a60-493b-bcc6-c95958483683", + "id": "076fd025-aa42-4f23-ae97-b65aec2298ce", "type": "basic.input", "data": { - "name": "", - "clock": true + "name": "pin" }, "position": { - "x": 152, - "y": 176 + "x": 32, + "y": 40 } }, { - "id": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", + "id": "f96a1baf-fc8b-4c25-b132-12552605743f", + "type": "basic.input", + "data": { + "name": "oe" + }, + "position": { + "x": 32, + "y": 128 + } + }, + { + "id": "0b2a85b3-b6ac-4e8a-8b16-dd5a195fb058", "type": "basic.output", "data": { - "name": "" + "name": "din" }, "position": { - "x": 624, - "y": 200 + "x": 760, + "y": 128 } }, { - "id": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", + "id": "04fdb7a7-2740-4ff1-ad26-56407ef5b958", "type": "basic.input", "data": { - "name": "", + "name": "dout", "clock": false }, "position": { - "x": 152, - "y": 232 + "x": 32, + "y": 216 } }, { - "id": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "id": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", "type": "basic.code", "data": { - "code": "reg q = 0;\n\nalways @(posedge clk)\n q <= i;\n \nassign o = (q & ~i); ", + "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": "clk" + "name": "pin" }, { - "name": "i" + "name": "oe" + }, + { + "name": "dout" } ], "out": [ { - "name": "o" + "name": "din" } ] } }, "position": { - "x": 336, - "y": 176 + "x": 248, + "y": 32 }, "size": { - "width": 232, - "height": 112 + "width": 384, + "height": 256 } } ], "wires": [ { "source": { - "block": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", + "block": "076fd025-aa42-4f23-ae97-b65aec2298ce", "port": "out" }, "target": { - "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", - "port": "i" + "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", + "port": "pin" } }, { "source": { - "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", - "port": "o" + "block": "f96a1baf-fc8b-4c25-b132-12552605743f", + "port": "out" }, "target": { - "block": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", - "port": "in" + "block": "5c8e9a35-33e7-46ef-a0cc-cc27edcc99c0", + "port": "oe" } }, { "source": { - "block": "4196184b-4a60-493b-bcc6-c95958483683", + "block": "04fdb7a7-2740-4ff1-ad26-56407ef5b958", "port": "out" }, "target": { - "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", - "port": "clk" + "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" } } ] } } }, - "8ba640a4be8254a54e8c2dfad99a8fb6a07b5752": { + "23e63b4fd19d0e1897b3c2faf5316f824f998872": { "package": { - "name": "i2c-nak", + "name": "i2c-start", "version": "0.1", - "description": "Detección de los ACKs del esclavo. Si no se recibe, se activa la salida NAK", + "description": "Generar la condición de start en el bus I2C", "author": "Juan González-Gómez (Obijuan)", "image": "" }, @@ -5457,625 +4954,693 @@ "graph": { "blocks": [ { - "id": "b2c9360e-b412-4621-af8b-a8762be2b072", + "id": "84b853c2-3707-4f0b-b32b-484b03b19f61", "type": "basic.input", "data": { - "name": "clk", + "name": "", + "clock": true + }, + "position": { + "x": 88, + "y": -32 + } + }, + { + "id": "e69a71cb-1e3d-49df-a1cc-81fa1126bbb9", + "type": "basic.output", + "data": { + "name": "sda" + }, + "position": { + "x": 568, + "y": 200 + } + }, + { + "id": "2d249745-5883-469d-bf5a-5526f4e2f8c9", + "type": "basic.input", + "data": { + "name": "end", "clock": false }, "position": { - "x": 272, - "y": 152 + "x": 88, + "y": 200 } }, { - "id": "0b3c9646-6557-423b-90de-df434a651a71", + "id": "3d54bf83-8d31-4eb5-bb7a-ccbe53ede036", "type": "basic.output", "data": { - "name": "nak" + "name": "scl" + }, + "position": { + "x": 1064, + "y": 272 + } + }, + { + "id": "779750dc-e68a-4a62-bb4a-a26b3b32c55c", + "type": "basic.input", + "data": { + "name": "start", + "clock": false }, "position": { - "x": 1136, - "y": 256 + "x": 232, + "y": 272 } }, { - "id": "4f968b50-2b7d-4192-a522-aade138c8ae1", - "type": "basic.input", + "id": "178cb827-993b-4cf3-b94f-282a9098fcd0", + "type": "basic.output", "data": { - "name": "sda_in", - "clock": false + "name": "done" }, "position": { - "x": 256, - "y": 256 + "x": 1072, + "y": 424 } }, { - "id": "4889ff2d-1850-4fad-bae9-8c1cc8efcdea", - "type": "basic.input", + "id": "a628dcfa-b41e-4605-a6b0-9637f4162e3d", + "type": "basic.constant", "data": { - "name": "win", - "clock": false + "name": "", + "value": "1", + "local": true }, "position": { - "x": 256, - "y": 344 + "x": 392, + "y": 88 } }, { - "id": "90b13235-c3b7-46a1-bdfd-f9d3d6b7ddf5", - "type": "basic.input", + "id": "5dc401ee-7963-464f-8ab5-e8ddedf191e2", + "type": "basic.constant", "data": { - "name": "rs", - "clock": false + "name": "T1", + "value": "2", + "local": false }, "position": { - "x": 256, - "y": 432 + "x": 712, + "y": 192 } }, { - "id": "40e65064-7137-4959-aa9e-f6111677c062", - "type": "basic.input", + "id": "c73dcb8e-e43f-4550-bccf-cc3cdd24929b", + "type": "basic.constant", "data": { - "name": "rst", - "clock": false + "name": "", + "value": "1", + "local": true }, "position": { - "x": 264, - "y": 496 + "x": 928, + "y": 160 } }, { - "id": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", - "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "id": "da65e165-f890-456d-99b1-b01df995f4c6", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", "position": { - "x": 560, - "y": 272 + "x": 392, + "y": 184 }, "size": { "width": 96, - "height": 64 + "height": 96 } }, { - "id": "d56e056d-c720-4463-802b-b5454811164c", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "id": "cd6c30b0-11d0-450f-ac49-90598206b72e", + "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", "position": { - "x": 984, - "y": 240 + "x": 712, + "y": 288 }, "size": { "width": 96, - "height": 96 + "height": 64 } }, { - "id": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", - "type": "8e2728307baccbf26c01cdb87bcfba8ca64a435c", + "id": "70332deb-97ed-4ae9-aab5-41813b842b63", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", "position": { - "x": 704, + "x": 928, "y": 256 }, "size": { "width": 96, - "height": 64 + "height": 96 } }, { - "id": "e26aeb27-df86-4761-a854-d13b9e7fd79b", - "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "id": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", + "type": "7eacdff4ce248b009935725889c8ae3339817d76", "position": { - "x": 432, - "y": 360 + "x": 568, + "y": 304 }, "size": { "width": 96, "height": 64 } - } - ], - "wires": [ - { - "source": { - "block": "d56e056d-c720-4463-802b-b5454811164c", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "0b3c9646-6557-423b-90de-df434a651a71", - "port": "in" - }, - "vertices": [] }, { - "source": { - "block": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", - "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" + "id": "4a80dfb1-abc5-4d93-9bd6-32ad4429fd8c", + "type": "basic.info", + "data": { + "info": "**I2C: Condicion de start**\n\nSDA y SCL están inicialmente en reposo (1). Al llegar un \ntic por start, se genera la condición de start, que consiste \nen poner SDA a 0 y trancurrido un tiempo T1, el reloj SCL \ntambién se pone a 0", + "readonly": true }, - "target": { - "block": "d56e056d-c720-4463-802b-b5454811164c", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + "position": { + "x": -8, + "y": -184 }, - "vertices": [] + "size": { + "width": 488, + "height": 96 + } }, { - "source": { - "block": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "99db5402-e938-480d-8af1-2d06de283e68", + "type": "basic.info", + "data": { + "info": "**Estado de SDA** \n(datos) \nInicialmente a 1", + "readonly": true }, - "target": { - "block": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", - "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + "position": { + "x": 400, + "y": 8 }, - "vertices": [] + "size": { + "width": 176, + "height": 64 + } }, { - "source": { - "block": "e26aeb27-df86-4761-a854-d13b9e7fd79b", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", - "port": "97b51945-d716-4b6c-9db9-970d08541249" + "id": "59ae699f-9133-4108-b510-b0969f8dfcf6", + "type": "basic.info", + "data": { + "info": "**Línea de datos**", + "readonly": true }, - "vertices": [] - }, - { - "source": { - "block": "4f968b50-2b7d-4192-a522-aade138c8ae1", - "port": "out" + "position": { + "x": 568, + "y": 184 }, - "target": { - "block": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "size": { + "width": 160, + "height": 40 } }, { - "source": { - "block": "90b13235-c3b7-46a1-bdfd-f9d3d6b7ddf5", - "port": "out" + "id": "3b3ca662-cacb-4ee0-ac34-899858c76d9f", + "type": "basic.info", + "data": { + "info": "La señal SCL está \nretrasada T1 con \nrespecto a SDA", + "readonly": true }, - "target": { - "block": "e26aeb27-df86-4761-a854-d13b9e7fd79b", - "port": "97b51945-d716-4b6c-9db9-970d08541249" - } - }, - { - "source": { - "block": "4889ff2d-1850-4fad-bae9-8c1cc8efcdea", - "port": "out" + "position": { + "x": 712, + "y": 360 }, - "target": { - "block": "e26aeb27-df86-4761-a854-d13b9e7fd79b", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "size": { + "width": 160, + "height": 64 } }, { - "source": { - "block": "40e65064-7137-4959-aa9e-f6111677c062", - "port": "out" + "id": "0c7f5554-984c-47fa-8c23-06dca0323445", + "type": "basic.info", + "data": { + "info": "Detectar cuando SDA \nha bajado a 0", + "readonly": true }, - "target": { - "block": "d56e056d-c720-4463-802b-b5454811164c", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" - } - }, - { - "source": { - "block": "b2c9360e-b412-4621-af8b-a8762be2b072", - "port": "out" + "position": { + "x": 544, + "y": 376 }, - "target": { - "block": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", - "port": "4196184b-4a60-493b-bcc6-c95958483683" + "size": { + "width": 176, + "height": 56 } }, { - "source": { - "block": "b2c9360e-b412-4621-af8b-a8762be2b072", - "port": "out" + "id": "63b64cd5-55d5-4a5b-be1f-55fce5dab709", + "type": "basic.info", + "data": { + "info": "**Estado de SCL** (Reloj) \nInicialmente a 1", + "readonly": true }, - "target": { - "block": "d56e056d-c720-4463-802b-b5454811164c", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" - } - } - ] - } - } - }, - "fc9dacc62ad25cd2832c3442bf277af9b708249b": { - "package": { - "name": "Separador-bus", - "version": "0.1", - "description": "Separador de bus de 2-bits en dos cables", - "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": [ + "position": { + "x": 920, + "y": 112 + }, + "size": { + "width": 168, + "height": 48 + } + }, { - "id": "f5a71d7b-de20-4527-80c8-0eb20de0dc77", - "type": "basic.output", + "id": "0c5e2f7d-b563-465b-aa4d-770b1e14f1ab", + "type": "basic.info", "data": { - "name": "o1" + "info": "Al activarse start, SDA \nbaja a 0", + "readonly": true }, "position": { - "x": 568, - "y": 144 + "x": 264, + "y": 336 + }, + "size": { + "width": 192, + "height": 64 } }, { - "id": "a409d207-7594-4558-8e15-89712262cf5b", - "type": "basic.input", + "id": "c61090f2-72e4-47e0-bd4e-f489b07e3d62", + "type": "basic.info", "data": { - "name": "i", - "range": "[1:0]", - "clock": false, - "size": 2 + "info": "Volver al estado de \nreposo (SDA=1, SCL=1)", + "readonly": true }, "position": { - "x": 120, - "y": 200 + "x": 72, + "y": 152 + }, + "size": { + "width": 192, + "height": 56 } }, { - "id": "0f7487e5-b070-4277-bba6-acf69934afca", - "type": "basic.output", - "data": { - "name": "o0" - }, + "id": "d389f312-fb27-41f2-8683-b3771e5d628e", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", "position": { - "x": 568, - "y": 272 + "x": 928, + "y": 424 + }, + "size": { + "width": 96, + "height": 64 } }, { - "id": "16e78204-213e-4833-9096-89d735307ec2", - "type": "basic.code", + "id": "ba8e435f-a5c4-47dc-96d8-b06ce5af1ceb", + "type": "basic.info", "data": { - "code": "assign o1 = i[1];\nassign o0 = i[0];", - "params": [], - "ports": { - "in": [ - { - "name": "i", - "range": "[1:0]", - "size": 2 - } - ], - "out": [ - { - "name": "o1" - }, - { - "name": "o0" - } - ] - } + "info": "Emitir un tic para indicar \nque la condición de estar \nse ha ejecutado", + "readonly": true }, "position": { - "x": 296, - "y": 176 + "x": 1032, + "y": 360 }, "size": { - "width": 192, - "height": 112 + "width": 240, + "height": 72 } } ], "wires": [ { "source": { - "block": "16e78204-213e-4833-9096-89d735307ec2", - "port": "o1" + "block": "da65e165-f890-456d-99b1-b01df995f4c6", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "f5a71d7b-de20-4527-80c8-0eb20de0dc77", + "block": "e69a71cb-1e3d-49df-a1cc-81fa1126bbb9", "port": "in" - } + }, + "vertices": [] }, { "source": { - "block": "16e78204-213e-4833-9096-89d735307ec2", - "port": "o0" + "block": "5dc401ee-7963-464f-8ab5-e8ddedf191e2", + "port": "constant-out" }, "target": { - "block": "0f7487e5-b070-4277-bba6-acf69934afca", - "port": "in" - } + "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", + "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" + }, + "vertices": [] }, { "source": { - "block": "a409d207-7594-4558-8e15-89712262cf5b", - "port": "out" + "block": "70332deb-97ed-4ae9-aab5-41813b842b63", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "16e78204-213e-4833-9096-89d735307ec2", - "port": "i" - }, - "size": 2 - } - ] - } - } - }, - "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 + "block": "3d54bf83-8d31-4eb5-bb7a-ccbe53ede036", + "port": "in" }, - "position": { - "x": 224, - "y": 248 - } + "vertices": [] }, { - "id": "21039c06-c932-498c-968d-879a68d66795", - "type": "basic.output", - "data": { - "name": "" + "source": { + "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", + "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, - "position": { - "x": 920, - "y": 264 - } - }, - { - "id": "ed62d7ef-27fb-44ef-99e8-a19bad6342dd", - "type": "basic.input", - "data": { - "name": "", - "clock": false + "target": { + "block": "70332deb-97ed-4ae9-aab5-41813b842b63", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" }, - "position": { - "x": 224, - "y": 312 - } + "vertices": [] }, { - "id": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", - "type": "basic.output", - "data": { - "name": "q", - "range": "[7:0]", - "size": 8 + "source": { + "block": "c73dcb8e-e43f-4550-bccf-cc3cdd24929b", + "port": "constant-out" }, - "position": { - "x": 928, - "y": 352 - } + "target": { + "block": "70332deb-97ed-4ae9-aab5-41813b842b63", + "port": "bf12a800-db30-4289-a7c5-8c08438f9a39" + }, + "vertices": [] }, { - "id": "e6088243-1d79-4783-ac0f-528d9700b6df", - "type": "basic.input", - "data": { - "name": "shift", - "clock": false + "source": { + "block": "a628dcfa-b41e-4605-a6b0-9637f4162e3d", + "port": "constant-out" }, - "position": { - "x": 224, - "y": 368 - } + "target": { + "block": "da65e165-f890-456d-99b1-b01df995f4c6", + "port": "bf12a800-db30-4289-a7c5-8c08438f9a39" + }, + "vertices": [] }, { - "id": "5a757228-e2d2-45fb-9241-ebecb5a14315", - "type": "basic.constant", - "data": { - "name": "", - "value": "0", - "local": false + "source": { + "block": "2d249745-5883-469d-bf5a-5526f4e2f8c9", + "port": "out" }, - "position": { - "x": 576, - "y": 144 - } + "target": { + "block": "da65e165-f890-456d-99b1-b01df995f4c6", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + }, + "vertices": [] }, { - "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 - } - ] - } + "source": { + "block": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" + }, + "target": { + "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", + "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" }, - "position": { - "x": 384, - "y": 248 + "vertices": [] + }, + { + "source": { + "block": "da65e165-f890-456d-99b1-b01df995f4c6", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, - "size": { - "width": 480, - "height": 184 + "target": { + "block": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + }, + "vertices": [ + { + "x": 504, + "y": 240 + } + ] + }, + { + "source": { + "block": "779750dc-e68a-4a62-bb4a-a26b3b32c55c", + "port": "out" + }, + "target": { + "block": "da65e165-f890-456d-99b1-b01df995f4c6", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" } - } - ], - "wires": [ + }, { "source": { - "block": "5a757228-e2d2-45fb-9241-ebecb5a14315", - "port": "constant-out" + "block": "2d249745-5883-469d-bf5a-5526f4e2f8c9", + "port": "out" }, "target": { - "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", - "port": "INI" + "block": "70332deb-97ed-4ae9-aab5-41813b842b63", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" }, - "vertices": [] + "vertices": [ + { + "x": 208, + "y": 456 + }, + { + "x": 856, + "y": 376 + } + ] }, { "source": { - "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", - "port": "so" + "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", + "port": "out" }, "target": { - "block": "21039c06-c932-498c-968d-879a68d66795", - "port": "in" + "block": "da65e165-f890-456d-99b1-b01df995f4c6", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" } }, { "source": { - "block": "ed62d7ef-27fb-44ef-99e8-a19bad6342dd", + "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", "port": "out" }, "target": { - "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", - "port": "si" - } + "block": "ef30e58a-55bb-4f96-87ef-485fcb87bb23", + "port": "4196184b-4a60-493b-bcc6-c95958483683" + }, + "vertices": [ + { + "x": 528, + "y": 88 + } + ] }, { "source": { - "block": "e6088243-1d79-4783-ac0f-528d9700b6df", + "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", "port": "out" }, "target": { - "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", - "port": "shift" + "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", + "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" } }, { "source": { - "block": "53ae64df-468f-4f52-b3d9-99da065d5a22", + "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", "port": "out" }, "target": { - "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", - "port": "clk" - } + "block": "70332deb-97ed-4ae9-aab5-41813b842b63", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + }, + "vertices": [ + { + "x": 896, + "y": 200 + } + ] }, { "source": { - "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", - "port": "q" + "block": "d389f312-fb27-41f2-8683-b3771e5d628e", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", + "block": "178cb827-993b-4cf3-b94f-282a9098fcd0", "port": "in" + } + }, + { + "source": { + "block": "cd6c30b0-11d0-450f-ac49-90598206b72e", + "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, - "size": 8 + "target": { + "block": "d389f312-fb27-41f2-8683-b3771e5d628e", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + }, + "vertices": [ + { + "x": 880, + "y": 376 + } + ] + }, + { + "source": { + "block": "84b853c2-3707-4f0b-b32b-484b03b19f61", + "port": "out" + }, + "target": { + "block": "d389f312-fb27-41f2-8683-b3771e5d628e", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + }, + "vertices": [ + { + "x": 896, + "y": 368 + } + ] } ] } } }, - "42ebf732ed72b2aa979e6858281bfe62c10bec5f": { + "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887": { "package": { - "name": "Biestable-D", + "name": "timer-usec", "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=%22216.379%22%20height=%22279.911%22%20viewBox=%220%200%2057.25032%2074.059853%22%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M41.506%2040.152l13.608%2016.672-6.918-20.534%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%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-width=%221.0924880399999999%22/%3E%3C/g%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%3C/svg%3E" + "description": "Temporizador en microsegundos. La señal p está activa durante el tiempo indicado. Por tic se emite un tic al finalizar", + "author": "Juan Gonzalez-Gomez (obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20293.13756%20181.35395%22%20width=%22293.137%22%20height=%22181.354%22%3E%3Ccircle%20cx=%22149.086%22%20cy=%2290.681%22%20r=%2270.101%22%20fill=%22#fff%22/%3E%3Cpath%20d=%22M149.086%2013.679c-42.531%200-77.003%2034.472-77.003%2077.002%200%2042.531%2034.472%2077.003%2077.003%2077.003%2042.53%200%2077.003-34.472%2077.003-77.003%200-42.53-34.472-77.002-77.003-77.002zm0%20145.175c-37.673%200-68.173-30.539-68.173-68.173%200-37.633%2030.539-68.172%2068.173-68.172%2037.633%200%2068.172%2030.539%2068.172%2068.172%200%2037.634-30.538%2068.173-68.172%2068.173z%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M146.772%2030.683h4.627v18.2h-4.627zM89.125%2092.965v-4.627h18.2v4.627zm62.261%2057.665h-4.627v-18.2h4.627zm57.647-62.28v4.628h-18.2V88.35zM105.044%2049.905l3.272-3.272%2012.87%2012.87-3.273%203.271zm3.28%2084.79l-3.27-3.272%2012.868-12.87%203.272%203.272zm84.774-3.265l-3.272%203.273-12.87-12.87%203.273-3.272zM189.85%2046.64l3.272%203.272-12.87%2012.87-3.271-3.272z%22%20fill=%22#333%22/%3E%3Ccircle%20cx=%22149.086%22%20cy=%2290.681%22%20r=%224.781%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M149.795%2070.653l2.722.288-2.109%2019.9-2.722-.288z%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M181.26%2072.13l1.276%202.422-32.859%2017.296-1.275-2.422z%22%20fill=%22#333%22/%3E%3Cpath%20d=%22M152.016%2080.386c-1.08%200-1.928.887-1.928%201.928%200%20.656.309%201.234.81%201.581l-14.691%2041.451%201.002.347%2014.691-41.45h.116c1.08%200%201.928-.888%201.928-1.929a1.934%201.934%200%200%200-1.928-1.928z%22%20fill=%22#cf000f%22/%3E%3Ctext%20y=%2242.56%22%20x=%2219.84%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%2269.516%22%20letter-spacing=%220%22%20word-spacing=%220%22%20transform=%22scale(.99853%201.00147)%22%20font-family=%22sans-serif%22%20fill=%22#00f%22%20stroke-width=%221.289%22%3E%3Ctspan%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2242.56%22%20x=%2219.84%22%20font-weight=%22700%22%20font-size=%2239.724%22%3Eus%3C/tspan%3E%3C/text%3E%3Cg%20transform=%22matrix(2.99796%200%200%202.99796%20-53.023%20-84.502)%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(2.99796%200%200%202.99796%20-257.041%20-84.502)%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%3Ccircle%20cx=%22248.578%22%20cy=%2244.56%22%20r=%2243.648%22%20fill=%22#ececec%22%20stroke=%22green%22%20stroke-width=%221.824%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22/%3E%3Cpath%20d=%22M279.216%2057.21h-5.01V30.018h-51.31v26.98h-5.456%22%20fill=%22none%22%20stroke=%22green%22%20stroke-width=%224.56%22%20stroke-linecap=%22round%22/%3E%3C/svg%3E" }, "design": { "graph": { "blocks": [ { - "id": "3943e194-090b-4553-9df3-88bc4b17abc2", + "id": "c45dab76-9d0f-4742-9e4d-3048637d245d", + "type": "basic.output", + "data": { + "name": "p" + }, + "position": { + "x": 1224, + "y": 96 + } + }, + { + "id": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6", "type": "basic.input", "data": { "name": "", "clock": true }, "position": { - "x": 200, + "x": 472, "y": 96 } }, { - "id": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", + "id": "61d11f03-6fbc-4467-a947-d546fa6f6429", "type": "basic.input", "data": { - "name": "d", + "name": "", "clock": false }, "position": { - "x": 176, - "y": 184 + "x": 456, + "y": 304 } }, { - "id": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", + "id": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454", "type": "basic.output", "data": { - "name": "" + "name": "tic" }, "position": { - "x": 680, - "y": 184 + "x": 1216, + "y": 304 } }, { - "id": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", - "type": "basic.input", + "id": "7ca578e5-8e36-4c04-bbea-144418c8e9af", + "type": "basic.constant", "data": { - "name": "load", - "clock": false + "name": "", + "value": "100", + "local": false }, "position": { - "x": 176, - "y": 248 + "x": 848, + "y": -96 } }, { - "id": "65194b18-5d2a-41b2-bd86-01be99978ad6", - "type": "basic.constant", + "id": "e6b9690b-1da7-4600-9015-0bbed31633e2", + "type": "basic.info", "data": { - "name": "", - "value": "0", - "local": false + "info": "**Arranque del** \n**temporizador**", + "readonly": true }, "position": { - "x": 456, - "y": 64 + "x": 448, + "y": 264 + }, + "size": { + "width": 144, + "height": 56 + } + }, + { + "id": "f3af4211-e3df-4710-a0a8-96a035a833a9", + "type": "basic.info", + "data": { + "info": "**Salida de pulso**", + "readonly": true + }, + "position": { + "x": 1224, + "y": 72 + }, + "size": { + "width": 176, + "height": 40 + } + }, + { + "id": "a15228f1-41aa-494c-82fb-5491bf5fcc13", + "type": "basic.info", + "data": { + "info": "**Salida de tic**", + "readonly": true + }, + "position": { + "x": 1216, + "y": 280 + }, + "size": { + "width": 152, + "height": 40 + } + }, + { + "id": "204eb46d-dd4f-47cf-b0f3-c9095263d325", + "type": "basic.info", + "data": { + "info": "**Parametro del timer** \nmicroseundos a esperar", + "readonly": true + }, + "position": { + "x": 824, + "y": -128 + }, + "size": { + "width": 216, + "height": 56 } }, { - "id": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "id": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", "type": "basic.code", "data": { - "code": "reg q = INI;\nalways @(posedge clk)\n if (load)\n q <= d;", + "code": "//localparam US;\n\n//-- Constante para dividir y obtener una señal de \n//-- periodo 1 micro-segundo\nlocalparam M = 12;\n\n//-- Calcular el numero de bits para almacenar M\nlocalparam N = $clog2(M);\n\n//-- Cable de reset para el corazon\nwire rst_heart;\n\n//-- Overflow del temporizador del corazon\nwire ov_heart;\n\n//-- Habilitacion del corazon\nwire ena;\n\n//-- Tics del corazon\nwire tic_heart;\n\n//-- Contador del corazon\nreg [N-1:0] heart=0;\n\nalways @(posedge clk)\n if (rst_heart)\n heart <= 0;\n else\n heart <= heart + 1;\n\n//-- Overflow del contador\nassign ov_heart = (heart == M-1);\n\n//-- La salida del corazon es la señal de overflow\nassign tic_heart = ov_heart;\n\n//-- Reset del corazon\nassign rst_heart =~ena | ov_heart;\n\n\n\n//--------------------------------------------\n//-- Contador de tics\n//--------------------------------------------\n\n//-- Calcular el numero de bits para almacenar US tics\nlocalparam CB = $clog2(US);\n\nreg [CB:0] counter = 0;\n\n//-- Overflow del contador\nwire ov;\n\n//-- Señal de reset del contador\nwire rst;\n\nalways @(posedge clk)\nif (rst)\n counter <= 0;\nelse\n if (tic_heart)\n counter <= counter + 1;\n\n//-- Evento: cuenta máxima de tics alcanzada\nassign ov = (counter == US);\n\n//---------------------------------------\n//-- Biestable de estado del timer\n//-- 0: Apagado \n//-- 1: Funcionando\nreg q = 0;\n\nalways @(posedge clk)\n if (start)\n q <= 1'b1;\n else if (rst)\n q<=1'b0;\n \n//-- Lógica de reset\n//En función de la entrada, el estado y \n// el overflow se inicializa el contador y \n// se habilita el corazón de tics\nassign rst = ~q | ov | start;\nassign ena = ~rst;\n\n//-- Salida de pulso\nassign p = q;\n\n//-- Salida de tic\n//-- Saca un tic cuando ha finalizado la cuenta\nassign tic = ov;\n", "params": [ { - "name": "INI" + "name": "US" } ], "ports": { @@ -6084,297 +5649,297 @@ "name": "clk" }, { - "name": "d" - }, - { - "name": "load" + "name": "start" } ], "out": [ { - "name": "q" + "name": "p" + }, + { + "name": "tic" } ] } }, "position": { - "x": 384, - "y": 168 + "x": 632, + "y": 24 }, "size": { - "width": 232, - "height": 88 + "width": 520, + "height": 416 } } ], "wires": [ { "source": { - "block": "3943e194-090b-4553-9df3-88bc4b17abc2", + "block": "61d11f03-6fbc-4467-a947-d546fa6f6429", "port": "out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "clk" + "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", + "port": "start" } }, { "source": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "q" + "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", + "port": "p" }, "target": { - "block": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", + "block": "c45dab76-9d0f-4742-9e4d-3048637d245d", "port": "in" } }, { "source": { - "block": "65194b18-5d2a-41b2-bd86-01be99978ad6", - "port": "constant-out" + "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", + "port": "tic" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "INI" + "block": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454", + "port": "in" } }, { "source": { - "block": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", + "block": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6", "port": "out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "d" + "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", + "port": "clk" } }, { "source": { - "block": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", - "port": "out" + "block": "7ca578e5-8e36-4c04-bbea-144418c8e9af", + "port": "constant-out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "load" + "block": "a66b0b7f-4692-489e-9140-fb81fef2a1c5", + "port": "US" } } ] } } }, - "c146d4232b872efc8bb891cd29094024e9cc2c54": { + "7eacdff4ce248b009935725889c8ae3339817d76": { "package": { - "name": "i2c-io", + "name": "Bajada", "version": "0.1", - "description": "Gestion de la entrada/salida en el bus i2c", - "author": "Juan Gonzalez-Gomez (Obijuan)", - "image": "" + "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": "72e82947-787f-49f6-b4a4-7fe8f68e573d", + "id": "4196184b-4a60-493b-bcc6-c95958483683", "type": "basic.input", "data": { "name": "", "clock": true }, "position": { - "x": 624, - "y": 160 + "x": 152, + "y": 176 } }, { - "id": "543d92bb-e56e-4aed-a598-1c40b3773841", + "id": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", "type": "basic.output", "data": { - "name": "win" + "name": "" }, "position": { - "x": 1464, - "y": 288 + "x": 624, + "y": 200 } }, { - "id": "0096caa8-5e84-418c-9f49-61cccdca8cc0", + "id": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", "type": "basic.input", "data": { - "name": "bitclk", + "name": "", "clock": false }, "position": { - "x": 624, - "y": 408 + "x": 152, + "y": 232 } }, { - "id": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52", - "type": "basic.output", + "id": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "type": "basic.code", "data": { - "name": "b9" + "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": 1472, - "y": 448 - } - }, - { - "id": "0f70b35b-6842-4890-8201-e9a5f2278150", - "type": "basic.input", - "data": { - "name": "rs", - "clock": false + "x": 336, + "y": 176 }, - "position": { - "x": 616, - "y": 576 + "size": { + "width": 232, + "height": 112 } - }, + } + ], + "wires": [ { - "id": "de068252-1546-4d1a-8452-955530fdf5de", - "type": "basic.output", - "data": { - "name": "oe" + "source": { + "block": "b6426b43-dcda-418d-b6d3-4764b5bc0b25", + "port": "out" }, - "position": { - "x": 1520, - "y": 624 + "target": { + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "i" } }, { - "id": "3e14c77c-be98-43cb-aa0d-b1a391a5374e", - "type": "basic.input", - "data": { - "name": "start", - "clock": false + "source": { + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "o" }, - "position": { - "x": 616, - "y": 688 + "target": { + "block": "1d2e403f-0fa6-41fd-83a9-4f309eadd855", + "port": "in" } }, { - "id": "20ba5dd2-31fb-49c1-96e4-0a4b1cc63de8", - "type": "basic.constant", - "data": { - "name": "", - "value": "1", - "local": true + "source": { + "block": "4196184b-4a60-493b-bcc6-c95958483683", + "port": "out" }, - "position": { - "x": 800, - "y": 536 + "target": { + "block": "3b0eca37-3439-41c9-99e7-7ff1e56bb528", + "port": "clk" } - }, + } + ] + } + } + }, + "8ba640a4be8254a54e8c2dfad99a8fb6a07b5752": { + "package": { + "name": "i2c-nak", + "version": "0.1", + "description": "Detección de los ACKs del esclavo. Si no se recibe, se activa la salida NAK", + "author": "Juan González-Gómez (Obijuan)", + "image": "" + }, + "design": { + "graph": { + "blocks": [ { - "id": "a4e37a91-ed2c-4544-a8a1-88e361e6b85e", - "type": "basic.constant", + "id": "b2c9360e-b412-4621-af8b-a8762be2b072", + "type": "basic.input", "data": { - "name": "", - "value": "9", - "local": true + "name": "clk", + "clock": false }, "position": { - "x": 840, - "y": 264 + "x": 272, + "y": 152 } }, { - "id": "38a8060f-f313-449e-9214-25f933b9cd60", - "type": "basic.constant", + "id": "0b3c9646-6557-423b-90de-df434a651a71", + "type": "basic.output", "data": { - "name": "Anchura-bit", - "value": "5", - "local": true + "name": "nak" }, "position": { - "x": 1040, - "y": 280 - } - }, - { - "id": "17946732-21fc-48c5-93f3-e9d1ad735480", - "type": "d014cb3dfd6b6e5082638cf2bc2db2c35c5b37a8", - "position": { - "x": 840, - "y": 360 - }, - "size": { - "width": 96, - "height": 96 + "x": 1136, + "y": 256 } }, { - "id": "224c436d-92d3-4409-9218-c29ae5e585fb", - "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", - "position": { - "x": 1040, - "y": 384 + "id": "4f968b50-2b7d-4192-a522-aade138c8ae1", + "type": "basic.input", + "data": { + "name": "sda_in", + "clock": false }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "d40380ec-f9b9-4be8-93ab-bcc30a6aa905", - "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", "position": { - "x": 1192, - "y": 368 - }, - "size": { - "width": 96, - "height": 64 + "x": 256, + "y": 256 } }, { - "id": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", - "type": "42ebf732ed72b2aa979e6858281bfe62c10bec5f", - "position": { - "x": 800, - "y": 640 + "id": "4889ff2d-1850-4fad-bae9-8c1cc8efcdea", + "type": "basic.input", + "data": { + "name": "win", + "clock": false }, - "size": { - "width": 96, - "height": 96 + "position": { + "x": 256, + "y": 344 } }, { - "id": "fecc8639-d6d9-4f93-bc5b-109017ef4ea1", - "type": "basic.info", + "id": "90b13235-c3b7-46a1-bdfd-f9d3d6b7ddf5", + "type": "basic.input", "data": { - "info": "rs bit \n(receive/send) \n0: receive \n1: send ", - "readonly": true + "name": "rs", + "clock": false }, "position": { - "x": 816, - "y": 472 - }, - "size": { - "width": 136, - "height": 80 + "x": 256, + "y": 432 } }, { - "id": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "id": "40e65064-7137-4959-aa9e-f6111677c062", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false + }, "position": { - "x": 1056, + "x": 264, "y": 496 + } + }, + { + "id": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 560, + "y": 272 }, "size": { "width": 96, - "height": 96 + "height": 64 } }, { - "id": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", - "type": "5cc6ec961df1a19b78d61422b28169fc0f69384b", + "id": "d56e056d-c720-4463-802b-b5454811164c", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", "position": { - "x": 1352, - "y": 608 + "x": 984, + "y": 240 }, "size": { "width": 96, @@ -6382,394 +5947,348 @@ } }, { - "id": "9483c808-f5f7-423e-ba81-52d9e12c812b", - "type": "basic.info", - "data": { - "info": "Receive-send bit", - "readonly": true - }, + "id": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", + "type": "8e2728307baccbf26c01cdb87bcfba8ca64a435c", "position": { - "x": 616, - "y": 552 + "x": 704, + "y": 256 }, "size": { - "width": 176, - "height": 40 + "width": 96, + "height": 64 } }, { - "id": "c061da2d-fea9-42bb-82f3-9cec484aa116", - "type": "basic.info", - "data": { - "info": "ack window \nThis output is 1 only \nwhen the 9th bit is being \nsent", - "readonly": true - }, + "id": "e26aeb27-df86-4761-a854-d13b9e7fd79b", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", "position": { - "x": 1392, - "y": 216 + "x": 432, + "y": 360 }, "size": { - "width": 232, - "height": 88 + "width": 96, + "height": 64 } } ], "wires": [ { "source": { - "block": "a4e37a91-ed2c-4544-a8a1-88e361e6b85e", - "port": "constant-out" - }, - "target": { - "block": "17946732-21fc-48c5-93f3-e9d1ad735480", - "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" - }, - "vertices": [] - }, - { - "source": { - "block": "38a8060f-f313-449e-9214-25f933b9cd60", - "port": "constant-out" - }, - "target": { - "block": "224c436d-92d3-4409-9218-c29ae5e585fb", - "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" - }, - "vertices": [] - }, - { - "source": { - "block": "17946732-21fc-48c5-93f3-e9d1ad735480", - "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" - }, - "target": { - "block": "224c436d-92d3-4409-9218-c29ae5e585fb", - "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" - }, - "vertices": [] - }, - { - "source": { - "block": "224c436d-92d3-4409-9218-c29ae5e585fb", - "port": "c45dab76-9d0f-4742-9e4d-3048637d245d" + "block": "d56e056d-c720-4463-802b-b5454811164c", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "d40380ec-f9b9-4be8-93ab-bcc30a6aa905", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "block": "0b3c9646-6557-423b-90de-df434a651a71", + "port": "in" }, "vertices": [] }, { "source": { - "block": "17946732-21fc-48c5-93f3-e9d1ad735480", - "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + "block": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" }, "target": { - "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", + "block": "d56e056d-c720-4463-802b-b5454811164c", "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" }, - "vertices": [ - { - "x": 992, - "y": 472 - } - ] + "vertices": [] }, { "source": { - "block": "d40380ec-f9b9-4be8-93ab-bcc30a6aa905", + "block": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", - "port": "5898179a-7390-429b-ac3c-b7a0df673610" + "block": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" }, "vertices": [] }, { "source": { - "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", - "port": "db089906-4326-4b59-8aa5-ebb61116a4cd" - }, - "vertices": [ - { - "x": 1200, - "y": 584 - } - ] - }, - { - "source": { - "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "block": "e26aeb27-df86-4761-a854-d13b9e7fd79b", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", - "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" + "block": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", + "port": "97b51945-d716-4b6c-9db9-970d08541249" }, "vertices": [] }, { "source": { - "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", - "port": "0ef557c8-5378-43b3-80af-176f129f1a07" + "block": "4f968b50-2b7d-4192-a522-aade138c8ae1", + "port": "out" }, "target": { - "block": "de068252-1546-4d1a-8452-955530fdf5de", - "port": "in" - }, - "vertices": [] + "block": "3bdb92a5-ad72-4f36-a8ad-acc3178f5df9", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + } }, { "source": { - "block": "20ba5dd2-31fb-49c1-96e4-0a4b1cc63de8", - "port": "constant-out" + "block": "90b13235-c3b7-46a1-bdfd-f9d3d6b7ddf5", + "port": "out" }, "target": { - "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", - "port": "65194b18-5d2a-41b2-bd86-01be99978ad6" + "block": "e26aeb27-df86-4761-a854-d13b9e7fd79b", + "port": "97b51945-d716-4b6c-9db9-970d08541249" } }, { "source": { - "block": "3e14c77c-be98-43cb-aa0d-b1a391a5374e", + "block": "4889ff2d-1850-4fad-bae9-8c1cc8efcdea", "port": "out" }, "target": { - "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", - "port": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7" + "block": "e26aeb27-df86-4761-a854-d13b9e7fd79b", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" } }, { "source": { - "block": "0f70b35b-6842-4890-8201-e9a5f2278150", + "block": "40e65064-7137-4959-aa9e-f6111677c062", "port": "out" }, "target": { - "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" - }, - "vertices": [ - { - "x": 736, - "y": 632 - } - ] + "block": "d56e056d-c720-4463-802b-b5454811164c", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + } }, { "source": { - "block": "0096caa8-5e84-418c-9f49-61cccdca8cc0", + "block": "b2c9360e-b412-4621-af8b-a8762be2b072", "port": "out" }, "target": { - "block": "17946732-21fc-48c5-93f3-e9d1ad735480", - "port": "26aba23f-8567-4e9b-bd45-c26724030f33" + "block": "b6b1d6f5-b3b8-493f-886f-2a1fafbf2d19", + "port": "4196184b-4a60-493b-bcc6-c95958483683" } }, { "source": { - "block": "3e14c77c-be98-43cb-aa0d-b1a391a5374e", + "block": "b2c9360e-b412-4621-af8b-a8762be2b072", "port": "out" }, "target": { - "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + "block": "d56e056d-c720-4463-802b-b5454811164c", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + } + } + ] + } + } + }, + "fc9dacc62ad25cd2832c3442bf277af9b708249b": { + "package": { + "name": "Separador-bus", + "version": "0.1", + "description": "Separador de bus de 2-bits en dos cables", + "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": "f5a71d7b-de20-4527-80c8-0eb20de0dc77", + "type": "basic.output", + "data": { + "name": "o1" }, - "vertices": [ - { - "x": 880, - "y": 768 - } - ] + "position": { + "x": 568, + "y": 144 + } }, { - "source": { - "block": "224c436d-92d3-4409-9218-c29ae5e585fb", - "port": "c45dab76-9d0f-4742-9e4d-3048637d245d" + "id": "a409d207-7594-4558-8e15-89712262cf5b", + "type": "basic.input", + "data": { + "name": "i", + "range": "[1:0]", + "clock": false, + "size": 2 }, - "target": { - "block": "543d92bb-e56e-4aed-a598-1c40b3773841", - "port": "in" + "position": { + "x": 120, + "y": 200 } }, { - "source": { - "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", - "port": "out" + "id": "0f7487e5-b070-4277-bba6-acf69934afca", + "type": "basic.output", + "data": { + "name": "o0" }, - "target": { - "block": "224c436d-92d3-4409-9218-c29ae5e585fb", - "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" + "position": { + "x": 568, + "y": 272 } }, { - "source": { - "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", - "port": "out" + "id": "16e78204-213e-4833-9096-89d735307ec2", + "type": "basic.code", + "data": { + "code": "assign o1 = i[1];\nassign o0 = i[0];", + "params": [], + "ports": { + "in": [ + { + "name": "i", + "range": "[1:0]", + "size": 2 + } + ], + "out": [ + { + "name": "o1" + }, + { + "name": "o0" + } + ] + } }, - "target": { - "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "position": { + "x": 296, + "y": 176 + }, + "size": { + "width": 192, + "height": 112 } - }, + } + ], + "wires": [ { "source": { - "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", - "port": "out" + "block": "16e78204-213e-4833-9096-89d735307ec2", + "port": "o1" }, "target": { - "block": "17946732-21fc-48c5-93f3-e9d1ad735480", - "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" - }, - "vertices": [ - { - "x": 784, - "y": 296 - } - ] + "block": "f5a71d7b-de20-4527-80c8-0eb20de0dc77", + "port": "in" + } }, { "source": { - "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", - "port": "out" + "block": "16e78204-213e-4833-9096-89d735307ec2", + "port": "o0" }, "target": { - "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "block": "0f7487e5-b070-4277-bba6-acf69934afca", + "port": "in" } }, { "source": { - "block": "17946732-21fc-48c5-93f3-e9d1ad735480", - "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + "block": "a409d207-7594-4558-8e15-89712262cf5b", + "port": "out" }, "target": { - "block": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52", - "port": "in" + "block": "16e78204-213e-4833-9096-89d735307ec2", + "port": "i" }, - "vertices": [ - { - "x": 968, - "y": 464 - } - ] + "size": 2 } ] } } }, - "d014cb3dfd6b6e5082638cf2bc2db2c35c5b37a8": { + "56e0da7091190448826e12c0590f60e2927ced42": { "package": { - "name": "Contador-8bits-up-rst", + "name": "Registro-desplazamiento", "version": "0.1", - "description": "Contador módulo M, ascendente, de 8 bits, con reset ", + "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=%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" + "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": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "id": "53ae64df-468f-4f52-b3d9-99da065d5a22", "type": "basic.input", "data": { "name": "", "clock": true }, "position": { - "x": 264, - "y": 176 + "x": 224, + "y": 248 } }, { - "id": "e2091457-8509-494f-96fc-4a2907d9575f", + "id": "21039c06-c932-498c-968d-879a68d66795", "type": "basic.output", "data": { - "name": "", - "range": "[7:0]", - "size": 8 + "name": "" }, "position": { - "x": 800, - "y": 200 + "x": 920, + "y": 264 } }, { - "id": "743b5299-2d89-4783-b7c9-12a5b36df406", + "id": "ed62d7ef-27fb-44ef-99e8-a19bad6342dd", "type": "basic.input", "data": { - "name": "rst", + "name": "", "clock": false }, "position": { - "x": 264, - "y": 280 + "x": 224, + "y": 312 } }, { - "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "id": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", "type": "basic.output", "data": { - "name": "ov" + "name": "q", + "range": "[7:0]", + "size": 8 }, "position": { - "x": 800, + "x": 928, "y": 352 } }, { - "id": "26aba23f-8567-4e9b-bd45-c26724030f33", + "id": "e6088243-1d79-4783-ac0f-528d9700b6df", "type": "basic.input", "data": { - "name": "cnt", + "name": "shift", "clock": false }, "position": { - "x": 264, - "y": 376 + "x": 224, + "y": 368 } }, { - "id": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "id": "5a757228-e2d2-45fb-9241-ebecb5a14315", "type": "basic.constant", "data": { "name": "", - "value": "256", + "value": "0", "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 + "x": 576, + "y": 144 } }, { - "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "id": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", "type": "basic.code", "data": { - "code": "//-- Numero de bits del contador\nlocalparam N = 8; \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 ", + "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": "M" + "name": "INI" } ], "ports": { @@ -6778,92 +6297,93 @@ "name": "clk" }, { - "name": "rst" + "name": "si" }, { - "name": "cnt" + "name": "shift" } ], "out": [ + { + "name": "so" + }, { "name": "q", "range": "[7:0]", "size": 8 - }, - { - "name": "ov" } ] } }, "position": { - "x": 408, - "y": 160 + "x": 384, + "y": 248 }, "size": { - "width": 336, - "height": 296 + "width": 480, + "height": 184 } } ], "wires": [ { "source": { - "block": "743b5299-2d89-4783-b7c9-12a5b36df406", - "port": "out" + "block": "5a757228-e2d2-45fb-9241-ebecb5a14315", + "port": "constant-out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "rst" - } + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "port": "INI" + }, + "vertices": [] }, { "source": { - "block": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", - "port": "constant-out" + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "port": "so" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "M" + "block": "21039c06-c932-498c-968d-879a68d66795", + "port": "in" } }, { "source": { - "block": "26aba23f-8567-4e9b-bd45-c26724030f33", + "block": "ed62d7ef-27fb-44ef-99e8-a19bad6342dd", "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "cnt" + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "port": "si" } }, { "source": { - "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "block": "e6088243-1d79-4783-ac0f-528d9700b6df", "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "clk" + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "port": "shift" } }, { "source": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "ov" + "block": "53ae64df-468f-4f52-b3d9-99da065d5a22", + "port": "out" }, "target": { - "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", - "port": "in" + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", + "port": "clk" } }, { "source": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "block": "e46df4d6-ebfb-4445-bc4f-7f082c6b5361", "port": "q" }, "target": { - "block": "e2091457-8509-494f-96fc-4a2907d9575f", + "block": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", "port": "in" }, "size": 8 @@ -6872,284 +6392,372 @@ } } }, - "5cc6ec961df1a19b78d61422b28169fc0f69384b": { - "package": { - "name": "Mux 2 a 1", - "version": "0.0.1", - "description": "Multiplexor de 2 a 1", - "author": "Juan Gonzalez-Gomez (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" + "42ebf732ed72b2aa979e6858281bfe62c10bec5f": { + "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=%22216.379%22%20height=%22279.911%22%20viewBox=%220%200%2057.25032%2074.059853%22%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M41.506%2040.152l13.608%2016.672-6.918-20.534%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%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-width=%221.0924880399999999%22/%3E%3C/g%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%3C/svg%3E" }, "design": { "graph": { "blocks": [ { - "id": "5898179a-7390-429b-ac3c-b7a0df673610", + "id": "3943e194-090b-4553-9df3-88bc4b17abc2", "type": "basic.input", "data": { - "name": "i1", - "clock": false + "name": "", + "clock": true }, "position": { - "x": -704, - "y": -88 + "x": 200, + "y": 96 } }, { - "id": "db089906-4326-4b59-8aa5-ebb61116a4cd", + "id": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", "type": "basic.input", "data": { - "name": "i0", + "name": "d", "clock": false }, "position": { - "x": -704, - "y": 0 + "x": 176, + "y": 184 } }, { - "id": "0ef557c8-5378-43b3-80af-176f129f1a07", + "id": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", "type": "basic.output", "data": { "name": "" }, "position": { - "x": -48, - "y": 0 + "x": 680, + "y": 184 } }, { - "id": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", + "id": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", "type": "basic.input", "data": { - "name": "sel", + "name": "load", "clock": false }, "position": { - "x": -704, - "y": 88 + "x": 176, + "y": 248 } }, { - "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "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": "//-- Multiplexor de 2 a 1, \n//-- de 8 bits\n\nreg _o;\n\nalways @(*) begin\n case(sel)\n 0: _o = i0;\n 1: _o = i1;\n default: _o = i0;\n endcase\nend\n\nassign o = _o;\n", - "params": [], + "code": "reg q = INI;\nalways @(posedge clk)\n if (load)\n q <= d;", + "params": [ + { + "name": "INI" + } + ], "ports": { "in": [ { - "name": "i1" + "name": "clk" }, { - "name": "i0" + "name": "d" }, { - "name": "sel" + "name": "load" } ], "out": [ { - "name": "o" + "name": "q" } ] } }, "position": { - "x": -464, - "y": -104 + "x": 384, + "y": 168 }, "size": { - "width": 304, - "height": 272 + "width": 232, + "height": 88 } } ], "wires": [ { "source": { - "block": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", + "block": "3943e194-090b-4553-9df3-88bc4b17abc2", "port": "out" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "sel" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "clk" } }, { "source": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "o" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "q" }, "target": { - "block": "0ef557c8-5378-43b3-80af-176f129f1a07", + "block": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", "port": "in" } }, { "source": { - "block": "db089906-4326-4b59-8aa5-ebb61116a4cd", + "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": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i0" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "d" } }, { "source": { - "block": "5898179a-7390-429b-ac3c-b7a0df673610", + "block": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", "port": "out" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i1" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "load" } } ] } } }, - "3e4cef8e5d182ddc9806ac0f5a9ee24351737373": { + "c146d4232b872efc8bb891cd29094024e9cc2c54": { "package": { - "name": "i2c-stop", + "name": "i2c-io", "version": "0.1", - "description": "Generar una condición de parada en el bus i2c", - "author": "Juan González-Gómez (Obijuan)", + "description": "Gestion de la entrada/salida en el bus i2c", + "author": "Juan Gonzalez-Gomez (Obijuan)", "image": "" }, "design": { "graph": { "blocks": [ { - "id": "0f4f7955-4539-4804-a906-db4abd29fcac", + "id": "72e82947-787f-49f6-b4a4-7fe8f68e573d", "type": "basic.input", "data": { - "name": "clk", - "clock": false + "name": "", + "clock": true }, "position": { - "x": 192, - "y": -8 + "x": 624, + "y": 160 } }, { - "id": "7d9cf16e-b23e-4358-a2fb-baaa07df6deb", + "id": "543d92bb-e56e-4aed-a598-1c40b3773841", "type": "basic.output", "data": { - "name": "sda" + "name": "win" }, "position": { - "x": 1472, - "y": 304 + "x": 1464, + "y": 288 } }, { - "id": "bcadfb63-1fdf-43bc-9899-675e5f3658cb", + "id": "0096caa8-5e84-418c-9f49-61cccdca8cc0", "type": "basic.input", "data": { - "name": "sda", + "name": "bitclk", "clock": false }, "position": { - "x": 440, - "y": 320 + "x": 624, + "y": 408 } }, { - "id": "dbf76d1d-8bfd-4200-b03e-eb455043634d", + "id": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52", + "type": "basic.output", + "data": { + "name": "b9" + }, + "position": { + "x": 1472, + "y": 448 + } + }, + { + "id": "0f70b35b-6842-4890-8201-e9a5f2278150", "type": "basic.input", "data": { - "name": "scl", + "name": "rs", "clock": false }, "position": { - "x": 440, - "y": 384 + "x": 616, + "y": 576 } }, { - "id": "a405ecb1-98ac-4483-8159-6045ca825985", + "id": "de068252-1546-4d1a-8452-955530fdf5de", "type": "basic.output", "data": { - "name": "scl" + "name": "oe" }, "position": { - "x": 1472, - "y": 448 + "x": 1520, + "y": 624 } }, { - "id": "58c39529-9934-4dc2-af86-ab5efe0bbad1", + "id": "3e14c77c-be98-43cb-aa0d-b1a391a5374e", "type": "basic.input", "data": { "name": "start", "clock": false }, "position": { - "x": 440, - "y": 592 + "x": 616, + "y": 688 } }, { - "id": "18918c51-cad4-4993-b228-985afc99944e", - "type": "basic.output", + "id": "20ba5dd2-31fb-49c1-96e4-0a4b1cc63de8", + "type": "basic.constant", "data": { - "name": "done" + "name": "", + "value": "1", + "local": true }, "position": { - "x": 1608, - "y": 624 + "x": 800, + "y": 536 } }, { - "id": "f673b29c-1604-497b-b36d-2f180e7db0ce", + "id": "a4e37a91-ed2c-4544-a8a1-88e361e6b85e", "type": "basic.constant", "data": { - "name": "T3", - "value": "5", + "name": "", + "value": "9", "local": true }, "position": { - "x": 664, - "y": 480 + "x": 840, + "y": 264 } }, { - "id": "b4ecabd8-4c81-45fa-a288-cdd1053a7103", + "id": "38a8060f-f313-449e-9214-25f933b9cd60", "type": "basic.constant", "data": { - "name": "T2", - "value": "2", - "local": false + "name": "Anchura-bit", + "value": "5", + "local": true }, "position": { - "x": 872, - "y": 128 + "x": 1040, + "y": 280 + } + }, + { + "id": "17946732-21fc-48c5-93f3-e9d1ad735480", + "type": "d014cb3dfd6b6e5082638cf2bc2db2c35c5b37a8", + "position": { + "x": 840, + "y": 360 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "224c436d-92d3-4409-9218-c29ae5e585fb", + "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", + "position": { + "x": 1040, + "y": 384 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "d40380ec-f9b9-4be8-93ab-bcc30a6aa905", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 1192, + "y": 368 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", + "type": "42ebf732ed72b2aa979e6858281bfe62c10bec5f", + "position": { + "x": 800, + "y": 640 + }, + "size": { + "width": 96, + "height": 96 } }, { - "id": "e9bd53c9-72d0-4807-9517-94854161e068", + "id": "fecc8639-d6d9-4f93-bc5b-109017ef4ea1", "type": "basic.info", "data": { - "info": "Generar una condición de Stop en el Bus I2C \nCuando está en reposo, las entradas sda y scl atraviesan el \nbloque sin modificación. Cuando se activa start, comienza la \ngeneración de la condición de parada, y SCL se pone a 1. \nTranscurrido un tiempo T2, SDA se pone a 1 también \nSe señalliza en done que se ha completado", + "info": "rs bit \n(receive/send) \n0: receive \n1: send ", "readonly": true }, "position": { - "x": 656, - "y": -168 + "x": 816, + "y": 472 }, "size": { - "width": 504, - "height": 104 + "width": 136, + "height": 80 } }, { - "id": "5f981830-9909-48eb-a685-1866414de350", + "id": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", "position": { - "x": 912, - "y": 576 + "x": 1056, + "y": 496 }, "size": { "width": 96, @@ -7157,375 +6765,681 @@ } }, { - "id": "1adf02bf-5c06-4fab-99bc-de5acac28e78", - "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "id": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", + "type": "5cc6ec961df1a19b78d61422b28169fc0f69384b", "position": { - "x": 1040, - "y": 448 + "x": 1352, + "y": 608 }, "size": { "width": 96, - "height": 64 + "height": 96 } }, { - "id": "596d476b-7130-4489-81e7-e94e8fdde5b9", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "id": "9483c808-f5f7-423e-ba81-52d9e12c812b", + "type": "basic.info", + "data": { + "info": "Receive-send bit", + "readonly": true + }, "position": { - "x": 1208, - "y": 224 + "x": 616, + "y": 552 }, "size": { - "width": 96, - "height": 96 + "width": 176, + "height": 40 } }, { - "id": "151846a8-1a98-4690-b266-d72e69da52b2", - "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", + "id": "c061da2d-fea9-42bb-82f3-9cec484aa116", + "type": "basic.info", + "data": { + "info": "ack window \nThis output is 1 only \nwhen the 9th bit is being \nsent", + "readonly": true + }, "position": { - "x": 872, - "y": 224 + "x": 1392, + "y": 216 }, "size": { - "width": 96, - "height": 64 + "width": 232, + "height": 88 } }, { - "id": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", - "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "id": "dd7847f3-ea23-454b-a234-13b78250d000", + "type": "d30ca9ee4f35f6cb76d5e5701447fc2b739bc640", "position": { - "x": 1336, - "y": 304 + "x": 592, + "y": 312 }, "size": { "width": 96, "height": 64 } + } + ], + "wires": [ + { + "source": { + "block": "a4e37a91-ed2c-4544-a8a1-88e361e6b85e", + "port": "constant-out" + }, + "target": { + "block": "17946732-21fc-48c5-93f3-e9d1ad735480", + "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" + }, + "vertices": [] }, { - "id": "2e6b8317-5b98-49ef-8e02-012434195806", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", - "position": { - "x": 1040, - "y": 128 + "source": { + "block": "38a8060f-f313-449e-9214-25f933b9cd60", + "port": "constant-out" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "224c436d-92d3-4409-9218-c29ae5e585fb", + "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" + }, + "vertices": [] + }, + { + "source": { + "block": "17946732-21fc-48c5-93f3-e9d1ad735480", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + }, + "target": { + "block": "224c436d-92d3-4409-9218-c29ae5e585fb", + "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" + }, + "vertices": [] + }, + { + "source": { + "block": "224c436d-92d3-4409-9218-c29ae5e585fb", + "port": "c45dab76-9d0f-4742-9e4d-3048637d245d" + }, + "target": { + "block": "d40380ec-f9b9-4be8-93ab-bcc30a6aa905", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "17946732-21fc-48c5-93f3-e9d1ad735480", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + }, + "target": { + "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + }, + "vertices": [ + { + "x": 992, + "y": 472 + } + ] + }, + { + "source": { + "block": "d40380ec-f9b9-4be8-93ab-bcc30a6aa905", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", + "port": "5898179a-7390-429b-ac3c-b7a0df673610" + }, + "vertices": [] + }, + { + "source": { + "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", + "port": "db089906-4326-4b59-8aa5-ebb61116a4cd" + }, + "vertices": [ + { + "x": 1200, + "y": 584 + } + ] + }, + { + "source": { + "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + }, + "target": { + "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", + "port": "1e637a79-4a6d-495c-bcac-9664bdbe4b94" + }, + "vertices": [] + }, + { + "source": { + "block": "f1f257f6-cbd6-4ce0-a55b-dfd37a5f7e61", + "port": "0ef557c8-5378-43b3-80af-176f129f1a07" + }, + "target": { + "block": "de068252-1546-4d1a-8452-955530fdf5de", + "port": "in" + }, + "vertices": [] + }, + { + "source": { + "block": "20ba5dd2-31fb-49c1-96e4-0a4b1cc63de8", + "port": "constant-out" + }, + "target": { + "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", + "port": "65194b18-5d2a-41b2-bd86-01be99978ad6" } }, { - "id": "9c32849d-8da7-429a-9768-582042551076", - "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", - "position": { - "x": 664, - "y": 576 + "source": { + "block": "3e14c77c-be98-43cb-aa0d-b1a391a5374e", + "port": "out" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", + "port": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7" } }, { - "id": "8d308b75-de5a-4a05-b8cf-f64d9674ddaf", - "type": "basic.info", - "data": { - "info": "Espera previa al stop", - "readonly": true + "source": { + "block": "0f70b35b-6842-4890-8201-e9a5f2278150", + "port": "out" }, - "position": { - "x": 672, - "y": 440 + "target": { + "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" }, - "size": { - "width": 192, - "height": 32 + "vertices": [ + { + "x": 736, + "y": 632 + } + ] + }, + { + "source": { + "block": "0096caa8-5e84-418c-9f49-61cccdca8cc0", + "port": "out" + }, + "target": { + "block": "17946732-21fc-48c5-93f3-e9d1ad735480", + "port": "26aba23f-8567-4e9b-bd45-c26724030f33" } }, { - "id": "a10c878a-a76e-47e2-87cb-579131d83cfb", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", - "position": { - "x": 440, - "y": 512 + "source": { + "block": "3e14c77c-be98-43cb-aa0d-b1a391a5374e", + "port": "out" + }, + "target": { + "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + }, + "vertices": [ + { + "x": 880, + "y": 768 + } + ] + }, + { + "source": { + "block": "224c436d-92d3-4409-9218-c29ae5e585fb", + "port": "c45dab76-9d0f-4742-9e4d-3048637d245d" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "543d92bb-e56e-4aed-a598-1c40b3773841", + "port": "in" } - } - ], - "wires": [ + }, { "source": { - "block": "1adf02bf-5c06-4fab-99bc-de5acac28e78", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", + "port": "out" }, "target": { - "block": "a405ecb1-98ac-4483-8159-6045ca825985", - "port": "in" - }, - "vertices": [] + "block": "224c436d-92d3-4409-9218-c29ae5e585fb", + "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" + } }, { "source": { - "block": "5f981830-9909-48eb-a685-1866414de350", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", + "port": "out" }, "target": { - "block": "1adf02bf-5c06-4fab-99bc-de5acac28e78", - "port": "97b51945-d716-4b6c-9db9-970d08541249" - }, - "vertices": [] + "block": "c2bbb627-6dd2-4f17-822a-756a3a3bad2c", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + } }, { "source": { - "block": "151846a8-1a98-4690-b266-d72e69da52b2", - "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", + "port": "out" }, "target": { - "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + "block": "17946732-21fc-48c5-93f3-e9d1ad735480", + "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" }, - "vertices": [] + "vertices": [ + { + "x": 784, + "y": 296 + } + ] }, { "source": { - "block": "b4ecabd8-4c81-45fa-a288-cdd1053a7103", - "port": "constant-out" + "block": "72e82947-787f-49f6-b4a4-7fe8f68e573d", + "port": "out" }, "target": { - "block": "151846a8-1a98-4690-b266-d72e69da52b2", - "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" - }, - "vertices": [] + "block": "3f72c3df-a929-4a36-8d1f-c71ed30bdc57", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + } }, { "source": { - "block": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "block": "17946732-21fc-48c5-93f3-e9d1ad735480", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" }, "target": { - "block": "7d9cf16e-b23e-4358-a2fb-baaa07df6deb", + "block": "ae5d3417-2c71-4761-9b1e-cfcbc27d0e52", "port": "in" }, - "vertices": [] + "vertices": [ + { + "x": 968, + "y": 464 + } + ] }, { "source": { - "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "dd7847f3-ea23-454b-a234-13b78250d000", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" }, "target": { - "block": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "block": "17946732-21fc-48c5-93f3-e9d1ad735480", + "port": "743b5299-2d89-4783-b7c9-12a5b36df406" }, - "vertices": [] + "vertices": [ + { + "x": 744, + "y": 360 + } + ] + } + ] + } + } + }, + "d014cb3dfd6b6e5082638cf2bc2db2c35c5b37a8": { + "package": { + "name": "Contador-8bits-up-rst", + "version": "0.1", + "description": "Contador módulo M, ascendente, de 8 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 + } }, { - "source": { - "block": "2e6b8317-5b98-49ef-8e02-012434195806", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "id": "e2091457-8509-494f-96fc-4a2907d9575f", + "type": "basic.output", + "data": { + "name": "", + "range": "[7:0]", + "size": 8 }, - "target": { - "block": "18918c51-cad4-4993-b228-985afc99944e", - "port": "in" + "position": { + "x": 800, + "y": 200 + } + }, + { + "id": "743b5299-2d89-4783-b7c9-12a5b36df406", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false }, - "vertices": [] + "position": { + "x": 264, + "y": 280 + } }, { - "source": { - "block": "151846a8-1a98-4690-b266-d72e69da52b2", - "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "type": "basic.output", + "data": { + "name": "ov" }, - "target": { - "block": "2e6b8317-5b98-49ef-8e02-012434195806", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "position": { + "x": 800, + "y": 352 + } + }, + { + "id": "26aba23f-8567-4e9b-bd45-c26724030f33", + "type": "basic.input", + "data": { + "name": "cnt", + "clock": false }, - "vertices": [] + "position": { + "x": 264, + "y": 376 + } }, { - "source": { - "block": "dbf76d1d-8bfd-4200-b03e-eb455043634d", - "port": "out" + "id": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "type": "basic.constant", + "data": { + "name": "", + "value": "256", + "local": false }, - "target": { - "block": "1adf02bf-5c06-4fab-99bc-de5acac28e78", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "position": { + "x": 528, + "y": 48 } }, { - "source": { - "block": "bcadfb63-1fdf-43bc-9899-675e5f3658cb", - "port": "out" + "id": "b35ae5de-a490-4f7b-9200-ac52cd3f333e", + "type": "basic.info", + "data": { + "info": "**Parámetro**: Módulo del contador", + "readonly": true }, - "target": { - "block": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", - "port": "97b51945-d716-4b6c-9db9-970d08541249" + "position": { + "x": 472, + "y": 32 + }, + "size": { + "width": 280, + "height": 56 } }, { - "source": { - "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "type": "basic.code", + "data": { + "code": "//-- Numero de bits del contador\nlocalparam N = 8; \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": "[7:0]", + "size": 8 + }, + { + "name": "ov" + } + ] + } + }, + "position": { + "x": 408, + "y": 160 + }, + "size": { + "width": 336, + "height": 296 + } + } + ], + "wires": [ + { + "source": { + "block": "743b5299-2d89-4783-b7c9-12a5b36df406", + "port": "out" }, "target": { - "block": "5f981830-9909-48eb-a685-1866414de350", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" - }, - "vertices": [ - { - "x": 568, - "y": 600 - } - ] + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "rst" + } }, { "source": { - "block": "0f4f7955-4539-4804-a906-db4abd29fcac", - "port": "out" + "block": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "port": "constant-out" }, "target": { - "block": "151846a8-1a98-4690-b266-d72e69da52b2", - "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "M" } }, { "source": { - "block": "0f4f7955-4539-4804-a906-db4abd29fcac", + "block": "26aba23f-8567-4e9b-bd45-c26724030f33", "port": "out" }, "target": { - "block": "5f981830-9909-48eb-a685-1866414de350", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "cnt" } }, { "source": { - "block": "0f4f7955-4539-4804-a906-db4abd29fcac", + "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", "port": "out" }, "target": { - "block": "2e6b8317-5b98-49ef-8e02-012434195806", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "clk" } }, { "source": { - "block": "0f4f7955-4539-4804-a906-db4abd29fcac", - "port": "out" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "ov" }, "target": { - "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "port": "in" } }, { "source": { - "block": "f673b29c-1604-497b-b36d-2f180e7db0ce", - "port": "constant-out" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "q" }, "target": { - "block": "9c32849d-8da7-429a-9768-582042551076", - "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" + "block": "e2091457-8509-494f-96fc-4a2907d9575f", + "port": "in" }, - "vertices": [] + "size": 8 + } + ] + } + } + }, + "5cc6ec961df1a19b78d61422b28169fc0f69384b": { + "package": { + "name": "Mux 2 a 1", + "version": "0.0.1", + "description": "Multiplexor de 2 a 1", + "author": "Juan Gonzalez-Gomez (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" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "5898179a-7390-429b-ac3c-b7a0df673610", + "type": "basic.input", + "data": { + "name": "i1", + "clock": false + }, + "position": { + "x": -704, + "y": -88 + } }, { - "source": { - "block": "58c39529-9934-4dc2-af86-ab5efe0bbad1", - "port": "out" + "id": "db089906-4326-4b59-8aa5-ebb61116a4cd", + "type": "basic.input", + "data": { + "name": "i0", + "clock": false }, - "target": { - "block": "9c32849d-8da7-429a-9768-582042551076", - "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" + "position": { + "x": -704, + "y": 0 } }, { - "source": { - "block": "9c32849d-8da7-429a-9768-582042551076", - "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + "id": "0ef557c8-5378-43b3-80af-176f129f1a07", + "type": "basic.output", + "data": { + "name": "" }, - "target": { - "block": "5f981830-9909-48eb-a685-1866414de350", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + "position": { + "x": -48, + "y": 0 } }, { - "source": { - "block": "9c32849d-8da7-429a-9768-582042551076", - "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + "id": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", + "type": "basic.input", + "data": { + "name": "sel", + "clock": false }, - "target": { - "block": "151846a8-1a98-4690-b266-d72e69da52b2", - "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" + "position": { + "x": -704, + "y": 88 } }, + { + "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "type": "basic.code", + "data": { + "code": "//-- Multiplexor de 2 a 1, \n//-- de 8 bits\n\nreg _o;\n\nalways @(*) begin\n case(sel)\n 0: _o = i0;\n 1: _o = i1;\n default: _o = i0;\n endcase\nend\n\nassign o = _o;\n", + "params": [], + "ports": { + "in": [ + { + "name": "i1" + }, + { + "name": "i0" + }, + { + "name": "sel" + } + ], + "out": [ + { + "name": "o" + } + ] + } + }, + "position": { + "x": -464, + "y": -104 + }, + "size": { + "width": 304, + "height": 272 + } + } + ], + "wires": [ { "source": { - "block": "0f4f7955-4539-4804-a906-db4abd29fcac", + "block": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", "port": "out" }, "target": { - "block": "9c32849d-8da7-429a-9768-582042551076", - "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "sel" } }, { "source": { - "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "o" }, "target": { - "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" - }, - "vertices": [ - { - "x": 608, - "y": 376 - } - ] + "block": "0ef557c8-5378-43b3-80af-176f129f1a07", + "port": "in" + } }, { "source": { - "block": "2e6b8317-5b98-49ef-8e02-012434195806", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "block": "db089906-4326-4b59-8aa5-ebb61116a4cd", + "port": "out" }, "target": { - "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" - }, - "vertices": [ - { - "x": 1168, - "y": 712 - } - ] + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i0" + } }, { "source": { - "block": "0f4f7955-4539-4804-a906-db4abd29fcac", + "block": "5898179a-7390-429b-ac3c-b7a0df673610", "port": "out" }, "target": { - "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i1" } } ] } } }, - "725b7e2cb9666b5ed3183537d9c898f096dab82a": { + "d30ca9ee4f35f6cb76d5e5701447fc2b739bc640": { "package": { - "name": "1", - "version": "0.1", - "description": "Un bit constante a 1", + "name": "bit-0", + "version": "0.2", + "description": "Constant bit 0", "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" + "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": { @@ -7537,15 +7451,15 @@ "name": "" }, "position": { - "x": 512, - "y": 160 + "x": 456, + "y": 120 } }, { "id": "61331ec5-2c56-4cdd-b607-e63b1502fa65", "type": "basic.code", "data": { - "code": "//-- Bit constante a 1\nassign q = 1'b1;\n\n", + "code": "//-- Constant bit-0\nassign q = 1'b0;\n\n", "params": [], "ports": { "in": [], @@ -7561,8 +7475,8 @@ "y": 112 }, "size": { - "width": 256, - "height": 160 + "width": 248, + "height": 80 } } ], @@ -7581,232 +7495,158 @@ } } }, - "f1c84b11f2df5ee213cec33e6f9af2d0c66e6924": { + "3e4cef8e5d182ddc9806ac0f5a9ee24351737373": { "package": { - "name": "i2c-data", + "name": "i2c-stop", "version": "0.1", - "description": "Inyectar un byte en el bus i2c", + "description": "Generar una condición de parada en el bus i2c", "author": "Juan González-Gómez (Obijuan)", "image": "" }, "design": { "graph": { - "blocks": [ - { - "id": "7861c061-e90b-46bb-a639-6399f55f7f11", - "type": "basic.input", - "data": { - "name": "", - "clock": true - }, - "position": { - "x": 800, - "y": 320 - } - }, - { - "id": "20e1709f-bff4-4373-a485-5af7052a37d7", - "type": "basic.output", - "data": { - "name": "sda" - }, - "position": { - "x": 1760, - "y": 648 - } - }, - { - "id": "748fced1-f2be-412a-87de-a0d8276e6a06", - "type": "basic.input", - "data": { - "name": "sda", - "clock": false - }, - "position": { - "x": 552, - "y": 664 - } - }, + "blocks": [ { - "id": "63a0f19e-1e7c-4e61-b89a-f6fc4eb74afb", + "id": "0f4f7955-4539-4804-a906-db4abd29fcac", "type": "basic.input", "data": { - "name": "scl", + "name": "clk", "clock": false }, "position": { - "x": 568, - "y": 744 + "x": 192, + "y": -8 } }, { - "id": "9290b4c2-5520-4b99-97d3-a140a411a149", + "id": "7d9cf16e-b23e-4358-a2fb-baaa07df6deb", "type": "basic.output", "data": { - "name": "scl" + "name": "sda" }, "position": { - "x": 1760, - "y": 760 + "x": 1472, + "y": 304 } }, { - "id": "ed0e5489-e9b1-4b92-bcfb-22f3737d1c93", + "id": "bcadfb63-1fdf-43bc-9899-675e5f3658cb", "type": "basic.input", "data": { - "name": "data", - "range": "[7:0]", - "clock": false, - "size": 8 - }, - "position": { - "x": 576, - "y": 840 - } - }, - { - "id": "b987c71e-d76f-43eb-8371-a2aa09d98d15", - "type": "basic.output", - "data": { - "name": "bitclk" + "name": "sda", + "clock": false }, "position": { - "x": 1760, - "y": 880 + "x": 440, + "y": 320 } }, { - "id": "cdf85427-0efe-4adb-b48d-dab3daccacce", + "id": "dbf76d1d-8bfd-4200-b03e-eb455043634d", "type": "basic.input", "data": { - "name": "start", + "name": "scl", "clock": false }, "position": { - "x": 560, - "y": 1008 + "x": 440, + "y": 384 } }, { - "id": "1d8c0dd2-96bc-462a-8a33-05472851522d", + "id": "a405ecb1-98ac-4483-8159-6045ca825985", "type": "basic.output", "data": { - "name": "io_start" + "name": "scl" }, "position": { - "x": 1800, - "y": 1080 + "x": 1472, + "y": 448 } }, { - "id": "412c6872-b61e-4af8-8ece-577a8adb185c", - "type": "basic.output", + "id": "58c39529-9934-4dc2-af86-ab5efe0bbad1", + "type": "basic.input", "data": { - "name": "done" + "name": "start", + "clock": false }, "position": { - "x": 1784, - "y": 1176 + "x": 440, + "y": 592 } }, { - "id": "9873b349-7163-44e3-9df0-a07acbfd5246", - "type": "basic.constant", + "id": "18918c51-cad4-4993-b228-985afc99944e", + "type": "basic.output", "data": { - "name": "T_tics", - "value": "121", - "local": false + "name": "done" }, "position": { - "x": 960, - "y": 816 + "x": 1608, + "y": 624 } }, { - "id": "6f699db9-abd0-4949-a539-cfeda25e33bb", + "id": "f673b29c-1604-497b-b36d-2f180e7db0ce", "type": "basic.constant", "data": { - "name": "", - "value": "9", + "name": "T3", + "value": "5", "local": true }, "position": { - "x": 1064, - "y": 800 + "x": 664, + "y": 480 } }, { - "id": "0f091ac3-4f1e-4e21-bc52-01c9a5ca5f5f", + "id": "b4ecabd8-4c81-45fa-a288-cdd1053a7103", "type": "basic.constant", "data": { - "name": "Desfase", + "name": "T2", "value": "2", - "local": true - }, - "position": { - "x": 1256, - "y": 840 - } - }, - { - "id": "41219c53-959c-4775-a2b7-db9651d3ed72", - "type": "basic.constant", - "data": { - "name": "Anchura-bit", - "value": "5", - "local": true + "local": false }, "position": { - "x": 1432, - "y": 832 - } - }, - { - "id": "4cded02d-9798-4ac7-85b2-88f9ca82752a", - "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", - "position": { - "x": 1432, - "y": 952 - }, - "size": { - "width": 96, - "height": 64 + "x": 872, + "y": 128 } }, { - "id": "a917add8-1ea1-42af-8b62-6f2d1992bce8", + "id": "e9bd53c9-72d0-4807-9517-94854161e068", "type": "basic.info", "data": { - "info": "121 tics son 10us", + "info": "Generar una condición de Stop en el Bus I2C \nCuando está en reposo, las entradas sda y scl atraviesan el \nbloque sin modificación. Cuando se activa start, comienza la \ngeneración de la condición de parada, y SCL se pone a 1. \nTranscurrido un tiempo T2, SDA se pone a 1 también \nSe señalliza en done que se ha completado", "readonly": true }, "position": { - "x": 936, - "y": 784 + "x": 656, + "y": -168 }, "size": { - "width": 168, - "height": 40 + "width": 504, + "height": 104 } }, { - "id": "73336d4a-efcf-49a6-860f-eca956b28ec6", - "type": "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542", + "id": "5f981830-9909-48eb-a685-1866414de350", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", "position": { - "x": 936, - "y": 480 + "x": 912, + "y": 576 }, "size": { "width": 96, - "height": 64 + "height": 96 } }, { - "id": "896d8abc-4f3f-49d5-8bb3-d155a702b357", - "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", + "id": "1adf02bf-5c06-4fab-99bc-de5acac28e78", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", "position": { - "x": 1256, - "y": 936 + "x": 1040, + "y": 448 }, "size": { "width": 96, @@ -7814,23 +7654,23 @@ } }, { - "id": "8395e674-0340-4dc6-9e01-751771607b4d", - "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "id": "596d476b-7130-4489-81e7-e94e8fdde5b9", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", "position": { - "x": 1568, - "y": 760 + "x": 1208, + "y": 224 }, "size": { "width": 96, - "height": 64 + "height": 96 } }, { - "id": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", - "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "id": "151846a8-1a98-4690-b266-d72e69da52b2", + "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", "position": { - "x": 1568, - "y": 648 + "x": 872, + "y": 224 }, "size": { "width": 96, @@ -7838,23 +7678,23 @@ } }, { - "id": "7d4113a9-19b2-4434-8002-7f671360852b", - "type": "086d7dc26b794983217c4161c26b85dc62375d9d", + "id": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", "position": { - "x": 984, - "y": 968 + "x": 1336, + "y": 304 }, "size": { "width": 96, - "height": 96 + "height": 64 } }, { - "id": "f3da83aa-48cf-4e21-8e2f-60e045183b92", - "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "id": "2e6b8317-5b98-49ef-8e02-012434195806", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", "position": { - "x": 1168, - "y": 1016 + "x": 1040, + "y": 128 }, "size": { "width": 96, @@ -7862,11 +7702,11 @@ } }, { - "id": "8849d683-2013-4619-9116-4adde501529e", - "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "id": "9c32849d-8da7-429a-9768-582042551076", + "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", "position": { - "x": 1656, - "y": 944 + "x": 664, + "y": 576 }, "size": { "width": 96, @@ -7874,441 +7714,303 @@ } }, { - "id": "cf48b06f-8921-4666-afba-ccc17b535b28", + "id": "8d308b75-de5a-4a05-b8cf-f64d9674ddaf", "type": "basic.info", "data": { - "info": "Arrancar el módulo \nde gestión del pin io", + "info": "Espera previa al stop", "readonly": true }, "position": { - "x": 1784, - "y": 1024 - }, - "size": { - "width": 200, - "height": 56 - } - }, - { - "id": "44073844-b550-4911-affe-bdadca704a6f", - "type": "45f630ea95c6847db8df0598c312ef9acfa981a3", - "position": { - "x": 1432, - "y": 456 - }, - "size": { - "width": 96, - "height": 128 - } - }, - { - "id": "1e424507-5096-47f9-8437-b35c1c3b343d", - "type": "53847c98bfef0fe28fbef1f4f65042911f361c44", - "position": { - "x": 1208, - "y": 480 + "x": 672, + "y": 440 }, "size": { - "width": 96, - "height": 160 + "width": 192, + "height": 32 } - } - ], - "wires": [ - { - "source": { - "block": "6f699db9-abd0-4949-a539-cfeda25e33bb", - "port": "constant-out" - }, - "target": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "1caece2e-e3d8-4102-af87-572c05b24e16" - }, - "vertices": [] }, { - "source": { - "block": "9873b349-7163-44e3-9df0-a07acbfd5246", - "port": "constant-out" - }, - "target": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "96ad1612-7936-4672-b660-9285d183f749" + "id": "a10c878a-a76e-47e2-87cb-579131d83cfb", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", + "position": { + "x": 440, + "y": 512 }, - "vertices": [] - }, + "size": { + "width": 96, + "height": 64 + } + } + ], + "wires": [ { "source": { - "block": "41219c53-959c-4775-a2b7-db9651d3ed72", - "port": "constant-out" + "block": "1adf02bf-5c06-4fab-99bc-de5acac28e78", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", - "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" + "block": "a405ecb1-98ac-4483-8159-6045ca825985", + "port": "in" }, "vertices": [] }, { "source": { - "block": "1e424507-5096-47f9-8437-b35c1c3b343d", - "port": "21039c06-c932-498c-968d-879a68d66795" + "block": "5f981830-9909-48eb-a685-1866414de350", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "44073844-b550-4911-affe-bdadca704a6f", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "block": "1adf02bf-5c06-4fab-99bc-de5acac28e78", + "port": "97b51945-d716-4b6c-9db9-970d08541249" }, "vertices": [] }, { "source": { - "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "block": "151846a8-1a98-4690-b266-d72e69da52b2", "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, "target": { - "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", - "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" + "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" }, "vertices": [] }, { "source": { - "block": "0f091ac3-4f1e-4e21-bc52-01c9a5ca5f5f", + "block": "b4ecabd8-4c81-45fa-a288-cdd1053a7103", "port": "constant-out" }, "target": { - "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "block": "151846a8-1a98-4690-b266-d72e69da52b2", "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" }, "vertices": [] }, { "source": { - "block": "8395e674-0340-4dc6-9e01-751771607b4d", + "block": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "9290b4c2-5520-4b99-97d3-a140a411a149", + "block": "7d9cf16e-b23e-4358-a2fb-baaa07df6deb", "port": "in" }, "vertices": [] }, { "source": { - "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", - "port": "c45dab76-9d0f-4742-9e4d-3048637d245d" - }, - "target": { - "block": "8395e674-0340-4dc6-9e01-751771607b4d", - "port": "97b51945-d716-4b6c-9db9-970d08541249" - }, - "vertices": [] - }, - { - "source": { - "block": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "20e1709f-bff4-4373-a485-5af7052a37d7", - "port": "in" + "block": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, "vertices": [] }, { "source": { - "block": "44073844-b550-4911-affe-bdadca704a6f", + "block": "2e6b8317-5b98-49ef-8e02-012434195806", "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "block": "18918c51-cad4-4993-b228-985afc99944e", + "port": "in" }, "vertices": [] }, { "source": { - "block": "748fced1-f2be-412a-87de-a0d8276e6a06", - "port": "out" + "block": "151846a8-1a98-4690-b266-d72e69da52b2", + "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, "target": { - "block": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", - "port": "97b51945-d716-4b6c-9db9-970d08541249" + "block": "2e6b8317-5b98-49ef-8e02-012434195806", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" }, "vertices": [] }, { "source": { - "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", - "port": "out" - }, - "target": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "bcfe1e9b-4bb8-43c2-bbea-d82aeb7dce9d" - } - }, - { - "source": { - "block": "63a0f19e-1e7c-4e61-b89a-f6fc4eb74afb", + "block": "dbf76d1d-8bfd-4200-b03e-eb455043634d", "port": "out" }, "target": { - "block": "8395e674-0340-4dc6-9e01-751771607b4d", + "block": "1adf02bf-5c06-4fab-99bc-de5acac28e78", "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" } }, { "source": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a" - }, - "target": { - "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", - "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" - } - }, - { - "source": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a" + "block": "bcadfb63-1fdf-43bc-9899-675e5f3658cb", + "port": "out" }, "target": { - "block": "1e424507-5096-47f9-8437-b35c1c3b343d", - "port": "ec65c3cd-0951-4d74-bbfc-c37f87a78e66" + "block": "4d7657cb-2fe3-4b3d-b3a7-67c085fc221a", + "port": "97b51945-d716-4b6c-9db9-970d08541249" } }, { "source": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a" + "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "44073844-b550-4911-affe-bdadca704a6f", - "port": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7" + "block": "5f981830-9909-48eb-a685-1866414de350", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" }, "vertices": [ { - "x": 1192, - "y": 720 + "x": 568, + "y": 600 } ] }, { "source": { - "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "block": "0f4f7955-4539-4804-a906-db4abd29fcac", "port": "out" }, "target": { - "block": "1e424507-5096-47f9-8437-b35c1c3b343d", - "port": "a265c13d-af7a-437b-97ae-424872381a93" + "block": "151846a8-1a98-4690-b266-d72e69da52b2", + "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" } }, { "source": { - "block": "7861c061-e90b-46bb-a639-6399f55f7f11", - "port": "out" - }, - "target": { - "block": "44073844-b550-4911-affe-bdadca704a6f", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" - }, - "vertices": [ - { - "x": 1392, - "y": 432 - } - ] - }, - { - "source": { - "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "block": "0f4f7955-4539-4804-a906-db4abd29fcac", "port": "out" }, "target": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "2d69e282-542b-48cc-b0ec-dd419e06f97e" - }, - "vertices": [ - { - "x": 920, - "y": 728 - } - ] + "block": "5f981830-9909-48eb-a685-1866414de350", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + } }, { "source": { - "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "block": "0f4f7955-4539-4804-a906-db4abd29fcac", "port": "out" }, "target": { - "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", - "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" - }, - "vertices": [ - { - "x": 920, - "y": 912 - } - ] + "block": "2e6b8317-5b98-49ef-8e02-012434195806", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + } }, { "source": { - "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "block": "0f4f7955-4539-4804-a906-db4abd29fcac", "port": "out" }, "target": { - "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", - "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" - }, - "vertices": [ - { - "x": 1392, - "y": 752 - } - ] + "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + } }, { "source": { - "block": "f3da83aa-48cf-4e21-8e2f-60e045183b92", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "block": "f673b29c-1604-497b-b36d-2f180e7db0ce", + "port": "constant-out" }, "target": { - "block": "8849d683-2013-4619-9116-4adde501529e", - "port": "97b51945-d716-4b6c-9db9-970d08541249" + "block": "9c32849d-8da7-429a-9768-582042551076", + "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" }, "vertices": [] }, { "source": { - "block": "7d4113a9-19b2-4434-8002-7f671360852b", - "port": "c554ffa6-9397-4270-96af-6d4ff9abfc16" + "block": "58c39529-9934-4dc2-af86-ab5efe0bbad1", + "port": "out" }, "target": { - "block": "f3da83aa-48cf-4e21-8e2f-60e045183b92", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "block": "9c32849d-8da7-429a-9768-582042551076", + "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" } }, { "source": { - "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", + "block": "9c32849d-8da7-429a-9768-582042551076", "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, "target": { - "block": "8849d683-2013-4619-9116-4adde501529e", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" - }, - "vertices": [ - { - "x": 1592, - "y": 960 - } - ] - }, - { - "source": { - "block": "8849d683-2013-4619-9116-4adde501529e", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "412c6872-b61e-4af8-8ece-577a8adb185c", - "port": "in" + "block": "5f981830-9909-48eb-a685-1866414de350", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" } }, { "source": { - "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "block": "9c32849d-8da7-429a-9768-582042551076", "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, "target": { - "block": "b987c71e-d76f-43eb-8371-a2aa09d98d15", - "port": "in" - }, - "vertices": [ - { - "x": 1400, - "y": 936 - } - ] - }, - { - "source": { - "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", - "port": "out" - }, - "target": { - "block": "1d8c0dd2-96bc-462a-8a33-05472851522d", - "port": "in" + "block": "151846a8-1a98-4690-b266-d72e69da52b2", + "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" } }, { "source": { - "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", + "block": "0f4f7955-4539-4804-a906-db4abd29fcac", "port": "out" }, "target": { - "block": "44073844-b550-4911-affe-bdadca704a6f", - "port": "755eb5f6-70bb-4449-adb7-196ead041df1" - }, - "vertices": [ - { - "x": 744, - "y": 520 - } - ] + "block": "9c32849d-8da7-429a-9768-582042551076", + "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" + } }, { "source": { - "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", - "port": "out" + "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "1e424507-5096-47f9-8437-b35c1c3b343d", - "port": "b916c09a-8848-4500-a1a0-0cc09e8f23c1" + "block": "596d476b-7130-4489-81e7-e94e8fdde5b9", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" }, "vertices": [ { - "x": 848, - "y": 688 + "x": 608, + "y": 376 } ] }, { "source": { - "block": "73336d4a-efcf-49a6-860f-eca956b28ec6", - "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + "block": "2e6b8317-5b98-49ef-8e02-012434195806", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, "target": { - "block": "1e424507-5096-47f9-8437-b35c1c3b343d", - "port": "02007399-7499-4b76-ad4f-91094344d055" - } + "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + }, + "vertices": [ + { + "x": 1168, + "y": 712 + } + ] }, { "source": { - "block": "ed0e5489-e9b1-4b92-bcfb-22f3737d1c93", + "block": "0f4f7955-4539-4804-a906-db4abd29fcac", "port": "out" }, "target": { - "block": "1e424507-5096-47f9-8437-b35c1c3b343d", - "port": "05394100-6c4a-4bd5-b479-739c16ede30c" - }, - "vertices": [ - { - "x": 792, - "y": 640 - } - ], - "size": 8 + "block": "a10c878a-a76e-47e2-87cb-579131d83cfb", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + } } ] } } }, - "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542": { + "725b7e2cb9666b5ed3183537d9c898f096dab82a": { "package": { - "name": "0", + "name": "1", "version": "0.1", - "description": "Un bit constante a 0", + "description": "Un bit constante a 1", "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" + "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": { @@ -8328,7 +8030,7 @@ "id": "61331ec5-2c56-4cdd-b607-e63b1502fa65", "type": "basic.code", "data": { - "code": "//-- Bit constante a 0\nassign q = 1'b0;\n\n", + "code": "//-- Bit constante a 1\nassign q = 1'b1;\n\n", "params": [], "ports": { "in": [], @@ -8364,2621 +8066,2876 @@ } } }, - "086d7dc26b794983217c4161c26b85dc62375d9d": { + "f1c84b11f2df5ee213cec33e6f9af2d0c66e6924": { "package": { - "name": "Heart-tics", + "name": "i2c-data", "version": "0.1", - "description": "Corazón finito de tics. Emitir num tics cuando se recibe un tic de start", - "author": "Juan Gonzalez-Gomez (obijuan)", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22227.691%22%20height=%22159.585%22%20viewBox=%220%200%2060.243259%2042.223434%22%3E%3Cpath%20d=%22M30.137%2040.073c-.726-1.25-1.853-2.474-3.987-4.332-1.156-1.006-1.859-1.565-5.863-4.658-3.138-2.425-4.704-3.77-6.519-5.602-1.813-1.83-2.879-3.289-3.793-5.19a15.321%2015.321%200%200%201-1.236-3.6c-.316-1.545-.36-2.068-.358-4.342.002-2.984.1-3.48%201.08-5.47.729-1.479%201.282-2.257%202.433-3.427%201.119-1.135%201.845-1.65%203.415-2.427C17.053.162%2018.315-.065%2020.914.02c2.02.065%202.759.266%204.36%201.187%202.52%201.45%204.476%203.778%205.017%205.973.088.358.18.652.203.652.023%200%20.227-.42.453-.933.77-1.743%201.485-2.808%202.62-3.902%203.477-3.353%208.96-3.959%2013.392-1.482C48.769%202.527%2050.242%204%2051.383%205.94c.898%201.527%201.358%203.555%201.436%206.34.114%204.035-.624%206.832-2.589%209.811-.78%201.183-1.356%201.9-2.438%203.029-1.744%201.822-3.318%203.162-7.033%205.987-2.344%201.783-3.733%202.93-5.744%204.742-1.612%201.451-4.109%203.979-4.35%204.401-.104.185-.2.336-.21.336-.012%200-.154-.23-.318-.512z%22%20fill=%22red%22/%3E%3Ctext%20y=%2263.446%22%20x=%2264.25%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-42.66%20-45.386)%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=%2263.446%22%20x=%2264.25%22%20font-weight=%22700%22%20font-size=%228.695%22%3Etics%3C/tspan%3E%3C/text%3E%3Cg%20transform=%22matrix(.79321%200%200%20.79321%20-31.345%20-28.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%3Cg%20transform=%22matrix(.79321%200%200%20.79321%20-68.009%20-28.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%3Ctext%20y=%2258.351%22%20x=%2280.998%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%2222.577%22%20letter-spacing=%220%22%20word-spacing=%220%22%20transform=%22matrix(.99853%200%200%201.00147%20-42.66%20-45.386)%22%20font-family=%22sans-serif%22%20fill=%22#00f%22%20stroke-width=%22.419%22%3E%3Ctspan%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2258.351%22%20x=%2280.998%22%20font-weight=%22700%22%20font-size=%2212.901%22%3E#%3C/tspan%3E%3C/text%3E%3C/svg%3E" + "description": "Inyectar un byte en el bus i2c", + "author": "Juan González-Gómez (Obijuan)", + "image": "" }, "design": { "graph": { "blocks": [ { - "id": "2d69e282-542b-48cc-b0ec-dd419e06f97e", + "id": "7861c061-e90b-46bb-a639-6399f55f7f11", "type": "basic.input", "data": { "name": "", "clock": true }, "position": { - "x": 520, - "y": 456 + "x": 800, + "y": 320 } }, { - "id": "bcfe1e9b-4bb8-43c2-bbea-d82aeb7dce9d", - "type": "basic.input", + "id": "20e1709f-bff4-4373-a485-5af7052a37d7", + "type": "basic.output", "data": { - "name": "start", - "clock": false + "name": "sda" }, "position": { - "x": 520, - "y": 536 + "x": 1760, + "y": 648 } }, { - "id": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a", - "type": "basic.output", + "id": "748fced1-f2be-412a-87de-a0d8276e6a06", + "type": "basic.input", "data": { - "name": "out" + "name": "sda", + "clock": false }, "position": { - "x": 1352, - "y": 560 + "x": 552, + "y": 664 } }, { - "id": "c554ffa6-9397-4270-96af-6d4ff9abfc16", - "type": "basic.output", + "id": "63a0f19e-1e7c-4e61-b89a-f6fc4eb74afb", + "type": "basic.input", "data": { - "name": "busy" + "name": "scl", + "clock": false }, "position": { - "x": 872, - "y": 672 + "x": 568, + "y": 744 } }, { - "id": "7cfc535a-b3a4-4bf7-8f94-8759e822e67e", + "id": "9290b4c2-5520-4b99-97d3-a140a411a149", "type": "basic.output", "data": { - "name": "end" + "name": "scl" }, "position": { - "x": 1352, - "y": 752 + "x": 1760, + "y": 760 } }, { - "id": "96ad1612-7936-4672-b660-9285d183f749", - "type": "basic.constant", + "id": "ed0e5489-e9b1-4b92-bcfb-22f3737d1c93", + "type": "basic.input", "data": { - "name": "Tics", - "value": "15", - "local": false + "name": "data", + "range": "[7:0]", + "clock": false, + "size": 8 }, "position": { - "x": 952, - "y": 376 + "x": 576, + "y": 840 } }, { - "id": "1caece2e-e3d8-4102-af87-572c05b24e16", - "type": "basic.constant", + "id": "b987c71e-d76f-43eb-8371-a2aa09d98d15", + "type": "basic.output", "data": { - "name": "Num", - "value": "24", - "local": false - }, - "position": { - "x": 1152, - "y": 376 - } - }, - { - "id": "f6388518-4c42-4573-8f49-63d43d444669", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", - "position": { - "x": 720, - "y": 520 + "name": "bitclk" }, - "size": { - "width": 96, - "height": 96 - } - }, - { - "id": "eab6a459-411c-406b-9185-872a44f305e5", - "type": "d585a59868290d4af219e92f887128dc4b7c8a51", "position": { - "x": 952, - "y": 520 - }, - "size": { - "width": 96, - "height": 64 + "x": 1760, + "y": 880 } }, { - "id": "a05b1ecb-b766-482a-9f49-bd698cec989f", - "type": "d0fde25a657f5921d86a889c7f69e379c4d8e91e", - "position": { - "x": 1152, - "y": 472 + "id": "cdf85427-0efe-4adb-b48d-dab3daccacce", + "type": "basic.input", + "data": { + "name": "start", + "clock": false }, - "size": { - "width": 96, - "height": 96 - } - }, - { - "id": "cd007087-7c8b-49b1-a5ba-b02fdd440737", - "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", "position": { - "x": 944, - "y": 600 - }, - "size": { - "width": 96, - "height": 64 + "x": 560, + "y": 1008 } - } - ], - "wires": [ - { - "source": { - "block": "f6388518-4c42-4573-8f49-63d43d444669", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "eab6a459-411c-406b-9185-872a44f305e5", - "port": "2e992b62-97db-4d64-9620-3fe3310a9a5f" - }, - "vertices": [] - }, - { - "source": { - "block": "96ad1612-7936-4672-b660-9285d183f749", - "port": "constant-out" - }, - "target": { - "block": "eab6a459-411c-406b-9185-872a44f305e5", - "port": "136e8d6d-892a-4f14-8d6d-0c5bc6c3e844" - }, - "vertices": [] - }, - { - "source": { - "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", - "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" - }, - "target": { - "block": "f6388518-4c42-4573-8f49-63d43d444669", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" - }, - "vertices": [ - { - "x": 680, - "y": 760 - } - ] - }, - { - "source": { - "block": "eab6a459-411c-406b-9185-872a44f305e5", - "port": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c" - }, - "target": { - "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", - "port": "26aba23f-8567-4e9b-bd45-c26724030f33" - }, - "vertices": [] }, { - "source": { - "block": "cd007087-7c8b-49b1-a5ba-b02fdd440737", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" - }, - "target": { - "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", - "port": "743b5299-2d89-4783-b7c9-12a5b36df406" + "id": "1d8c0dd2-96bc-462a-8a33-05472851522d", + "type": "basic.output", + "data": { + "name": "io_start" }, - "vertices": [ - { - "x": 1080, - "y": 608 - } - ] + "position": { + "x": 1800, + "y": 1080 + } }, { - "source": { - "block": "f6388518-4c42-4573-8f49-63d43d444669", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "cd007087-7c8b-49b1-a5ba-b02fdd440737", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "id": "412c6872-b61e-4af8-8ece-577a8adb185c", + "type": "basic.output", + "data": { + "name": "done" }, - "vertices": [ - { - "x": 920, - "y": 592 - } - ] + "position": { + "x": 1784, + "y": 1176 + } }, { - "source": { - "block": "1caece2e-e3d8-4102-af87-572c05b24e16", - "port": "constant-out" - }, - "target": { - "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", - "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" + "id": "9873b349-7163-44e3-9df0-a07acbfd5246", + "type": "basic.constant", + "data": { + "name": "T_tics", + "value": "121", + "local": false }, - "vertices": [] + "position": { + "x": 960, + "y": 816 + } }, { - "source": { - "block": "bcfe1e9b-4bb8-43c2-bbea-d82aeb7dce9d", - "port": "out" + "id": "6f699db9-abd0-4949-a539-cfeda25e33bb", + "type": "basic.constant", + "data": { + "name": "", + "value": "9", + "local": true }, - "target": { - "block": "f6388518-4c42-4573-8f49-63d43d444669", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + "position": { + "x": 1064, + "y": 800 } }, { - "source": { - "block": "2d69e282-542b-48cc-b0ec-dd419e06f97e", - "port": "out" + "id": "0f091ac3-4f1e-4e21-bc52-01c9a5ca5f5f", + "type": "basic.constant", + "data": { + "name": "Desfase", + "value": "2", + "local": true }, - "target": { - "block": "f6388518-4c42-4573-8f49-63d43d444669", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "position": { + "x": 1256, + "y": 840 } }, { - "source": { - "block": "2d69e282-542b-48cc-b0ec-dd419e06f97e", - "port": "out" + "id": "41219c53-959c-4775-a2b7-db9651d3ed72", + "type": "basic.constant", + "data": { + "name": "Anchura-bit", + "value": "5", + "local": true }, - "target": { - "block": "eab6a459-411c-406b-9185-872a44f305e5", - "port": "503869f1-ddfd-4d13-93ad-5f90281ba88c" + "position": { + "x": 1432, + "y": 832 } }, { - "source": { - "block": "2d69e282-542b-48cc-b0ec-dd419e06f97e", - "port": "out" + "id": "4cded02d-9798-4ac7-85b2-88f9ca82752a", + "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", + "position": { + "x": 1432, + "y": 952 }, - "target": { - "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", - "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" + "size": { + "width": 96, + "height": 64 } }, { - "source": { - "block": "eab6a459-411c-406b-9185-872a44f305e5", - "port": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c" + "id": "a917add8-1ea1-42af-8b62-6f2d1992bce8", + "type": "basic.info", + "data": { + "info": "121 tics son 10us", + "readonly": true }, - "target": { - "block": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a", - "port": "in" + "position": { + "x": 936, + "y": 784 }, - "vertices": [ - { - "x": 1120, - "y": 576 - } - ] + "size": { + "width": 168, + "height": 40 + } }, { - "source": { - "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", - "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + "id": "73336d4a-efcf-49a6-860f-eca956b28ec6", + "type": "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542", + "position": { + "x": 936, + "y": 480 }, - "target": { - "block": "7cfc535a-b3a4-4bf7-8f94-8759e822e67e", - "port": "in" + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "type": "3b630a3c35b04c9bdcc4afaf4a01b0b1b8d06887", + "position": { + "x": 1256, + "y": 936 }, - "vertices": [ - { - "x": 1264, - "y": 720 - } - ] + "size": { + "width": 96, + "height": 64 + } }, { - "source": { - "block": "f6388518-4c42-4573-8f49-63d43d444669", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "id": "8395e674-0340-4dc6-9e01-751771607b4d", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "position": { + "x": 1568, + "y": 760 }, - "target": { - "block": "c554ffa6-9397-4270-96af-6d4ff9abfc16", - "port": "in" + "size": { + "width": 96, + "height": 64 } - } - ] - } - } - }, - "d585a59868290d4af219e92f887128dc4b7c8a51": { - "package": { - "name": "Corazon-tics", - "version": "0.1", - "description": "Corazón de bombeo de tics, cuyo periodo está especificado en tics también", - "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=%2263.446%22%20x=%2264.25%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=%2263.446%22%20x=%2264.25%22%20font-weight=%22700%22%20font-size=%228.695%22%3Etics%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 + "id": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "position": { + "x": 1568, + "y": 648 }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "7d4113a9-19b2-4434-8002-7f671360852b", + "type": "086d7dc26b794983217c4161c26b85dc62375d9d", "position": { - "x": 112, - "y": 72 + "x": 984, + "y": 968 + }, + "size": { + "width": 96, + "height": 96 } }, { - "id": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c", - "type": "basic.output", - "data": { - "name": "" + "id": "f3da83aa-48cf-4e21-8e2f-60e045183b92", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 1168, + "y": 1016 }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "8849d683-2013-4619-9116-4adde501529e", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", "position": { - "x": 912, - "y": 192 + "x": 1656, + "y": 944 + }, + "size": { + "width": 96, + "height": 64 } }, { - "id": "2e992b62-97db-4d64-9620-3fe3310a9a5f", - "type": "basic.input", + "id": "cf48b06f-8921-4666-afba-ccc17b535b28", + "type": "basic.info", "data": { - "name": "", - "clock": false + "info": "Arrancar el módulo \nde gestión del pin io", + "readonly": true }, "position": { - "x": 112, - "y": 304 + "x": 1784, + "y": 1024 + }, + "size": { + "width": 200, + "height": 56 } }, { - "id": "136e8d6d-892a-4f14-8d6d-0c5bc6c3e844", - "type": "basic.constant", - "data": { - "name": "", - "value": "15", - "local": false - }, + "id": "44073844-b550-4911-affe-bdadca704a6f", + "type": "45f630ea95c6847db8df0598c312ef9acfa981a3", "position": { - "x": 520, - "y": -128 + "x": 1432, + "y": 456 + }, + "size": { + "width": 96, + "height": 128 } }, { - "id": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", - "type": "basic.code", - "data": { - "code": "\n\n//-- Los TICs son directamente el módulo del contador\nlocalparam M = TICS;\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": "TICS" - } - ], - "ports": { - "in": [ - { - "name": "clk" - }, - { - "name": "ena" - } - ], - "out": [ - { - "name": "o" - } - ] - } - }, + "id": "1e424507-5096-47f9-8437-b35c1c3b343d", + "type": "53847c98bfef0fe28fbef1f4f65042911f361c44", "position": { - "x": 296, - "y": -8 + "x": 1208, + "y": 480 }, "size": { - "width": 544, - "height": 456 + "width": 96, + "height": 160 } } ], "wires": [ { "source": { - "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", - "port": "o" + "block": "6f699db9-abd0-4949-a539-cfeda25e33bb", + "port": "constant-out" }, "target": { - "block": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c", - "port": "in" - } + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "1caece2e-e3d8-4102-af87-572c05b24e16" + }, + "vertices": [] }, { "source": { - "block": "503869f1-ddfd-4d13-93ad-5f90281ba88c", - "port": "out" + "block": "9873b349-7163-44e3-9df0-a07acbfd5246", + "port": "constant-out" }, "target": { - "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", - "port": "clk" - } + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "96ad1612-7936-4672-b660-9285d183f749" + }, + "vertices": [] }, { "source": { - "block": "136e8d6d-892a-4f14-8d6d-0c5bc6c3e844", + "block": "41219c53-959c-4775-a2b7-db9651d3ed72", "port": "constant-out" }, "target": { - "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", - "port": "TICS" - } + "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", + "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" + }, + "vertices": [] }, { "source": { - "block": "2e992b62-97db-4d64-9620-3fe3310a9a5f", - "port": "out" + "block": "1e424507-5096-47f9-8437-b35c1c3b343d", + "port": "21039c06-c932-498c-968d-879a68d66795" }, "target": { - "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", - "port": "ena" - } - } - ] - } - } - }, - "d0fde25a657f5921d86a889c7f69e379c4d8e91e": { - "package": { - "name": "Contador-5bits-up-rst", - "version": "0.1", - "description": "Contador módulo M, ascendente, de 5 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 + "block": "44073844-b550-4911-affe-bdadca704a6f", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" }, - "position": { - "x": 264, - "y": 176 - } + "vertices": [] }, { - "id": "6c029178-38c2-43a1-bd73-4b5a6b932090", - "type": "basic.output", - "data": { - "name": "", - "range": "[4:0]", - "size": 5 + "source": { + "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, - "position": { - "x": 800, - "y": 200 - } - }, - { - "id": "743b5299-2d89-4783-b7c9-12a5b36df406", - "type": "basic.input", - "data": { - "name": "rst", - "clock": false + "target": { + "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", + "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" }, - "position": { - "x": 264, - "y": 280 - } + "vertices": [] }, { - "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", - "type": "basic.output", - "data": { - "name": "ov" + "source": { + "block": "0f091ac3-4f1e-4e21-bc52-01c9a5ca5f5f", + "port": "constant-out" }, - "position": { - "x": 800, - "y": 352 - } + "target": { + "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "port": "7ca578e5-8e36-4c04-bbea-144418c8e9af" + }, + "vertices": [] }, { - "id": "26aba23f-8567-4e9b-bd45-c26724030f33", - "type": "basic.input", - "data": { - "name": "cnt", - "clock": false + "source": { + "block": "8395e674-0340-4dc6-9e01-751771607b4d", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "position": { - "x": 264, - "y": 376 - } + "target": { + "block": "9290b4c2-5520-4b99-97d3-a140a411a149", + "port": "in" + }, + "vertices": [] }, { - "id": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", - "type": "basic.constant", - "data": { - "name": "", - "value": "32", - "local": false + "source": { + "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", + "port": "c45dab76-9d0f-4742-9e4d-3048637d245d" }, - "position": { - "x": 528, - "y": 48 - } + "target": { + "block": "8395e674-0340-4dc6-9e01-751771607b4d", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] }, { - "id": "b35ae5de-a490-4f7b-9200-ac52cd3f333e", - "type": "basic.info", - "data": { - "info": "**Parámetro**: Módulo del contador", - "readonly": true + "source": { + "block": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "position": { - "x": 472, - "y": 32 + "target": { + "block": "20e1709f-bff4-4373-a485-5af7052a37d7", + "port": "in" }, - "size": { - "width": 280, - "height": 56 - } + "vertices": [] }, { - "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "type": "basic.code", - "data": { - "code": "//-- Numero de bits del contador\nlocalparam N = 5; \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": "[4:0]", - "size": 5 - }, - { - "name": "ov" - } - ] - } + "source": { + "block": "44073844-b550-4911-affe-bdadca704a6f", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" }, - "position": { - "x": 408, - "y": 160 + "target": { + "block": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, - "size": { - "width": 336, - "height": 296 - } - } - ], - "wires": [ + "vertices": [] + }, { "source": { - "block": "743b5299-2d89-4783-b7c9-12a5b36df406", + "block": "748fced1-f2be-412a-87de-a0d8276e6a06", "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "rst" - } + "block": "c634a0fa-aa43-4d13-b5fe-cda297a287a4", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] }, { "source": { - "block": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", - "port": "constant-out" + "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", + "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "M" + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "bcfe1e9b-4bb8-43c2-bbea-d82aeb7dce9d" } }, { "source": { - "block": "26aba23f-8567-4e9b-bd45-c26724030f33", + "block": "63a0f19e-1e7c-4e61-b89a-f6fc4eb74afb", "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "cnt" + "block": "8395e674-0340-4dc6-9e01-751771607b4d", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" } }, { "source": { - "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", - "port": "out" + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "clk" + "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "port": "61d11f03-6fbc-4467-a947-d546fa6f6429" } }, { "source": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "ov" + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a" }, "target": { - "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", - "port": "in" + "block": "1e424507-5096-47f9-8437-b35c1c3b343d", + "port": "ec65c3cd-0951-4d74-bbfc-c37f87a78e66" } }, { "source": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "q" + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a" }, "target": { - "block": "6c029178-38c2-43a1-bd73-4b5a6b932090", - "port": "in" + "block": "44073844-b550-4911-affe-bdadca704a6f", + "port": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7" }, - "size": 5 - } - ] - } - } - }, - "45f630ea95c6847db8df0598c312ef9acfa981a3": { - "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=%22216.379%22%20height=%22279.911%22%20viewBox=%220%200%2057.25032%2074.059853%22%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M41.506%2040.152l13.608%2016.672-6.918-20.534%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%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-width=%221.0924880399999999%22/%3E%3C/g%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%3C/svg%3E" - }, - "design": { - "graph": { - "blocks": [ + "vertices": [ + { + "x": 1192, + "y": 720 + } + ] + }, { - "id": "3943e194-090b-4553-9df3-88bc4b17abc2", - "type": "basic.input", - "data": { - "name": "", - "clock": true + "source": { + "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "port": "out" }, - "position": { - "x": 176, - "y": 64 + "target": { + "block": "1e424507-5096-47f9-8437-b35c1c3b343d", + "port": "a265c13d-af7a-437b-97ae-424872381a93" } }, { - "id": "755eb5f6-70bb-4449-adb7-196ead041df1", - "type": "basic.input", - "data": { - "name": "rst", - "clock": false + "source": { + "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "port": "out" }, - "position": { - "x": 168, - "y": 144 - } + "target": { + "block": "44073844-b550-4911-affe-bdadca704a6f", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + }, + "vertices": [ + { + "x": 1392, + "y": 432 + } + ] }, { - "id": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", - "type": "basic.output", - "data": { - "name": "" + "source": { + "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "port": "out" }, - "position": { - "x": 680, - "y": 200 - } + "target": { + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "2d69e282-542b-48cc-b0ec-dd419e06f97e" + }, + "vertices": [ + { + "x": 920, + "y": 728 + } + ] }, { - "id": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", - "type": "basic.input", - "data": { - "name": "d", - "clock": false + "source": { + "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "port": "out" }, - "position": { - "x": 168, - "y": 216 - } + "target": { + "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" + }, + "vertices": [ + { + "x": 920, + "y": 912 + } + ] }, { - "id": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", - "type": "basic.input", - "data": { - "name": "load", - "clock": false + "source": { + "block": "7861c061-e90b-46bb-a639-6399f55f7f11", + "port": "out" }, - "position": { - "x": 168, - "y": 296 - } + "target": { + "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", + "port": "7697c4d1-f5f8-4a1d-88af-e367fe54e4b6" + }, + "vertices": [ + { + "x": 1392, + "y": 752 + } + ] }, { - "id": "65194b18-5d2a-41b2-bd86-01be99978ad6", - "type": "basic.constant", - "data": { - "name": "", - "value": "0", - "local": false + "source": { + "block": "f3da83aa-48cf-4e21-8e2f-60e045183b92", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, - "position": { - "x": 456, - "y": 64 - } + "target": { + "block": "8849d683-2013-4619-9116-4adde501529e", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] }, { - "id": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "type": "basic.code", - "data": { - "code": "reg q = INI;\nalways @(posedge clk)\n if (rst)\n q <= INI;\n else if (load)\n q <= d;", - "params": [ - { - "name": "INI" - } - ], - "ports": { - "in": [ - { - "name": "clk" - }, - { - "name": "rst" - }, - { - "name": "d" - }, - { - "name": "load" - } - ], - "out": [ - { - "name": "q" - } - ] - } - }, - "position": { - "x": 384, - "y": 168 + "source": { + "block": "7d4113a9-19b2-4434-8002-7f671360852b", + "port": "c554ffa6-9397-4270-96af-6d4ff9abfc16" }, - "size": { - "width": 232, - "height": 128 + "target": { + "block": "f3da83aa-48cf-4e21-8e2f-60e045183b92", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" } - } - ], - "wires": [ + }, + { + "source": { + "block": "4cded02d-9798-4ac7-85b2-88f9ca82752a", + "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" + }, + "target": { + "block": "8849d683-2013-4619-9116-4adde501529e", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [ + { + "x": 1592, + "y": 960 + } + ] + }, { "source": { - "block": "3943e194-090b-4553-9df3-88bc4b17abc2", - "port": "out" + "block": "8849d683-2013-4619-9116-4adde501529e", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "clk" + "block": "412c6872-b61e-4af8-8ece-577a8adb185c", + "port": "in" } }, { "source": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "q" + "block": "896d8abc-4f3f-49d5-8bb3-d155a702b357", + "port": "8c6fda76-1ba0-4ef8-a53d-7bc8a9db4454" }, "target": { - "block": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", + "block": "b987c71e-d76f-43eb-8371-a2aa09d98d15", "port": "in" - } + }, + "vertices": [ + { + "x": 1400, + "y": 936 + } + ] }, { "source": { - "block": "65194b18-5d2a-41b2-bd86-01be99978ad6", - "port": "constant-out" + "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", + "port": "out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "INI" + "block": "1d8c0dd2-96bc-462a-8a33-05472851522d", + "port": "in" } }, { "source": { - "block": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", + "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", "port": "out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "d" - } + "block": "44073844-b550-4911-affe-bdadca704a6f", + "port": "755eb5f6-70bb-4449-adb7-196ead041df1" + }, + "vertices": [ + { + "x": 744, + "y": 520 + } + ] }, { "source": { - "block": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", + "block": "cdf85427-0efe-4adb-b48d-dab3daccacce", "port": "out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "load" + "block": "1e424507-5096-47f9-8437-b35c1c3b343d", + "port": "b916c09a-8848-4500-a1a0-0cc09e8f23c1" + }, + "vertices": [ + { + "x": 848, + "y": 688 + } + ] + }, + { + "source": { + "block": "73336d4a-efcf-49a6-860f-eca956b28ec6", + "port": "3d584b0a-29eb-47af-8c43-c0822282ef05" + }, + "target": { + "block": "1e424507-5096-47f9-8437-b35c1c3b343d", + "port": "02007399-7499-4b76-ad4f-91094344d055" } }, { "source": { - "block": "755eb5f6-70bb-4449-adb7-196ead041df1", + "block": "ed0e5489-e9b1-4b92-bcfb-22f3737d1c93", "port": "out" }, "target": { - "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", - "port": "rst" + "block": "1e424507-5096-47f9-8437-b35c1c3b343d", + "port": "05394100-6c4a-4bd5-b479-739c16ede30c" }, "vertices": [ { - "x": 304, - "y": 192 + "x": 792, + "y": 640 } - ] + ], + "size": 8 } ] } } }, - "53847c98bfef0fe28fbef1f4f65042911f361c44": { + "21cfcc19a4ad14c5fb5e8cfebd018ec356fe7542": { "package": { - "name": "Registro-desplazamiento", + "name": "0", "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" + "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": "a265c13d-af7a-437b-97ae-424872381a93", - "type": "basic.input", + "id": "3d584b0a-29eb-47af-8c43-c0822282ef05", + "type": "basic.output", "data": { - "name": "", - "clock": true + "name": "" }, "position": { - "x": 224, - "y": 648 + "x": 512, + "y": 160 } }, { - "id": "21039c06-c932-498c-968d-879a68d66795", - "type": "basic.output", + "id": "61331ec5-2c56-4cdd-b607-e63b1502fa65", + "type": "basic.code", "data": { - "name": "" + "code": "//-- Bit constante a 0\nassign q = 1'b0;\n\n", + "params": [], + "ports": { + "in": [], + "out": [ + { + "name": "q" + } + ] + } }, "position": { - "x": 952, - "y": 680 + "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" + } + } + ] + } + } + }, + "086d7dc26b794983217c4161c26b85dc62375d9d": { + "package": { + "name": "Heart-tics", + "version": "0.1", + "description": "Corazón finito de tics. Emitir num tics cuando se recibe un tic de start", + "author": "Juan Gonzalez-Gomez (obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22227.691%22%20height=%22159.585%22%20viewBox=%220%200%2060.243259%2042.223434%22%3E%3Cpath%20d=%22M30.137%2040.073c-.726-1.25-1.853-2.474-3.987-4.332-1.156-1.006-1.859-1.565-5.863-4.658-3.138-2.425-4.704-3.77-6.519-5.602-1.813-1.83-2.879-3.289-3.793-5.19a15.321%2015.321%200%200%201-1.236-3.6c-.316-1.545-.36-2.068-.358-4.342.002-2.984.1-3.48%201.08-5.47.729-1.479%201.282-2.257%202.433-3.427%201.119-1.135%201.845-1.65%203.415-2.427C17.053.162%2018.315-.065%2020.914.02c2.02.065%202.759.266%204.36%201.187%202.52%201.45%204.476%203.778%205.017%205.973.088.358.18.652.203.652.023%200%20.227-.42.453-.933.77-1.743%201.485-2.808%202.62-3.902%203.477-3.353%208.96-3.959%2013.392-1.482C48.769%202.527%2050.242%204%2051.383%205.94c.898%201.527%201.358%203.555%201.436%206.34.114%204.035-.624%206.832-2.589%209.811-.78%201.183-1.356%201.9-2.438%203.029-1.744%201.822-3.318%203.162-7.033%205.987-2.344%201.783-3.733%202.93-5.744%204.742-1.612%201.451-4.109%203.979-4.35%204.401-.104.185-.2.336-.21.336-.012%200-.154-.23-.318-.512z%22%20fill=%22red%22/%3E%3Ctext%20y=%2263.446%22%20x=%2264.25%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-42.66%20-45.386)%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=%2263.446%22%20x=%2264.25%22%20font-weight=%22700%22%20font-size=%228.695%22%3Etics%3C/tspan%3E%3C/text%3E%3Cg%20transform=%22matrix(.79321%200%200%20.79321%20-31.345%20-28.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%3Cg%20transform=%22matrix(.79321%200%200%20.79321%20-68.009%20-28.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%3Ctext%20y=%2258.351%22%20x=%2280.998%22%20style=%22line-height:0%25%22%20font-weight=%22400%22%20font-size=%2222.577%22%20letter-spacing=%220%22%20word-spacing=%220%22%20transform=%22matrix(.99853%200%200%201.00147%20-42.66%20-45.386)%22%20font-family=%22sans-serif%22%20fill=%22#00f%22%20stroke-width=%22.419%22%3E%3Ctspan%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20y=%2258.351%22%20x=%2280.998%22%20font-weight=%22700%22%20font-size=%2212.901%22%3E#%3C/tspan%3E%3C/text%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "2d69e282-542b-48cc-b0ec-dd419e06f97e", + "type": "basic.input", + "data": { + "name": "", + "clock": true + }, + "position": { + "x": 520, + "y": 456 } }, { - "id": "02007399-7499-4b76-ad4f-91094344d055", + "id": "bcfe1e9b-4bb8-43c2-bbea-d82aeb7dce9d", "type": "basic.input", "data": { - "name": "sin", + "name": "start", "clock": false }, "position": { - "x": 224, - "y": 696 + "x": 520, + "y": 536 } }, { - "id": "05394100-6c4a-4bd5-b479-739c16ede30c", - "type": "basic.input", + "id": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a", + "type": "basic.output", "data": { - "name": "d", - "range": "[7:0]", - "clock": false, - "size": 8 + "name": "out" }, "position": { - "x": 224, - "y": 744 + "x": 1352, + "y": 560 } }, { - "id": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", + "id": "c554ffa6-9397-4270-96af-6d4ff9abfc16", "type": "basic.output", "data": { - "name": "q", - "range": "[7:0]", - "size": 8 + "name": "busy" }, "position": { - "x": 968, - "y": 800 + "x": 872, + "y": 672 } }, { - "id": "b916c09a-8848-4500-a1a0-0cc09e8f23c1", - "type": "basic.input", + "id": "7cfc535a-b3a4-4bf7-8f94-8759e822e67e", + "type": "basic.output", "data": { - "name": "load", - "clock": false + "name": "end" }, "position": { - "x": 224, - "y": 800 + "x": 1352, + "y": 752 } }, { - "id": "ec65c3cd-0951-4d74-bbfc-c37f87a78e66", - "type": "basic.input", + "id": "96ad1612-7936-4672-b660-9285d183f749", + "type": "basic.constant", "data": { - "name": "shift", - "clock": false + "name": "Tics", + "value": "15", + "local": false }, "position": { - "x": 224, - "y": 856 + "x": 952, + "y": 376 } }, { - "id": "4fef4dd0-ce33-42df-96b7-6c92c543f8eb", + "id": "1caece2e-e3d8-4102-af87-572c05b24e16", "type": "basic.constant", "data": { - "name": "", - "value": "0", + "name": "Num", + "value": "24", "local": false }, "position": { - "x": 624, - "y": 544 + "x": 1152, + "y": 376 + } + }, + { + "id": "f6388518-4c42-4573-8f49-63d43d444669", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 720, + "y": 520 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "eab6a459-411c-406b-9185-872a44f305e5", + "type": "d585a59868290d4af219e92f887128dc4b7c8a51", + "position": { + "x": 952, + "y": 520 + }, + "size": { + "width": 96, + "height": 64 } }, { - "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 - } - ] - } + "id": "a05b1ecb-b766-482a-9f49-bd698cec989f", + "type": "d0fde25a657f5921d86a889c7f69e379c4d8e91e", + "position": { + "x": 1152, + "y": 472 }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "cd007087-7c8b-49b1-a5ba-b02fdd440737", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", "position": { - "x": 440, - "y": 656 + "x": 944, + "y": 600 }, "size": { - "width": 464, - "height": 232 + "width": 96, + "height": 64 } } ], "wires": [ { "source": { - "block": "4fef4dd0-ce33-42df-96b7-6c92c543f8eb", + "block": "f6388518-4c42-4573-8f49-63d43d444669", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "eab6a459-411c-406b-9185-872a44f305e5", + "port": "2e992b62-97db-4d64-9620-3fe3310a9a5f" + }, + "vertices": [] + }, + { + "source": { + "block": "96ad1612-7936-4672-b660-9285d183f749", "port": "constant-out" }, "target": { - "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", - "port": "INI" - } + "block": "eab6a459-411c-406b-9185-872a44f305e5", + "port": "136e8d6d-892a-4f14-8d6d-0c5bc6c3e844" + }, + "vertices": [] }, { "source": { - "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", - "port": "q" + "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" }, "target": { - "block": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", - "port": "in" + "block": "f6388518-4c42-4573-8f49-63d43d444669", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" }, - "size": 8 + "vertices": [ + { + "x": 680, + "y": 760 + } + ] }, { "source": { - "block": "a265c13d-af7a-437b-97ae-424872381a93", - "port": "out" + "block": "eab6a459-411c-406b-9185-872a44f305e5", + "port": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c" }, "target": { - "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", - "port": "clk" - } + "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", + "port": "26aba23f-8567-4e9b-bd45-c26724030f33" + }, + "vertices": [] }, { "source": { - "block": "02007399-7499-4b76-ad4f-91094344d055", - "port": "out" + "block": "cd007087-7c8b-49b1-a5ba-b02fdd440737", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", - "port": "si" - } + "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", + "port": "743b5299-2d89-4783-b7c9-12a5b36df406" + }, + "vertices": [ + { + "x": 1080, + "y": 608 + } + ] }, { "source": { - "block": "05394100-6c4a-4bd5-b479-739c16ede30c", - "port": "out" + "block": "f6388518-4c42-4573-8f49-63d43d444669", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", - "port": "d" + "block": "cd007087-7c8b-49b1-a5ba-b02fdd440737", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, - "size": 8 + "vertices": [ + { + "x": 920, + "y": 592 + } + ] }, { "source": { - "block": "ec65c3cd-0951-4d74-bbfc-c37f87a78e66", + "block": "1caece2e-e3d8-4102-af87-572c05b24e16", + "port": "constant-out" + }, + "target": { + "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", + "port": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c" + }, + "vertices": [] + }, + { + "source": { + "block": "bcfe1e9b-4bb8-43c2-bbea-d82aeb7dce9d", "port": "out" }, "target": { - "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", - "port": "shift" + "block": "f6388518-4c42-4573-8f49-63d43d444669", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" } }, { "source": { - "block": "b916c09a-8848-4500-a1a0-0cc09e8f23c1", + "block": "2d69e282-542b-48cc-b0ec-dd419e06f97e", "port": "out" }, "target": { - "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", - "port": "load" + "block": "f6388518-4c42-4573-8f49-63d43d444669", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" } }, { "source": { - "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", - "port": "so" + "block": "2d69e282-542b-48cc-b0ec-dd419e06f97e", + "port": "out" }, "target": { - "block": "21039c06-c932-498c-968d-879a68d66795", - "port": "in" + "block": "eab6a459-411c-406b-9185-872a44f305e5", + "port": "503869f1-ddfd-4d13-93ad-5f90281ba88c" } - } - ] - } - } - }, - "5483349a60d7c0f7f4146228196d6f4c4ad7604d": { - "package": { - "name": "machine-loop", - "version": "0.1", - "description": "Máquina para hacer repeticiones", - "author": "Juan González-Gómez (Obijuan)", - "image": "" - }, - "design": { - "graph": { - "blocks": [ + }, { - "id": "162f5f2d-17dc-4d0e-b6f9-6ebdf74392f0", - "type": "basic.output", - "data": { - "name": "exec" + "source": { + "block": "2d69e282-542b-48cc-b0ec-dd419e06f97e", + "port": "out" }, - "position": { - "x": 1352, - "y": 224 + "target": { + "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", + "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" } }, { - "id": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", - "type": "basic.input", - "data": { - "name": "", - "clock": true + "source": { + "block": "eab6a459-411c-406b-9185-872a44f305e5", + "port": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c" }, - "position": { - "x": 48, - "y": 280 - } + "target": { + "block": "7b7d1633-22fb-421b-9da7-6bb5c17f4c2a", + "port": "in" + }, + "vertices": [ + { + "x": 1120, + "y": 576 + } + ] }, { - "id": "8a0d51b6-8ab0-4ca6-8d57-7fa7e713c738", - "type": "basic.input", - "data": { - "name": "mod", - "range": "[1:0]", - "clock": false, - "size": 2 + "source": { + "block": "a05b1ecb-b766-482a-9f49-bd698cec989f", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" }, - "position": { - "x": 48, - "y": 400 + "target": { + "block": "7cfc535a-b3a4-4bf7-8f94-8759e822e67e", + "port": "in" + }, + "vertices": [ + { + "x": 1264, + "y": 720 + } + ] + }, + { + "source": { + "block": "f6388518-4c42-4573-8f49-63d43d444669", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "c554ffa6-9397-4270-96af-6d4ff9abfc16", + "port": "in" } - }, + } + ] + } + } + }, + "d585a59868290d4af219e92f887128dc4b7c8a51": { + "package": { + "name": "Corazon-tics", + "version": "0.1", + "description": "Corazón de bombeo de tics, cuyo periodo está especificado en tics también", + "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=%2263.446%22%20x=%2264.25%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=%2263.446%22%20x=%2264.25%22%20font-weight=%22700%22%20font-size=%228.695%22%3Etics%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": "f966672f-ae05-4499-8a8d-3c9394a1119e", + "id": "503869f1-ddfd-4d13-93ad-5f90281ba88c", "type": "basic.input", "data": { - "name": "next", - "clock": false + "name": "", + "clock": true }, "position": { - "x": 48, - "y": 464 + "x": 112, + "y": 72 } }, { - "id": "453471d0-fe0d-4cbf-a4df-411b6035dd44", + "id": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c", "type": "basic.output", "data": { - "name": "busy" + "name": "" }, "position": { - "x": 1224, - "y": 528 + "x": 912, + "y": 192 } }, { - "id": "0319df1a-5bd5-4abc-8681-6f3a8fa4e108", + "id": "2e992b62-97db-4d64-9620-3fe3310a9a5f", "type": "basic.input", "data": { - "name": "start", + "name": "", "clock": false }, "position": { - "x": 40, - "y": 608 + "x": 112, + "y": 304 } }, { - "id": "088c7d8e-99b1-4f2e-a6c0-a672e5239844", - "type": "basic.output", + "id": "136e8d6d-892a-4f14-8d6d-0c5bc6c3e844", + "type": "basic.constant", "data": { "name": "", - "range": "[1:0]", - "size": 2 + "value": "15", + "local": false }, "position": { - "x": 1208, - "y": 720 + "x": 520, + "y": -128 } }, { - "id": "5dc54e8b-49c1-4ddb-94ab-843b247b73c4", - "type": "basic.output", + "id": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", + "type": "basic.code", "data": { - "name": "done" + "code": "\n\n//-- Los TICs son directamente el módulo del contador\nlocalparam M = TICS;\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": "TICS" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "ena" + } + ], + "out": [ + { + "name": "o" + } + ] + } }, "position": { - "x": 1208, - "y": 792 - } - }, - { - "id": "576020ce-bd52-4c01-8d5c-28605e677436", - "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", - "position": { - "x": 304, - "y": 592 + "x": 296, + "y": -8 }, "size": { - "width": 96, - "height": 96 + "width": 544, + "height": 456 } - }, + } + ], + "wires": [ { - "id": "728a5e86-7762-44da-8f55-f0f6c949abf2", - "type": "8e2728307baccbf26c01cdb87bcfba8ca64a435c", - "position": { - "x": 496, - "y": 328 + "source": { + "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", + "port": "o" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "c138a610-b61f-4e7c-bb8a-c4f3b0b9f95c", + "port": "in" } }, { - "id": "18d5bf1a-171b-4474-9505-b9be4292c1ec", - "type": "81613874c6152f06c06ed7014bf4235900cfcc30", - "position": { - "x": 1064, - "y": 416 + "source": { + "block": "503869f1-ddfd-4d13-93ad-5f90281ba88c", + "port": "out" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", + "port": "clk" } }, { - "id": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", - "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", - "position": { - "x": 1192, - "y": 432 + "source": { + "block": "136e8d6d-892a-4f14-8d6d-0c5bc6c3e844", + "port": "constant-out" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", + "port": "TICS" } }, { - "id": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", - "position": { - "x": 912, - "y": 432 + "source": { + "block": "2e992b62-97db-4d64-9620-3fe3310a9a5f", + "port": "out" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "a70d9684-3b18-4f3d-90cd-28faa893b6b2", + "port": "ena" } - }, + } + ] + } + } + }, + "d0fde25a657f5921d86a889c7f69e379c4d8e91e": { + "package": { + "name": "Contador-5bits-up-rst", + "version": "0.1", + "description": "Contador módulo M, ascendente, de 5 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": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", - "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", - "position": { - "x": 688, - "y": 448 + "id": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "type": "basic.input", + "data": { + "name": "", + "clock": true }, - "size": { - "width": 96, - "height": 64 - } - }, - { - "id": "27312c73-6414-4f2e-88e3-e4fd9eb4d2ca", - "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", "position": { - "x": 464, - "y": 792 - }, - "size": { - "width": 96, - "height": 64 + "x": 264, + "y": 176 } }, { - "id": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", - "type": "7eacdff4ce248b009935725889c8ae3339817d76", - "position": { - "x": 912, - "y": 672 + "id": "6c029178-38c2-43a1-bd73-4b5a6b932090", + "type": "basic.output", + "data": { + "name": "", + "range": "[4:0]", + "size": 5 }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": 800, + "y": 200 } }, { - "id": "8934d1b4-e751-4360-8a2c-fcc90c045fec", - "type": "b82ff1ae5d4441d6da2bec090398f0eb86405bf4", - "position": { - "x": 696, - "y": 776 + "id": "743b5299-2d89-4783-b7c9-12a5b36df406", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false }, - "size": { - "width": 96, - "height": 128 + "position": { + "x": 264, + "y": 280 } - } - ], - "wires": [ - { - "source": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "728a5e86-7762-44da-8f55-f0f6c949abf2", - "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" - }, - "vertices": [] }, { - "source": { - "block": "728a5e86-7762-44da-8f55-f0f6c949abf2", - "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" - }, - "target": { - "block": "18d5bf1a-171b-4474-9505-b9be4292c1ec", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "type": "basic.output", + "data": { + "name": "ov" }, - "vertices": [] + "position": { + "x": 800, + "y": 352 + } }, { - "source": { - "block": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "26aba23f-8567-4e9b-bd45-c26724030f33", + "type": "basic.input", + "data": { + "name": "cnt", + "clock": false }, - "target": { - "block": "162f5f2d-17dc-4d0e-b6f9-6ebdf74392f0", - "port": "in" + "position": { + "x": 264, + "y": 376 + } + }, + { + "id": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "type": "basic.constant", + "data": { + "name": "", + "value": "32", + "local": false }, - "vertices": [] + "position": { + "x": 528, + "y": 48 + } }, { - "source": { - "block": "18d5bf1a-171b-4474-9505-b9be4292c1ec", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "b35ae5de-a490-4f7b-9200-ac52cd3f333e", + "type": "basic.info", + "data": { + "info": "**Parámetro**: Módulo del contador", + "readonly": true }, - "target": { - "block": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "position": { + "x": 472, + "y": 32 }, - "vertices": [] + "size": { + "width": 280, + "height": 56 + } }, { - "source": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "type": "basic.code", + "data": { + "code": "//-- Numero de bits del contador\nlocalparam N = 5; \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": "[4:0]", + "size": 5 + }, + { + "name": "ov" + } + ] + } }, - "target": { - "block": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", - "port": "97b51945-d716-4b6c-9db9-970d08541249" + "position": { + "x": 408, + "y": 160 }, - "vertices": [] - }, + "size": { + "width": 336, + "height": 296 + } + } + ], + "wires": [ { "source": { - "block": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "block": "743b5299-2d89-4783-b7c9-12a5b36df406", + "port": "out" }, "target": { - "block": "18d5bf1a-171b-4474-9505-b9be4292c1ec", - "port": "97b51945-d716-4b6c-9db9-970d08541249" - }, - "vertices": [] + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "rst" + } }, { "source": { - "block": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", - "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + "block": "eb9f9c33-e717-43f0-98eb-dbd9c278fa8c", + "port": "constant-out" }, "target": { - "block": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" - }, - "vertices": [] + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "M" + } }, { "source": { - "block": "0319df1a-5bd5-4abc-8681-6f3a8fa4e108", + "block": "26aba23f-8567-4e9b-bd45-c26724030f33", "port": "out" }, "target": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "cnt" } }, { "source": { - "block": "f966672f-ae05-4499-8a8d-3c9394a1119e", + "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", "port": "out" }, "target": { - "block": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", - "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "clk" } }, { "source": { - "block": "f966672f-ae05-4499-8a8d-3c9394a1119e", - "port": "out" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "ov" }, "target": { - "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", - "port": "26aba23f-8567-4e9b-bd45-c26724030f33" - }, - "vertices": [ - { - "x": 592, - "y": 712 - } - ] + "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "port": "in" + } }, { "source": { - "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", - "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "q" }, "target": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" + "block": "6c029178-38c2-43a1-bd73-4b5a6b932090", + "port": "in" }, - "vertices": [ - { - "x": 824, - "y": 920 - } - ] - }, + "size": 5 + } + ] + } + } + }, + "45f630ea95c6847db8df0598c312ef9acfa981a3": { + "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=%22216.379%22%20height=%22279.911%22%20viewBox=%220%200%2057.25032%2074.059853%22%3E%3Cg%20stroke=%22#000%22%20stroke-width=%221.442%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M41.506%2040.152l13.608%2016.672-6.918-20.534%22%20fill=%22#ccc%22%20stroke-width=%221.0924880399999999%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-width=%221.0924880399999999%22/%3E%3C/g%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%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ { - "source": { - "block": "27312c73-6414-4f2e-88e3-e4fd9eb4d2ca", - "port": "664caf9e-5f40-4df4-800a-b626af702e62" + "id": "3943e194-090b-4553-9df3-88bc4b17abc2", + "type": "basic.input", + "data": { + "name": "", + "clock": true }, - "target": { - "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", - "port": "743b5299-2d89-4783-b7c9-12a5b36df406" + "position": { + "x": 176, + "y": 64 } }, { - "source": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "id": "755eb5f6-70bb-4449-adb7-196ead041df1", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false }, - "target": { - "block": "27312c73-6414-4f2e-88e3-e4fd9eb4d2ca", - "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + "position": { + "x": 168, + "y": 144 } }, { - "source": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" - }, - "target": { - "block": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", - "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + "id": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", + "type": "basic.output", + "data": { + "name": "" }, - "vertices": [ - { - "x": 824, - "y": 664 - } - ] + "position": { + "x": 680, + "y": 200 + } }, { - "source": { - "block": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", - "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" + "id": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", + "type": "basic.input", + "data": { + "name": "d", + "clock": false }, - "target": { - "block": "5dc54e8b-49c1-4ddb-94ab-843b247b73c4", - "port": "in" + "position": { + "x": 168, + "y": 216 + } + }, + { + "id": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", + "type": "basic.input", + "data": { + "name": "load", + "clock": false + }, + "position": { + "x": 168, + "y": 296 } }, { - "source": { - "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", - "port": "out" + "id": "65194b18-5d2a-41b2-bd86-01be99978ad6", + "type": "basic.constant", + "data": { + "name": "", + "value": "0", + "local": false }, - "target": { - "block": "728a5e86-7762-44da-8f55-f0f6c949abf2", - "port": "4196184b-4a60-493b-bcc6-c95958483683" + "position": { + "x": 456, + "y": 64 } }, { - "source": { - "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", - "port": "out" + "id": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "type": "basic.code", + "data": { + "code": "reg q = INI;\nalways @(posedge clk)\n if (rst)\n q <= INI;\n else if (load)\n q <= d;", + "params": [ + { + "name": "INI" + } + ], + "ports": { + "in": [ + { + "name": "clk" + }, + { + "name": "rst" + }, + { + "name": "d" + }, + { + "name": "load" + } + ], + "out": [ + { + "name": "q" + } + ] + } }, - "target": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" + "position": { + "x": 384, + "y": 168 + }, + "size": { + "width": 232, + "height": 128 } - }, + } + ], + "wires": [ { "source": { - "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", + "block": "3943e194-090b-4553-9df3-88bc4b17abc2", "port": "out" }, "target": { - "block": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "clk" } }, { "source": { - "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", - "port": "out" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "q" }, "target": { - "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", - "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" - }, - "vertices": [ - { - "x": 640, - "y": 664 - } - ] + "block": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78", + "port": "in" + } }, { "source": { - "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", - "port": "out" + "block": "65194b18-5d2a-41b2-bd86-01be99978ad6", + "port": "constant-out" }, "target": { - "block": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", - "port": "3943e194-090b-4553-9df3-88bc4b17abc2" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "INI" } }, { "source": { - "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", + "block": "bf2f0c53-2d04-4cba-aa70-2df85502d24f", "port": "out" }, "target": { - "block": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", - "port": "4196184b-4a60-493b-bcc6-c95958483683" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "d" } }, { "source": { - "block": "576020ce-bd52-4c01-8d5c-28605e677436", - "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + "block": "4e3677f4-ae08-4a6f-80a7-ec71cd0c24b7", + "port": "out" }, "target": { - "block": "453471d0-fe0d-4cbf-a4df-411b6035dd44", - "port": "in" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "load" } }, { "source": { - "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", - "port": "7a982450-c842-4aa2-8e77-43cc628266e0" - }, - "target": { - "block": "088c7d8e-99b1-4f2e-a6c0-a672e5239844", - "port": "in" - }, - "vertices": [ - { - "x": 1048, - "y": 760 - } - ], - "size": 2 - }, - { - "source": { - "block": "8a0d51b6-8ab0-4ca6-8d57-7fa7e713c738", + "block": "755eb5f6-70bb-4449-adb7-196ead041df1", "port": "out" }, "target": { - "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", - "port": "4cafbdca-bdb2-421a-a742-f5de7a452c86" + "block": "bdc170f0-4468-4137-bd79-4624c9cadf2b", + "port": "rst" }, "vertices": [ { - "x": 616, - "y": 616 + "x": 304, + "y": 192 } - ], - "size": 2 + ] } ] } } }, - "b82ff1ae5d4441d6da2bec090398f0eb86405bf4": { + "53847c98bfef0fe28fbef1f4f65042911f361c44": { "package": { - "name": "Contador-2bits-up-rst-mod-M", + "name": "Registro-desplazamiento", "version": "0.1", - "description": "Contador módulo M, ascendente, de 2 bits, con reset ", + "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=%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" + "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": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "id": "a265c13d-af7a-437b-97ae-424872381a93", "type": "basic.input", "data": { "name": "", "clock": true }, "position": { - "x": 240, - "y": 168 + "x": 224, + "y": 648 } }, { - "id": "7a982450-c842-4aa2-8e77-43cc628266e0", + "id": "21039c06-c932-498c-968d-879a68d66795", "type": "basic.output", "data": { - "name": "", - "range": "[1:0]", - "size": 2 + "name": "" }, "position": { - "x": 800, - "y": 200 + "x": 952, + "y": 680 } }, { - "id": "743b5299-2d89-4783-b7c9-12a5b36df406", + "id": "02007399-7499-4b76-ad4f-91094344d055", "type": "basic.input", "data": { - "name": "rst", + "name": "sin", "clock": false }, "position": { - "x": 240, - "y": 240 + "x": 224, + "y": 696 } }, { - "id": "4cafbdca-bdb2-421a-a742-f5de7a452c86", + "id": "05394100-6c4a-4bd5-b479-739c16ede30c", "type": "basic.input", "data": { - "name": "mod", - "range": "[1:0]", + "name": "d", + "range": "[7:0]", "clock": false, - "size": 2 + "size": 8 }, "position": { - "x": 240, - "y": 312 + "x": 224, + "y": 744 } }, { - "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", + "id": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", "type": "basic.output", "data": { - "name": "ov" + "name": "q", + "range": "[7:0]", + "size": 8 }, "position": { - "x": 800, - "y": 352 + "x": 968, + "y": 800 } }, { - "id": "26aba23f-8567-4e9b-bd45-c26724030f33", + "id": "b916c09a-8848-4500-a1a0-0cc09e8f23c1", "type": "basic.input", "data": { - "name": "cnt", + "name": "load", "clock": false }, "position": { - "x": 240, - "y": 384 + "x": 224, + "y": 800 } }, { - "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "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 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 == mod);\n ", - "params": [], + "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": "rst" + "name": "si" }, { - "name": "mod", - "range": "[1:0]", - "size": 2 + "name": "d", + "range": "[7:0]", + "size": 8 }, { - "name": "cnt" + "name": "load" + }, + { + "name": "shift" } ], "out": [ { - "name": "q", - "range": "[1:0]", - "size": 2 + "name": "so" }, { - "name": "ov" + "name": "q", + "range": "[7:0]", + "size": 8 } ] } }, "position": { - "x": 408, - "y": 160 + "x": 440, + "y": 656 }, "size": { - "width": 336, - "height": 296 + "width": 464, + "height": 232 } } ], "wires": [ { "source": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "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": "7a982450-c842-4aa2-8e77-43cc628266e0", + "block": "90654ccb-afdd-41ec-aaf8-b9be5b51253b", "port": "in" }, - "size": 2 + "size": 8 }, { "source": { - "block": "743b5299-2d89-4783-b7c9-12a5b36df406", + "block": "a265c13d-af7a-437b-97ae-424872381a93", "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "rst" + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "clk" } }, { "source": { - "block": "26aba23f-8567-4e9b-bd45-c26724030f33", + "block": "02007399-7499-4b76-ad4f-91094344d055", "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "cnt" + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "si" } }, { "source": { - "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "block": "05394100-6c4a-4bd5-b479-739c16ede30c", "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "clk" - } + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "d" + }, + "size": 8 }, { "source": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "ov" + "block": "ec65c3cd-0951-4d74-bbfc-c37f87a78e66", + "port": "out" }, "target": { - "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", - "port": "in" + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "shift" } }, { "source": { - "block": "4cafbdca-bdb2-421a-a742-f5de7a452c86", + "block": "b916c09a-8848-4500-a1a0-0cc09e8f23c1", "port": "out" }, "target": { - "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", - "port": "mod" + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "load" + } + }, + { + "source": { + "block": "db9bff83-fad6-439b-8d86-89e21ad7870d", + "port": "so" }, - "size": 2 + "target": { + "block": "21039c06-c932-498c-968d-879a68d66795", + "port": "in" + } } ] } } }, - "56cc183f8c704107b94d882715f6e43592dcaf61": { + "5483349a60d7c0f7f4146228196d6f4c4ad7604d": { "package": { - "name": "Mux 4 a 1 de 8 bits", - "version": "0.0.1", - "description": "Multiplexor de 4 a 1 de 8 bits", - "author": "Juan Gonzalez-Gomez (obijuan)", - "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" + "name": "machine-loop", + "version": "0.1", + "description": "Máquina para hacer repeticiones", + "author": "Juan González-Gómez (Obijuan)", + "image": "" }, "design": { "graph": { "blocks": [ { - "id": "fbc03b1e-bcb0-42b2-9b09-33968aa35d0f", + "id": "162f5f2d-17dc-4d0e-b6f9-6ebdf74392f0", + "type": "basic.output", + "data": { + "name": "exec" + }, + "position": { + "x": 1352, + "y": 224 + } + }, + { + "id": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", "type": "basic.input", "data": { - "name": "i3", - "range": "[7:0]", - "clock": false, - "size": 8 + "name": "", + "clock": true }, "position": { - "x": -712, - "y": -200 + "x": 48, + "y": 280 } }, { - "id": "350946d5-2f29-4190-bcf2-e14e17224bb4", + "id": "8a0d51b6-8ab0-4ca6-8d57-7fa7e713c738", "type": "basic.input", "data": { - "name": "i2", - "range": "[7:0]", + "name": "mod", + "range": "[1:0]", "clock": false, - "size": 8 + "size": 2 }, "position": { - "x": -712, - "y": -128 + "x": 48, + "y": 400 } }, { - "id": "bc9544e0-2199-4d6a-a6b9-6550b7dd7633", + "id": "f966672f-ae05-4499-8a8d-3c9394a1119e", "type": "basic.input", "data": { - "name": "i1", - "range": "[7:0]", - "clock": false, - "size": 8 + "name": "next", + "clock": false }, "position": { - "x": -712, - "y": -48 + "x": 48, + "y": 464 } }, { - "id": "820e19c9-d979-418f-b2e5-d806fa3caca3", + "id": "453471d0-fe0d-4cbf-a4df-411b6035dd44", "type": "basic.output", "data": { - "name": "o", - "range": "[7:0]", - "size": 8 + "name": "busy" }, "position": { - "x": 0, - "y": -8 + "x": 1224, + "y": 528 } }, { - "id": "1f4c1c55-ee75-41d6-8590-b4e650d636cc", + "id": "0319df1a-5bd5-4abc-8681-6f3a8fa4e108", "type": "basic.input", "data": { - "name": "i0", - "range": "[7:0]", - "clock": false, - "size": 8 + "name": "start", + "clock": false }, "position": { - "x": -712, - "y": 16 + "x": 40, + "y": 608 } }, { - "id": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", - "type": "basic.input", + "id": "088c7d8e-99b1-4f2e-a6c0-a672e5239844", + "type": "basic.output", "data": { - "name": "sel1", - "clock": false + "name": "", + "range": "[1:0]", + "size": 2 }, "position": { - "x": -704, - "y": 112 + "x": 1208, + "y": 720 } }, { - "id": "2cd7e8ed-1ed2-4a5c-a72a-337d703c9712", - "type": "basic.input", + "id": "5dc54e8b-49c1-4ddb-94ab-843b247b73c4", + "type": "basic.output", "data": { - "name": "sel0", - "clock": false + "name": "done" }, "position": { - "x": -704, - "y": 176 + "x": 1208, + "y": 792 + } + }, + { + "id": "576020ce-bd52-4c01-8d5c-28605e677436", + "type": "b959c256104d1064a5ef7b38632ffb6eed3b396f", + "position": { + "x": 304, + "y": 592 + }, + "size": { + "width": 96, + "height": 96 + } + }, + { + "id": "728a5e86-7762-44da-8f55-f0f6c949abf2", + "type": "8e2728307baccbf26c01cdb87bcfba8ca64a435c", + "position": { + "x": 496, + "y": 328 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "18d5bf1a-171b-4474-9505-b9be4292c1ec", + "type": "81613874c6152f06c06ed7014bf4235900cfcc30", + "position": { + "x": 1064, + "y": 416 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", + "type": "b2090f68ef94fd3c5c0eaea93eb6ba7e80aff0b6", + "position": { + "x": 1192, + "y": 432 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", + "position": { + "x": 912, + "y": 432 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", + "type": "1c7dae7144d376f2ee4896fcc502a29110e2db37", + "position": { + "x": 688, + "y": 448 + }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "27312c73-6414-4f2e-88e3-e4fd9eb4d2ca", + "type": "35f267d0df6ffcb7fc33753bc9df9cf083642cca", + "position": { + "x": 464, + "y": 792 + }, + "size": { + "width": 96, + "height": 64 } }, { - "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "type": "basic.code", - "data": { - "code": "//-- Multiplexor de 4 a 1, \n//-- de 8 bits\n\nwire [1:0] sel = {s1, s0};\n\nassign o = (sel == 2'b00) ? i0 :\n (sel == 2'b01) ? i1 :\n (sel == 2'b10) ? i2 : i3;\n\n", - "params": [], - "ports": { - "in": [ - { - "name": "i3", - "range": "[7:0]", - "size": 8 - }, - { - "name": "i2", - "range": "[7:0]", - "size": 8 - }, - { - "name": "i1", - "range": "[7:0]", - "size": 8 - }, - { - "name": "i0", - "range": "[7:0]", - "size": 8 - }, - { - "name": "s1" - }, - { - "name": "s0" - } - ], - "out": [ - { - "name": "o", - "range": "[7:0]", - "size": 8 - } - ] - } + "id": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", + "type": "7eacdff4ce248b009935725889c8ae3339817d76", + "position": { + "x": 912, + "y": 672 }, + "size": { + "width": 96, + "height": 64 + } + }, + { + "id": "8934d1b4-e751-4360-8a2c-fcc90c045fec", + "type": "b82ff1ae5d4441d6da2bec090398f0eb86405bf4", "position": { - "x": -464, - "y": -104 + "x": 696, + "y": 776 }, "size": { - "width": 352, - "height": 256 + "width": 96, + "height": 128 } } ], "wires": [ { "source": { - "block": "2cd7e8ed-1ed2-4a5c-a72a-337d703c9712", - "port": "out" + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "s0" - } + "block": "728a5e86-7762-44da-8f55-f0f6c949abf2", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" + }, + "vertices": [] }, { "source": { - "block": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", - "port": "out" + "block": "728a5e86-7762-44da-8f55-f0f6c949abf2", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "s1" + "block": "18d5bf1a-171b-4474-9505-b9be4292c1ec", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" }, - "vertices": [ - { - "x": -520, - "y": 104 - } - ] + "vertices": [] }, { "source": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "o" + "block": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "820e19c9-d979-418f-b2e5-d806fa3caca3", + "block": "162f5f2d-17dc-4d0e-b6f9-6ebdf74392f0", "port": "in" }, - "size": 8 + "vertices": [] }, { "source": { - "block": "1f4c1c55-ee75-41d6-8590-b4e650d636cc", + "block": "18d5bf1a-171b-4474-9505-b9be4292c1ec", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" + }, + "target": { + "block": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + }, + "vertices": [] + }, + { + "source": { + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "874a5fef-de51-4d40-87b3-deae7b2fc4c9", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] + }, + { + "source": { + "block": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + }, + "target": { + "block": "18d5bf1a-171b-4474-9505-b9be4292c1ec", + "port": "97b51945-d716-4b6c-9db9-970d08541249" + }, + "vertices": [] + }, + { + "source": { + "block": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", + "port": "aa84d31e-cd92-44c7-bb38-c7a4cd903a78" + }, + "target": { + "block": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + }, + "vertices": [] + }, + { + "source": { + "block": "0319df1a-5bd5-4abc-8681-6f3a8fa4e108", "port": "out" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i0" + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "3ae2d46d-7981-497a-899f-b60bfae0f43e" + } + }, + { + "source": { + "block": "f966672f-ae05-4499-8a8d-3c9394a1119e", + "port": "out" }, - "size": 8 + "target": { + "block": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", + "port": "bf2f0c53-2d04-4cba-aa70-2df85502d24f" + } }, { "source": { - "block": "bc9544e0-2199-4d6a-a6b9-6550b7dd7633", + "block": "f966672f-ae05-4499-8a8d-3c9394a1119e", "port": "out" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i1" + "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", + "port": "26aba23f-8567-4e9b-bd45-c26724030f33" }, "vertices": [ { - "x": -576, - "y": 0 + "x": 592, + "y": 712 } - ], - "size": 8 + ] }, { "source": { - "block": "350946d5-2f29-4190-bcf2-e14e17224bb4", - "port": "out" + "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", + "port": "cc17ff4d-1c27-4dc3-a14c-da730d54750e" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i2" + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "86eb8c81-17fc-4371-bd21-51f429191f3c" }, "vertices": [ { - "x": -576, - "y": -72 + "x": 824, + "y": 920 } - ], - "size": 8 + ] }, { "source": { - "block": "fbc03b1e-bcb0-42b2-9b09-33968aa35d0f", - "port": "out" + "block": "27312c73-6414-4f2e-88e3-e4fd9eb4d2ca", + "port": "664caf9e-5f40-4df4-800a-b626af702e62" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i3" + "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", + "port": "743b5299-2d89-4783-b7c9-12a5b36df406" + } + }, + { + "source": { + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "27312c73-6414-4f2e-88e3-e4fd9eb4d2ca", + "port": "18c2ebc7-5152-439c-9b3f-851c59bac834" + } + }, + { + "source": { + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" + }, + "target": { + "block": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", + "port": "b6426b43-dcda-418d-b6d3-4764b5bc0b25" }, "vertices": [ { - "x": -544, - "y": -128 + "x": 824, + "y": 664 } - ], - "size": 8 - } - ] - } - } - }, - "eebee1482748e838ffef3618817cc1fa911e4952": { - "package": { - "name": "Mux 2 a 1 de 2 bits", - "version": "0.0.1", - "description": "Multiplexor de 2 a 1 de 2 bits", - "author": "Juan Gonzalez-Gomez (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" - }, - "design": { - "graph": { - "blocks": [ + ] + }, { - "id": "d220e4a2-bec7-4852-84bd-2baf3df5ccdb", - "type": "basic.input", - "data": { - "name": "i1", - "range": "[1:0]", - "clock": false, - "size": 2 + "source": { + "block": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", + "port": "1d2e403f-0fa6-41fd-83a9-4f309eadd855" }, - "position": { - "x": -704, - "y": -88 + "target": { + "block": "5dc54e8b-49c1-4ddb-94ab-843b247b73c4", + "port": "in" } }, { - "id": "ca28abaf-359d-4f8f-a397-91d76dc936ec", - "type": "basic.output", - "data": { - "name": "o", - "range": "[1:0]", - "size": 2 + "source": { + "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", + "port": "out" }, - "position": { - "x": -48, - "y": 0 + "target": { + "block": "728a5e86-7762-44da-8f55-f0f6c949abf2", + "port": "4196184b-4a60-493b-bcc6-c95958483683" } }, { - "id": "8197e6c5-cf9d-42d6-a9e9-3ecccafa27c2", - "type": "basic.input", - "data": { - "name": "i0", - "range": "[1:0]", - "clock": false, - "size": 2 + "source": { + "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", + "port": "out" }, - "position": { - "x": -704, - "y": 0 + "target": { + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "9f09a4af-8f7a-45c3-af7b-293a244e76d9" } }, { - "id": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", - "type": "basic.input", - "data": { - "name": "sel", - "clock": false + "source": { + "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", + "port": "out" }, - "position": { - "x": -704, - "y": 88 + "target": { + "block": "8df2b5f9-3546-4dd1-805a-721433f7e6aa", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" } }, { - "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "type": "basic.code", - "data": { - "code": "//-- Multiplexor de 2 a 1, \n//-- de 2 bits\n\nreg [1:0] o;\n\nalways @(*) begin\n case(sel)\n 0: o = i0;\n 1: o = i1;\n default: o = i0;\n endcase\nend\n\n", - "params": [], - "ports": { - "in": [ - { - "name": "i1", - "range": "[1:0]", - "size": 2 - }, - { - "name": "i0", - "range": "[1:0]", - "size": 2 - }, - { - "name": "sel" - } - ], - "out": [ - { - "name": "o", - "range": "[1:0]", - "size": 2 - } - ] - } + "source": { + "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", + "port": "out" }, - "position": { - "x": -464, - "y": -104 + "target": { + "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", + "port": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3" }, - "size": { - "width": 304, - "height": 272 + "vertices": [ + { + "x": 640, + "y": 664 + } + ] + }, + { + "source": { + "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", + "port": "out" + }, + "target": { + "block": "fe0d99f8-7b41-47be-8e33-5a555f60e0bf", + "port": "3943e194-090b-4553-9df3-88bc4b17abc2" } - } - ], - "wires": [ + }, { "source": { - "block": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", + "block": "9c68c5ce-2425-45f3-9f05-ee4581fa974d", "port": "out" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "sel" + "block": "77c53a21-0c10-451a-8e79-a6d55c9bdf09", + "port": "4196184b-4a60-493b-bcc6-c95958483683" } }, { "source": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "o" + "block": "576020ce-bd52-4c01-8d5c-28605e677436", + "port": "1cb167a4-9e2a-416b-803e-da7b6151eaa5" }, "target": { - "block": "ca28abaf-359d-4f8f-a397-91d76dc936ec", + "block": "453471d0-fe0d-4cbf-a4df-411b6035dd44", "port": "in" - }, - "size": 2 + } }, { "source": { - "block": "d220e4a2-bec7-4852-84bd-2baf3df5ccdb", - "port": "out" + "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", + "port": "7a982450-c842-4aa2-8e77-43cc628266e0" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i1" + "block": "088c7d8e-99b1-4f2e-a6c0-a672e5239844", + "port": "in" }, + "vertices": [ + { + "x": 1048, + "y": 760 + } + ], "size": 2 }, { "source": { - "block": "8197e6c5-cf9d-42d6-a9e9-3ecccafa27c2", + "block": "8a0d51b6-8ab0-4ca6-8d57-7fa7e713c738", "port": "out" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i0" + "block": "8934d1b4-e751-4360-8a2c-fcc90c045fec", + "port": "4cafbdca-bdb2-421a-a742-f5de7a452c86" }, + "vertices": [ + { + "x": 616, + "y": 616 + } + ], "size": 2 } ] } } }, - "945d5c43e22d4f1d3f8e379417d47f170e4adcf6": { + "b82ff1ae5d4441d6da2bec090398f0eb86405bf4": { "package": { - "name": "Valor_2_2bits", - "version": "0.0.1", - "description": "Valor constante 2 para bus de 2 bits", - "author": "Juan Gonzalez-Gomez (Obijuan)", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22138.81%22%20height=%22305.779%22%20viewBox=%220%200%20130.13472%20286.66758%22%3E%3Cg%20font-weight=%22400%22%20font-family=%22Ubuntu%20Mono%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-size=%22335.399%22%20fill=%22green%22%20transform=%22translate(-312.233%20-436.037)%22%3E%3Ctspan%20x=%22293.115%22%20y=%22648.344%22%3E2%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22341.722%22%20y=%22721.624%22%20font-size=%2283.077%22%20transform=%22translate(-312.233%20-436.037)%22%3E%3Ctspan%20x=%22341.722%22%20y=%22721.624%22%3E10%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" + "name": "Contador-2bits-up-rst-mod-M", + "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": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", - "type": "basic.output", + "id": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "type": "basic.input", "data": { - "name": "k", - "range": "[1:0]", - "size": 2 + "name": "", + "clock": true }, "position": { - "x": 928, - "y": 256 + "x": 240, + "y": 168 } }, { - "id": "ad7918eb-22dd-4b6c-949f-e428f5a55530", - "type": "basic.constant", + "id": "7a982450-c842-4aa2-8e77-43cc628266e0", + "type": "basic.output", "data": { "name": "", - "value": "2", - "local": true + "range": "[1:0]", + "size": 2 }, "position": { - "x": 728, - "y": 144 + "x": 800, + "y": 200 } }, { - "id": "ca6198dd-3208-49f0-8089-7a221c78637d", - "type": "1577535d38e0077281a8de7dc00933b07ec4f543", - "position": { - "x": 728, - "y": 256 + "id": "743b5299-2d89-4783-b7c9-12a5b36df406", + "type": "basic.input", + "data": { + "name": "rst", + "clock": false }, - "size": { - "width": 96, - "height": 64 + "position": { + "x": 240, + "y": 240 } - } - ], - "wires": [ - { - "source": { - "block": "ca6198dd-3208-49f0-8089-7a221c78637d", - "port": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26" - }, - "target": { - "block": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", - "port": "in" - }, - "size": 2 }, { - "source": { - "block": "ad7918eb-22dd-4b6c-949f-e428f5a55530", - "port": "constant-out" + "id": "4cafbdca-bdb2-421a-a742-f5de7a452c86", + "type": "basic.input", + "data": { + "name": "mod", + "range": "[1:0]", + "clock": false, + "size": 2 }, - "target": { - "block": "ca6198dd-3208-49f0-8089-7a221c78637d", - "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" + "position": { + "x": 240, + "y": 312 } - } - ] - } - } - }, - "1577535d38e0077281a8de7dc00933b07ec4f543": { - "package": { - "name": "Constante-2bits", - "version": "0.0.1", - "description": "Valor genérico constante, de 2 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=%22145.608%22%20height=%22247.927%22%20viewBox=%220%200%20136.50729%20232.43134%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-weight=%22400%22%20font-size=%22335.399%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%3Ek%3C/tspan%3E%3C/text%3E%3C/svg%3E" - }, - "design": { - "graph": { - "blocks": [ + }, { - "id": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26", + "id": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", "type": "basic.output", "data": { - "name": "k", - "range": "[1:0]", - "size": 2 + "name": "ov" }, "position": { - "x": 960, - "y": 248 + "x": 800, + "y": 352 } }, { - "id": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", - "type": "basic.constant", + "id": "26aba23f-8567-4e9b-bd45-c26724030f33", + "type": "basic.input", "data": { - "name": "", - "value": "0", - "local": false + "name": "cnt", + "clock": false }, "position": { - "x": 728, - "y": 112 + "x": 240, + "y": 384 } }, { - "id": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", + "id": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", "type": "basic.code", "data": { - "code": "assign k = VALUE;", - "params": [ - { - "name": "VALUE" - } - ], + "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 == mod);\n ", + "params": [], "ports": { - "in": [], + "in": [ + { + "name": "clk" + }, + { + "name": "rst" + }, + { + "name": "mod", + "range": "[1:0]", + "size": 2 + }, + { + "name": "cnt" + } + ], "out": [ { - "name": "k", + "name": "q", "range": "[1:0]", "size": 2 + }, + { + "name": "ov" } ] } }, "position": { - "x": 672, - "y": 248 + "x": 408, + "y": 160 }, "size": { - "width": 208, - "height": 64 + "width": 336, + "height": 296 } } ], "wires": [ { "source": { - "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", - "port": "k" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "q" }, "target": { - "block": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26", + "block": "7a982450-c842-4aa2-8e77-43cc628266e0", "port": "in" }, "size": 2 }, { "source": { - "block": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4", - "port": "constant-out" + "block": "743b5299-2d89-4783-b7c9-12a5b36df406", + "port": "out" }, "target": { - "block": "7dbe7521-0f9f-43ee-ab0c-0439e2c20bc2", - "port": "VALUE" - } - } - ] - } - } - }, - "ceff2da3577d3e4da3ad522a234b993cfc71e21a": { - "package": { - "name": "Valor_3_2bits", - "version": "0.0.1", - "description": "Valor constante 3 para bus de 2 bits", - "author": "Juan Gonzalez-Gomez (Obijuan)", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22137.022%22%20height=%22304.627%22%20viewBox=%220%200%20128.45774%20285.58757%22%3E%3Cg%20font-weight=%22400%22%20font-family=%22Ubuntu%20Mono%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-size=%22335.399%22%20fill=%22green%22%20transform=%22translate(-312.904%20-436.037)%22%3E%3Ctspan%20x=%22293.115%22%20y=%22648.344%22%3E3%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22341.722%22%20y=%22721.624%22%20font-size=%2283.077%22%20transform=%22translate(-312.904%20-436.037)%22%3E%3Ctspan%20x=%22341.722%22%20y=%22721.624%22%3E11%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" - }, - "design": { - "graph": { - "blocks": [ - { - "id": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", - "type": "basic.output", - "data": { - "name": "k", - "range": "[1:0]", - "size": 2 - }, - "position": { - "x": 928, - "y": 256 + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "rst" } }, { - "id": "ad7918eb-22dd-4b6c-949f-e428f5a55530", - "type": "basic.constant", - "data": { - "name": "", - "value": "3", - "local": true + "source": { + "block": "26aba23f-8567-4e9b-bd45-c26724030f33", + "port": "out" }, - "position": { - "x": 728, - "y": 152 + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "cnt" } }, { - "id": "cfb4d1d2-7686-45c7-9af0-0293f03a9881", - "type": "1577535d38e0077281a8de7dc00933b07ec4f543", - "position": { - "x": 728, - "y": 256 + "source": { + "block": "c90da543-4b9c-4f4c-a5fa-7e1166ee1dd3", + "port": "out" }, - "size": { - "width": 96, - "height": 64 + "target": { + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "clk" } - } - ], - "wires": [ + }, { "source": { - "block": "cfb4d1d2-7686-45c7-9af0-0293f03a9881", - "port": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26" + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "ov" }, "target": { - "block": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", + "block": "cc17ff4d-1c27-4dc3-a14c-da730d54750e", "port": "in" - }, - "size": 2 + } }, { "source": { - "block": "ad7918eb-22dd-4b6c-949f-e428f5a55530", - "port": "constant-out" + "block": "4cafbdca-bdb2-421a-a742-f5de7a452c86", + "port": "out" }, "target": { - "block": "cfb4d1d2-7686-45c7-9af0-0293f03a9881", - "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" - } + "block": "e5d5eb54-41fb-40de-908c-b1fe9b2ec085", + "port": "mod" + }, + "size": 2 } ] } } }, - "a475867b1a8ac28299ed315b271747ba4ec10c54": { + "56cc183f8c704107b94d882715f6e43592dcaf61": { "package": { - "name": "mi-tabla2-2", - "version": "0.1", - "description": "Circuito combinacional de 2 entradas y 2 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=%22268.594%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=%22268.594%22%20y=%22368.911%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%20font-size=%2270%22%3EBIN%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" + "name": "Mux 4 a 1 de 8 bits", + "version": "0.0.1", + "description": "Multiplexor de 4 a 1 de 8 bits", + "author": "Juan Gonzalez-Gomez (obijuan)", + "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": "186c4116-7846-4c8e-98a0-7376675105f1", + "id": "fbc03b1e-bcb0-42b2-9b09-33968aa35d0f", "type": "basic.input", "data": { - "name": "", - "range": "[1:0]", + "name": "i3", + "range": "[7:0]", "clock": false, - "size": 2 + "size": 8 }, "position": { - "x": -8, - "y": 424 + "x": -712, + "y": -200 } }, { - "id": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", + "id": "350946d5-2f29-4190-bcf2-e14e17224bb4", + "type": "basic.input", + "data": { + "name": "i2", + "range": "[7:0]", + "clock": false, + "size": 8 + }, + "position": { + "x": -712, + "y": -128 + } + }, + { + "id": "bc9544e0-2199-4d6a-a6b9-6550b7dd7633", + "type": "basic.input", + "data": { + "name": "i1", + "range": "[7:0]", + "clock": false, + "size": 8 + }, + "position": { + "x": -712, + "y": -48 + } + }, + { + "id": "820e19c9-d979-418f-b2e5-d806fa3caca3", "type": "basic.output", "data": { - "name": "", - "range": "[1:0]", - "size": 2 + "name": "o", + "range": "[7:0]", + "size": 8 }, "position": { - "x": 632, - "y": 424 + "x": 0, + "y": -8 } }, { - "id": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", - "type": "basic.memory", + "id": "1f4c1c55-ee75-41d6-8590-b4e650d636cc", + "type": "basic.input", "data": { - "name": "", - "list": "0\n0\n0\n0", - "local": false + "name": "i0", + "range": "[7:0]", + "clock": false, + "size": 8 }, "position": { - "x": 328, - "y": 96 + "x": -712, + "y": 16 + } + }, + { + "id": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", + "type": "basic.input", + "data": { + "name": "sel1", + "clock": false }, - "size": { - "width": 96, - "height": 104 + "position": { + "x": -704, + "y": 112 } }, { - "id": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "id": "2cd7e8ed-1ed2-4a5c-a72a-337d703c9712", + "type": "basic.input", + "data": { + "name": "sel0", + "clock": false + }, + "position": { + "x": -704, + "y": 176 + } + }, + { + "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", "type": "basic.code", "data": { - "code": "\n//-- Bits del bus de entrada\nlocalparam N = 2;\n\n//-- Bits del bus de salida\nlocalparam M = 2;\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) $readmemb(DATA, tabla);\nend", - "params": [ - { - "name": "DATA" - } - ], + "code": "//-- Multiplexor de 4 a 1, \n//-- de 8 bits\n\nwire [1:0] sel = {s1, s0};\n\nassign o = (sel == 2'b00) ? i0 :\n (sel == 2'b01) ? i1 :\n (sel == 2'b10) ? i2 : i3;\n\n", + "params": [], "ports": { "in": [ { - "name": "i", - "range": "[1:0]", - "size": 2 + "name": "i3", + "range": "[7:0]", + "size": 8 + }, + { + "name": "i2", + "range": "[7:0]", + "size": 8 + }, + { + "name": "i1", + "range": "[7:0]", + "size": 8 + }, + { + "name": "i0", + "range": "[7:0]", + "size": 8 + }, + { + "name": "s1" + }, + { + "name": "s0" } ], "out": [ { - "name": "q", - "range": "[1:0]", - "size": 2 + "name": "o", + "range": "[7:0]", + "size": 8 } ] } }, "position": { - "x": 176, - "y": 264 + "x": -464, + "y": -104 }, "size": { - "width": 392, - "height": 384 + "width": 352, + "height": 256 } } ], "wires": [ { "source": { - "block": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", - "port": "memory-out" + "block": "2cd7e8ed-1ed2-4a5c-a72a-337d703c9712", + "port": "out" }, "target": { - "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", - "port": "DATA" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "s0" } }, { "source": { - "block": "186c4116-7846-4c8e-98a0-7376675105f1", + "block": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", "port": "out" }, "target": { - "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", - "port": "i" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "s1" }, - "size": 2 + "vertices": [ + { + "x": -520, + "y": 104 + } + ] }, { "source": { - "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", - "port": "q" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "o" }, "target": { - "block": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", + "block": "820e19c9-d979-418f-b2e5-d806fa3caca3", "port": "in" }, - "size": 2 + "size": 8 + }, + { + "source": { + "block": "1f4c1c55-ee75-41d6-8590-b4e650d636cc", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i0" + }, + "size": 8 + }, + { + "source": { + "block": "bc9544e0-2199-4d6a-a6b9-6550b7dd7633", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i1" + }, + "vertices": [ + { + "x": -576, + "y": 0 + } + ], + "size": 8 + }, + { + "source": { + "block": "350946d5-2f29-4190-bcf2-e14e17224bb4", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i2" + }, + "vertices": [ + { + "x": -576, + "y": -72 + } + ], + "size": 8 + }, + { + "source": { + "block": "fbc03b1e-bcb0-42b2-9b09-33968aa35d0f", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i3" + }, + "vertices": [ + { + "x": -544, + "y": -128 + } + ], + "size": 8 } ] } } }, - "359a555a147b0afd9d84e4a720ec84b7cdfbc034": { + "eebee1482748e838ffef3618817cc1fa911e4952": { "package": { - "name": "Mux 2 a 1 de 8 bits", + "name": "Mux 2 a 1 de 2 bits", "version": "0.0.1", - "description": "Multiplexor de 2 a 1 de 8 bits", + "description": "Multiplexor de 2 a 1 de 2 bits", "author": "Juan Gonzalez-Gomez (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" }, @@ -10986,13 +10943,13 @@ "graph": { "blocks": [ { - "id": "9f5a1c91-1b93-4609-877c-816ed8fd0871", + "id": "d220e4a2-bec7-4852-84bd-2baf3df5ccdb", "type": "basic.input", "data": { "name": "i1", - "range": "[7:0]", + "range": "[1:0]", "clock": false, - "size": 8 + "size": 2 }, "position": { "x": -704, @@ -11000,29 +10957,29 @@ } }, { - "id": "325fbba1-e929-4921-a644-95f918e6e4ee", - "type": "basic.input", + "id": "ca28abaf-359d-4f8f-a397-91d76dc936ec", + "type": "basic.output", "data": { - "name": "i0", - "range": "[7:0]", - "clock": false, - "size": 8 + "name": "o", + "range": "[1:0]", + "size": 2 }, "position": { - "x": -704, + "x": -48, "y": 0 } }, { - "id": "bf25756a-65a4-4b09-915d-494010d6f4ff", - "type": "basic.output", + "id": "8197e6c5-cf9d-42d6-a9e9-3ecccafa27c2", + "type": "basic.input", "data": { - "name": "o", - "range": "[7:0]", - "size": 8 + "name": "i0", + "range": "[1:0]", + "clock": false, + "size": 2 }, "position": { - "x": -48, + "x": -704, "y": 0 } }, @@ -11042,19 +10999,19 @@ "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", "type": "basic.code", "data": { - "code": "//-- Multiplexor de 2 a 1, \n//-- de 8 bits\n\nreg [7:0] o;\n\nalways @(*) begin\n case(sel)\n 0: o = i0;\n 1: o = i1;\n default: o = i0;\n endcase\nend\n\n", + "code": "//-- Multiplexor de 2 a 1, \n//-- de 2 bits\n\nreg [1:0] o;\n\nalways @(*) begin\n case(sel)\n 0: o = i0;\n 1: o = i1;\n default: o = i0;\n endcase\nend\n\n", "params": [], "ports": { "in": [ { "name": "i1", - "range": "[7:0]", - "size": 8 + "range": "[1:0]", + "size": 2 }, { "name": "i0", - "range": "[7:0]", - "size": 8 + "range": "[1:0]", + "size": 2 }, { "name": "sel" @@ -11063,8 +11020,8 @@ "out": [ { "name": "o", - "range": "[7:0]", - "size": 8 + "range": "[1:0]", + "size": 2 } ] } @@ -11092,121 +11049,163 @@ }, { "source": { - "block": "325fbba1-e929-4921-a644-95f918e6e4ee", + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "o" + }, + "target": { + "block": "ca28abaf-359d-4f8f-a397-91d76dc936ec", + "port": "in" + }, + "size": 2 + }, + { + "source": { + "block": "d220e4a2-bec7-4852-84bd-2baf3df5ccdb", + "port": "out" + }, + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i1" + }, + "size": 2 + }, + { + "source": { + "block": "8197e6c5-cf9d-42d6-a9e9-3ecccafa27c2", "port": "out" }, "target": { "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", "port": "i0" }, - "size": 8 + "size": 2 + } + ] + } + } + }, + "945d5c43e22d4f1d3f8e379417d47f170e4adcf6": { + "package": { + "name": "Valor_2_2bits", + "version": "0.0.1", + "description": "Valor constante 2 para bus de 2 bits", + "author": "Juan Gonzalez-Gomez (Obijuan)", + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22138.81%22%20height=%22305.779%22%20viewBox=%220%200%20130.13472%20286.66758%22%3E%3Cg%20font-weight=%22400%22%20font-family=%22Ubuntu%20Mono%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-size=%22335.399%22%20fill=%22green%22%20transform=%22translate(-312.233%20-436.037)%22%3E%3Ctspan%20x=%22293.115%22%20y=%22648.344%22%3E2%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22341.722%22%20y=%22721.624%22%20font-size=%2283.077%22%20transform=%22translate(-312.233%20-436.037)%22%3E%3Ctspan%20x=%22341.722%22%20y=%22721.624%22%3E10%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" + }, + "design": { + "graph": { + "blocks": [ + { + "id": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", + "type": "basic.output", + "data": { + "name": "k", + "range": "[1:0]", + "size": 2 + }, + "position": { + "x": 928, + "y": 256 + } + }, + { + "id": "ad7918eb-22dd-4b6c-949f-e428f5a55530", + "type": "basic.constant", + "data": { + "name": "", + "value": "2", + "local": true + }, + "position": { + "x": 728, + "y": 144 + } }, + { + "id": "ca6198dd-3208-49f0-8089-7a221c78637d", + "type": "1577535d38e0077281a8de7dc00933b07ec4f543", + "position": { + "x": 728, + "y": 256 + }, + "size": { + "width": 96, + "height": 64 + } + } + ], + "wires": [ { "source": { - "block": "9f5a1c91-1b93-4609-877c-816ed8fd0871", - "port": "out" + "block": "ca6198dd-3208-49f0-8089-7a221c78637d", + "port": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26" }, "target": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "i1" + "block": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", + "port": "in" }, - "size": 8 + "size": 2 }, { "source": { - "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", - "port": "o" + "block": "ad7918eb-22dd-4b6c-949f-e428f5a55530", + "port": "constant-out" }, "target": { - "block": "bf25756a-65a4-4b09-915d-494010d6f4ff", - "port": "in" - }, - "size": 8 + "block": "ca6198dd-3208-49f0-8089-7a221c78637d", + "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" + } } ] } } }, - "d9a3cf565602d237c50136543d558affa15c7654": { + "ceff2da3577d3e4da3ad522a234b993cfc71e21a": { "package": { - "name": "Igual-1-op", - "version": "0.1", - "description": "Comparador de igualdad, de un operando de 3 bits", + "name": "Valor_3_2bits", + "version": "0.0.1", + "description": "Valor constante 3 para bus de 2 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" + "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22137.022%22%20height=%22304.627%22%20viewBox=%220%200%20128.45774%20285.58757%22%3E%3Cg%20font-weight=%22400%22%20font-family=%22Ubuntu%20Mono%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-size=%22335.399%22%20fill=%22green%22%20transform=%22translate(-312.904%20-436.037)%22%3E%3Ctspan%20x=%22293.115%22%20y=%22648.344%22%3E3%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22341.722%22%20y=%22721.624%22%20font-size=%2283.077%22%20transform=%22translate(-312.904%20-436.037)%22%3E%3Ctspan%20x=%22341.722%22%20y=%22721.624%22%3E11%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" }, "design": { "graph": { "blocks": [ { - "id": "0344dacc-8583-456b-b377-8cb4ab97cf94", + "id": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", "type": "basic.output", "data": { - "name": "" - }, - "position": { - "x": 616, - "y": 160 - } - }, - { - "id": "0867b1bc-1cc5-4707-8ddb-40d0318d237c", - "type": "basic.input", - "data": { - "name": "", - "range": "[2:0]", - "clock": false, - "size": 3 + "name": "k", + "range": "[1:0]", + "size": 2 }, "position": { - "x": 152, - "y": 160 + "x": 928, + "y": 256 } }, { - "id": "437fac17-b8b4-4d9f-8d03-27300b3b9466", + "id": "ad7918eb-22dd-4b6c-949f-e428f5a55530", "type": "basic.constant", "data": { "name": "", - "value": "0", - "local": false + "value": "3", + "local": true }, "position": { - "x": 408, - "y": 48 + "x": 728, + "y": 152 } }, { - "id": "9c811723-c900-4ceb-9989-036b071ee3fe", - "type": "basic.code", - "data": { - "code": "assign eq = (a == B);", - "params": [ - { - "name": "B" - } - ], - "ports": { - "in": [ - { - "name": "a", - "range": "[2:0]", - "size": 3 - } - ], - "out": [ - { - "name": "eq" - } - ] - } - }, + "id": "cfb4d1d2-7686-45c7-9af0-0293f03a9881", + "type": "1577535d38e0077281a8de7dc00933b07ec4f543", "position": { - "x": 344, - "y": 160 + "x": 728, + "y": 256 }, "size": { - "width": 224, + "width": 96, "height": 64 } } @@ -11214,46 +11213,36 @@ "wires": [ { "source": { - "block": "9c811723-c900-4ceb-9989-036b071ee3fe", - "port": "eq" + "block": "cfb4d1d2-7686-45c7-9af0-0293f03a9881", + "port": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26" }, "target": { - "block": "0344dacc-8583-456b-b377-8cb4ab97cf94", + "block": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", "port": "in" - } - }, - { - "source": { - "block": "0867b1bc-1cc5-4707-8ddb-40d0318d237c", - "port": "out" - }, - "target": { - "block": "9c811723-c900-4ceb-9989-036b071ee3fe", - "port": "a" }, - "size": 3 + "size": 2 }, { "source": { - "block": "437fac17-b8b4-4d9f-8d03-27300b3b9466", + "block": "ad7918eb-22dd-4b6c-949f-e428f5a55530", "port": "constant-out" }, "target": { - "block": "9c811723-c900-4ceb-9989-036b071ee3fe", - "port": "B" + "block": "cfb4d1d2-7686-45c7-9af0-0293f03a9881", + "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" } } ] } } }, - "fbbede7f059cd50db81d1e80b2e575ed877c91a0": { + "a475867b1a8ac28299ed315b271747ba4ec10c54": { "package": { - "name": "mi-tabla2-8", + "name": "mi-tabla2-2", "version": "0.1", - "description": "Circuito combinacional de 2 entradas y 8 salidas", + "description": "Circuito combinacional de 2 entradas y 2 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" + "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=%22268.594%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=%22268.594%22%20y=%22368.911%22%20style=%22-inkscape-font-specification:'sans-serif%20Bold'%22%20font-weight=%22700%22%20font-size=%2270%22%3EBIN%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" }, "design": { "graph": { @@ -11277,8 +11266,8 @@ "type": "basic.output", "data": { "name": "", - "range": "[7:0]", - "size": 8 + "range": "[1:0]", + "size": 2 }, "position": { "x": 632, @@ -11306,7 +11295,7 @@ "id": "48c38eba-4e12-44d9-a55b-a93def6a27db", "type": "basic.code", "data": { - "code": "\n//-- Bits del bus de entrada\nlocalparam N = 2;\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", + "code": "\n//-- Bits del bus de entrada\nlocalparam N = 2;\n\n//-- Bits del bus de salida\nlocalparam M = 2;\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) $readmemb(DATA, tabla);\nend", "params": [ { "name": "DATA" @@ -11323,8 +11312,8 @@ "out": [ { "name": "q", - "range": "[7:0]", - "size": 8 + "range": "[1:0]", + "size": 2 } ] } @@ -11370,228 +11359,312 @@ "block": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", "port": "in" }, - "size": 8 + "size": 2 } ] } } }, - "18fd28fbb97a4fd982053988e015aa934dcd6014": { + "359a555a147b0afd9d84e4a720ec84b7cdfbc034": { "package": { - "name": "Valor_0_2bits", + "name": "Mux 2 a 1 de 8 bits", "version": "0.0.1", - "description": "Valor constante 0 para bus de 2 bits", - "author": "Juan Gonzalez-Gomez (Obijuan)", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22145.966%22%20height=%22305.779%22%20viewBox=%220%200%20136.8427%20286.66758%22%3E%3Cg%20font-weight=%22400%22%20font-family=%22Ubuntu%20Mono%22%20letter-spacing=%220%22%20word-spacing=%220%22%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22293.115%22%20y=%22648.344%22%20font-size=%22335.399%22%20fill=%22green%22%20transform=%22translate(-308.544%20-436.037)%22%3E%3Ctspan%20x=%22293.115%22%20y=%22648.344%22%3E0%3C/tspan%3E%3C/text%3E%3Ctext%20style=%22line-height:125%25;-inkscape-font-specification:'Ubuntu%20Mono'%22%20x=%22341.722%22%20y=%22721.624%22%20font-size=%2283.077%22%20transform=%22translate(-308.544%20-436.037)%22%3E%3Ctspan%20x=%22341.722%22%20y=%22721.624%22%3E00%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E" + "description": "Multiplexor de 2 a 1 de 8 bits", + "author": "Juan Gonzalez-Gomez (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" }, "design": { "graph": { "blocks": [ { - "id": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", + "id": "9f5a1c91-1b93-4609-877c-816ed8fd0871", + "type": "basic.input", + "data": { + "name": "i1", + "range": "[7:0]", + "clock": false, + "size": 8 + }, + "position": { + "x": -704, + "y": -88 + } + }, + { + "id": "325fbba1-e929-4921-a644-95f918e6e4ee", + "type": "basic.input", + "data": { + "name": "i0", + "range": "[7:0]", + "clock": false, + "size": 8 + }, + "position": { + "x": -704, + "y": 0 + } + }, + { + "id": "bf25756a-65a4-4b09-915d-494010d6f4ff", "type": "basic.output", "data": { - "name": "k", - "range": "[1:0]", - "size": 2 + "name": "o", + "range": "[7:0]", + "size": 8 }, "position": { - "x": 928, - "y": 256 + "x": -48, + "y": 0 } }, { - "id": "ad7918eb-22dd-4b6c-949f-e428f5a55530", - "type": "basic.constant", + "id": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", + "type": "basic.input", "data": { - "name": "", - "value": "0", - "local": true + "name": "sel", + "clock": false }, "position": { - "x": 728, - "y": 136 + "x": -704, + "y": 88 } }, { - "id": "ae9e32fe-296d-4700-a429-1178ece2609d", - "type": "1577535d38e0077281a8de7dc00933b07ec4f543", + "id": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "type": "basic.code", + "data": { + "code": "//-- Multiplexor de 2 a 1, \n//-- de 8 bits\n\nreg [7:0] o;\n\nalways @(*) begin\n case(sel)\n 0: o = i0;\n 1: o = i1;\n default: o = i0;\n endcase\nend\n\n", + "params": [], + "ports": { + "in": [ + { + "name": "i1", + "range": "[7:0]", + "size": 8 + }, + { + "name": "i0", + "range": "[7:0]", + "size": 8 + }, + { + "name": "sel" + } + ], + "out": [ + { + "name": "o", + "range": "[7:0]", + "size": 8 + } + ] + } + }, "position": { - "x": 728, - "y": 256 + "x": -464, + "y": -104 }, "size": { - "width": 96, - "height": 64 + "width": 304, + "height": 272 } } ], "wires": [ { "source": { - "block": "ae9e32fe-296d-4700-a429-1178ece2609d", - "port": "603ddbc9-28cf-4ecc-a0c6-a5a2ce3b0b26" + "block": "1e637a79-4a6d-495c-bcac-9664bdbe4b94", + "port": "out" }, "target": { - "block": "6a253ddf-22b2-43cd-ba6f-561bd1af6970", - "port": "in" + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "sel" + } + }, + { + "source": { + "block": "325fbba1-e929-4921-a644-95f918e6e4ee", + "port": "out" }, - "size": 2 + "target": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i0" + }, + "size": 8 }, { "source": { - "block": "ad7918eb-22dd-4b6c-949f-e428f5a55530", - "port": "constant-out" + "block": "9f5a1c91-1b93-4609-877c-816ed8fd0871", + "port": "out" }, "target": { - "block": "ae9e32fe-296d-4700-a429-1178ece2609d", - "port": "c0fb4784-5e8c-4f41-9f4b-6daa2e9e03a4" - } + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "i1" + }, + "size": 8 + }, + { + "source": { + "block": "34e6d77b-15a8-4b7c-8c41-09e9b8d4d2be", + "port": "o" + }, + "target": { + "block": "bf25756a-65a4-4b09-915d-494010d6f4ff", + "port": "in" + }, + "size": 8 } ] } } }, - "f572977478b6b214dfcfdb7d161e840e4dcef2c4": { + "d9a3cf565602d237c50136543d558affa15c7654": { "package": { - "name": "Separador-bus-3-4", + "name": "Igual-1-op", "version": "0.1", - "description": "Separador de bus de 8-bits en 2 buses de 3 y 4 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" + "description": "Comparador de igualdad, de un operando 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": "1e587d7e-30ec-4f6e-80fc-87e0112770e1", + "id": "0344dacc-8583-456b-b377-8cb4ab97cf94", "type": "basic.output", "data": { - "name": "o1", - "range": "[2:0]", - "size": 3 + "name": "" }, "position": { - "x": 584, - "y": 144 + "x": 616, + "y": 160 } }, { - "id": "1f5c81aa-ebb1-4cd7-87fd-b9092de9a34f", + "id": "0867b1bc-1cc5-4707-8ddb-40d0318d237c", "type": "basic.input", "data": { - "name": "i", - "range": "[7:0]", + "name": "", + "range": "[2:0]", "clock": false, - "size": 8 + "size": 3 }, "position": { - "x": 120, - "y": 200 + "x": 152, + "y": 160 } }, { - "id": "82ec499a-721d-46dd-a253-1d41f5fdae17", - "type": "basic.output", + "id": "437fac17-b8b4-4d9f-8d03-27300b3b9466", + "type": "basic.constant", "data": { - "name": "o0", - "range": "[4:0]", - "size": 5 + "name": "", + "value": "0", + "local": false }, "position": { - "x": 584, - "y": 272 + "x": 408, + "y": 48 } }, { - "id": "16e78204-213e-4833-9096-89d735307ec2", + "id": "9c811723-c900-4ceb-9989-036b071ee3fe", "type": "basic.code", "data": { - "code": "assign o1 = i[7:5];\nassign o0 = i[4:0];", - "params": [], + "code": "assign eq = (a == B);", + "params": [ + { + "name": "B" + } + ], "ports": { "in": [ { - "name": "i", - "range": "[7:0]", - "size": 8 + "name": "a", + "range": "[2:0]", + "size": 3 } ], "out": [ { - "name": "o1", - "range": "[2:0]", - "size": 3 - }, - { - "name": "o0", - "range": "[4:0]", - "size": 5 + "name": "eq" } ] } }, "position": { - "x": 296, - "y": 176 + "x": 344, + "y": 160 }, "size": { - "width": 208, - "height": 112 + "width": 224, + "height": 64 } } ], "wires": [ { "source": { - "block": "1f5c81aa-ebb1-4cd7-87fd-b9092de9a34f", - "port": "out" + "block": "9c811723-c900-4ceb-9989-036b071ee3fe", + "port": "eq" }, "target": { - "block": "16e78204-213e-4833-9096-89d735307ec2", - "port": "i" - }, - "size": 8 + "block": "0344dacc-8583-456b-b377-8cb4ab97cf94", + "port": "in" + } }, { "source": { - "block": "16e78204-213e-4833-9096-89d735307ec2", - "port": "o1" + "block": "0867b1bc-1cc5-4707-8ddb-40d0318d237c", + "port": "out" }, "target": { - "block": "1e587d7e-30ec-4f6e-80fc-87e0112770e1", - "port": "in" + "block": "9c811723-c900-4ceb-9989-036b071ee3fe", + "port": "a" }, "size": 3 }, { "source": { - "block": "16e78204-213e-4833-9096-89d735307ec2", - "port": "o0" + "block": "437fac17-b8b4-4d9f-8d03-27300b3b9466", + "port": "constant-out" }, "target": { - "block": "82ec499a-721d-46dd-a253-1d41f5fdae17", - "port": "in" - }, - "size": 5 + "block": "9c811723-c900-4ceb-9989-036b071ee3fe", + "port": "B" + } } ] } } }, - "448035fad327bfacd5fa0f2684e9c9b415658ce4": { + "fbbede7f059cd50db81d1e80b2e575ed877c91a0": { "package": { - "name": "Decodificador-3-8-bus", + "name": "mi-tabla2-8", "version": "0.1", - "description": "Decodificador de 3 a 8, con salida en bus", - "author": "Juan González-Gómez (Obijuan)", - "image": "%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%20179.10693%20356.59582%22%20width=%22179.107%22%20height=%22356.596%22%3E%3Cpath%20d=%22M130.817%20197.651c0-6.286-1.87-12.518-5.411-18.025-7.306-11.352-11.168-24.924-11.168-39.247v-9.94a5.63%205.63%200%200%200-5.629-5.63H60.222a5.63%205.63%200%200%200-5.629%205.63v9.94c0%2014.324-3.861%2027.895-11.168%2039.25-3.54%205.504-5.412%2011.736-5.412%2018.023%200%209.492%204.123%2018.426%2011.65%2025.43v44.017c0%2019.164%2015.589%2034.755%2034.75%2034.755%2019.163%200%2034.754-15.59%2034.754-34.755v-44.017c7.528-7.004%2011.65-15.938%2011.65-25.43zM107.91%20267.1c0%2012.956-10.54%2023.497-23.497%2023.497-12.953%200-23.49-10.541-23.49-23.497v-50.18c0-6.38%202.55-12.304%206.872-16.623%201.274%208.027%208.241%2014.184%2016.62%2014.184%208.375%200%2015.339-6.149%2016.619-14.169%204.434%204.439%206.877%2010.336%206.877%2016.608v50.18zM78.842%20197.65v-22.403c0-3.073%202.499-5.573%205.572-5.573s5.572%202.5%205.572%205.573v22.403c0%203.073-2.5%205.573-5.572%205.573a5.578%205.578%200%200%201-5.572-5.573zm38.752%208.896c-1.651-5.302-4.569-10.162-8.608-14.201a34.654%2034.654%200%200%200-7.742-5.829v-11.269c0-9.28-7.55-16.83-16.83-16.83-9.28%200-16.83%207.55-16.83%2016.83v11.257a34.626%2034.626%200%200%200-16.348%2020.044c-1.29-2.834-1.966-5.834-1.966-8.896%200-4.181%201.219-8.196%203.622-11.932%208.478-13.173%2012.958-28.851%2012.958-45.34v-4.313h37.13v4.312c0%2016.489%204.48%2032.167%2012.957%2045.339%202.404%203.737%203.623%207.752%203.623%2011.933-.001%203.062-.677%206.062-1.966%208.895z%22%20fill=%22#00f%22/%3E%3Cpath%20d=%22M84.414%20244.445c-8.291%200-15.038%206.746-15.038%2015.038v7.617c0%208.291%206.746%2015.037%2015.038%2015.037s15.038-6.746%2015.038-15.037v-7.617c0-8.292-6.746-15.038-15.038-15.038zm3.78%2022.655a3.784%203.784%200%200%201-3.78%203.78%203.784%203.784%200%200%201-3.78-3.78v-7.617a3.784%203.784%200%200%201%203.78-3.78%203.784%203.784%200%200%201%203.78%203.78zM66.493%20316.17h18.819a5.63%205.63%200%200%200%200-11.257h-18.82a5.63%205.63%200%200%200%200%2011.258zM102.338%20318.388H83.52a5.63%205.63%200%200%200%200%2011.258h18.82a5.63%205.63%200%200%200%200-11.258zM66.493%20343.12h18.819a5.63%205.63%200%200%200%200-11.257h-18.82a5.63%205.63%200%200%200%200%2011.258zM102.338%20345.338H83.52a5.63%205.63%200%200%200%200%2011.258h18.82a5.63%205.63%200%200%200%200-11.258zM10.525%2030.22l9.292-16.364a5.63%205.63%200%200%200-9.79-5.56L.735%2024.662a5.63%205.63%200%200%200%209.79%205.56zM155.355%2032.526l-11.64-14.788a5.63%205.63%200%200%200-8.846%206.963l11.64%2014.788a5.63%205.63%200%200%200%208.846-6.963zM30.63%2045.73l11.559-14.851a5.63%205.63%200%200%200-8.884-6.915l-11.56%2014.85a5.63%205.63%200%200%200%208.884%206.915zM134.874%2048.248l-13.616-12.991a5.63%205.63%200%200%200-7.771%208.145l13.615%2012.991a5.63%205.63%200%200%200%207.772-8.145zM63.518%2045.414a5.63%205.63%200%200%200-7.954-.329L41.718%2057.831a5.63%205.63%200%200%200%207.625%208.283l13.845-12.746a5.63%205.63%200%200%200%20.33-7.954zM117.855%2067.305l-16.457-9.129a5.63%205.63%200%200%200-5.461%209.845l16.456%209.129a5.63%205.63%200%200%200%205.462-9.845zM80.167%2072.202a5.63%205.63%200%200%200-7.417-2.89l-17.231%207.565a5.63%205.63%200%200%200%204.526%2010.308l17.231-7.566a5.63%205.63%200%200%200%202.89-7.417zM107.766%2088.12L89.63%2083.1a5.63%205.63%200%200%200-3.003%2010.85l18.138%205.02a5.63%205.63%200%200%200%203.002-10.85zM90.434%20100.067a5.63%205.63%200%200%200-7.016-3.76l-18.015%205.44a5.63%205.63%200%200%200%203.255%2010.777l18.015-5.44a5.63%205.63%200%200%200%203.761-7.017zM102.474%20112.262H83.655a5.63%205.63%200%200%200%200%2011.258h18.819a5.63%205.63%200%200%200%200-11.258zM178.633%2020.61l-7.55-17.238a5.63%205.63%200%200%200-10.312%204.517l7.55%2017.238a5.63%205.63%200%200%200%2010.312-4.517z%22%20fill=%22#00f%22/%3E%3C/svg%3E" + "description": "Circuito combinacional de 2 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": "3cfb6498-15fc-431f-ae55-2adeaf26434a", + "id": "186c4116-7846-4c8e-98a0-7376675105f1", + "type": "basic.input", + "data": { + "name": "", + "range": "[1:0]", + "clock": false, + "size": 2 + }, + "position": { + "x": -8, + "y": 424 + } + }, + { + "id": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", "type": "basic.output", "data": { "name": "", @@ -11599,41 +11672,48 @@ "size": 8 }, "position": { - "x": 536, - "y": 184 + "x": 632, + "y": 424 } }, { - "id": "0681ff98-5f08-475e-bc4a-17e2dce312fd", - "type": "basic.input", + "id": "c71c44ac-0500-4eb5-9c1c-4ea21cd78377", + "type": "basic.memory", "data": { - "name": "y", - "range": "[2:0]", - "clock": false, - "size": 3 + "name": "", + "list": "0\n0\n0\n0", + "local": false }, "position": { - "x": 40, - "y": 184 + "x": 328, + "y": 96 + }, + "size": { + "width": 96, + "height": 104 } }, { - "id": "8442894d-b93c-4aff-a7cb-dea7176ac3db", + "id": "48c38eba-4e12-44d9-a55b-a93def6a27db", "type": "basic.code", "data": { - "code": "assign i = 1 << y;\n \n", - "params": [], + "code": "\n//-- Bits del bus de entrada\nlocalparam N = 2;\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": "y", - "range": "[2:0]", - "size": 3 + "name": "i", + "range": "[1:0]", + "size": 2 } ], "out": [ { - "name": "i", + "name": "q", "range": "[7:0]", "size": 8 } @@ -11641,34 +11721,44 @@ } }, "position": { - "x": 184, - "y": 184 + "x": 176, + "y": 264 }, "size": { - "width": 280, - "height": 64 + "width": 392, + "height": 384 } } ], "wires": [ { "source": { - "block": "0681ff98-5f08-475e-bc4a-17e2dce312fd", + "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": "8442894d-b93c-4aff-a7cb-dea7176ac3db", - "port": "y" + "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "port": "i" }, - "size": 3 + "size": 2 }, { "source": { - "block": "8442894d-b93c-4aff-a7cb-dea7176ac3db", - "port": "i" + "block": "48c38eba-4e12-44d9-a55b-a93def6a27db", + "port": "q" }, "target": { - "block": "3cfb6498-15fc-431f-ae55-2adeaf26434a", + "block": "f9c58d8f-75fc-4483-b0d2-d584a555b1c5", "port": "in" }, "size": 8