<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://old.hacdc.org/index.php?action=history&amp;feed=atom&amp;title=FPGAWorkshop13notes</id>
	<title>FPGAWorkshop13notes - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://old.hacdc.org/index.php?action=history&amp;feed=atom&amp;title=FPGAWorkshop13notes"/>
	<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=FPGAWorkshop13notes&amp;action=history"/>
	<updated>2026-05-07T18:58:52Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://old.hacdc.org/index.php?title=FPGAWorkshop13notes&amp;diff=6743&amp;oldid=prev</id>
		<title>ITechGeek at 17:04, 3 April 2012</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=FPGAWorkshop13notes&amp;diff=6743&amp;oldid=prev"/>
		<updated>2012-04-03T17:04:30Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:04, 3 April 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:FPGAWorkshop]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;These notes are intended to highlight bits of information from the Xilinx KCPSM3 manual distributed with the microprocessor&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;These notes are intended to highlight bits of information from the Xilinx KCPSM3 manual distributed with the microprocessor&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>ITechGeek</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=FPGAWorkshop13notes&amp;diff=2881&amp;oldid=prev</id>
		<title>Williamgibb at 00:23, 27 January 2010</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=FPGAWorkshop13notes&amp;diff=2881&amp;oldid=prev"/>
		<updated>2010-01-27T00:23:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:23, 27 January 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;These notes are intended to highlight bits of information from the Xilinx KCPSM3 manual distributed with the microprocessor&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Xilinx Picoblaze&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Xilinx Picoblaze&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Williamgibb</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=FPGAWorkshop13notes&amp;diff=2880&amp;oldid=prev</id>
		<title>Williamgibb at 00:22, 27 January 2010</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=FPGAWorkshop13notes&amp;diff=2880&amp;oldid=prev"/>
		<updated>2010-01-27T00:22:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:22, 27 January 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l135&quot;&gt;Line 135:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 135:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;other picoblaze ide/assemblers/simulators/implementations that are not from xilinx&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;other picoblaze ide/assemblers/simulators/implementations that are not from xilinx&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;pacoblaze&amp;#039;&amp;#039;&amp;#039; [www.bleyer.org/pacoblaze/] opensource, picoblaze compliant verilog implementation.  complete with java assembler.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#&lt;/ins&gt;&amp;#039;&amp;#039;&amp;#039;pacoblaze&amp;#039;&amp;#039;&amp;#039; [&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;http://&lt;/ins&gt;www.bleyer.org/pacoblaze/ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pacoblaze&lt;/ins&gt;] opensource, picoblaze compliant verilog implementation.  complete with java assembler.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#&lt;/ins&gt;&amp;#039;&amp;#039;&amp;#039;openPicIDE&amp;#039;&amp;#039;&amp;#039; [&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;http://&lt;/ins&gt;www.openpicide.org/ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;openPicIDE&lt;/ins&gt;] opensource picoblaze ide/assembler/simulator.  very robust!  works on linux, mac, windows.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;openPicIDE&amp;#039;&amp;#039;&amp;#039; [www.openpicide.org/] opensource picoblaze ide/assembler/simulator.  very robust!  works on linux, mac, windows.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#&lt;/ins&gt;&amp;#039;&amp;#039;&amp;#039;mediatronix picoblaze ide&amp;#039;&amp;#039;&amp;#039; [&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;http://&lt;/ins&gt;www.mediatronix.com/tools/index.htm &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mediatronix&lt;/ins&gt;] amazing windows picoblaze ide&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#&lt;/ins&gt;&amp;#039;&amp;#039;&amp;#039;kpicosim&amp;#039;&amp;#039;&amp;#039; [&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;http://&lt;/ins&gt;www.xs4all.nl/~marksix/ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kpicosim&lt;/ins&gt;] picoblaze simulator and assembler.  linux&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;mediatronix picoblaze ide&amp;#039;&amp;#039;&amp;#039; [www.mediatronix.com/tools/index.htm] amazing windows picoblaze ide&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;kpicosim&amp;#039;&amp;#039;&amp;#039; [www.xs4all.nl/~marksix/] picoblaze simulator and assembler.  linux&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Williamgibb</name></author>
	</entry>
	<entry>
		<id>https://old.hacdc.org/index.php?title=FPGAWorkshop13notes&amp;diff=2879&amp;oldid=prev</id>
		<title>Williamgibb: Created page with &#039;&#039;&#039;&#039;Xilinx Picoblaze&#039;&#039;&#039;  KCPSM3 - An 8 Bit Microcontroller for Xilinx Spartan 3 &amp; Virtex 2/4 devices  &#039;&#039;&#039;What is kcpsm3&#039;&#039;&#039;  Very Simple microcontroller. Can be used for data proce…&#039;</title>
		<link rel="alternate" type="text/html" href="https://old.hacdc.org/index.php?title=FPGAWorkshop13notes&amp;diff=2879&amp;oldid=prev"/>
		<updated>2010-01-27T00:19:46Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;&amp;#039;&amp;#039;&amp;#039;Xilinx Picoblaze&amp;#039;&amp;#039;&amp;#039;  KCPSM3 - An 8 Bit Microcontroller for Xilinx Spartan 3 &amp;amp; Virtex 2/4 devices  &amp;#039;&amp;#039;&amp;#039;What is kcpsm3&amp;#039;&amp;#039;&amp;#039;  Very Simple microcontroller. Can be used for data proce…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Xilinx Picoblaze&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
