mirror of
https://github.com/sehugg/8bitworkshop.git
synced 2024-11-27 17:50:37 +00:00
more verilog updates
This commit is contained in:
parent
a2d0f41587
commit
49c150930a
12
demo.html
12
demo.html
@ -92,13 +92,14 @@ if (window.location.host.endsWith('8bitworkshop.com')) {
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
|
<!--
|
||||||
<h2><a href="redir.html?platform=apple2">Apple ][+</a></h2>
|
<h2><a href="redir.html?platform=apple2">Apple ][+</a></h2>
|
||||||
<p>
|
<p>
|
||||||
You can even write C or 6502 assembler code for Woz's creation, the
|
You can even write C or 6502 assembler code for Woz's creation, the
|
||||||
<a href="redir.html?platform=apple2">Apple ][+</a>.
|
<a href="redir.html?platform=apple2">Apple ][+</a>.
|
||||||
Thrill to the unusual frame buffer layout and one-bit speaker output!
|
Thrill to the unusual frame buffer layout and one-bit speaker output!
|
||||||
<img class="img-responsive" src="//upload.wikimedia.org/wikipedia/commons/thumb/6/68/Apple_II_Plus.jpg/512px-Apple_II_Plus.jpg">
|
<img class="img-responsive" src="//upload.wikimedia.org/wikipedia/commons/thumb/6/68/Apple_II_Plus.jpg/512px-Apple_II_Plus.jpg">
|
||||||
<!--
|
-->
|
||||||
<h2><a href="redir.html?platform=verilog">Hardware Design</a></h2>
|
<h2><a href="redir.html?platform=verilog">Hardware Design</a></h2>
|
||||||
<p>
|
<p>
|
||||||
Software not enough for you?
|
Software not enough for you?
|
||||||
@ -112,7 +113,6 @@ if (window.location.host.endsWith('8bitworkshop.com')) {
|
|||||||
and connect to a legacy CRT or TV.
|
and connect to a legacy CRT or TV.
|
||||||
</p>
|
</p>
|
||||||
<img class="img-responsive" src="images/fpga.jpg">
|
<img class="img-responsive" src="images/fpga.jpg">
|
||||||
-->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -144,16 +144,15 @@ if (window.location.host.endsWith('8bitworkshop.com')) {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
<a target="_blank" href="https://www.amazon.com/gp/product/1541021304/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1541021304&linkCode=as2&tag=pzp-20&linkId=c149f6365c0a676065eb6d7c5f8dd6ae" onclick="ga('send', 'event', 'books', 'click', 'verilog');">
|
<a target="_blank" href="https://www.amazon.com/gp/product/B07LD48CTV/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=B07LD48CTV&linkCode=as2&tag=pzp-20&linkId=c149f6365c0a676065eb6d7c5f8dd6ae" onclick="ga('send', 'event', 'books', 'click', 'verilog');">
|
||||||
<img class="img-responsive" border="0" src="./images/book_verilog.jpg" ></a>
|
<img class="img-responsive" border="0" src="./images/book_verilog.jpg" ></a>
|
||||||
<img src="//ir-na.amazon-adsystem.com/e/ir?t=pzp-20&l=am2&o=1&a=1541021304" />
|
<img src="//ir-na.amazon-adsystem.com/e/ir?t=pzp-20&l=am2&o=1&a=B07LD48CTV" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<a target="_blank" href="https://www.amazon.com/gp/product/1541021304/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1541021304&linkCode=as2&tag=pzp-20&linkId=c149f6365c0a676065eb6d7c5f8dd6ae" onclick="ga('send', 'event', 'books', 'click', 'verilog');">
|
<a target="_blank" href="https://www.amazon.com/gp/product/B07LD48CTV/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=B07LD48CTV&linkCode=as2&tag=pzp-20&linkId=c149f6365c0a676065eb6d7c5f8dd6ae" onclick="ga('send', 'event', 'books', 'click', 'verilog');">
|
||||||
<h3>Designing Video Game Hardware in Verilog</h3>
|
<h3>Designing Video Game Hardware in Verilog</h3>
|
||||||
</a>
|
</a>
|
||||||
<p>
|
<p>
|
||||||
@ -164,7 +163,6 @@ At the end of this adventure, you should be well-equipped to begin exploring the
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
-->
|
|
||||||
|
|
||||||
<h1 class="text-center">Supported Platforms</h1>
|
<h1 class="text-center">Supported Platforms</h1>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 6.3 KiB |
BIN
images/book_verilog.png
Normal file
BIN
images/book_verilog.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.1 KiB |
10
index.html
10
index.html
@ -118,14 +118,12 @@ if (window.location.host.endsWith('8bitworkshop.com')) {
|
|||||||
<li><a class="dropdown-item" href="?platform=sound_williams-z80" id="item_platform_sound_williams_z80">Williams Sound (Z80)</a></li>
|
<li><a class="dropdown-item" href="?platform=sound_williams-z80" id="item_platform_sound_williams_z80">Williams Sound (Z80)</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<!--
|
|
||||||
<li class="dropdown dropdown-submenu">
|
<li class="dropdown dropdown-submenu">
|
||||||
<a tabindex="-1" href="#">Hardware</a>
|
<a tabindex="-1" href="#">Hardware</a>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
<li><a class="dropdown-item" href="?platform=verilog" id="item_platform_verilog">Verilog</a></li>
|
<li><a class="dropdown-item" href="?platform=verilog" id="item_platform_verilog">Verilog</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
-->
|
|
||||||
<li class="dropdown dropdown-submenu">
|
<li class="dropdown dropdown-submenu">
|
||||||
<a tabindex="-1" href="#">Other</a>
|
<a tabindex="-1" href="#">Other</a>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
@ -187,12 +185,10 @@ if (window.location.host.endsWith('8bitworkshop.com')) {
|
|||||||
<img src="images/book_arcade.png"/>
|
<img src="images/book_arcade.png"/>
|
||||||
<b>Making 8-bit Arcade Games in C</b><!-- (Print Edition)-->
|
<b>Making 8-bit Arcade Games in C</b><!-- (Print Edition)-->
|
||||||
</a>
|
</a>
|
||||||
<!--
|
<a class="dropdown-item dropdown-link" target="_book_verilog" href="https://www.amazon.com/gp/product/B07LD48CTV/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=B07LD48CTV&linkCode=as2&tag=pzp-20">
|
||||||
<a class="dropdown-item dropdown-link" target="_book_arcade_pdf" href="https://gumroad.com/l/8bitworkshoparcadebook">
|
<img src="images/book_verilog.png"/>
|
||||||
<img src="images/book_arcade.png"/>
|
<b>Designing Video Game Hardware in Verilog</b>
|
||||||
<b>Making 8-bit Arcade Games in C</b> (Downloadable PDF)
|
|
||||||
</a>
|
</a>
|
||||||
-->
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</span>
|
</span>
|
||||||
|
50
presets/verilog/binary_counter.v
Normal file
50
presets/verilog/binary_counter.v
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
|
||||||
|
/*
|
||||||
|
A clock divider in Verilog, using both the cascading
|
||||||
|
flip-flop method and the binary counter method.
|
||||||
|
*/
|
||||||
|
|
||||||
|
module clock_divider(
|
||||||
|
input clk,
|
||||||
|
input reset,
|
||||||
|
output reg clk_div2,
|
||||||
|
output reg clk_div4,
|
||||||
|
output reg clk_div8,
|
||||||
|
output reg clk_div16,
|
||||||
|
output reg [3:0] counter,
|
||||||
|
output cntr_div2,
|
||||||
|
output cntr_div4,
|
||||||
|
output cntr_div8,
|
||||||
|
output cntr_div16
|
||||||
|
);
|
||||||
|
|
||||||
|
// simple ripple clock divider
|
||||||
|
|
||||||
|
always @(posedge clk)
|
||||||
|
clk_div2 <= ~clk_div2;
|
||||||
|
|
||||||
|
always @(posedge clk_div2)
|
||||||
|
clk_div4 <= ~clk_div4;
|
||||||
|
|
||||||
|
always @(posedge clk_div4)
|
||||||
|
clk_div8 <= ~clk_div8;
|
||||||
|
|
||||||
|
always @(posedge clk_div8)
|
||||||
|
clk_div16 <= ~clk_div16;
|
||||||
|
|
||||||
|
// use bits of (4-bit) counter to divide clocks
|
||||||
|
|
||||||
|
always @(posedge clk or posedge reset)
|
||||||
|
begin
|
||||||
|
if (reset)
|
||||||
|
counter <= 0;
|
||||||
|
else
|
||||||
|
counter <= counter + 1;
|
||||||
|
end
|
||||||
|
|
||||||
|
assign cntr_div2 = counter[0];
|
||||||
|
assign cntr_div4 = counter[1];
|
||||||
|
assign cntr_div8 = counter[2];
|
||||||
|
assign cntr_div16 = counter[3];
|
||||||
|
|
||||||
|
endmodule
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
A clock divider in Verilog, using both the cascading
|
A clock divider in Verilog, using the cascading
|
||||||
flip-flop method and the counter method.
|
flip-flop method.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
module clock_divider(
|
module clock_divider(
|
||||||
@ -10,12 +10,7 @@ module clock_divider(
|
|||||||
output reg clk_div2,
|
output reg clk_div2,
|
||||||
output reg clk_div4,
|
output reg clk_div4,
|
||||||
output reg clk_div8,
|
output reg clk_div8,
|
||||||
output reg clk_div16,
|
output reg clk_div16
|
||||||
output reg [3:0] counter,
|
|
||||||
output cntr_div2,
|
|
||||||
output cntr_div4,
|
|
||||||
output cntr_div8,
|
|
||||||
output cntr_div16
|
|
||||||
);
|
);
|
||||||
|
|
||||||
// simple ripple clock divider
|
// simple ripple clock divider
|
||||||
@ -32,17 +27,4 @@ module clock_divider(
|
|||||||
always @(posedge clk_div8)
|
always @(posedge clk_div8)
|
||||||
clk_div16 <= ~clk_div16;
|
clk_div16 <= ~clk_div16;
|
||||||
|
|
||||||
// use bits of (4-bit) counter to divide clocks
|
|
||||||
|
|
||||||
always @(posedge clk or posedge reset)
|
|
||||||
if (reset)
|
|
||||||
counter <= 0;
|
|
||||||
else
|
|
||||||
counter <= counter + 1;
|
|
||||||
|
|
||||||
assign cntr_div2 = counter[0];
|
|
||||||
assign cntr_div4 = counter[1];
|
|
||||||
assign cntr_div8 = counter[2];
|
|
||||||
assign cntr_div16 = counter[3];
|
|
||||||
|
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -10,6 +10,7 @@ declare var Split;
|
|||||||
|
|
||||||
var VERILOG_PRESETS = [
|
var VERILOG_PRESETS = [
|
||||||
{id:'clock_divider.v', name:'Clock Divider'},
|
{id:'clock_divider.v', name:'Clock Divider'},
|
||||||
|
{id:'binary_counter.v', name:'Binary Counter'},
|
||||||
{id:'hvsync_generator.v', name:'Video Sync Generator'},
|
{id:'hvsync_generator.v', name:'Video Sync Generator'},
|
||||||
{id:'test_hvsync.v', name:'Test Pattern'},
|
{id:'test_hvsync.v', name:'Test Pattern'},
|
||||||
{id:'7segment.v', name:'7-Segment Decoder'},
|
{id:'7segment.v', name:'7-Segment Decoder'},
|
||||||
|
Loading…
Reference in New Issue
Block a user