We are currently in the process of converting the website to the new design. Some pages, like this one, are still broken. We appreciate your patience.
Bitwise»Episode Guide
Domain-Specific Languages In Python, Part 4
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:07Recap and set the stage for the day with a note on the experimental nature of this portion of the series
🗩
0:07Recap and set the stage for the day with a note on the experimental nature of this portion of the series
🗩
0:07Recap and set the stage for the day with a note on the experimental nature of this portion of the series
🗩
2:39Review off-stream work on modules and our adder creator
📖
2:39Review off-stream work on modules and our adder creator
📖
2:39Review off-stream work on modules and our adder creator
📖
10:00Review ConcatNode, IndexNode and SliceNode
📖
10:00Review ConcatNode, IndexNode and SliceNode
📖
10:00Review ConcatNode, IndexNode and SliceNode
📖
12:16Review the addition of connect() in OutputNode, as used in Adder16
📖
12:16Review the addition of connect() in OutputNode, as used in Adder16
📖
12:16Review the addition of connect() in OutputNode, as used in Adder16
📖
16:03Fix the type coercion in connect()
16:03Fix the type coercion in connect()
16:03Fix the type coercion in connect()
16:10Run it to see that it works
🏃
16:10Run it to see that it works
🏃
16:10Run it to see that it works
🏃
16:15Continue to review options for creating connections in Adder16
📖
16:15Continue to review options for creating connections in Adder16
📖
16:15Continue to review options for creating connections in Adder16
📖
23:01Determine to create a Graphviz-powered graph visualisation of our circuit
🗩
23:01Determine to create a Graphviz-powered graph visualisation of our circuit
🗩
23:01Determine to create a Graphviz-powered graph visualisation of our circuit
🗩
24:35Example graph for an adder
📖
24:35Example graph for an adder
📖
24:35Example graph for an adder
📖
28:18Set up to create a Graphviz .dot file generator for rattle
🗩
28:18Set up to create a Graphviz .dot file generator for rattle
🗩
28:18Set up to create a Graphviz .dot file generator for rattle
🗩
30:21Introduce DotGenerator class and generate_dot_file()
30:21Introduce DotGenerator class and generate_dot_file()
30:21Introduce DotGenerator class and generate_dot_file()
34:53Introduce make_name() to facilitate handling of graph cycles, and continue to implement generate_dot_file()
34:53Introduce make_name() to facilitate handling of graph cycles, and continue to implement generate_dot_file()
34:53Introduce make_name() to facilitate handling of graph cycles, and continue to implement generate_dot_file()
41:12Introduce TestModule to test our generator on a simple circuit
41:12Introduce TestModule to test our generator on a simple circuit
41:12Introduce TestModule to test our generator on a simple circuit
43:01Run it to see that this didn't do the trick
🏃
43:01Run it to see that this didn't do the trick
🏃
43:01Run it to see that this didn't do the trick
🏃
43:11Enable OutputNode() to fill in the value before recursing
43:11Enable OutputNode() to fill in the value before recursing
43:11Enable OutputNode() to fill in the value before recursing
44:52Run it to see that it did seem to work
🏃
44:52Run it to see that it did seem to work
🏃
44:52Run it to see that it did seem to work
🏃
45:36Introduce BinaryNode() and a helper function connect() in DotGenerator
45:36Introduce BinaryNode() and a helper function connect() in DotGenerator
45:36Introduce BinaryNode() and a helper function connect() in DotGenerator
49:47Test our DotGenerator on a binary node
49:47Test our DotGenerator on a binary node
49:47Test our DotGenerator on a binary node
51:20Run it to see what it produces
🏃
51:20Run it to see what it produces
🏃
51:20Run it to see what it produces
🏃
52:12Introduce IndexNode() and SliceNode() in DotGenerator
52:12Introduce IndexNode() and SliceNode() in DotGenerator
52:12Introduce IndexNode() and SliceNode() in DotGenerator
53:45Test our DotGenerator on a slice node
53:45Test our DotGenerator on a slice node
53:45Test our DotGenerator on a slice node
54:39Run it to see that it looks reasonable
🏃
54:39Run it to see that it looks reasonable
🏃
54:39Run it to see that it looks reasonable
🏃
55:25Introduce ConcatNode() in DotGenerator
55:25Introduce ConcatNode() in DotGenerator
55:25Introduce ConcatNode() in DotGenerator
59:01Test our DotGenerator on a concat node
59:01Test our DotGenerator on a concat node
59:01Test our DotGenerator on a concat node
1:00:10Output our .dot to example.dot
1:00:10Output our .dot to example.dot
1:00:10Output our .dot to example.dot
1:00:35Run it to see our circuit graph
🏃
1:00:35Run it to see our circuit graph
🏃
1:00:35Run it to see our circuit graph
🏃
1:01:00Change OutputNode() to generate a rarrow1
1:01:00Change OutputNode() to generate a rarrow1
1:01:00Change OutputNode() to generate a rarrow1
1:01:48Run it to see that this doesn't look too bad
🏃
1:01:48Run it to see that this doesn't look too bad
🏃
1:01:48Run it to see that this doesn't look too bad
🏃
1:02:09Enable our Graphviz generator to handle sub-module instances
1:02:09Enable our Graphviz generator to handle sub-module instances
1:02:09Enable our Graphviz generator to handle sub-module instances
1:12:01Introduce InputNode() in DotGenerator
1:12:01Introduce InputNode() in DotGenerator
1:12:01Introduce InputNode() in DotGenerator
1:12:43Go whole hog and test our generator on Adder8
1:12:43Go whole hog and test our generator on Adder8
1:12:43Go whole hog and test our generator on Adder8
1:12:54Run it to see that it looks not totally unreasonable
🏃
1:12:54Run it to see that it looks not totally unreasonable
🏃
1:12:54Run it to see that it looks not totally unreasonable
🏃
1:16:07Create Adder1 module to test our Graphviz generator's handling of sub-modules
1:16:07Create Adder1 module to test our Graphviz generator's handling of sub-modules
1:16:07Create Adder1 module to test our Graphviz generator's handling of sub-modules
1:22:06Run it to see our sub-modular graph of Adder8
🏃
1:22:06Run it to see our sub-modular graph of Adder8
🏃
1:22:06Run it to see our sub-modular graph of Adder8
🏃
1:23:52Test our generator on Adder16
1:23:52Test our generator on Adder16
1:23:52Test our generator on Adder16
1:24:00Run it to see our graph of Adder16
🏃
1:24:00Run it to see our graph of Adder16
🏃
1:24:00Run it to see our graph of Adder16
🏃
1:24:28That's it for today, with a glimpse into the future on logic design
🗩
1:24:28That's it for today, with a glimpse into the future on logic design
🗩
1:24:28That's it for today, with a glimpse into the future on logic design
🗩