KCPSM3 - An 8 Bit Microcontroller for Xilinx Spartan 3 &amp;amp; Virtex 2/4 devices&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;What is kcpsm3&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Very Simple microcontroller.&lt;br /&gt;
Can be used for data processing or as a complex state machine.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;KCPSM&amp;#039;&amp;#039;&amp;#039; - (&amp;#039;&amp;#039;&amp;#039;K&amp;#039;&amp;#039;&amp;#039;)constant &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;oded &amp;#039;&amp;#039;&amp;#039;P&amp;#039;&amp;#039;&amp;#039;rogrammable &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039;tate &amp;#039;&amp;#039;&amp;#039;M&amp;#039;&amp;#039;&amp;#039;achine&lt;br /&gt;
&lt;br /&gt;
Its very small - 96 Spartan3 slices + 1 block ram&lt;br /&gt;
&lt;br /&gt;
Our boards - 4656 slices -&amp;gt; that is 2% of the slice resources!&lt;br /&gt;
&lt;br /&gt;
Entirely embedded in the fpga fabric - integrates with all the logic you&amp;#039;ve already been writing!&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;kcpsm is small&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Konstant explained - notice how the mips = 1/2 clock speed?&lt;br /&gt;
&lt;br /&gt;
CPI of the processor is 2.  And fixed at 2.  that makes it very easy to determine the runtime of a program in an embedded system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;kcpsm3 architecture&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
architecture is closed (it is a xilinx macro, not a readily readable verilog design)&lt;br /&gt;
but the architecture is not secret though&lt;br /&gt;
&lt;br /&gt;
simple input port/output based IO, up to 256 addressable 8bit ports/devices&lt;br /&gt;
16 general purpose registers&lt;br /&gt;
64 byte memory/scratch pad&lt;br /&gt;
alu with carry/zero flags&lt;br /&gt;
single interrupt line/acknowledge&lt;br /&gt;
program counter&lt;br /&gt;
control/instruction decoder&lt;br /&gt;
program memory&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;device features&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
program memory - 1 18kb block ram!  this stores 1024 18 bit instructions.&lt;br /&gt;
16 general purpose registers.  No dedicated zero register or accumulator&lt;br /&gt;
alu - does add/sub/add&amp;amp;sub with carry&lt;br /&gt;
alu - load/and/or/xor bitwise&lt;br /&gt;
alu - shift/rotates&lt;br /&gt;
flags and flow control - help determine program flow with carry/zero flags + conditional jump/call instructions&lt;br /&gt;
interrupts - jumps to a single address (initiates CALL 3FF) - an ISR &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;using the kcpsm3&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
used as a verilog module in the design flow.  simply copy the kcpsm3.v file into your project and instantiate it&lt;br /&gt;
kcpsm3 assembler generates a verilog memory file - use that in your design as well.  connect the two modules together.&lt;br /&gt;
alternatively - use the embedded_kcpsm3.v file&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;instruction set&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#program control group&lt;br /&gt;
##unconditional jump&lt;br /&gt;
##conditional jumps (branches!)&lt;br /&gt;
##call/return with stack depth of 31&lt;br /&gt;
#interrupt group&lt;br /&gt;
##enable/disable interrupt&lt;br /&gt;
##return from isr &amp;amp; either enable/disable the interrupt &lt;br /&gt;
#storage group&lt;br /&gt;
##store/fetch data from the scratch pad&lt;br /&gt;
#i/o group&lt;br /&gt;
#arithmetic group&lt;br /&gt;
##add/sub/compare&lt;br /&gt;
###work with 2 operands or 1 operand and a constant&lt;br /&gt;
#logical group&lt;br /&gt;
##load/and/or/xor/test&lt;br /&gt;
###work with 2 operands or 1 operand and a constant&lt;br /&gt;
#shift/rotate group&lt;br /&gt;
##both left/right shifts available&lt;br /&gt;
&lt;br /&gt;
pointers available&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;port access&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
input and output ports available.&lt;br /&gt;
&lt;br /&gt;
very simple with the two cycle operation&lt;br /&gt;
#1st cycle - instruction decode&lt;br /&gt;
#2nd cycle - instruction execute&lt;br /&gt;
&lt;br /&gt;
Read strobe - not needed, port_id used w/ a mux to determine what gets put on input port.  data captured by kcpsm3 on next clock edge.&lt;br /&gt;
&lt;br /&gt;
write strobe - use as a clock enable signal for external circuitry to capture data from out port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;8 output ports, use 1hot addressing&lt;br /&gt;
&lt;br /&gt;
&amp;gt;8 output ports, use address decoder to enable the correct port&lt;br /&gt;
&lt;br /&gt;
input ports -&amp;gt; leads itself to a multiplexed architecture&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;reset&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
synchronous to kcpsm3 clock. blanks the processor and restarts it at address 0x000.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;picoblaze assembler&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
xilinx assembler is a dos program, which accepts .psm (picoblaze assembler) source files and outputs vhdl/verilog files for your use&lt;br /&gt;
multipass, lots of quick information.  don&amp;#039;t be afraid to dump the file.&lt;br /&gt;
&lt;br /&gt;
possible to run under wine/dosbox, lots of alternatives available.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;program syntax&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
#blank lines are ignored&lt;br /&gt;
#comments begin with ;&lt;br /&gt;
#registers - form sX, where X={0,1,2,..9,A,...,E,F}&lt;br /&gt;
#constants&lt;br /&gt;
#Data value - 00 -&amp;gt;FF&lt;br /&gt;
#Port value - 00 -&amp;gt;FF&lt;br /&gt;
#Address - 000 -&amp;gt;3FF&lt;br /&gt;
#Line labels: Useful for call and jump instructions!&lt;br /&gt;
&lt;br /&gt;
constant -&amp;gt; define a label used within the program for holding a constant value.  like a C macro&lt;br /&gt;
&lt;br /&gt;
namereg -&amp;gt; define a label used within the program for identifying a register.  allows for much more readable code.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Interrupts&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
slides are really detailed about this and good - read them&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;call/return stack&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
31 level call/return stack.  program counter preserved upon the calll instruction or interrupt.&lt;br /&gt;
registers are not preserved - be &lt;br /&gt;
careful not to clobber your registers.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;simulation&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
picoblaze assembly simulators exist - &amp;gt; prove your code by hand (slow)&lt;br /&gt;
nothing stopping you from simulating the HDL design - but can be very slow.&lt;br /&gt;
quicker to fix hardware design -&amp;gt; then code and download to picoblaze via jtag and run the software.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;other picoblaze ide/assemblers/simulators/implementations that are not from xilinx&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;pacoblaze&amp;#039;&amp;#039;&amp;#039; [www.bleyer.org/pacoblaze/] opensource, picoblaze compliant verilog implementation.  complete with java assembler.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;openPicIDE&amp;#039;&amp;#039;&amp;#039; [www.openpicide.org/] opensource picoblaze ide/assembler/simulator.  very robust!  works on linux, mac, windows.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;mediatronix picoblaze ide&amp;#039;&amp;#039;&amp;#039; [www.mediatronix.com/tools/index.htm] amazing windows picoblaze ide&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;kpicosim&amp;#039;&amp;#039;&amp;#039; [www.xs4all.nl/~marksix/] picoblaze simulator and assembler.  linux&lt;/div&gt;</summary>
		<author><name>Williamgibb</name></author>
	</entry>
</feed>