tag:blogger.com,1999:blog-85311434064415502472024-03-05T11:22:41.129+01:00SDR with BladeRFA diary of my attempts to build a GPS-receiver using the bladeRF board of nuand.comAnonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.comBlogger32125tag:blogger.com,1999:blog-8531143406441550247.post-10572122267848603632014-05-31T22:59:00.000+02:002014-05-31T23:00:44.945+02:00ModelSim testbench with reals and floats<h2>
Trying to program BladeRF's FPGA with VHDL</h2>
<h3>
Summary</h3>
<div>
I tried to implement the suggestions I got from Brian. And I was successful!</div>
<div>
<br /></div>
<div>
The first VHDL-program is possibly not synthesizable, but it works in the simulator. The next program more or less proves (I think) that I understood Brian's suggestions. The last program has the same behaviour and uses a table that is generated at compiletime. So, the synthesized program only has some precompiled data in a table. And that is synthesizable.</div>
<div>
<br /></div>
<h3>
Testbed</h3>
<div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">library ieee ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> use
ieee.std_logic_1164.all ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> use
ieee.numeric_std.all ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- tdatasource.vhd<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- May-2014 Kees de Groot<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- test-program for the datasource to test my
DC-remover<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- this device simply tests the datasource<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">entity test_datasource is<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> PORT ( sdata
: out signed(11 downto 0));<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">end;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">architecture mytest of test_datasource is<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">COMPONENT datasource<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">port (<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> reset : in std_logic;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">clk : in std_logic;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">sdata : out signed(11 downto 0)<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> ) ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">END COMPONENT ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">SIGNAL clk :
std_logic := '1';<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">SIGNAL reset : std_logic := '0';<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">constant FS : real := 38.4e6 ; -- sample frequency <o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">begin<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">dut : datasource <o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> PORT MAP (<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> sdata =>
sdata,<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> clk =>
clk,<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> reset =>
reset );<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">clock : PROCESS(clk)<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> begin<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> clk <= not
clk after (1.0/FS)/2.0 * (1 sec) ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">end PROCESS clock;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">stimulus : PROCESS<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> begin<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> wait for 5
ns; reset <= '1';<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> wait for 4
ns; reset <= '0';<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> wait;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">end PROCESS stimulus;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">end mytest;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">a testbed is to be used with the simulator. So, does not have to be synthesizable, but should run correctly.</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<h3>
<span lang="EN-US">First floating/real program</span></h3>
</div>
<div>
<span lang="EN-US"></span><br />
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US"><span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">library ieee ;<o:p></o:p></span></span></div>
<span lang="EN-US">
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> use
ieee.std_logic_1164.all ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> use
ieee.numeric_std.all ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> use
ieee.math_real.all;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- datasource.vhd<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- May-2014 Kees de Groot<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- test-program for my DC-remover<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- this device outputs a 2s-complement sine of 32
points<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">entity datasource is<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">port (<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> reset : in std_logic;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> clk : in std_logic;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> sdata : out signed(11
downto 0)<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> ) ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">end datasource;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">architecture mydatasource of datasource is<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> signal indexx:
integer range 0 to 31;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> signal
tmpdata: signed(11 downto 0);<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">begin <o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> calcindex:
process (clk, reset) <o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">
begin <o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> if
(reset='1') then <o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">
indexx <= 0; <o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> elsif
(rising_edge(clk)) then <o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> if
(indexx = 31) then<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">
indexx <= 0;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> else
indexx <= indexx +1;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> end
if;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> end
if; <o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> end
process calcindex;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> myproc:
process (indexx)<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> begin<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> tmpdata <= to_signed(600 + integer(1400.0
* SIN(2.0 * MATH_PI * real(indexx) / 32.0)), 12);<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> end
process myproc;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> sdata
<= tmpdata;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">end mydatasource;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><o:p>I am afraid this program is not synthesizable, but it runs correctly.</o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><o:p><br /></o:p></span></div>
<h4>
<span lang="EN-US"><o:p>Synthesizable floating/real program</o:p></span></h4>
<div>
<span lang="EN-US"><o:p></o:p></span><br />
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US"><span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">library ieee ;<o:p></o:p></span></span></div>
<span lang="EN-US">
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> use
ieee.std_logic_1164.all ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> use
ieee.numeric_std.all ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> use
ieee.math_real.all;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- datasource2.vhd<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- May-2014 Kees de Groot<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- test-program for my DC-remover<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- this device outputs a 2s-complement sine of 32
points<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">entity datasource is<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">port (<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> reset : in std_logic;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> clk : in std_logic;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> sdata : out signed(11
downto 0)<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> ) ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">end datasource;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">architecture mydatasource of datasource is<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> signal indexx:
integer range 0 to 31;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> signal
tmpdata: signed(11 downto 0);<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> type sintab is
array(0 to 31) of signed(11 downto 0);<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> signal sinrom:
sintab;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> begin <o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> genrom: for
idx in 0 to 31 generate<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> constant x:
real := SIN(2.0 * MATH_PI * real(idx) / 32.0);<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> constant xn:
signed(11 downto 0) := to_signed(600 + integer(1400.0 * x), 12);<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> begin<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">
sinrom(idx) <= xn;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> end
generate;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> calcindex:
process (clk, reset) <o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">
begin <o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> if
(reset='1') then <o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">
indexx <= 0; <o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> elsif
(rising_edge(clk)) then <o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> if
(indexx = 31) then<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">
indexx <= 0;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> else
indexx <= indexx +1;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> end
if;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> end
if; <o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> end
process calcindex;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> myproc:
process (indexx)<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> begin<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> tmpdata <= sinrom(indexx);<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> end
process myproc;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> sdata
<= tmpdata;<o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background: rgb(194, 214, 155); margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">end mydatasource;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><o:p>What did I do? I created a table called sinrom with 32 entries. In the process calcindex I simply increment an index for every clk-pulse and use that to get the corresponding value, a 12 bit number.</o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><o:p><br /></o:p></span></div>
<h4>
<span lang="EN-US"><o:p>Picture of the simulation</o:p></span></h4>
<div>
<span lang="EN-US"><o:p><br /></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj04EJ5dwzV4bB0h-aQAqJG0TVuWp4QH33YnUHbB-HIJmUAmIzjL052LkhJe9YkyXl3A7vnkc6Fxg5Xy-04yXwew85klco4z_qVpw1LpLvWezUyrRWuBFSqpe342QnaITCYYgqlP-WE9cQ/s1600/10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj04EJ5dwzV4bB0h-aQAqJG0TVuWp4QH33YnUHbB-HIJmUAmIzjL052LkhJe9YkyXl3A7vnkc6Fxg5Xy-04yXwew85klco4z_qVpw1LpLvWezUyrRWuBFSqpe342QnaITCYYgqlP-WE9cQ/s1600/10.png" height="175" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div>
<span lang="EN-US"><o:p>Yes, I know I can get rid off some numbers using written constants. </o:p></span></div>
<div>
<span lang="EN-US"><o:p><br /></o:p></span></div>
<div>
<span lang="EN-US"><o:p>By the way I got the idea from:</o:p></span></div>
<div>
<span lang="EN-US"><o:p><br /></o:p></span></div>
<div>
<span lang="EN-US"><o:p></o:p></span><br />
<div class="MsoNoSpacing">
<span lang="EN-US"><a href="http://www.edaboard.com/thread200160.html"><span lang="EN-US">http://www.edaboard.com/thread200160.html</span></a><span lang="EN-US"><o:p></o:p></span></span></div>
<span lang="EN-US">
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="background: #EAE8CF; color: #333333; font-family: "Verdana","sans-serif"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: NL;">One possible way is to calculate the table in VHDL at compile time, as
shown in the below example. (It's a 0..pi sine table, not the solution for your
problem).</span><span lang="EN-US" style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: NL;"><br />
<!--[if !supportLineBreakNewLine]--><br />
<!--[endif]--></span><span lang="EN-US" style="font-family: "Times New Roman","serif"; font-size: 12.0pt; mso-ansi-language: EN-US; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: NL;"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: rgb(234, 232, 207); margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #333333; font-family: "Verdana","sans-serif"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: NL;">Code:<o:p></o:p></span></div>
<div style="background: #F2F6F8; border: inset 1.0pt; mso-border-alt: inset windowtext .75pt; mso-element: para-border-div; padding: 5.0pt 5.0pt 5.0pt 5.0pt;">
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; line-height: 9pt; margin-bottom: 0.0001pt; padding: 0cm;">
<span lang="EN-US" style="color: #333333; font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: NL;">TYPE SINTAB IS
ARRAY(0 TO ROMSIZE-1) OF STD_LOGIC_VECTOR (NNCO-2 DOWNTO 0);<o:p></o:p></span></div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; line-height: 9pt; margin-bottom: 0.0001pt; padding: 0cm;">
<span lang="EN-US" style="color: #333333; font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: NL;">SIGNAL SINROM:
SINTAB;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; line-height: 9pt; margin-bottom: 0.0001pt; padding: 0cm;">
<br /></div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; line-height: 9pt; margin-bottom: 0.0001pt; padding: 0cm;">
<span lang="EN-US" style="color: #333333; font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: NL;">BEGIN<o:p></o:p></span></div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; line-height: 9pt; margin-bottom: 0.0001pt; padding: 0cm;">
<br /></div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; line-height: 9pt; margin-bottom: 0.0001pt; padding: 0cm;">
<span lang="EN-US" style="color: #333333; font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: NL;">GENROM:<o:p></o:p></span></div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; line-height: 9pt; margin-bottom: 0.0001pt; padding: 0cm;">
<span lang="EN-US" style="color: #333333; font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: NL;">FOR idx in 0 TO
ROMSIZE-1 GENERATE<o:p></o:p></span></div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; line-height: 9pt; margin-bottom: 0.0001pt; padding: 0cm;">
<span lang="EN-US" style="color: #333333; font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: NL;"> CONSTANT x: REAL :=
SIN(real(idx)*MATH_PI/real(ROMSIZE));<o:p></o:p></span></div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; line-height: 9pt; margin-bottom: 0.0001pt; padding: 0cm;">
<span lang="EN-US" style="color: #333333; font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: NL;"> CONSTANT xn: UNSIGNED (NNCO-2 DOWNTO 0)
:= CONV_UNSIGNED(INTEGER(x*real(ROMMAX)),NNCO-1);<o:p></o:p></span></div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; line-height: 9pt; margin-bottom: 0.0001pt; padding: 0cm;">
<span lang="EN-US" style="color: #333333; font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: NL;">BEGIN<o:p></o:p></span></div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: none; line-height: 9pt; margin-bottom: 0.0001pt; padding: 0cm;">
<span lang="EN-US" style="color: #333333; font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: NL;"> SINROM(idx) <= STD_LOGIC_VECTOR(xn); <o:p></o:p></span></div>
</div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="color: #333333; font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: NL;">END GENE</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<br /></div>
</span></div>
<div>
<span lang="EN-US"><o:p><br /></o:p></span></div>
</span></div>
</span></div>
Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com0tag:blogger.com,1999:blog-8531143406441550247.post-77414920442280415952014-05-03T22:37:00.002+02:002014-05-03T22:37:23.875+02:00ModelSim testbench is the perfect companion for BladeRF VHDL-development<h1>
ModelSim is awesome indeed!</h1>
<div class="MsoNormal">
<span lang="EN-US">I took the plunge and did the Altera tutorial that came with ModelSim. Look in the help-files of ModelSim and you'll find the tutorial.</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<h2>
Summary</h2>
<div>
I found a lot of ModelSim tutorials on the web, all for a different version of ModelSim. Then I decided to invest in reading/studying/doing the Altera-tutorial from the help-file of ModelSim. After one Sunday-afternoon I had the tutorial running. What a satisfaction! </div>
<div>
I often write down all the steps I perform in a Word-document, my electronic diary. I simply use <Ctrl><Alt><PrtScr> and paste the screenshots in my Word-diary.</div>
<div>
Because the bladeRF LMS-source is too difficult to simulate for the moment, I am a newby in ModelSim, I decided to design in VHDL a simple datasource for a sine with a DC-offset. Later I will test my DC-remover on this datasource.</div>
<div>
<br /></div>
<div>
<b>I was too lazy to type in 32 12-bit values in the case-statement, so used a python-program to do this.</b></div>
<div>
<br /></div>
<div>
I managed to write and debug the code using ModelSim. </div>
<div>
The whole struggle with ModelSim is in here but you might be wise and skip to the end for the final result.</div>
<div>
I finally constructed the datasource.vhd and the testbench tdatasource.vhd</div>
<h2>
ModelSim
Tutorials on the web:</h2>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">1.<span style="font-size: 7pt;"> </span></span><!--[endif]--><a href="http://www.stanford.edu/class/ee183/handouts_win2003/Modelsim_short_tutorial.pdf"><span lang="EN-US">http://www.stanford.edu/class/ee183/handouts_win2003/Modelsim_short_tutorial.pdf</span></a><span lang="EN-US"><br />
Stanford, Winter 2002-2003, Modelsim SE (Student Edition?), 14 pages<br />
Tutorial with Verilog only<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">2.<span style="font-size: 7pt;"> </span></span><!--[endif]--><a href="http://bertrand.granado.free.fr/Sysprog/SysProg/Cours_files/modelsim_tut.pdf"><span lang="EN-US">http://bertrand.granado.free.fr/Sysprog/SysProg/Cours_files/modelsim_tut.pdf</span></a><span lang="EN-US"><br />
Mentor Graphics Corporation, 2009, Software Version 6.5b, 82 pages<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">3.<span style="font-size: 7pt;"> </span></span><!--[endif]--><a href="ftp://ftp.altera.com/up/pub/Altera_Material/10.1/Tutorials/Using_ModelSim.pdf"><span lang="EN-US">ftp://ftp.altera.com/up/pub/Altera_Material/10.1/Tutorials/Using_ModelSim.pdf</span></a><span lang="EN-US"><br />
Altera, Jan 2011, Altera Starter Edition 6.4.a Custom Altera Version, 30 pages<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">4.<span style="font-size: 7pt;"> </span></span><!--[endif]--><a href="http://www.ece.northwestern.edu/~ismail/courses/c92/ModelSim_Tutorial.pdf"><span lang="EN-US">http://www.ece.northwestern.edu/~ismail/courses/c92/ModelSim_Tutorial.pdf</span></a><span lang="EN-US"><br />
Larbi Boughaleb, UT ECE, ModelSim 5.7, 9
pages<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">5.<span style="font-size: 7pt;"> </span></span><!--[endif]--><a href="http://www.tkt.cs.tut.fi/tools/public/tutorials/mentor/modelsim/getting_started/gsms.html"><span lang="EN-US">http://www.tkt.cs.tut.fi/tools/public/tutorials/mentor/modelsim/getting_started/gsms.html</span></a><span lang="EN-US"><br />
version 6.1b of ModelSim SE<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">6.<span style="font-size: 7pt;"> </span></span><!--[endif]--><a href="http://courses.cs.washington.edu/courses/csep567/10wi/labs/modelsim_tut.pdf"><span lang="EN-US">http://courses.cs.washington.edu/courses/csep567/10wi/labs/modelsim_tut.pdf</span></a><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">7.<span style="font-size: 7pt;"> </span></span><!--[endif]--><span lang="EN-US">Mentor Graphics, 2008, Software
Version 6.4a, 88 pages<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">8.<span style="font-size: 7pt;"> </span></span><!--[endif]--><a href="http://users.ece.cmu.edu/~kbiswas/modelsim/se_tutor.pdf"><span lang="EN-US">http://users.ece.cmu.edu/~kbiswas/modelsim/se_tutor.pdf</span></a><span lang="EN-US"><br />
Mentor Graphics Corporation, Nov 2004, Version 6.0b, 178 pages<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">9.<span style="font-size: 7pt;"> </span></span><!--[endif]--><span lang="EN-US">modelsim_tut.pdf from help-file
Modelsim 10.1d<br />
Mentor Graphics Corporation, 2012, Version 10.1d, 80 pages<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">The last
one, number 9, is from the help-file of the current ModelSim on my laptop.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Which
version of ModelSim do I have?<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US">ModelSim-Altera 10.1d (Quartus II
13.1)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<h2>
<span lang="EN-US">ModelSim tutorial<o:p></o:p></span></h2>
<h1>
<span lang="EN-US"><div class="MsoNoSpacing" style="font-size: medium; font-weight: normal;">
<span lang="EN-US">I took the plunge and folowed the tutorial from the help-file in ModelSim, described above as #9.<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="font-size: medium; font-weight: normal;">
<span lang="EN-US">It took me only one Sunday-afternoon and I had the counter-example running. The remaining evening was used to play with ModelSim. Awesome!<o:p></o:p></span></div>
<div class="MsoNormal" style="font-size: medium; font-weight: normal;">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing" style="font-size: medium; font-weight: normal;">
<span lang="EN-US">So, read the tutorial, take your time, and just try. This investment is worth your time!</span></div>
</span></h1>
<h1>
Test-source for my
DC-remover</h1>
<div class="MsoNoSpacing">
<span lang="EN-US">Fort
testing my DC-remover I need a simple source that I can simulate with ModelSim.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I want
to construct a simple source that delivers a sinus with an offset.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">My
source has a 12-bit 2s-complement output. The average output will be 600.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">12 bit
is 4096 max, so +/- 2048. Let’s make my sinus 600 + 1400*sin(wt), so the
outout-value will be 600-1400= -800 … 600+1400=2000.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">The
output will be -800…2000.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">If my
DC-remover is OK, the final output will be +/- 1400, so the original sine with
DC-offset removed.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Port
specification:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">entity datasource is<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">port (<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> reset :
in std_logic;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">clk : in std_logic;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">sdata : out signed(11
downto 0)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> ) ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">end entity;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">samplerate
is 4 MHz. I want 32 samples/period. So my sine has a frequency of 4/32 MHz =
125 kHz.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I need
an internal 5 bits counter. This counter is reset by the signal reset and
increments with every clk-pulse.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">The
5-bits output of this counter selects a number from a table. Perhaps a case
statement.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">The
code-fragment for the counter:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US"> </span><span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">signal
index: std_logic_vector(4 downto 0); <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> process (clk, reset) <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> begin
<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> if (reset='1') then <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tmp <= "00000"; <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> elsif (rising_edge(clk)) then <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> index <= index + 1; <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> end if; <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> end process; <o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">And the
case=statement to calculate the 12-bit output:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">signal tmpdata:
std_logic_vector(11 downto 0);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> myproc: process (index)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> begin<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> case(index) is<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> when “00000” => tmpdata <=
“000000000000”;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> when “00001” => tmpdata <=
“000000111111”;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> ….<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> when “11110” => tmpdata <=
“111111100000”;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> when “11111” => tmpdata <=
“111111111000”;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> when others => tmpdata ,=
“000000000000”;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> end case;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> end process my_proc;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> sdata <= tmpdata;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">The
right values for the right-side of the when can be calculated with a simple
python-program<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I copied
code from: </span><a href="http://code.activestate.com/recipes/219300-format-integer-as-binary-string/"><span lang="EN-US">http://code.activestate.com/recipes/219300-format-integer-as-binary-string/</span></a><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">(and I
must admit I did not study the tobin-code, but it works (me coward!))<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span style="font-family: "Courier New";"># GenVHDLsin01.py<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span style="font-family: "Courier New";"># Apr-2014 Kees de Groot<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">#<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># generate VHDL when
statements for sine-wave<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">import pylab as pl<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">import numpy as np<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">from math import sin,
cos, pi<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">n = 32<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">def tobin(x,
count=8):<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> """<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> Integer to binary<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> Count is number of bits<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> """<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> return "".join(map(lambda
y:str((x>>y)&1), range(count-1, -1, -1)))<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">for i in range(n):<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> data = sin(2 * pi * i / n)<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> output = 600 + 1400 * data<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> intout = int(output)<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> #print i, data, output, intout, bin(intout),
tobin(intout,12)<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> print "when", '"'+
tobin(i,5)+'"'," => tmpdata <= ", '"' +
tobin(intout,12) + '"' <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">which
outputs:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"00000" => tmpdata
<= "001001011000"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"00001" => tmpdata
<= "001101101001"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"00010" => tmpdata
<= "010001101111"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"00011" => tmpdata
<= "010101100001"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"00100" => tmpdata
<= "011000110101"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"00101" => tmpdata
<= "011011100100"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"00110" => tmpdata
<= "011101100101"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"00111" => tmpdata
<= "011110110101"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"01000" => tmpdata
<= "011111010000"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"01001" => tmpdata
<= "011110110101"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"01010" => tmpdata
<= "011101100101"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"01011" => tmpdata
<= "011011100100"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"01100" => tmpdata
<= "011000110101"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"01101" => tmpdata <= "010101100001"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"01110" => tmpdata
<= "010001101111"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"01111" => tmpdata
<= "001101101001"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"10000" => tmpdata
<= "001001011000"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"10001" => tmpdata
<= "000101000110"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"10010" => tmpdata
<= "000001000000"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"10011" => tmpdata
<= "111101001111"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"10100" => tmpdata
<= "111001111011"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"10101" => tmpdata
<= "110111001100"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"10110" => tmpdata
<= "110101001011"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"10111" => tmpdata
<= "110011111011"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"11000" => tmpdata
<= "110011100000"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when "11001" => tmpdata <= "110011111011"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"11010" => tmpdata
<= "110101001011"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"11011" => tmpdata
<= "110111001100"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"11100" => tmpdata
<= "111001111011"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"11101" => tmpdata
<= "111101001111"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"11110" => tmpdata
<= "000001000000"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"11111" => tmpdata
<= "000101000110"<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">So, the
case=statement to calculate the 12-bit output:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">signal tmpdata:
std_logic_vector(11 downto 0);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> myproc: process (index)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> begin<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> case(index) is<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"00000" => tmpdata
<= "001001011000"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"00001" => tmpdata
<= "001101101001"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"00010" => tmpdata
<= "010001101111"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"00011" => tmpdata
<= "010101100001"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"00100" => tmpdata
<= "011000110101"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"00101" => tmpdata
<= "011011100100"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"00110" => tmpdata
<= "011101100101"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when "00111" => tmpdata <= "011110110101"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"01000" => tmpdata
<= "011111010000"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"01001" => tmpdata
<= "011110110101"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"01010" => tmpdata
<= "011101100101"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"01011" => tmpdata
<= "011011100100"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"01100" => tmpdata
<= "011000110101"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"01101" => tmpdata
<= "010101100001"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"01110" => tmpdata
<= "010001101111"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"01111" => tmpdata
<= "001101101001"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"10000" => tmpdata
<= "001001011000"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"10001" => tmpdata
<= "000101000110"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"10010" => tmpdata
<= "000001000000"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"10011" => tmpdata
<= "111101001111"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"10100" => tmpdata
<= "111001111011"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"10101" => tmpdata
<= "110111001100"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"10110" => tmpdata
<= "110101001011"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"10111" => tmpdata
<= "110011111011"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"11000" => tmpdata
<= "110011100000"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"11001" => tmpdata
<= "110011111011"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"11010" => tmpdata
<= "110101001011"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"11011" => tmpdata
<= "110111001100"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"11100" => tmpdata
<= "111001111011"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"11101" => tmpdata
<= "111101001111"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"11110" => tmpdata
<= "000001000000"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">when
"11111" => tmpdata
<= "000101000110"<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> when others => tmpdata <=
“000000000000”;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> end case;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> end process my_proc;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> sdata <= tmpdata;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Now
collect all fragments and produce the VHDL-program datasource.vhd<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Note that I forgot the semicolons, not too much editing adding 32 semicolons...</span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span style="font-family: "Courier New"; font-size: 9.0pt; mso-bidi-font-size: 11.0pt;">-- datasource.vhd<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span style="font-family: "Courier New"; font-size: 9.0pt; mso-bidi-font-size: 11.0pt;">-- May-2014 Kees de
Groot<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- test-program for my DC-remover<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- this device outputs a 2s-complement sine of 32
points<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">entity datasource is<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">port (<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> reset : in std_logic;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">clk : in std_logic;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">sdata : out signed(11 downto 0)<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> ) ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">end;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">architecture mydatasource of datasource is<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">begin<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> signal index:
std_logic_vector(4 downto 0); <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> calcindex: process (clk, reset) <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">
begin <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> if
(reset='1') then <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> tmp
<= "00000"; <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> elsif
(rising_edge(clk)) then <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">
index <= index + 1; <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> end
if; <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> end
process calcindex;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">signal tmpdata: std_logic_vector(11 downto 0);<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> myproc:
process (index)<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> begin<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> case(index)
is<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00000"
=> tmpdata <= "001001011000";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00001"
=> tmpdata <=
"001101101001";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00010"
=> tmpdata <=
"010001101111";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00011"
=> tmpdata <=
"010101100001";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00100"
=> tmpdata <=
"011000110101";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00101"
=> tmpdata <=
"011011100100";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00110"
=> tmpdata <=
"011101100101";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00111"
=> tmpdata <=
"011110110101";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01000"
=> tmpdata <=
"011111010000";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01001"
=> tmpdata <=
"011110110101";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01010"
=> tmpdata <=
"011101100101";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01011"
=> tmpdata <=
"011011100100";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01100"
=> tmpdata <=
"011000110101";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01101"
=> tmpdata <=
"010101100001";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01110"
=> tmpdata <=
"010001101111";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01111"
=> tmpdata <=
"001101101001";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10000"
=> tmpdata <=
"001001011000";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10001"
=> tmpdata <= "000101000110";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10010"
=> tmpdata <=
"000001000000";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10011"
=> tmpdata <=
"111101001111";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10100"
=> tmpdata <=
"111001111011";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10101"
=> tmpdata <=
"110111001100";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10110"
=> tmpdata <=
"110101001011";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10111"
=> tmpdata <=
"110011111011";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11000"
=> tmpdata <=
"110011100000";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11001"
=> tmpdata <=
"110011111011";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11010"
=> tmpdata <=
"110101001011";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11011"
=> tmpdata <=
"110111001100";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11100"
=> tmpdata <=
"111001111011";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11101"
=> tmpdata <=
"111101001111";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11110"
=> tmpdata <=
"000001000000";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11111"
=> tmpdata <=
"000101000110";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> when
others => tmpdata <= “000000000000”;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> end
case;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> end
process my_proc;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> sdata
<= tmpdata;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">end mydatasource;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I need a
testbed, the VHDL-program tdatasource.vhd<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- tdatasource.vhd<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- May-2014 Kees de Groot<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- test-program for the datasource to test my
DC-remover<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- this device simply tests the datasource<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">entity test_datasource is<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> PORT (
sourceout : out signed(11 downto 0);<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">end;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">architecture mytest of test_datasourece is<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">COMPONENT datasource<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">port (<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> reset : in std_logic;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">clk : in std_logic;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">sdata : out signed(11 downto 0)<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> ) ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">END COMPONENT ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">SIGNAL clk :
bit := '0';<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">SIGNAL reset : bit := '0';<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">begin<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">dut : datasource <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> PORT MAP (<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> sdata => sdata,<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> clk =>
clk,<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> reset =>
reset );<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">clock : PROCESS<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> begin<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> wait for 10
ns; clk <= not clk;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">end PROCESS clock;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">stimulus : PROCESS<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> begin<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> wait for 5
ns; reset <= '1';<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> wait for 4
ns; reset <= '0';<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> wait;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">end PROCESS stimulus;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">end only;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I copy
these two files datasource.vhd and tdatasource.vhd to C:\altera\work<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Then
start ModelSim, point to this directory, compile, start simulation and run<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I start
NotePad, paste the above source in NotePad, then save it to
C:\altera\work\datasource.vhd<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">The same
for tdatasource.vhd<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Now I
should have both files in C:\altera\work:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsWJTdpuOBqIWA8lmu8L3pWIprwnGBQ1PpSa-vwrROyeiNwhw0Cu5IM96OLpePAk34SM1CltG2DSYgVJxU8YSLzaQD7RbXmDBOuNVBMIPoJ6ryWJ4kMGaNtJEbZ6fyqDohxL_0mzbecws/s1600/01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsWJTdpuOBqIWA8lmu8L3pWIprwnGBQ1PpSa-vwrROyeiNwhw0Cu5IM96OLpePAk34SM1CltG2DSYgVJxU8YSLzaQD7RbXmDBOuNVBMIPoJ6ryWJ4kMGaNtJEbZ6fyqDohxL_0mzbecws/s1600/01.png" height="127" width="320" /></a></div>
<br />
<div class="MsoNoSpacing">
<v:shapetype coordsize="21600,21600" filled="f" id="_x0000_t75" o:preferrelative="t" o:spt="75" path="m@4@5l@4@11@9@11@9@5xe" stroked="f">
<v:stroke joinstyle="miter">
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0">
<v:f eqn="sum @0 1 0">
<v:f eqn="sum 0 0 @1">
<v:f eqn="prod @2 1 2">
<v:f eqn="prod @3 21600 pixelWidth">
<v:f eqn="prod @3 21600 pixelHeight">
<v:f eqn="sum @0 0 1">
<v:f eqn="prod @6 1 2">
<v:f eqn="prod @7 21600 pixelWidth">
<v:f eqn="sum @8 21600 0">
<v:f eqn="prod @7 21600 pixelHeight">
<v:f eqn="sum @10 21600 0">
</v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:formulas>
<v:path gradientshapeok="t" o:connecttype="rect" o:extrusionok="f">
<o:lock aspectratio="t" v:ext="edit">
</o:lock></v:path></v:stroke></v:shapetype><v:shape id="Afbeelding_x0020_69" o:spid="_x0000_i1043" style="height: 186.75pt; mso-wrap-style: square; visibility: visible; width: 470.25pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png">
</v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">The
other files from the tutorial are still there but that does not harm hopefully…<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Now
start ModelSim and point to that directory<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT5ZrHaPX7gLLT7HimVUoct2afNU3N6D882STpbtdMF8iwGnHVYik3HKmyiYJuw51UZ0kJTfG1CV0OcjyRhNr5mX2ow9Mx8nnTPj1kcuFJR7dt2JMyowfjOT2hbb31nmfYpilSvjegpKA/s1600/02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT5ZrHaPX7gLLT7HimVUoct2afNU3N6D882STpbtdMF8iwGnHVYik3HKmyiYJuw51UZ0kJTfG1CV0OcjyRhNr5mX2ow9Mx8nnTPj1kcuFJR7dt2JMyowfjOT2hbb31nmfYpilSvjegpKA/s1600/02.png" height="241" width="320" /></a></div>
<br />
<div class="MsoNoSpacing">
<v:shape id="Afbeelding_x0020_70" o:spid="_x0000_i1042" style="height: 353.25pt; mso-wrap-style: square; visibility: visible; width: 470.25pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image002.png">
</v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Simply
close this screen<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<v:shape id="Afbeelding_x0020_71" o:spid="_x0000_i1041" style="height: 257.25pt; mso-wrap-style: square; visibility: visible; width: 471pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png">
</v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS__qBqBsV2B2_CQX_Yxprs2lBlcfKwxOb3zQxQVs2Yztl9WaKZycsEynCxpxJLvzyImnPq_4aAmi5CDLK8pECAjeNS3ezgWTqrLEG4KZkIDEegUg6zDv_6k59_ouRPzvMLvYhZOqqz1M/s1600/03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS__qBqBsV2B2_CQX_Yxprs2lBlcfKwxOb3zQxQVs2Yztl9WaKZycsEynCxpxJLvzyImnPq_4aAmi5CDLK8pECAjeNS3ezgWTqrLEG4KZkIDEegUg6zDv_6k59_ouRPzvMLvYhZOqqz1M/s1600/03.png" height="175" width="320" /></a></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Oops, it
starts the last project,<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">So File
> New Project<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<v:shape id="Afbeelding_x0020_72" o:spid="_x0000_i1040" style="height: 203.25pt; mso-wrap-style: square; visibility: visible; width: 240.75pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image004.png">
</v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4SzjpnelebF9RPgjnrSaCvaCMJOtCwALxGOh4Q8eFSUI9xpVvf7LKZZJ51H7-N5jfOtF-q64JqFW-YtiCO2dgq_qwzY7r6sQ5ZxlBNqKWP64UhYxsuJV03th7HJIJuCUVRcwidgqnWhA/s1600/04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4SzjpnelebF9RPgjnrSaCvaCMJOtCwALxGOh4Q8eFSUI9xpVvf7LKZZJ51H7-N5jfOtF-q64JqFW-YtiCO2dgq_qwzY7r6sQ5ZxlBNqKWP64UhYxsuJV03th7HJIJuCUVRcwidgqnWhA/s1600/04.png" height="272" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizUDTNd1bd_LGQ_hY1a3L9kzJKMc0fYQNJlzqWHxn8k6WbgBM15SX4rEjPLcnhpeEBzfgIQPAgNa9p-cbHES00xiJ8CctRTtcTeQk3aIFFxQFtIxgSVWHFNDJOpJP1FLG1mfcW5C_rLng/s1600/05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizUDTNd1bd_LGQ_hY1a3L9kzJKMc0fYQNJlzqWHxn8k6WbgBM15SX4rEjPLcnhpeEBzfgIQPAgNa9p-cbHES00xiJ8CctRTtcTeQk3aIFFxQFtIxgSVWHFNDJOpJP1FLG1mfcW5C_rLng/s1600/05.png" /></a></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<v:shape id="Afbeelding_x0020_73" o:spid="_x0000_i1039" style="height: 179.25pt; mso-wrap-style: square; visibility: visible; width: 202.5pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png">
</v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">click on
Add existing File<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvyjgb-MdJkxi0ZqncE2eYbGBvuJeQ3-F0TvDB3HHruU_qGBAJaLS5N3QdaDERJragzVgYbbj3cOih11EAv5B3G-kKuraY3KyIUasEiT_XQGXrroBSfF80R7exOHiJg-o7UUcUpQnWUV4/s1600/06.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvyjgb-MdJkxi0ZqncE2eYbGBvuJeQ3-F0TvDB3HHruU_qGBAJaLS5N3QdaDERJragzVgYbbj3cOih11EAv5B3G-kKuraY3KyIUasEiT_XQGXrroBSfF80R7exOHiJg-o7UUcUpQnWUV4/s1600/06.png" height="144" width="320" /></a></div>
<br />
<div class="MsoNoSpacing">
<v:shape id="Afbeelding_x0020_74" o:spid="_x0000_i1038" style="height: 135.75pt; mso-wrap-style: square; visibility: visible; width: 302.25pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image006.png">
</v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Browse
and add datasource and tdatasource<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxJNI_WjJv9y6U5ml5srt-fS42ImlvbQYnPsyO4irSdBiTff5x-38Sgdn7F-nKDU0WycynUg4vqWfVC-j6i-rna4qO1dr9odJF7492Eho4Y5uq_oQUVMh7qy9AbgFVhUlvUrkiSxWcKdc/s1600/07.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxJNI_WjJv9y6U5ml5srt-fS42ImlvbQYnPsyO4irSdBiTff5x-38Sgdn7F-nKDU0WycynUg4vqWfVC-j6i-rna4qO1dr9odJF7492Eho4Y5uq_oQUVMh7qy9AbgFVhUlvUrkiSxWcKdc/s1600/07.png" height="144" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisOlDscweL301z8bwME8uP1hc20pXPWFUCqw1H3IEQfsoX-AulDekRAvcxJnMcD_GBuR4zLgBY9beHTlObpzhbQ7n4ggXvOow2euxVKfm1Ivow5hHtlI8eTLI5Saf6FlYxLP5iZX-BzG8/s1600/08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisOlDscweL301z8bwME8uP1hc20pXPWFUCqw1H3IEQfsoX-AulDekRAvcxJnMcD_GBuR4zLgBY9beHTlObpzhbQ7n4ggXvOow2euxVKfm1Ivow5hHtlI8eTLI5Saf6FlYxLP5iZX-BzG8/s1600/08.png" /></a></div>
<br />
<div class="MsoNoSpacing">
<v:shape id="Afbeelding_x0020_75" o:spid="_x0000_i1037" style="height: 135.75pt; mso-wrap-style: square; visibility: visible; width: 302.25pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image007.png">
</v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<v:shape id="Afbeelding_x0020_76" o:spid="_x0000_i1036" style="height: 179.25pt; mso-wrap-style: square; visibility: visible; width: 202.5pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png">
</v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">click
Create Simulation<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFnCXiUi4z2wpXF6PcmTrVr2Vj3qQ7cCvv9e9ImDp8Fb9SoXoxcsucqdsa5va1I4q7mixcNheu-xa9n31ik8MPIx2_uiXDviJd0qFCEgRXn7F8TY63SRRWgkArTJNNS6CrBpfzyQWIopo/s1600/09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFnCXiUi4z2wpXF6PcmTrVr2Vj3qQ7cCvv9e9ImDp8Fb9SoXoxcsucqdsa5va1I4q7mixcNheu-xa9n31ik8MPIx2_uiXDviJd0qFCEgRXn7F8TY63SRRWgkArTJNNS6CrBpfzyQWIopo/s1600/09.png" height="291" width="320" /></a></div>
<br />
<div class="MsoNoSpacing">
<v:shape id="Afbeelding_x0020_77" o:spid="_x0000_i1035" style="height: 375.75pt; mso-wrap-style: square; visibility: visible; width: 414pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image008.png">
</v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Cancel<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Simulate > start simulation<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Cancel<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I have
to compile first!<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Compile
> compile all<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="color: red;">#
Compile of tdatasource.vhd failed with 2 errors.<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="color: red;"># 2
compiles, 2 failed with 6 errors. </span><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Of
course, 1<sup>st</sup> time!<o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_swUaJPoMJgvXRRkbRX6MnVA0ZTCHzCCda0rp9B-aiATndjDrQAfK66DyTqa0w5GIizwSMMWgHXUIOUmqowVk1lQhMOOia-vFfvhNOIt-FDCn342ZvIlYLcZu7iju5GaySJCvOmGNO1E/s1600/10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_swUaJPoMJgvXRRkbRX6MnVA0ZTCHzCCda0rp9B-aiATndjDrQAfK66DyTqa0w5GIizwSMMWgHXUIOUmqowVk1lQhMOOia-vFfvhNOIt-FDCn342ZvIlYLcZu7iju5GaySJCvOmGNO1E/s1600/10.png" height="71" width="320" /></a></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<v:shape id="Afbeelding_x0020_78" o:spid="_x0000_i1034" style="height: 102.75pt; mso-wrap-style: square; visibility: visible; width: 470.25pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image009.png">
</v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I did
not specify any library, I thought that was not necessary for a simulation: stupid!<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">doubleclick
on t\datasource.vhd in the project menu at the left opens the source in
WordPad.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I have
to add libraries: which? IEEE…??<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> Parenthesis missing<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">Correct
to<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> PORT (
sourceout : out signed(11 downto 0));<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Save and
compile again<o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuT7BcLVrlhCGaLU2avOrMWfH3gMkKzINB3yopltXENMRCg8sTZXp08BJzGwVye1KW6Sdzf9ukfBgjJRBFV0kzPZODckKQt643EVU45G2IVIqI7CwBcH5DqWRdNz0AUZoUmAUnTn9xGRU/s1600/11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuT7BcLVrlhCGaLU2avOrMWfH3gMkKzINB3yopltXENMRCg8sTZXp08BJzGwVye1KW6Sdzf9ukfBgjJRBFV0kzPZODckKQt643EVU45G2IVIqI7CwBcH5DqWRdNz0AUZoUmAUnTn9xGRU/s1600/11.png" height="81" width="320" /></a></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<v:shape id="Afbeelding_x0020_79" o:spid="_x0000_i1033" style="height: 119.25pt; mso-wrap-style: square; visibility: visible; width: 470.25pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image010.png">
</v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Same
error<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I still
think it is a library problem<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I’ll
have a look in the LMS-bladerf file and copy the IEE lib spec<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Add<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">library ieee ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> use ieee.std_logic_1164.all ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> use ieee.numeric_std.all ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">to the
start of both vhd-files<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Save and
compile again<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgMtemPgOTX154DvYOT1nqpgYQVjXIqwxz4d3Z1se1HQvBQ1YqNvhVPyw4ySIyZN7BpBo_4_HRfNfEhuZjm-B1iBkN5WTNzP6JdWBgY-0wAf3S6F075xsNWPvGQPRio1FUmpdv-8q20jo/s1600/12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgMtemPgOTX154DvYOT1nqpgYQVjXIqwxz4d3Z1se1HQvBQ1YqNvhVPyw4ySIyZN7BpBo_4_HRfNfEhuZjm-B1iBkN5WTNzP6JdWBgY-0wAf3S6F075xsNWPvGQPRio1FUmpdv-8q20jo/s1600/12.png" height="140" width="320" /></a></div>
<br />
<div class="MsoNoSpacing">
<v:shape id="Afbeelding_x0020_81" o:spid="_x0000_i1032" style="height: 191.25pt; mso-wrap-style: square; visibility: visible; width: 436.5pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image011.png">
</v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Typo
datasourece, should be datasource<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Now I
see:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US"># 2
compiles, 2 failed with 42 errors. <o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">#
Compile of datasource.vhd failed with 40 errors.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">#
Compile of tdatasource.vhd failed with 2 errors.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"># 2
compiles, 2 failed with 42 errors. <o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCXVKK1rex76KiEo6-kZgOKhnMF-cN5Psox2I4dyQqYmeSOoa7ziKYORtw96qYKJTnK1r2WhljHFFCWzTQF5R8C6x-M9jQskZEBTPIjijC1hUF_3okZGJUUhqULjkd9kgu5m7H2cXQOVY/s1600/13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCXVKK1rex76KiEo6-kZgOKhnMF-cN5Psox2I4dyQqYmeSOoa7ziKYORtw96qYKJTnK1r2WhljHFFCWzTQF5R8C6x-M9jQskZEBTPIjijC1hUF_3okZGJUUhqULjkd9kgu5m7H2cXQOVY/s1600/13.png" height="91" width="320" /></a></div>
<br />
<div class="MsoNoSpacing">
<v:shape id="Afbeelding_x0020_82" o:spid="_x0000_i1031" style="height: 133.5pt; mso-wrap-style: square; visibility: visible; width: 470.25pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image012.png">
</v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">library ieee ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> use
ieee.std_logic_1164.all ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> use
ieee.numeric_std.all ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- tdatasource.vhd<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- May-2014 Kees de Groot<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- test-program for the datasource to test my
DC-remover<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- this device simply tests the datasource<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">entity test_datasource is<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> PORT ( sdata
: out signed(11 downto 0));<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">end;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">architecture mytest of test_datasource is<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">COMPONENT datasource<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">port (<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> reset : in std_logic;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">clk : in std_logic;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">sdata : out signed(11 downto 0)<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> ) ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">END COMPONENT ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">SIGNAL clk :
std_logic := '0';<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">SIGNAL reset : std_logic := '0';<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">begin<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">dut : datasource <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> PORT MAP (<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> sdata =>
sdata,<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> clk =>
clk,<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> reset =>
reset );<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">clock : PROCESS<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> begin<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> wait for 10
ns; clk <= not clk;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">end PROCESS clock;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">stimulus : PROCESS<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> begin<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> wait for 5
ns; reset <= '1';<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> wait for 4
ns; reset <= '0';<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> wait;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">end PROCESS stimulus;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">end mytest;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">tdatasource.vhd
is now succesfull compiled!<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Now
concentrate on datasource.vhd<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Doubleclick
in the lower window on the red error-message opens a window with the
errormessages<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Double
click on the file datasource.vhd to open it in the editor<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">After
some corrections the source compiles without errors:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">library ieee ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> use
ieee.std_logic_1164.all ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> use
ieee.numeric_std.all ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span style="font-family: "Courier New"; font-size: 9.0pt; mso-bidi-font-size: 11.0pt;">-- datasource.vhd<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span style="font-family: "Courier New"; font-size: 9.0pt; mso-bidi-font-size: 11.0pt;">-- May-2014 Kees de
Groot<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- test-program for my DC-remover<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- this device outputs a 2s-complement sine of 32
points<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">entity datasource is<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">port (<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> reset : in std_logic;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> clk : in std_logic;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> sdata : out signed(11
downto 0)<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> ) ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">end datasource;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">architecture mydatasource of datasource is<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> signal
tmpdata: signed(11 downto 0);<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">begin <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> cal signal indexx: signed(4 downto 0);<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">cindex: process (clk, reset) <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">
begin <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> if
(reset='1') then <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">
tmpdata <= "000000000000";
<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> elsif
(rising_edge(clk)) then <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">
indexx <= indexx + 1; <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> end
if; <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> end
process calcindex;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> myproc:
process (indexx)<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> begin<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> case(indexx)
is<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00000"
=> tmpdata <=
"001001011000";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00001"
=> tmpdata <= "001101101001";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00010"
=> tmpdata <=
"010001101111";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00011"
=> tmpdata <=
"010101100001";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00100"
=> tmpdata <=
"011000110101";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00101"
=> tmpdata <=
"011011100100";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00110"
=> tmpdata <=
"011101100101";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00111"
=> tmpdata <=
"011110110101";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01000"
=> tmpdata <=
"011111010000";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01001"
=> tmpdata <=
"011110110101";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01010"
=> tmpdata <=
"011101100101";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01011"
=> tmpdata <=
"011011100100";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01100"
=> tmpdata <=
"011000110101";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01101"
=> tmpdata <=
"010101100001";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01110"
=> tmpdata <=
"010001101111";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01111"
=> tmpdata <=
"001101101001";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10000"
=> tmpdata <=
"001001011000";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10001"
=> tmpdata <=
"000101000110";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10010"
=> tmpdata <= "000001000000";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10011"
=> tmpdata <=
"111101001111";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10100"
=> tmpdata <=
"111001111011";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10101"
=> tmpdata <=
"110111001100";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10110"
=> tmpdata <=
"110101001011";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10111"
=> tmpdata <=
"110011111011";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11000"
=> tmpdata <=
"110011100000";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11001"
=> tmpdata <=
"110011111011";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11010"
=> tmpdata <=
"110101001011";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11011"
=> tmpdata <=
"110111001100";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11100"
=> tmpdata <=
"111001111011";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11101"
=> tmpdata <=
"111101001111";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11110"
=> tmpdata <=
"000001000000";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11111"
=> tmpdata <=
"000101000110";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when others => tmpdata <=
"000000000000";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> end
case;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> end
process myproc;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> sdata
<= tmpdata;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">end mydatasource;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Simulate
> start simulation<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<v:shape id="Afbeelding_x0020_83" o:spid="_x0000_i1030" style="height: 333.75pt; mso-wrap-style: square; visibility: visible; width: 374.25pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image013.png">
</v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPydcHfgNL63C2ph_QqiM5blDKri_0arXzPjuWxkIs79gAlnZqMDIPT0jAbM_n3B7mEjG5tY4hy55wiPvhlhkKYXT0aksmYH40hCpa4VdWUwInnFIRpxhhXsdIbgG2ZvwOwYBW4DwLt9U/s1600/14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPydcHfgNL63C2ph_QqiM5blDKri_0arXzPjuWxkIs79gAlnZqMDIPT0jAbM_n3B7mEjG5tY4hy55wiPvhlhkKYXT0aksmYH40hCpa4VdWUwInnFIRpxhhXsdIbgG2ZvwOwYBW4DwLt9U/s1600/14.png" height="284" width="320" /></a></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Quite
encouraging:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioaofKpm1d15nZ-rOhmcrjx9zm8e3JOTszVtckmxH_ErxX0ZttIj7kLpmr5pw3SL7Gb6SziqHlFuaU5JGSgaf7J0mYT0agRiEdhvawLiHs6i9P4QqZ6Lz9Sph6UJr3yzfXSw7OHL2_i8Q/s1600/15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioaofKpm1d15nZ-rOhmcrjx9zm8e3JOTszVtckmxH_ErxX0ZttIj7kLpmr5pw3SL7Gb6SziqHlFuaU5JGSgaf7J0mYT0agRiEdhvawLiHs6i9P4QqZ6Lz9Sph6UJr3yzfXSw7OHL2_i8Q/s1600/15.png" height="177" width="320" /></a></div>
<br />
<div class="MsoNoSpacing">
<v:shape id="Afbeelding_x0020_84" o:spid="_x0000_i1029" style="height: 259.5pt; mso-wrap-style: square; visibility: visible; width: 469.5pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image014.png">
</v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Right
click on the objects windows and “add wave”<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Click on
run<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Lower
left type “run 500 ns”<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<v:shape id="Afbeelding_x0020_85" o:spid="_x0000_i1028" style="height: 259.5pt; mso-wrap-style: square; visibility: visible; width: 469.5pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image015.png">
</v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-i6eVyFt_fB7IRHpVc3pJNCYs4urrUths7qqItOG92iaCRfcvw4da0NLLtljPU4WbtLyJO-j6-BlmxGmCXpFcUAALpsQ0_UC9cKJpTIlejpxopSCKtCPLOOCzxjM_b04gGCtReARQMIg/s1600/16.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-i6eVyFt_fB7IRHpVc3pJNCYs4urrUths7qqItOG92iaCRfcvw4da0NLLtljPU4WbtLyJO-j6-BlmxGmCXpFcUAALpsQ0_UC9cKJpTIlejpxopSCKtCPLOOCzxjM_b04gGCtReARQMIg/s1600/16.png" height="177" width="320" /></a></div>
<br />
<div class="MsoNoSpacing">
<span lang="EN-US">Well,
not any output still…<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">It looks
like indexx is never initialized, so remains at “XXXXX”<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Change<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> if (reset='1') then <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tmpdata <=
"000000000000";<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> index <= "00000"; <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> elsif (rising_edge(clk)) then <o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">end
simulation<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">save,
compile, simulate, run<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfd5p7ICOmOwF0_az65aFNJBwbfWw1O0DUeh-0IZ6h3dFNimyliKstbIJoE8I02YxrnQmScAX3O1Db28fJrbO_XJ8hX4KaBJoXzkFi7EjkjzG0v9xKgsEJx_A2WmOzHGRUk4PePmelxEU/s1600/17.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfd5p7ICOmOwF0_az65aFNJBwbfWw1O0DUeh-0IZ6h3dFNimyliKstbIJoE8I02YxrnQmScAX3O1Db28fJrbO_XJ8hX4KaBJoXzkFi7EjkjzG0v9xKgsEJx_A2WmOzHGRUk4PePmelxEU/s1600/17.png" height="175" width="320" /></a></div>
<br />
<div class="MsoNoSpacing">
<v:shape id="Afbeelding_x0020_87" o:spid="_x0000_i1027" style="height: 257.25pt; mso-wrap-style: square; visibility: visible; width: 471pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image016.png">
</v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">It looks
like some signals are not defined yet!<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<h1>
I get
XXX in the wave-display.</h1>
<div class="MsoNoSpacing">
<span lang="EN-US">Why?
Exactly what Brian explained: define signals in one process, at one place only.
No multiple assignments! If there more sources, one source tells "it is a ONE!" and another source yells "it is a ZERO" then what shouyld be the outcome??<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I
changed my source and now it is ok. ModelSim is awesome indeed!!!<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I tested
my datasource.vhd and now I can finally test my dcremover.vhd in the same way.<o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVUpuzuFplyXfimHZ6uGHv1ZnDj1GDVacT4-BQagU-PecnKccf1Yzkb1WIX3r7Gr8LjUMtwER0lFkJ_QSdfp4cEaUVbB6gM3phrk6_u1s6p9ipBnbgQi3eyP5wuY2tVytzrUBNat-DIuo/s1600/18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVUpuzuFplyXfimHZ6uGHv1ZnDj1GDVacT4-BQagU-PecnKccf1Yzkb1WIX3r7Gr8LjUMtwER0lFkJ_QSdfp4cEaUVbB6gM3phrk6_u1s6p9ipBnbgQi3eyP5wuY2tVytzrUBNat-DIuo/s1600/18.png" height="175" width="320" /></a></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<v:shape id="Afbeelding_x0020_80" o:spid="_x0000_i1026" style="height: 257.25pt; mso-wrap-style: square; visibility: visible; width: 471pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image017.png">
</v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Here is
the final source of datasource.vhd<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Note that I renamed index to indexx because index might be a reserved word perhaps?</span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">library ieee ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> use
ieee.std_logic_1164.all ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> use
ieee.numeric_std.all ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span style="font-family: "Courier New"; font-size: 9.0pt; mso-bidi-font-size: 11.0pt;">-- datasource.vhd<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span style="font-family: "Courier New"; font-size: 9.0pt; mso-bidi-font-size: 11.0pt;">-- May-2014 Kees de
Groot<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- test-program for my DC-remover<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">-- this device outputs a 2s-complement sine of 32 points<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">entity datasource is<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">port (<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> reset : in std_logic;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> clk : in std_logic;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> sdata : out signed(11
downto 0)<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> ) ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">end datasource;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">architecture mydatasource of datasource is<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> signal indexx:
signed(4 downto 0);<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> signal
tmpdata: signed(11 downto 0);<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">begin <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> calcindex:
process (clk, reset) <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">
begin <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> if
(reset='1') then <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">
indexx <= "00000"; <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> elsif
(rising_edge(clk)) then <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">
indexx <= indexx + 1; <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> end
if; <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> end
process calcindex;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> myproc:
process (indexx)<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> begin<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> case(indexx)
is<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00000"
=> tmpdata <=
"001001011000";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00001"
=> tmpdata <=
"001101101001";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00010"
=> tmpdata <=
"010001101111";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00011"
=> tmpdata <=
"010101100001";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00100"
=> tmpdata <=
"011000110101";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00101"
=> tmpdata <=
"011011100100";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00110"
=> tmpdata <=
"011101100101";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "00111"
=> tmpdata <=
"011110110101";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01000"
=> tmpdata <=
"011111010000";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01001"
=> tmpdata <=
"011110110101";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01010"
=> tmpdata <=
"011101100101";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01011"
=> tmpdata <=
"011011100100";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01100"
=> tmpdata <=
"011000110101";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01101"
=> tmpdata <=
"010101100001";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01110"
=> tmpdata <=
"010001101111";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "01111"
=> tmpdata <=
"001101101001";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10000"
=> tmpdata <=
"001001011000";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10001"
=> tmpdata <=
"000101000110";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10010"
=> tmpdata <=
"000001000000";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10011"
=> tmpdata <=
"111101001111";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10100"
=> tmpdata <=
"111001111011";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10101"
=> tmpdata <= "110111001100";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10110"
=> tmpdata <=
"110101001011";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "10111"
=> tmpdata <=
"110011111011";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11000"
=> tmpdata <=
"110011100000";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11001"
=> tmpdata <=
"110011111011";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11010"
=> tmpdata <=
"110101001011";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11011"
=> tmpdata <=
"110111001100";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11100"
=> tmpdata <=
"111001111011";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11101"
=> tmpdata <=
"111101001111";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11110"
=> tmpdata <=
"000001000000";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when "11111"
=> tmpdata <=
"000101000110";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">when others => tmpdata <=
"000000000000";<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> end
case;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> end
process myproc;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;"> sdata
<= tmpdata;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #c2d69b; background-position: initial initial; background-repeat: initial initial; margin: 0cm 0cm 0.0001pt 35.4pt; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: "Courier New"; font-size: 9.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt;">end mydatasource;</span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
Somehow I found this URL on the web:</div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><a href="http://www.beesnotincluded.com/2012/04/two-modelsim-tips-you-should-know.html">http://www.beesnotincluded.com/2012/04/two-modelsim-tips-you-should-know.html</a></span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<h3 style="background: white; line-height: 16.8pt; margin-top: 3.0pt;">
<span lang="EN-US" style="color: #cc6600; font-family: "Georgia","serif"; font-weight: normal; mso-ansi-language: EN-US;">Analogue Waveforms<o:p></o:p></span></h3>
<div class="MsoNormal" style="background: white; line-height: 15.6pt;">
<span lang="EN-US" style="color: #333333; font-family: "Georgia","serif"; font-size: 10.0pt; mso-ansi-language: EN-US;">Modelsim can display a signal in your VHDL/Verilog
design as an analogue signal. One use for this is when you want to visualise
the output of a digital to analogue converter to see if you have synthesised
the waveform as you intended. To do this you can right-click on the signal name
in the Wave window and select it's properties. Switch to the Format tab and
select 'Analogue'. You can optionally set a maximum value for the signal so
that Modelsim can stretch your waveform to fit the height of the row. For
example, set it to 255 for an 8-bit DAC value.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<v:shape id="Afbeelding_x0020_86" o:spid="_x0000_i1025" style="height: 257.25pt; mso-wrap-style: square; visibility: visible; width: 471pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image018.png">
</v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_ixHsFFqmLAV5iFlAcS-dk07d_uyQTEKUvZIohgphlU9RJ_dsuD6K7XKFnzamJ1hmyvUWCAaqHaB8bt4JTQtv-Fnpa8wKRyFT41tOETCt0UnFMj0AOGkWF3PMt5YeHi_uNo0c5vxaodE/s1600/19.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_ixHsFFqmLAV5iFlAcS-dk07d_uyQTEKUvZIohgphlU9RJ_dsuD6K7XKFnzamJ1hmyvUWCAaqHaB8bt4JTQtv-Fnpa8wKRyFT41tOETCt0UnFMj0AOGkWF3PMt5YeHi_uNo0c5vxaodE/s1600/19.png" height="175" width="320" /></a></div>
<br />
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> It is even possible to get a decimal value of the wave under the cursor!!</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<h2>
<span lang="EN-US">Epilogue</span></h2>
<div>
<span lang="EN-US">Yes, ModelSim is awesome indeed. Testbenches are not difficult to construct once you grasp the overall idea. Now I am gonna make a testbench for my DC-remover using the above datasource.</span></div>
<div>
<span lang="EN-US"><br /></span></div>
<div>
<span lang="EN-US">Don't be afraid/shy study Altera's tutorial!</span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<br /></div>
<br />
<div class="MsoNoSpacing">
<br /></div>
Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com3tag:blogger.com,1999:blog-8531143406441550247.post-27390941352844873282014-04-26T20:28:00.000+02:002014-04-26T20:32:15.985+02:00Modelsim and bladeRF go happy together (hopefully)<h1>
<span lang="EN-US">Introduction and excuses<o:p></o:p></span></h1>
<div class="MsoNormal">
<span lang="EN-US">Busy period
last few weeks. Even a retired man sometimes has obligations. And other hobbies
perhaps.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">I did some programming
with SpaceClaim, what a wonderful 3D software! The keyboard of my laptop got
some Armagnac, what a waste! Now I use an external keyboard… I spent some weeks
in a caravan with my wife, of course I found some time to fiddle with my
bladeRF! And I had an ebook (well, actually a pdf file) about VHDL.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">But I found
some time to study more VHDL, surf the web and think about my bladeRF project.
Because the process is more important than my goal/end result I sometimes take
sideways instead of the main road to success. An email from Brian made me
thinking…<o:p></o:p></span></div>
<h1>
<span lang="EN-US">Simulate/debug<o:p></o:p></span></h1>
<div class="MsoNormal">
<span lang="EN-US">For a
simple project you just write some code, try it, find some errors, correct it
and finally it is OK. For a little bit more complicated projects this does not
work anymore. You need tools. You need an editor that helps you with the syntax
of your program, whether it is written in C, python or VHDL. Then you need a
debugger/simulator. I don’t like debuggers. I read the error codes, get my
aha-erlebnis, correct my errors (well, some, not all) and recompile. Sometimes a
lot of cycles in this process.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">Many times
I saw Mark, a former colleague, use a debugger. He always finds in a very short
time all the errors in a program. In the time that I need to edit and compile
he runs a debugger/simulator and finds all or most errors.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">Brian is
right: you need to use Modelsim to simulate your design. Not only to find
errors but also to better understand your very own program!<o:p></o:p></span></div>
<h1>
<span lang="EN-US">Modelsim<o:p></o:p></span></h1>
<div class="MsoNormal">
<span lang="EN-US">So I
decided to learn how to use Modelsim. I read the tutorial and did some
experiments. It seems that the tutorial describes a different version than I
have in my computer. I need a different method of working with Modelsim.
Instead of painfully following a script I will try to describe in global terms
what and why in the hope that this leads to a better way of understanding and doing simulation.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">In this
blog I will try to describe what I learnt so far, in the next blog I hope to
show some results.<o:p></o:p></span></div>
<h2>
<span lang="EN-US">Modelsim<o:p></o:p></span></h2>
<div class="MsoNoSpacing">
<span lang="EN-US">Alterras
tutorial uses two files:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">C:\altera\work\counter.vhd<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">C:\altera\work\tcounter.vhd<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Have a
look at these files.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<h3>
<span lang="EN-US">Counter.vhd</span></h3>
<div class="MsoNoSpacing">
<span lang="EN-US">Counter.vhd
is a regular vhdl-implementation of a counter. This file looks a bit
complicated/daunting because it is a
universal counter. Furthermore they use a function increment. But this is a nice
example of a universal VHDL-implementation of a counter. <o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">This
counter, counter.vhd, is simulated.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">For that,
you need an input for the signals clk and reset from the port specification and
in the simulation the count will be altered by the clk and reset-signals. In
the simulation you should be able to see all these signals.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">This
counter becomes the DUT, Device Under Test.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">How would
you test this counter on your lab bench? Well, I would take a button for the
reset-signal and a clock-generator connected at the clk-input of the counter.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Then I
would connect some display device at the count output of the counter.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I would
connect a power supply, start my clock generator and press the reset button.
Then I would have a look at the counter. If all is well, you would see an
increasing count value. I.e. the higher order bits of count should change less
often than the lower bits.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">This is
exactly what Modelsim will do. You have to connect the DUT to a test-setup.
What is a test-setup? A vhdl-file that tells the setup/connections at your
workbench and the settings of the signal-generator!<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<h3>
<span lang="EN-US">tcounter.vhd</span></h3>
<div class="MsoNoSpacing">
<span lang="EN-US">Now have
a look at tcounter.vhd<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Actually
it is a simple file. It describes the port-specification of the DUT, which is
our counter counter.vhd. Then incorporates it and feeds it with a clock and a
stimulus.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Clock is
a simple process that generates a clock-signal that is 10 ns high, 10 ns low.
One cycle is 20 ns which makes it into a 50 MHz clock. Simple eh?<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Stimulus
is a process that generates the reset
signal and then waits forever.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">If you
start Modelsim and feed it with these two VHDL-files you have your simulation.
But how exactly to do that?<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">To be
honest, I don’t know yet, but I will
find out soon…<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Stay
tuned!<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<br />
<h2>
<span lang="EN-US">Conclusion</span></h2>
<div>
<span lang="EN-US">The email from Brian as a response to my previous message is a perfect example of help from the Internet. Brian brought me back to the main road by a very concise and very good explanation of my problems. He did not solve all my problems by the way and that is good! </span></div>
<div>
<span lang="EN-US">I am gonna play around with Modelsim sometime till I know enough to use this product for all my future VHDL-problems. In the meantime I will try to describe what I did in the hope that others will have less problems than I have/had.</span></div>
<div>
<span lang="EN-US"><br /></span></div>
<div>
<span lang="EN-US">Hope this helps</span></div>
Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com0tag:blogger.com,1999:blog-8531143406441550247.post-14504733428255181682014-03-27T16:41:00.001+01:002014-03-27T16:41:40.160+01:00First VHDL-attempts to remove DC from BladeRF-outputs<h2>
<span lang="EN-US">First VHDL-attempts to remove DC from BladeRF-outputs</span></h2>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Well,
subject says it all.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Last few
weeks I did study VHDL a lot and came up with the following change of the
lms6002d.vhdl piece:<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">library ieee ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> use ieee.std_logic_1164.all ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> use ieee.numeric_std.all ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">-- modified to remove
DC-component<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">-- March-2014 KdG<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">entity lms6002d is<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> port (<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> -- RX Controls<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> rx_clock :
in std_logic ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> rx_reset :
in std_logic ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> rx_enable :
in std_logic ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> -- RX Interface with LMS6002D<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> rx_lms_data :
in signed(11 downto 0) ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> rx_lms_iq_sel :
in std_logic ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> rx_lms_enable :
buffer std_logic ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> -- RX Sample Interface<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> rx_sample_i :
buffer signed(11 downto 0) ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> rx_sample_q :
buffer signed(11 downto 0) ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> rx_sample_valid :
buffer std_logic ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> -- TX Controls<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tx_clock :
in std_logic ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tx_reset :
in std_logic ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tx_enable :
in std_logic ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> -- TX Sample Interface<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tx_sample_i :
in signed(11 downto 0) ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tx_sample_q :
in signed(11 downto 0) ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tx_sample_valid :
in std_logic ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> -- TX Interface to the LMS6002D<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tx_lms_data :
buffer signed(11 downto 0) ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tx_lms_iq_sel :
buffer std_logic ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tx_lms_enable :
buffer std_logic<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> ) ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">end entity ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">architecture arch of
lms6002d is<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">signal rx_average_i,
rx_average_q : signed(11 downto 0);<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">signal accum_i :
signed(18 downto 0) ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">signal accum_q :
signed(18 downto 0) ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">begin<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> -------------<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> -- Receive --<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> -------------<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> rx_sample : process(rx_clock, rx_reset)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> begin<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> if( rx_reset = '1' ) then<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> rx_sample_i <= (others =>'0')
;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> rx_sample_q <= (others =>'0')
;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> rx_average_i <= (others
=> '0'); -- KdG<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> rx_average_q <= (others
=> '0'); -- KdG <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> rx_sample_valid <= '0' ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> rx_lms_enable <= '0' ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> elsif( rising_edge( rx_clock ) ) then<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> if( rx_lms_iq_sel = '0' ) then<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> rx_lms_enable <= rx_enable ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> end if ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> rx_sample_valid <= '0' ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> if( rx_lms_enable = '1' ) then<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> if(rx_lms_iq_sel = '1' ) then<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> -- rx_sample_i <=
rx_lms_data;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="background: #FBD4B4; font-family: "Courier New"; mso-ansi-language: EN-US; mso-shading-themecolor: accent6; mso-shading-themetint: 102;"> rx_sample_i <= rx_lms_data -
rx_average_i; -- KdG</span><span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> else<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> -- rx_sample_q <=
rx_lms_data;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> rx_sample_q <= rx_lms_data - rx_average_q
; -- KdG<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> rx_sample_valid <= '1' ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> end if ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> end if ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> end if ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> end process ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> --------------<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> -- Transmit --<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> --------------<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tx_sample : process(tx_clock, tx_reset)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> variable tx_q_reg :
signed(11 downto 0) ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> begin<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> if( tx_reset = '1' ) then<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tx_lms_data <= (others =>'0')
;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tx_lms_iq_sel <= '0' ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tx_lms_enable <= '0' ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tx_q_reg := (others =>'0') ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> elsif( rising_edge( tx_clock ) ) then<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> if( tx_lms_iq_sel = '0' ) then<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tx_lms_enable <= tx_enable ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> end if ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> if( tx_sample_valid = '1' ) then<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tx_lms_data <= tx_sample_i ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tx_q_reg := tx_sample_q ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tx_lms_iq_sel <= '0' ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> elsif( tx_lms_enable = '1' ) then<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tx_lms_data <= tx_q_reg ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tx_lms_iq_sel <= '1' ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> else<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tx_lms_data <= (others
=>'0') ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> tx_lms_iq_sel <= '0' ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> end if ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> end if ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> end process ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> average: process(rx_sample_valid)<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">
variable count : integer ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> begin<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">
if( rising_edge( rx_sample_valid ) ) then<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">
if(rx_lms_iq_sel = '1' ) then<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> accum_i <= accum_i + rx_lms_data;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> else<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> accum_q <= accum_q + rx_lms_data;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> end if; <o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">
count := count + 1;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> if ( count > 128 ) then<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> count := 0;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> rx_average_i(11 downto 0) <= accum_i (18
downto 7);<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> rx_average_q(11 downto 0) <= accum_q (18
downto 7);<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> accum_i <= (others =>'0') ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> accum_q <= (others =>'0') ;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> end if;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">
end if;<o:p></o:p></span></div>
<div class="MsoNormal" style="background-color: #fbd4b4; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> end
process average;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">end architecture ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I
declared some signals and calculate the average in a separate process.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I get
some errors from Quartus:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: red; font-family: "Courier New"; mso-ansi-language: EN-US;">Error
(10028): Can't resolve multiple constant drivers for net
"rx_average_i[11]" at lms6002d.vhd(114)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: red; font-family: "Courier New"; mso-ansi-language: EN-US;">Error
(10029): Constant driver at lms6002d.vhd(53)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: red; font-family: "Courier New"; mso-ansi-language: EN-US;">Error
(10028): Can't resolve multiple constant drivers for net
"rx_average_i[10]" at lms6002d.vhd(114)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: red; font-family: "Courier New"; mso-ansi-language: EN-US;">Error
(10028): Can't resolve multiple constant drivers for net
"rx_average_i[9]" at lms6002d.vhd(114)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: red; font-family: "Courier New"; mso-ansi-language: EN-US;">Error
(10028): Can't resolve multiple constant drivers for net
"rx_average_i[8]" at lms6002d.vhd(114)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: red; font-family: "Courier New"; mso-ansi-language: EN-US;">Error
(10028): Can't resolve multiple constant drivers for net
"rx_average_i[7]" at lms6002d.vhd(114)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: red; font-family: "Courier New"; mso-ansi-language: EN-US;">Error
(10028): Can't resolve multiple constant drivers for net
"rx_average_i[6]" at lms6002d.vhd(114)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: red; font-family: "Courier New"; mso-ansi-language: EN-US;">Error
(10028): Can't resolve multiple constant drivers for net
"rx_average_i[5]" at lms6002d.vhd(114)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: red; font-family: "Courier New"; mso-ansi-language: EN-US;">Error
(10028): Can't resolve multiple constant drivers for net
"rx_average_i[4]" at lms6002d.vhd(114)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: red; font-family: "Courier New"; mso-ansi-language: EN-US;">Error
(10028): Can't resolve multiple constant drivers for net
"rx_average_i[3]" at lms6002d.vhd(114)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: red; font-family: "Courier New"; mso-ansi-language: EN-US;">Error
(10028): Can't resolve multiple constant drivers for net
"rx_average_i[2]" at lms6002d.vhd(114)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: red; font-family: "Courier New"; mso-ansi-language: EN-US;">Error
(10028): Can't resolve multiple constant drivers for net
"rx_average_i[1]" at lms6002d.vhd(114)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: red; font-family: "Courier New"; mso-ansi-language: EN-US;">Error
(10028): Can't resolve multiple constant drivers for net
"rx_average_i[0]" at lms6002d.vhd(114)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: red; font-family: "Courier New"; mso-ansi-language: EN-US;">Error
(10028): Can't resolve multiple constant drivers for net
"rx_average_q[11]" at lms6002d.vhd(114)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: red; font-family: "Courier New"; mso-ansi-language: EN-US;">Error
(10028): Can't resolve multiple constant drivers for net
"rx_average_q[10]" at lms6002d.vhd(114)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: red; font-family: "Courier New"; mso-ansi-language: EN-US;">Error
(10028): Can't resolve multiple constant drivers for net
"rx_average_q[9]" at lms6002d.vhd(114)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: red; font-family: "Courier New"; mso-ansi-language: EN-US;">Error
(10028): Can't resolve multiple constant drivers for net
"rx_average_q[8]" at lms6002d.vhd(114)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: red; font-family: "Courier New"; mso-ansi-language: EN-US;">Error
(10028): Can't resolve multiple constant drivers for net
"rx_average_q[7]" at lms6002d.vhd(114)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: red; font-family: "Courier New"; mso-ansi-language: EN-US;">Error
(10028): Can't resolve multiple constant drivers for net
"rx_average_q[6]" at lms6002d.vhd(114)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Thusfar
I do not understand this error-messages. <o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Because
it was a long time ago already that I posted something on my blog, this is a
kind of “I am still alive message”.<o:p></o:p></span></div>
<br />
<div class="MsoNoSpacing">
<span lang="EN-US">I will
dig into this problem, but I would LOVE to get some hints from VHDL-gurus!<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Next time I hope to come up with a working VHDl-solution.</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com1tag:blogger.com,1999:blog-8531143406441550247.post-49497377827232184872014-02-26T19:05:00.002+01:002014-02-26T19:05:57.238+01:00Removing the DC component on the fly<h2>
<span lang="EN-US">Correlator</span></h2>
<div class="MsoNoSpacing">
For the
GPS-frontend I need a correlator. The ADC-output from the LMS is 12 bits. That
is a lot of bits and makes the correlator huge. Therefore I want to reduce the ADC-output
to a single analogue value: -1 or +1.</div>
<div class="MsoNoSpacing">
<span lang="EN-US">This
reduction is not too difficult to put in an FPGA. All you have to do is:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">If
sample > average then output := 1 else output := -1 (or perhaps 0 in the latter case?)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">0/1 or
-1/+1 ?<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Multiply<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">+1 * +1
= +1<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">+1 * -1
= -1<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-1 * +1
= -1<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-1 * -1
= +1<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">This
looks like an EXOR:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">1 XOR 1
= 0<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">1 XOR 0
= 1<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">0 XOR 1
= 1<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">0 XOR 0
= 0<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<h2>
<span lang="EN-US">Average or DC-component</span></h2>
<div class="MsoNoSpacing">
<span lang="EN-US">If you
have a file with samples, calculating the average is very simple. Put all
samples in an accumulator and divide the result by the number of samples. But
waiting for a zillion of samples is not necessary. If you average the current
100 samples you have a fairly accurate estimation of the average. The average,
by the way, is the DC-component. With an FFT, or DFT for that matter, X[0] is
the DC-component, the average. But that is a little bit overdone. How many
samples do you need for a reasonable estimate of the average? I have to divide
the accumulated sum of the samples by the number of samples. If the number of
samples is a power of 2 then division is simply removing some zeroes or
shifting to the right!<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">So I
need two simple parallel processes:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">reducer:
Process() <o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> If sample > average<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> then output := 1<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> else output := -1<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">end
reducer<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">calc
average: Process()<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">accumaverage
:= 0<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">counter
:= 0<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> accumaverage := accumaverage + sample<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> counter := counter + 1<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> if counter == 128<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> then<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> average := accumaverage/128<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> counter := 0<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> accumaverage := 0<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">end calc
average<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">This
should be done for I and for Q. </span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> What number system is used by the ADC? Two’s
complement<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">How many
samples: 128, more? less?<o:p></o:p></span></div>
<br />
<div class="MsoNoSpacing">
<span lang="EN-US">If the
average is reasonable constant, this is a good estimation if you have ‘enough’
samples. If the average fluctuates a bit, you want as few samples as possible.
How few? Furthermore you want the estimation of the average asap, so fewer
samples is better.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<h2>
<span lang="EN-US">Simulations in python</span></h2>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span style="font-family: "Courier New";">#
binaryAverage01.py<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span style="font-family: "Courier New";">#
Feb-2014 Kees de Groot<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">#<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># remove average (DC-component)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># by accumulating 128 samples and divide by 128<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># perform some experiments/simulations<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> <o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">import pylab as pl<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">import numpy as np<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">import math<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">import sys<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">######################################################################<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">############# parameter section
######################################<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">######################################################################<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">path = '/Temp/'<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">filename = 'DDOUD.csv'<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">f = open(path + filename, 'rb')<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">print "filename = ", path + filename<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">skip = 0 # 10000 # there is a discontinuity in the
file<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> # so
skip half of it<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">print "skip ", skip, "samples of
input-data from datafile"<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">###########################################<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">#############
main loop ##################<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">###########################################<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">dataI = []<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">dataQ = []<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averI = 0.0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averQ = 0.0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># read (I,Q) from bladeRF file<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">n = 1024<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">i = 0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">for line in f:<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> skip = skip
- 1<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> if skip >
0:<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> continue<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> list =
line.split(',')<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> Q =
int(list[0])<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> averQ += Q<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> I =
int(list[1])<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> averI += I<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">
dataI.append(I)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">
dataQ.append(Q)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> i += 1<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> if i >=
n:<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> break<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">print "read ", n, " samples from
file"<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">print "averI = ", averI<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">print "averQ = ", averQ <o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averI = averI/n<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averQ = averQ/n<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">print "averI/n = ", averI<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">print "averQ/n = ", averQ<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">pl.figure(1)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">pl.title("raw I/Q")<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span style="font-family: "Courier New";">pl.plot(dataI,
dataQ, 'ro')<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">##pl.figure(2)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">##pl.title("dataI")<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">##pl.plot(dataI)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">##pl.figure(3)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">##pl.title("dataQ")<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">##pl.plot(dataQ)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">##pl.show()<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># sys.exit('debug')<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># remove DC-component<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">dataC = []<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">for i in range(len(dataI)):<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> dataI[i] -=
averI<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> dataQ[i] -=
averQ<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> <o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">pl.figure(4)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">pl.title("I/Q, DC-component removed")<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span style="font-family: "Courier New";">pl.plot(dataI,
dataQ, 'ro')<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">pl.show()<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">sys.exit('debug')<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">With
output<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC
v.1500 32 bit (Intel)] on win32<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">Type "copyright", "credits" or
"license()" for more information.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">>>> ================================ RESTART
================================<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">>>> <o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">filename =
/Temp/DDOUD.csv<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">skip 0 samples
of input-data from datafile<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">read 1024 samples from file<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averI =
518907.0<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averQ =
628875.0<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averI/n =
506.745117188<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">
</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averQ/n =
614.135742188<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikYv5vGdWAwbUep98UGC4XL0cmJY1jMbgczj9LORnJ4EgUYfJ1mxpEFunCvqq1zLXZuKJwEvUe0ijAw5L7kMBLgBCwNRbbfEUxZziF6_jzSPS1RJtIDSm1Ie8dT8BE1IAyzionvLUllVE/s1600/01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikYv5vGdWAwbUep98UGC4XL0cmJY1jMbgczj9LORnJ4EgUYfJ1mxpEFunCvqq1zLXZuKJwEvUe0ijAw5L7kMBLgBCwNRbbfEUxZziF6_jzSPS1RJtIDSm1Ie8dT8BE1IAyzionvLUllVE/s1600/01.png" height="270" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">The
center of the cluster datapoints is at about (500,600)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9AuUv4l7yeSiOEV8ykU74w5L2HWTVeMX375fs1BwFjfNN7Rl0zKF78gYZHnD_TaW6hXLd3QB-AxeS3V6E7boeCmTK2bmeRARNzpHr40LCj21Q0_zgYYRUoqML9GaX7_mdgf4kzAwhRSs/s1600/02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9AuUv4l7yeSiOEV8ykU74w5L2HWTVeMX375fs1BwFjfNN7Rl0zKF78gYZHnD_TaW6hXLd3QB-AxeS3V6E7boeCmTK2bmeRARNzpHr40LCj21Q0_zgYYRUoqML9GaX7_mdgf4kzAwhRSs/s1600/02.png" height="270" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">With the
DC component removed, the center is at (0, 0).<o:p></o:p></span></div>
<h1>
<span lang="EN-US">Moving average<o:p></o:p></span></h1>
<div class="MsoNormal">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># binaryAverage02.py<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># Feb-2014 Kees de Groot<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">#<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># remove average (DC-component)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># by accumulating 128 samples and divide by 128<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># perform some experiments/simulations<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> <o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">import pylab as pl<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">import numpy as np<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">import math<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">import sys<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">######################################################################<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">############# parameter section
######################################<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">######################################################################<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">path = '/Temp/'<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">filename = 'DDOUD.csv'<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">f = open(path + filename, 'rb')<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">print "filename = ", path + filename<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">skip = 0 # 10000 # there is a discontinuity in the
file<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> # so skip half of it<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">print "skip ", skip, "samples of
input-data from datafile"<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">###########################################<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">#############
main loop ##################<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">###########################################<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">n = 1024 # number of samples to process<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">countermax = 128 # number of samples to average<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">counter = 0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">dataI = []<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">dataQ = []<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averI = 0.0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averQ = 0.0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">accQ = 0.0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">accI = 0.0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># read (I,Q) from bladeRF file<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">i = 0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">for line in f:<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> skip = skip
- 1<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> if skip >
0:<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> continue<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> list =
line.split(',')<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> Q =
int(list[0])<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> accQ += Q<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> I =
int(list[1])<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> accI += I<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">
dataI.append(I - averI)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">
dataQ.append(Q - averQ)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> i += 1<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> if i >=
n:<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> break<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> counter += 1<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> if counter
== countermax:<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> averQ =
accQ / countermax<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> accQ = 0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> averI =
accI / countermax<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> accI = 0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> counter
= 0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> <o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">print "read ", n, " samples from
file"<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">print "averI = ", averI<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">print "averQ = ", averQ <o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averI = averI/n<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averQ = averQ/n<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">print "averI/n = ", averI<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">print "averQ/n = ", averQ<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">pl.figure(1)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">pl.title("raw I/Q")<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span style="font-family: "Courier New";">pl.plot(dataI,
dataQ, 'ro')<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">##pl.figure(2)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">##pl.title("dataI")<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">##pl.plot(dataI)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">##pl.figure(3)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">##pl.title("dataQ")<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">##pl.plot(dataQ)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">pl.show()<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">sys.exit('debug')<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># remove DC-component<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">dataC = []<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">for i in range(len(dataI)):<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> dataI[i] -=
averI<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> dataQ[i] -=
averQ<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> <o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">pl.figure(4)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">pl.title("I/Q, DC-component removed")<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span style="font-family: "Courier New";">pl.plot(dataI,
dataQ, 'ro')<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">pl.show()<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">sys.exit('debug')<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">With
output<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC
v.1500 32 bit (Intel)] on win32<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">Type "copyright", "credits" or
"license()" for more information.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">>>> ================================ RESTART
================================<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">>>> <o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">filename =
/Temp/DDOUD.csv<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">skip 0 samples
of input-data from datafile<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">read 1024 samples from file<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averI = 510<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averQ = 621<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averI/n = 0<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">
</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averQ/n = 0<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdRG45sjX96QkFSA7Ln4OTCzQTnasR1_j6dhGd5dVbZ0jUJ_AvK7SGoJXJGVURev9SvGnwyNyi5JPCRXj6TC20jrLlngZjxJykRwbroxW9DCujBUcKGxxQqtpl75KyuI72HYojRZu0Y2M/s1600/03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdRG45sjX96QkFSA7Ln4OTCzQTnasR1_j6dhGd5dVbZ0jUJ_AvK7SGoJXJGVURev9SvGnwyNyi5JPCRXj6TC20jrLlngZjxJykRwbroxW9DCujBUcKGxxQqtpl75KyuI72HYojRZu0Y2M/s1600/03.png" height="271" width="320" /></a></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">The
first 128 points have the original DC-component and are topright in the figure.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">The
remaining sample have the DC-component removed, so are upperleft, around (0,0)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<h1>
<span lang="EN-US">Plot of moving average<o:p></o:p></span></h1>
<div class="MsoNormal">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># binaryAverage03.py<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># Feb-2014 Kees de Groot<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">#<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># remove average (DC-component)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># by accumulating 128 samples and divide by 128<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># perform some experiments/simulations<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># plot average<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> <o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">import pylab as pl<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">import numpy as np<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">import math<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">import sys<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">######################################################################<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">############# parameter section
######################################<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">######################################################################<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">path = '/Temp/'<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">filename = 'DDOUD.csv'<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">f = open(path + filename, 'rb')<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">print "filename = ", path + filename<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">skip = 0 # 10000 # there is a discontinuity in the
file<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> # so
skip half of it<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">print "skip ", skip, "samples of
input-data from datafile"<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">###########################################<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">#############
main loop ##################<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">###########################################<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">n = 1024*256 # number of samples to process<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">print "n = (number of samples to process)",
n<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">countermax = 32 # number of samples to average<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">counter = 0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">dataI = []<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">dataQ = []<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averI = 0.0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averQ = 0.0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">accQ = 0.0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">accI = 0.0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averageI = []<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># read (I,Q) from bladeRF file<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">i = 0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">for line in f:<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> skip = skip
- 1<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> if skip >
0:<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> continue<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> list =
line.split(',')<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> Q =
int(list[0])<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> accQ += Q<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> I =
int(list[1])<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> accI += I<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">
dataI.append(I - averI)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">
dataQ.append(Q - averQ)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> i += 1<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> if i >=
n:<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> break<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> counter += 1<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> if counter
== countermax:<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> averQ =
accQ / countermax<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> accQ = 0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> averI =
accI / countermax<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">
averageI.append(averI)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> accI = 0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> counter
= 0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> <o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">print "read ", n, " samples from
file"<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">print "averI = ", averI<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">print "averQ = ", averQ <o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averI = averI/n<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averQ = averQ/n<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">print "averI/n = ", averI<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">print "averQ/n = ", averQ<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">pl.figure(1)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">pl.title("raw I/Q")<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span style="font-family: "Courier New";">pl.plot(dataI,
dataQ, 'ro')<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">pl.figure(2)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">pl.title("average I")<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">pl.plot(averageI)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">##pl.figure(3)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">##pl.title("dataQ")<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">##pl.plot(dataQ)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">pl.show()<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">sys.exit('debug')<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># remove DC-component<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">dataC = []<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">for i in range(len(dataI)):<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> dataI[i] -=
averI<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> dataQ[i] -=
averQ<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"> <o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">pl.figure(4)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">pl.title("I/Q, DC-component removed")<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span style="font-family: "Courier New";">pl.plot(dataI,
dataQ, 'ro')<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">pl.show()<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">sys.exit('debug')<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">With output<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<br /></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">>>> ================================ RESTART
================================<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">>>> <o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">filename =
/Temp/DDOUD.csv<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">skip 0 samples
of input-data from datafile<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">n = (number of samples to process) 262144<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">read
262144 samples from file<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averI = 487<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averQ = 597<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averI/n = 0<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">
</span></div>
<div class="MsoNoSpacing" style="background: #FABF8F; mso-background-themecolor: accent6; mso-background-themetint: 153;">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">averQ/n = 0<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_XxRxD6JEA01DumJHE3PQNsBZBK56lXenD8bjsW-Zh83dwmrqUBAKD8SqgbPIPcynz_hyphenhyphenPyqfkpADU6fGDTMTN1lMfym-_DLLyQ48JDkDBDjMOmUuc8Dk2nn5031yf_A169fxuqHZnYA/s1600/05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_XxRxD6JEA01DumJHE3PQNsBZBK56lXenD8bjsW-Zh83dwmrqUBAKD8SqgbPIPcynz_hyphenhyphenPyqfkpADU6fGDTMTN1lMfym-_DLLyQ48JDkDBDjMOmUuc8Dk2nn5031yf_A169fxuqHZnYA/s1600/05.png" height="271" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIDCNf9uaX5kW6RCq0Z-Me5k8B5aFOyVKft3-P4qeX9muW1zS4Z195QBsA6h70M95mGNij27dKL62K4r8xRsKMwmA8eSLrpvr9mqQHmam6vGIWCYi8_VkzXwKFPMQJc3IEZolR4eKC72w/s1600/04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIDCNf9uaX5kW6RCq0Z-Me5k8B5aFOyVKft3-P4qeX9muW1zS4Z195QBsA6h70M95mGNij27dKL62K4r8xRsKMwmA8eSLrpvr9mqQHmam6vGIWCYi8_VkzXwKFPMQJc3IEZolR4eKC72w/s1600/04.png" height="271" width="320" /></a></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Ah,
interesting. Why peaks?<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;">
</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Need
some more experiments. At the moment enough interesting things for my blog…<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<h2>
<span lang="EN-US">Summary</span></h2>
<div>
<span lang="EN-US">With a python program I simulated the behaviour of a piece of VHDL-code that I want to try out in the next instalment of this blog. This looks promising but at the end I found some strange peaks in the plot that I have to understand.</span></div>
<div>
<span lang="EN-US"><br /></span></div>
<div>
<span lang="EN-US">As always: if you find errors, if you have suggestions, if you see what I don't see immediately, please comment. </span></div>
Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com0tag:blogger.com,1999:blog-8531143406441550247.post-33036878481963329102014-02-03T23:58:00.000+01:002014-02-03T23:58:28.411+01:00bladeRF FPGA programmed with Quartus GUI and blinking LEDs revisited<h2>
<span lang="EN-US">Finally success with the blinking LEDs</span></h2>
<div class="MsoNormal">
Last time I deleted
the whole work directory… That was not so clever.</div>
<div class="MsoNormal">
<br /></div>
<h3>
By the way I did all this in Windows 7</h3>
<h2>
<span lang="EN-US">Recreate
bladerf-master and start again</span></h2>
<div class="MsoNormal">
<span lang="EN-US">But first
save C:\bladeRF-master\hdl\fpga\platforms\bladerf\vhdl\bladerf-hosted.vhd to c:\temp<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">Unzip
bladerf-master.zip to c:\bladerf-master<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">Copy
c:\temp\ bladerf-hosted.vhd to C:\bladeRF-master\hdl\fpga\platforms\bladerf\vhdl\
(overwrite existing file)<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Now start
NIOS-shell<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Oeps: too
bad, error in the file I edited:<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;">Info (12021): Found 2 design units, including 1 entities, in source file
/bladerf-master/hdl/fpga/platforms/bladerf/vhdl/fx3_gpif.vhd<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;"> Info (12022): Found design
unit 1: fx3_gpif-sample_shuffler<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;"> Info (12023): Found entity 1:
fx3_gpif<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;">Error (10500): VHDL syntax error at bladerf-hosted.vhd(591) near text
"="; expecting "(",
or "'", or "." File: C:/bladerf-master/hdl/fpga/platforms/bladerf/vhdl/bladerf-hoste<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;">d.vhd Line: 591<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;">Info (12021): Found 0 design units, including 0 entities, in source file
/bladerf-master/hdl/fpga/platforms/bladerf/vhdl/bladerf-hosted.vhd<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;">Info (144001): Generated suppressed messages file C:/bladerf-master/hdl/quartus/work/output_files/hosted.map.smsg<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;">Error: Quartus II 32-bit Analysis & Synthesis was unsuccessful. 1
error, 2 warnings<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;"> Error: Peak virtual memory:
397 megabytes<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;"> Error: Processing ended: Mon
Feb 03 22:05:23 2014<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;"> Error: Elapsed time: 00:00:06<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;"> Error: Total CPU time (on all
processors): 00:00:06<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;">Result: ERROR: Error(s) found while running an executable. See report
file(s) for error message(s). Message log indicates which executable was run
last.<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<br /></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;">ERROR: Analysis & Synthesis Failed<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;">Error (23031): Evaluation of Tcl script ../build.tcl unsuccessful<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;">Error: Quartus II 32-bit Shell was unsuccessful. 7 errors, 2 warnings<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;"> Error: Peak virtual memory:
198 megabytes<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;"> Error: Processing ended: Mon
Feb 03 22:05:24 2014<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;"> Error: Elapsed time: 00:00:35<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;"> Error: Total CPU time (on all
processors): 00:00:02<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<br /></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;">lonneke@lonneke-VAIO /cygdrive/c/bladerf-master/hdl/quartus<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;">$<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">But perhaps
now I can get my GUI and solve the problem?<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Double-click
on C:\bladeRF-master\hdl\quartus\work\ bladerf.qpf<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I get my
Quartus GUI with the bladerf-project!<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">And the following notice:</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO_f8oBM5JIjJFS-Io-0oSMismxy72d0xuufQCsWb8e2NiBNmOEUT8Qdic-e_97saLofam21XLHCcQ9dCkG-dqvdzkNzrRmTiMmXoa78l3U2qiYRrUMFhO15CLXPVxR4oWA6Fyg2pwH9A/s1600/01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO_f8oBM5JIjJFS-Io-0oSMismxy72d0xuufQCsWb8e2NiBNmOEUT8Qdic-e_97saLofam21XLHCcQ9dCkG-dqvdzkNzrRmTiMmXoa78l3U2qiYRrUMFhO15CLXPVxR4oWA6Fyg2pwH9A/s1600/01.png" height="135" width="320" /></a></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<v:shapetype coordsize="21600,21600" filled="f" id="_x0000_t75" o:preferrelative="t" o:spt="75" path="m@4@5l@4@11@9@11@9@5xe" stroked="f">
<v:stroke joinstyle="miter">
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0">
<v:f eqn="sum @0 1 0">
<v:f eqn="sum 0 0 @1">
<v:f eqn="prod @2 1 2">
<v:f eqn="prod @3 21600 pixelWidth">
<v:f eqn="prod @3 21600 pixelHeight">
<v:f eqn="sum @0 0 1">
<v:f eqn="prod @6 1 2">
<v:f eqn="prod @7 21600 pixelWidth">
<v:f eqn="sum @8 21600 0">
<v:f eqn="prod @7 21600 pixelHeight">
<v:f eqn="sum @10 21600 0">
</v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:formulas>
<v:path gradientshapeok="t" o:connecttype="rect" o:extrusionok="f">
<o:lock aspectratio="t" v:ext="edit">
</o:lock></v:path></v:stroke></v:shapetype><v:shape id="Afbeelding_x0020_51" o:spid="_x0000_i1025" style="height: 135.75pt; mso-wrap-style: square; visibility: visible; width: 323.25pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png">
</v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">OK,
solve that problem later<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I found the error in my change to bladerf-hosted.vhd, I used ‘=’, but should use ‘<=’<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US"> led(2) = '1'; -- KdG 2-Feb-2014<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">changed to:<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> led(2) <= '1'; --
KdG 2-Feb-2014<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Now try
to recompile from with the GUI<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">On the
upper bar click Processing, Start Compilation<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">After a
few minutes processing:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> YEP!! There it is: C:\bladeRF-master\hdl\quartus\work\output_files\
hosted.rbf<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> At C:\Program Files (x86)\bladeRF there is
already an hosted.rbf, so rename to hosted01.rbf<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Copy
hosted.rbf to this location.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">And now
start bladerf-cli en load fpga hosted.rbf!!!<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;">[WARNING] extract_field: Field checksum mismatch<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;">[WARNING] Could not extract VCTCXO trim value<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;">[WARNING] extract_field: Field checksum mismatch<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;">[WARNING] Could not extract FPGA size<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;">bladeRF> load fpga hosted.rbf<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;">Loading fpga from hosted.rbf...<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;">Done.<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: black; mso-background-themecolor: text1;">
<span lang="EN-US" style="color: white; mso-ansi-language: EN-US; mso-themecolor: background1;">bladeRF><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">On the
bladerf-board now LED1 is off, LED2 is blinking about 5 times in 10 seconds,
LED3 is permanently on<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">So,<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">led(1) =
LED2<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">led(2) =
LED3<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">led(3) =
LED1<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Another
change in bladerf-hosted.vhd to be sure:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-- led(2) <= tx_underflow_led ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> led(2) <= '1'; --
KdG 2-Feb-2014<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-- led(3) <= rx_overflow_led ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> led(3) <= not led(1) ; <o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Now I
expect LED1 and LED2 to blink alternately and </span>LED3 is
still on</div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Compilation
successful<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">At C:\Program
Files (x86)\bladeRF there is already an hosted.rbf, so rename to hosted02.rbf<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">Load fpga
hosted.rbf<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Oeps: LED1
is off, LED2 and LED3 blink alternatively!<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">LED1 =
led(2)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">LED2 =
led(1)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">LED3 =
led(3)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Perhaps
LED1 is active low?<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">I’ll change
led(2) to be 0<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-- led(2) <= tx_underflow_led ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> led(2) <= '0'; --
KdG 2-Feb-2014<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-- led(3) <= rx_overflow_led ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> led(3) <= not led(1) ; <o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">save all<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Processing,
start compilation<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Compilation
successful<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">At C:\Program
Files (x86)\bladeRF there is already an hosted.rbf, so rename to hosted03.rbf<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">Load fpga
hosted.rbf<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Interesting:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">LED1 is
permanently on, so obviously is ‘active low’<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">LED2 and
LED3 blink alternatively<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I guess
LED2 and LED3 are also ‘active low’??<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Set all
three LEDs to a ‘0’, if all three are permanently on, then they are all active
low (what I expect)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> if( count = 0 ) then<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-- count := 100_000_00 ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> count := 100_000_000 ; -- KdG
2-Feb-2014
<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-- led(1) <= not led(1) ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> end if ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> end if ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> end process ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> led(1) <= '0' ; <o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-- led(2) <= tx_underflow_led ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> led(2) <= '0'; --
KdG 2-Feb-2014<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-- led(3) <= rx_overflow_led ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> led(3) <= '0' ; <o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">YEP: all
three are on now!<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">By the
way: why is the outputfile named hosted.rbf?? I would expect hostedx115.rbf<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<br />
<h2>
<span lang="EN-US"> Summary</span></h2>
<div>
I found out experimentally that the LEDs are active low.</div>
<div>
<div class="MsoNoSpacing">
<span lang="EN-US">LED1 = led(2)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">LED2 = led(1)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">LED3 = led(3)</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I managed to set up the bladerf project in Quartus and now I can use the GUI</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I managed to edit a .vhd file from the Quartus GUI</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I managed to compile the whole project and get an hosted.rbf</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I managed to load the hosted.rbf into the bladerf-FPGA</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Now I have a good starting-point for serious FPGA-programming!</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Incredible how far you can come with a few words in an email: thanks a lot, Brian!</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghhKGMr_yCCEmLTuBDCSiKGXb7TfdgYfQGBtu1Q0ftSF-W3DzfsW3K_PH1UP3sbu9G5J3wbr6QQeLAk-4v2Nw25OEQkX2p6j16sjcoN9Bpvq3fO6GKRbpclHM2o3kc2FZEItHqg9B83xI/s1600/02+(Small).jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghhKGMr_yCCEmLTuBDCSiKGXb7TfdgYfQGBtu1Q0ftSF-W3DzfsW3K_PH1UP3sbu9G5J3wbr6QQeLAk-4v2Nw25OEQkX2p6j16sjcoN9Bpvq3fO6GKRbpclHM2o3kc2FZEItHqg9B83xI/s1600/02+(Small).jpg" height="320" width="240" /></a></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
</div>
<div>
<br /></div>
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com0tag:blogger.com,1999:blog-8531143406441550247.post-68016476628226686112014-02-03T00:13:00.000+01:002014-02-03T00:13:06.033+01:00Finally I can generate a fresh new blinking warm hostedx115.rbf from the bladerf hdl sources!Brian was so kind to answer my last "mayday, mayday, mayday" message.<br />
<br />
To keep you informed I just copy and paste the last info from my private-diary:<br />
<br />
<h2>
Get a stable starting-point from scratch</h2>
<div class="MsoNoSpacing">
<span lang="EN-US">Get the latest bladerf software.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Nuand.com, support, alle relevant … and end at <a href="https://github.com/Nuand/bladeRF">https://github.com/Nuand/bladeRF</a><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">At right of the page is download zip (yes, I know, I should clone, but don’t yet know how, sorry…)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">bladeRF-master (3).zip is in my download-area.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Rename old bladeRF-master to bladeRF-master03<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Extract to C:\bladeRF-master<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">May be wise to get the latest firmware too.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">The latest image is pointed to by: <a href="http://www.nuand.com/fx3/latest.img">http://www.nuand.com/fx3/latest.img</a><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Download latest.img and copy to C:\Program Files (x86)\bladeRF for loading with bladerf-cli<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">To be sure download FPGA-firmware from <a href="http://nuand.com/fpga/">http://nuand.com/fpga/</a> choose V0.0.3 hostedx115.rbf<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Rename current hostedx115.rbf to hostedx115.rbf_01<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Now copy hostedx115.rbf to directory C:\Program Files (x86)\bladeRF<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Now connect bladerf-board using USB2-port, and flash latest.img, power remove/connect, flash with hostedx115.rbf<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Connect power (I use external poweradaptor), connect to USB2<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">One green LED D1 shows a nice constant green light.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Startup bladerf-cli (I use windows by the way)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">[WARNING] extract_field: Field checksum mismatch<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">[WARNING] Could not extract VCTCXO trim value<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">[WARNING] extract_field: Field checksum mismatch<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">[WARNING] Could not extract FPGA size<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">bladeRF> load fx3 latest.img<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">Flashing firmware from latest.img...<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">[INFO] Erasing 0x20000 bytes starting at address 0x00<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">[INFO] Erased sector at 0x00...<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">[INFO] Erased sector at 0x10000...<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">[INFO] Writing 0x20000 bytes starting at address 0x00<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">[INFO] Verifying 0x20000 bytes starting at address 0x00<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">Done. Cycle power on the device.<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">bladeRF></span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Remove/reconnect power<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">bladeRF> probe<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> Backend: libusb<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> Serial: b436de8c8212b9aeaaeba852246866e7<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> USB Bus: 2<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> USB Address: 6<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">bladeRF> version<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> bladeRF-cli version: 0.7.0-git<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> libbladeRF version: 0.9.0-git<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">[ERROR] status < 0: LIBUSB_ERROR_IO<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">Error: File or device I/O failure<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">bladeRF> exit</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">oeps, error, disconnect/reconnect USB and restart bladeRF<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">[WARNING] extract_field: Field checksum mismatch<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">[WARNING] Could not extract VCTCXO trim value<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">[WARNING] extract_field: Field checksum mismatch<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">[WARNING] Could not extract FPGA size<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">bladeRF> load fpga hostedx115.rbf<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">Loading fpga from hostedx115.rbf...<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">Done.<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">bladeRF></span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">YEP! LED2 blinks about 40 times in 10 seconds, LED1 is off and LED3 is on.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<h2>
<span lang="EN-US">Now try to create hostedx115.rbf from scratch</span></h2>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">From this stable situation I am trying to create a new hostedx115.rbf with Quartus.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<h2>
<span lang="EN-US">Little bit confusion about the LEDs</span></h2>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">In the file C:\bladeRF-master\hdl\fpga\platforms\bladerf\vhdl\ bladerf-hosted.vhd:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New";">…<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New";"> count := 100_000_00 ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New";"> led(1) <= not led(1) ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New";"> end if ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New";"> end if ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New";"> end process ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New";"> led(2) <= tx_underflow_led ;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New";"> </span><span style="font-family: "Courier New";">led(3) <= rx_overflow_led ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">…<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I would expect led(1) to blink, not LED2<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">But, I might presume that LED1 = led(1), LED2 = led(2) and LED3 = led(3) but is that true?<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">The file C:\bladeRF-master\hdl\fpga\platforms\bladerf\constraints\pins.tcl contains:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New";">set_location_assignment PIN_AA7 -to led[1]<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New";">set_location_assignment PIN_AB7 -to led[2]<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New";">…<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: "Courier New";">set_location_assignment PIN_AB10 -to led[3]<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Now to the schematics to find:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Sheet 3 of 14 FPGA “LEFT” BANK<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">LED1 = D11 AA7<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">LED2 = D12 AB7<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">AB10 is not connected on the schematic<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">On the bladeRF-board I read<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">LED1 = D12 (left)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">LED2 = D11 (middle)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">LED3 = D13 (right)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">So, the middle blinking LED must be led(1)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I guess that the left LED must be led(2)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I’ll try to change the blinking rate of led(1) and set led(2) to the on state ‘1’<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">But firstly try to get a home-made hostedx115.rbf without any changes.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<v:shapetype coordsize="21600,21600" filled="f" id="_x0000_t75" o:preferrelative="t" o:spt="75" path="m@4@5l@4@11@9@11@9@5xe" stroked="f"><v:stroke joinstyle="miter"><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"><v:f eqn="sum @0 1 0"><v:f eqn="sum 0 0 @1"><v:f eqn="prod @2 1 2"><v:f eqn="prod @3 21600 pixelWidth"><v:f eqn="prod @3 21600 pixelHeight"><v:f eqn="sum @0 0 1"><v:f eqn="prod @6 1 2"><v:f eqn="prod @7 21600 pixelWidth"><v:f eqn="sum @8 21600 0"><v:f eqn="prod @7 21600 pixelHeight"><v:f eqn="sum @10 21600 0"></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:formulas><v:path gradientshapeok="t" o:connecttype="rect" o:extrusionok="f"><o:lock aspectratio="t" v:ext="edit"></o:lock></v:path></v:stroke></v:shapetype><v:shape id="Afbeelding_x0020_52" o:spid="_x0000_i1029" style="height: 174pt; visibility: visible; width: 470.25pt;" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"></v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<b><i><span lang="EN-US" style="font-size: 10pt;">In Windows, you should be able to open the Nios II Command Shell (look in your Start menu). You can then navigate to the hdl/quartus directory and use the build_bladerf.sh script to build your project.<o:p></o:p></span></i></b></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<br /></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<b><i><span lang="EN-US" style="font-size: 10pt;">You can open the resulting project using the GUI in the work directory that gets created by the script.<o:p></o:p></span></i></b></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<br /></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<b><i><span lang="EN-US" style="font-size: 10pt;">Also note there is a README in the HDL directory to help with compilation. We currently use Quartus II 13.1 for building. Please make sure you are up to date.<o:p></o:p></span></i></b></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<br /></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<b><i><span lang="EN-US" style="font-size: 10pt;">I keep an eye on your blog and love what you're doing. Please keep it up! :)<o:p></o:p></span></i></b></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<br /></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<br /></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<br /></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<b><i><span lang="EN-US" style="font-size: 10pt;">Posted by Brian to SDR with BladeRF at February 1, 2014 at 3:43 AM<o:p></o:p></span></i></b></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Start, Altera 13.1.0.162 Web Edition, NIOS II EDS 13.1.0.162, NIOS II 13.1 Command Shell<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<v:shape id="Afbeelding_x0020_53" o:spid="_x0000_i1028" style="height: 127.5pt; visibility: visible; width: 470.25pt;" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image002.png"></v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">------------------------------------------------<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">Altera Nios2 Command Shell [GCC 4]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">Version 13.1, Build 162<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">------------------------------------------------<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">lonneke@lonneke-VAIO /cygdrive/c/altera/13.1<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">$ cd ..<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">lonneke@lonneke-VAIO /cygdrive/c/altera<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">$ dir<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">13.0sp1 13.1<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">lonneke@lonneke-VAIO /cygdrive/c/altera<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">$ cd ..<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">lonneke@lonneke-VAIO /cygdrive/c<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">$ dir<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">$Recycle.Bin END Music Quartus System\ Volume\ Information WirelessDiagLog.csv default_xdb magazines version<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">BBHuur Elektor POI RHDSetup.log Temp Xilinx eclipse pagefile.sys vmware<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">Backup\ docs\ iPad Firefox PerfLogs SPLASH.000 Update _FS_SWRINFO fftrlog.txt prive<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">CampingWijzer ISOimages Photo SPLASH.SYS Users altera hiberfil.sys splash.idx<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">Cypress Intel Program\ Files Sdr Utrecht bladeRF-master homepage t<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">DesignSparkMech Keil Program\ Files\ (x86) SiLabs VAIO\ Sample\ Contents bladeRF-master_01 java test.xml<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">Documentation LinuxBoard ProgramData Softw\ Radio WinRadio bladeRF-master_02 javaprojects usb_driver<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">Documents\ and\ Settings MSOCache Python27 SwSetup Windows bladeRF-master_03 lv.log user.js<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">lonneke@lonneke-VAIO /cygdrive/c<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">$ cd bladerf-master<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">lonneke@lonneke-VAIO /cygdrive/c/bladerf-master<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">$ dir<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">CMakeLists.txt CONTRIBUTORS COPYING README.md debian firmware_common fx3_firmware hdl host legal<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">lonneke@lonneke-VAIO /cygdrive/c/bladerf-master<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">$ cd hdl<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">lonneke@lonneke-VAIO /cygdrive/c/bladerf-master/hdl<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">$ dir<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">README.md fpga quartus<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">lonneke@lonneke-VAIO /cygdrive/c/bladerf-master/hdl<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">$ cd quartus<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">lonneke@lonneke-VAIO /cygdrive/c/bladerf-master/hdl/quartus<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">$ dir<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">bladerf.tcl build.tcl build_bladerf.sh constraints ip.ipx signaltap<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">lonneke@lonneke-VAIO /cygdrive/c/bladerf-master/hdl/quartus<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">$ bash build_bladerf.sh -h<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">bladeRF FPGA build script<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">Usage: build_bladerf.sh -r <rev> -s <size><o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">Options:<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> -r <rev> FPGA revision<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> -s <size> FPGA size<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> -a <stp> SignalTap STP file<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> -h Show this text<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">Supported revisions:<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> hosted<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> headless<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> fsk_bridge<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> qpsk_tx<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">Supported sizes (kLE)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> 40<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> 115<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">lonneke@lonneke-VAIO /cygdrive/c/bladerf-master/hdl/quartus<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">$ bash build_bladerf.sh -r hosted -s 115<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Press RETURN or ENTER and go out with the dog for a short walk or go and listen to your partner<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">An enormous amount of information appears in the window, after a few minutes the last few lines read:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> Info: Elapsed time: 00:00:14<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> Info: Total CPU time (on all processors): 00:00:12<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">Info (23030): Evaluation of Tcl script ../build.tcl was successful<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">Info: Quartus II 32-bit Shell was successful. 0 errors, 89 warnings<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> Info: Peak virtual memory: 195 megabytes<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> Info: Processing ended: Sun Feb 02 23:03:26 2014<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> Info: Elapsed time: 00:06:05<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> Info: Total CPU time (on all processors): 00:00:02<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">/cygdrive/c/bladerf-master/hdl/quartus<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">##########################################################################<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> Done! Image copied to: hostedx115.rbf<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">##########################################################################<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">lonneke@lonneke-VAIO /cygdrive/c/bladerf-master/hdl/quartus<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">$</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<v:shape id="Afbeelding_x0020_54" o:spid="_x0000_i1027" style="height: 192.75pt; visibility: visible; width: 470.25pt;" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png"></v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">There it is: hostedx115.rbf, I rename the file to hostedx115new.rbf and copy it to C:\Program Files (x86)\bladeRF<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">The proof of the pudding is in the eating:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<v:shape id="Afbeelding_x0020_55" o:spid="_x0000_i1026" style="height: 134.25pt; visibility: visible; width: 348pt;" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image004.png"></v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Everything is still fine on my bladerf-board, the LEDs are still blinking. SDR-RADIO.COM SDR radio console works like a charm.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<h2>
<span lang="EN-US">Now edit a file with the GUI of Quartus</span></h2>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<b><i><span lang="EN-US" style="font-size: 10pt;">You can open the resulting project using the GUI in the work directory that gets created by the script.<o:p></o:p></span></i></b></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Double-click on C:\bladeRF-master\hdl\quartus\work\ bladerf.qpf<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<h2>
<span lang="EN-US">The GUI of Quartus opens!!!</span></h2>
<div class="MsoNoSpacing">
<v:shape id="Afbeelding_x0020_56" o:spid="_x0000_i1025" style="height: 257.25pt; visibility: visible; width: 471pt;" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:\Users\lonneke\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png"></v:imagedata></v:shape><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I edit the file ../../fpga/platforms/bladerf-hosted.vhd to read:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> toggle_led1 : process(fx3_pclk)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> variable count : natural range 0 to 100_000_000 := 100_000_000 ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> begin<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> if( rising_edge(fx3_pclk) ) then<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> count := count - 1 ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> if( count = 0 ) then<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-- count := 100_000_00 ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="color: #00b0f0;"> count := 100_000_000 ; -- KdG 2-Feb-2014 </span><span lang="EN-US"> <o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> led(1) <= not led(1) ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> end if ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> end if ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> end process ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-- led(2) <= tx_underflow_led ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="color: #00b0f0;"> led(2) = '1'; -- KdG 2-Feb-2014<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> led(3) <= rx_overflow_led ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-- toggle_led2 : process(rx_clock)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-- variable count : natural range 0 to 38_400_00 := 38_400_00 ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-- begin<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-- if( rising_edge(rx_clock) ) then<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-- count := count - 1 ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-- if( count = 0 ) then<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-- count := 38_400_00 ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-- led(2) <= not led(2) ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-- end if ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-- end if ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">-- end process ;<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Now try the wholce circus again after having saved this file.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Just click on save all and exit<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">What a pity, at the end I get:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:31:37 Progress: Done reading input file<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:31:38 Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:31:38 Info: pipeline_bridge_swap_transform: After transform: 12 modules, 41 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:31:38 Info: No custom instruction connections, skipping transform<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:31:38 Info: merlin_initial_interconnect_transform: After transform: 12 modules, 35 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:31:39 Info: merlin_translator_transform: After transform: 25 modules, 74 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:31:39 Info: merlin_domain_transform: After transform: 50 modules, 207 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:31:39 Info: merlin_router_transform: After transform: 63 modules, 246 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:31:39 Info: merlin_burst_transform: After transform: 64 modules, 249 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:31:40 Info: merlin_network_to_switch_transform: After transform: 89 modules, 301 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:31:40 Info: merlin_width_transform: After transform: 91 modules, 307 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:31:40 Info: merlin_clock_and_reset_bridge_transform: After transform: 93 modules, 399 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:31:41 Info: merlin_hierarchy_transform: After transform: 13 modules, 43 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:31:41 Info: merlin_mm_transform: After transform: 13 modules, 43 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:31:41 Info: merlin_interrupt_mapper_transform: After transform: 14 modules, 46 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:31:41 Info: reset_adaptation_transform: After transform: 16 modules, 60 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:31:43 Warning: nios_system: "No matching role found for uart_0:s1:dataavailable (dataavailable)"<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:31:43 Warning: nios_system: "No matching role found for uart_0:s1:readyfordata (readyfordata)"<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:31:44 Error: Couldn't write C:/bladeRF-master/hdl/fpga/ip/altera/nios_system/synthesis/nios_system.v<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:31:44 Error: Generation stopped, 14 or more modules remaining<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:31:44 Info: nios_system: Done "nios_system" with 15 modules, 1 files, 53301 bytes<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">lonneke@lonneke-VAIO /cygdrive/c/bladerf-master/hdl/quartus<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">$</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Perhaps I should do some cleaning?<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">From C:\bladeRF-master\hdl\quartus delete directory work and try again<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Same problem:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">------------------------------------------------<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">Altera Nios2 Command Shell [GCC 4]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">Version 13.1, Build 162<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">------------------------------------------------<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">lonneke@lonneke-VAIO /cygdrive/c/altera/13.1<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">$ cd ..<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">lonneke@lonneke-VAIO /cygdrive/c/altera<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">$ cd ..<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">lonneke@lonneke-VAIO /cygdrive/c<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">$ cd bladerrf-master/hdl/quartus<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">bash: cd: bladerrf-master/hdl/quartus: No such file or directory<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">lonneke@lonneke-VAIO /cygdrive/c<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">$ cd bladerf-master/hdl/quartus<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">lonneke@lonneke-VAIO /cygdrive/c/bladerf-master/hdl/quartus<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">$ dir<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">bladerf.tcl build.tcl build_bladerf.sh constraints ip.ipx signaltap<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">lonneke@lonneke-VAIO /cygdrive/c/bladerf-master/hdl/quartus<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">$ bash build_bladerf.sh -r hosted -s 115<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">## Non-Linux OS Detected (Windows?)<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">## Forcing QUARTUS_BINDIR to C:/altera/13.1/quartus/bin<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">##########################################################################<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;"> Generating NIOS II Qsys for bladeRF ...<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">##########################################################################<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:28 Progress: Loading nios_system/nios_system.qsys<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:28 Progress: Reading input file<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:28 Progress: Adding clk_0 [clock_source 13.1]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:29 Progress: Parameterizing module clk_0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:29 Progress: Adding nios2_qsys_0 [altera_nios2_qsys 13.1]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:29 Progress: Parameterizing module nios2_qsys_0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:29 Progress: Adding spi_0 [altera_avalon_spi 13.1]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:29 Progress: Parameterizing module spi_0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:29 Progress: Adding jtag_uart_0 [altera_avalon_jtag_uart 13.1]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:29 Progress: Parameterizing module jtag_uart_0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:29 Progress: Adding onchip_memory2_0 [altera_avalon_onchip_memory2 13.1]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:29 Progress: Parameterizing module onchip_memory2_0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:29 Progress: Adding timer_0 [altera_avalon_timer 13.1]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:29 Progress: Parameterizing module timer_0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:29 Progress: Adding uart_0 [altera_avalon_uart 13.1]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:29 Progress: Parameterizing module uart_0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:29 Progress: Adding spi_1 [altera_avalon_spi 13.1]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:29 Progress: Parameterizing module spi_1<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:29 Progress: Adding pio_0 [altera_avalon_pio 13.1]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:29 Progress: Parameterizing module pio_0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:29 Progress: Adding iq_corr_rx_phase_gain [altera_avalon_pio 13.1]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:29 Progress: Parameterizing module iq_corr_rx_phase_gain<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:29 Progress: Adding iq_corr_tx_phase_gain [altera_avalon_pio 13.1]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:29 Progress: Parameterizing module iq_corr_tx_phase_gain<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:29 Progress: Adding bladerf_oc_i2c_master_0 [bladerf_oc_i2c_master 1.0]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:30 Progress: Parameterizing module bladerf_oc_i2c_master_0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:30 Progress: Building connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:30 Progress: Parameterizing connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:30 Progress: Validating<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:30 Progress: Done reading input file<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:34 Progress: Loading nios_system/nios_system.qsys<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:34 Progress: Reading input file<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:34 Progress: Adding clk_0 [clock_source 13.1]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:34 Progress: Parameterizing module clk_0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:34 Progress: Adding nios2_qsys_0 [altera_nios2_qsys 13.1]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Parameterizing module nios2_qsys_0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Adding spi_0 [altera_avalon_spi 13.1]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Parameterizing module spi_0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Adding jtag_uart_0 [altera_avalon_jtag_uart 13.1]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Parameterizing module jtag_uart_0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Adding onchip_memory2_0 [altera_avalon_onchip_memory2 13.1]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Parameterizing module onchip_memory2_0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Adding timer_0 [altera_avalon_timer 13.1]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Parameterizing module timer_0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Adding uart_0 [altera_avalon_uart 13.1]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Parameterizing module uart_0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Adding spi_1 [altera_avalon_spi 13.1]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Parameterizing module spi_1<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Adding pio_0 [altera_avalon_pio 13.1]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Parameterizing module pio_0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Adding iq_corr_rx_phase_gain [altera_avalon_pio 13.1]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Parameterizing module iq_corr_rx_phase_gain<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Adding iq_corr_tx_phase_gain [altera_avalon_pio 13.1]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Parameterizing module iq_corr_tx_phase_gain<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Adding bladerf_oc_i2c_master_0 [bladerf_oc_i2c_master 1.0]<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Parameterizing module bladerf_oc_i2c_master_0<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Building connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Parameterizing connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:35 Progress: Validating<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:36 Progress: Done reading input file<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:37 Info: nios_system: Generating nios_system "nios_system" for QUARTUS_SYNTH<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:37 Info: pipeline_bridge_swap_transform: After transform: 12 modules, 41 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:37 Info: No custom instruction connections, skipping transform<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:37 Info: merlin_initial_interconnect_transform: After transform: 12 modules, 35 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:38 Info: merlin_translator_transform: After transform: 25 modules, 74 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:38 Info: merlin_domain_transform: After transform: 50 modules, 207 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:38 Info: merlin_router_transform: After transform: 63 modules, 246 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:39 Info: merlin_burst_transform: After transform: 64 modules, 249 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:39 Info: merlin_network_to_switch_transform: After transform: 89 modules, 301 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:39 Info: merlin_width_transform: After transform: 91 modules, 307 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:39 Info: merlin_clock_and_reset_bridge_transform: After transform: 93 modules, 399 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:40 Info: merlin_hierarchy_transform: After transform: 13 modules, 43 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:40 Info: merlin_mm_transform: After transform: 13 modules, 43 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:40 Info: merlin_interrupt_mapper_transform: After transform: 14 modules, 46 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:41 Info: reset_adaptation_transform: After transform: 16 modules, 60 connections<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:42 Warning: nios_system: "No matching role found for uart_0:s1:dataavailable (dataavailable)"<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:42 Warning: nios_system: "No matching role found for uart_0:s1:readyfordata (readyfordata)"<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:43 Error: Couldn't write C:/bladeRF-master/hdl/fpga/ip/altera/nios_system/synthesis/nios_system.v<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:43 Error: Generation stopped, 14 or more modules remaining<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">2014.02.02.23:38:43 Info: nios_system: Done "nios_system" with 15 modules, 1 files, 53301 bytes<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<br /></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">lonneke@lonneke-VAIO /cygdrive/c/bladerf-master/hdl/quartus<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background-color: black;">
<span lang="EN-US" style="color: white;">$<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<h2>
<span lang="EN-US"> Summary</span></h2>
<div>
<span lang="EN-US">For me all this was a giant step, perhaps a small step for Brian.</span></div>
<div>
<span lang="EN-US">I created a stable start-point.</span></div>
<div>
<span lang="EN-US">I managed to generate hostedx115.rbf using the NIOS shell (note the use of the command <b>bash</b>).</span></div>
<div>
<span lang="EN-US">I managed to create a Quartus project and could use the GUI.</span></div>
<div>
<span lang="EN-US">I managed to change bladerf-hosted.vhdl.</span></div>
<div>
<span lang="EN-US">But I did not manage to compile again.</span></div>
<div>
<span lang="EN-US">I should do some cleaning perhaps, or is there a command from the GUI?</span></div>
<div>
<span lang="EN-US">Anyway, I had a great great evening this Sunday and now I am going for a walk with my dog and get some sleep.</span></div>
<div>
<span lang="EN-US"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU0nprbHDRHpabo7Mk_Uy7b7J_zXz_ZzYd-nNYljoTcGfPYY8G-8GBE6aZWtOSDvOMpHYU-hH2IuUuoMC_UO3CHUFEKlbY9NI-4kUjOh355P_pXgi0_GwxJ5-inPIl8igwiYFdpYN7oTk/s1600/Boris+in+toilet+(Small).jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU0nprbHDRHpabo7Mk_Uy7b7J_zXz_ZzYd-nNYljoTcGfPYY8G-8GBE6aZWtOSDvOMpHYU-hH2IuUuoMC_UO3CHUFEKlbY9NI-4kUjOh355P_pXgi0_GwxJ5-inPIl8igwiYFdpYN7oTk/s1600/Boris+in+toilet+(Small).jpg" height="320" width="240" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
He is not so smart to tell me what he wants by</div>
<div class="separator" style="clear: both; text-align: center;">
waiting in the bathroom, I put him there for the picture...</div>
<div>
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<br /></div>
<br />
<div class="MsoNoSpacing">
</div>
<br />
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; margin: 0px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<br /></div>
Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com0tag:blogger.com,1999:blog-8531143406441550247.post-25248401528525181812014-01-29T00:05:00.001+01:002014-01-29T00:05:29.463+01:00Programming the FPGA of the bladeRFis not so simple<h2>
Programming the FPGA of bladeRF</h2>
The last few weeks I am trying to program the FPGA.<br />
With the marvelous software Quartus of Altera I managed to make some *.rbf files and transfer them to the FPGA. Well, first I had .sof files but they can be transformed into .rbf files.<br />
<br />
I read many manuals, performed some courses from Altera (very instructive by the way!) and experimented a lot. I used some files from the VHDL-bladeRF-subdirectory.<br />
<br />
However, I did not manage to blink the LEDs.<br />
Tonight I finally saw why.<br />
<h2>
C4_CLK running at 38.4 MHz</h2>
There is a clock c4_clk running at 38.4 MHz. I tried to reduce that clock with a counter to about 1 Hz. Yes: the blinking LED, the equivalent of Hello World!<br />
<br />
I did not have a clock! There was no 38.4 MH signal. Why not?<br />
<br />
The clock-signal is derived from a chip, the Si5338. That chip has to be initialised, programmed, setup.<br />
<br />
So, there is not a simple way to use the FPGA in an easy way. With easy I mean, a few simple files that grow in time, become more complicated as I understand more and more of the system.<br />
<h2>
Nuand: use revisions</h2>
<div>
OK, there is no simple way to experiment with the FPGA. What I want to accomplish is:</div>
<div>
<ul>
<li>get the rf-output from the LMS-chip</li>
<li>digitize that signal</li>
<li>make some hardware with VHDL (correlator, Costas-loop)</li>
<li>downconvert the signal</li>
<li>send to the laptop with USB</li>
<li>do the final processing on the laptop</li>
</ul>
</div>
The FPGA firmware is compiled without the Quartus GUI. I think the nuand-people do that with linux. I want to use Quartus with the GUI in Windows 7 on my laptop.<br />
<br />
I have to find out how to tell Quartus to use the files in the master-bladerf-directory.<br />
Nuand advises to use the standard bladerf software and make revisions to that software. Yes, but how to compile the FPGA firmware?<br />
<h2>
There is no easy way</h2>
<div>
So, I will do a lot more reading, some more Quartus tutorials and then figure out how to set up a bladerf-Windows-Quartus-project resulting in a nice hostedx115.rbf file!</div>
<h2>
Please help me</h2>
<div>
I am not desperate yet, I have to study a lot. But I would love to get some hints, some help, some advice! In the meantime, I will read, think, experiment, and blog about my findings.</div>
Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com2tag:blogger.com,1999:blog-8531143406441550247.post-4713373250523383852014-01-07T22:24:00.002+01:002014-01-07T22:24:23.290+01:00Finally I can see GPS-satellites with bladeRF!<head>
<title>My first styled page</title>
<style type="text/css">
#linux {
padding-left: 4em;
background-color: black;
font-family: Verdana;
color: white;
}
#python {
padding-left: 4em;
background-color: navajowhite;
font-family: Verdana;
color: black;
}
#output {
padding-left: 4em;
background-color: white;
font-family: Verdana;
color: black;
}
</style>
</head>
<br />
<h2>
Summary</h2>
<div>
Happy New Year to all of you, or better perhaps, I wish you all a Better New Year!</div>
<div>
<br /></div>
<div>
In my struggle to decode a bladeRF-datafile with GPS-data I rewrote a working java-program into python. When I was able to decode a previous old data-file and got the same results as with my previous old java-program I felt confident to go back to my dear bladeRF again.</div>
<div>
<br /></div>
<div>
Luck was with me. To escape the Dutch newyear-firework me and my wife and our dog Boris went for a long fortnight in our caravan somewhere in the north of the Netherlands in the middle of nowhere. It was January 3rd when I put my active GPS-antenna in front of the window together with my Garmin GPS. My Garmin told me to see satellites 5,7,13,16 and 23. I made a recording into a few data-files and managed to have my python-program really consistently find those satellites! My bladeRF got DC-current from a separate adaptor, an old fashioned one with a transformer happily delivering current at 5 V. </div>
<div>
<br /></div>
<div>
I got some problems that I will describe here together with my python program.<br />
<br />
<br /></div>
<pre><div id="python">
# findPRNs05.py
# Jan-2014 Kees de Groot
#
# find satellites in bladeRf-file
# search for prn's in a big loop over all possible frequencies:
# loop over all prn's:
# calculate list with prn[i]
# fft prn[i]
# multiply with fft'd conjugated signal
# inverse-fft
# search for maximum
# print i, maximum
import pylab as pl
import numpy as np
import math
import sys
import goldutil as gl # home-made Gold-sequence generator
######################################################################
############# parameter section ######################################
######################################################################
path = '/Temp/'
filename = 'DKIEL.csv'
centerfreq = 0
fsample = 4E6
timestep = 1.0 / fsample
f = open(path + filename, 'rb')
print "filename = ", path + filename
print "fsample = ", fsample
print "centerfreq = ", centerfreq
# get 1 msec data
n = int(1.0E-3 / timestep)
print "1 msec data is ", n, " samples"
skip = 10000 # there is a discontinuity in the file
# so skip half of it
print "skip ", skip, "samples of input-data from datafile"
######################################################################
############# routines/functions section ############################
######################################################################
def getPrnTimed(pprn, t):
"return prn-chip at time t"
# there are 1023 chips in 1 msec
# normalize t
while t >= 1E-3:
t -= 1E-3
index = int((t / 1E-3) * 1023.0)
return pprn[index]
def getFFTPrn(prn):
myGold = gl.Gold(prn)
pprn = myGold.prnReg()
samprn = []
t = 0
for i in range(n): # I have n data-samples
samprn.append(getPrnTimed(pprn,t))
t += timestep
fftprn = np.fft.fft(samprn)
return fftprn
def findPeak(timeresult):
index = 0
# find peak in inverse-fft
max = abs(timeresult[0])
for i in range(len(timeresult)):
if abs(timeresult[i]) > max:
max = int(abs(timeresult[i]))
index = i
res = []
res.append(int(max))
res.append(index)
return res # [max, index]
def findMax(peaklist):
# find maximum in peaklist
i = 0
max = peaklist[0][0]
index = 0
prn = 0
for list in peaklist:
i += 1
if list[0] > max:
max = list[0]
index = list[1]
prn = i
res = []
res.append(max)
res.append(index)
res.append(prn)
return res # [max, index, prn]
def getFFTdata(freq, dataI, dataQ, timestep):
# demodulate by multiplying with freq
# use complex mixer
t = 0
w = 2 * math.pi* freq # omega
dataCC = []
for i in range(n):
valI = dataI[i]
valQ = dataQ[i]
wt = w * t
factc = math.cos(wt)
facts = math.sin(wt)
valI = valI * factc - valQ * facts
valQ = valI * facts + valQ * factc
dataCC.append(complex(valI, valQ))
t += timestep
sp = np.fft.fft(dataCC)
# conjugate sp
for i in range(len(sp)):
sp[i] = sp[i].conjugate()
return sp
###########################################
############# main loop ##################
###########################################
dataI = []
dataQ = []
#dataC = []
averI = 0.0
averQ = 0.0
# read (I,Q) from bladeRF file
i = 0
for line in f:
skip = skip - 1
if skip > 0:
continue
list = line.split(',')
Q = int(list[0])
averQ += Q
I = int(list[1])
averI += I
dataI.append(I)
dataQ.append(Q)
i += 1
if i >= n:
break
print "read ", n, " samples from file"
print "averI = ", averI
print "averQ = ", averQ
averI = averI/n
averQ = averQ/n
print "averI/n = ", averI
print "averQ/n = ", averQ
##pl.figure(1)
##pl.title("raw I/Q")
##pl.plot(dataI, dataQ, 'ro')
##pl.figure(2)
##pl.title("dataI")
##pl.plot(dataI)
##pl.figure(3)
##pl.title("dataQ")
##pl.plot(dataQ)
##pl.show()
##sys.exit('debug')
# remove DC-component
dataC = []
for i in range(len(dataI)):
dataI[i] -= averI
dataQ[i] -= averQ
# dataC.append(complex(dataI[i], dataQ[i]))
##pl.figure(1)
##pl.plot(dataI, dataQ, 'ro')
##pl.show()
# sys.exit('debug')
#test = np.fft.fft(dataI)
maxmaxmax = []
for freq in range(centerfreq - 30*500, centerfreq + 30*500, 500):
peaklist = [] # contains peak-values [max, codeindex]
# get fft'd data in sp
sp = getFFTdata(freq, dataI, dataQ, timestep) # conjugated fft-data
for prn in range(1,33): # prn = 1 .. 32
fftprn = getFFTPrn(prn) # get array with fft'd prn
# get convolution in time-domain by multiplying in freq domain
freqresult = []
for i in range(len(fftprn)):
freqresult.append(fftprn[i]*sp[i])
timeresult = np.fft.ifft(freqresult)
# find peak in timeresult
# findPeak returns (max, codeindex)
maxcode = findPeak(timeresult)
peaklist.append(maxcode)
# peaklist[i] = (max, codeindex) at prn = i+1
elem = findMax(peaklist) # find prn with largest peak
# elem = [max, codeindex, prn]
print "freq, [peak, index, prn] = ", freq, elem
elem.append(freq)
maxmaxmax.append(elem) # list of [peak, index, prn, freq]
maxmaxmax.sort()
maxmaxmax.reverse() # max at the top of the list
print
print "sorted list, max at top of the list"
print "[peak, index, prn, freq]"
aver = 0
num = 0
for elem in maxmaxmax:
print elem
aver += elem[0]
num += 1
aver = aver / num
print
print " bigger than 1.5 * average: "
print "[peak, index, prn, freq["
for elem in maxmaxmax:
if elem[0] > 1.5 * aver:
print elem
#sys.exit('debug')
</div>
</pre>
<h2>
Description of the program</h2>
<div>
<br /></div>
<div>
The program has an outer loop over the frequencies from -30*500 Hz to +30*500Hz.</div>
<div>
Why? Depending on the speed of the GPS-receiver (e.g. in a car) and the speed of the GPS-satellites there is a certain Doppler-shift of the received frequency. So I try every possible frequency by mixing the received data in a complex mixer. The result is a complex signal that has been shifted in frequency.</div>
<div>
That signal has to be convoluted with every possible prn-sequence (about 32 ot them). Convolution in the time domain can be achieved by multiplying in the frequency domain.</div>
<div>
So, I fft the complex mixed signal, conjugate it and multiply with the fft-ed prn-sequence. After inverse-fft I look for a peak. The peak indicates correlation and at the same time indicate the phase of the prn.</div>
<div>
Complicated? Yes, it took me some time to get used to that idea.</div>
<div>
<br /></div>
<h2>
DC component</h2>
<div>
The signal in the bladeRF-datafile has a huge DC-component. I presume that the DA-converters have an output-range from 0 V to, perhaps, +3.3 V. I did not check that in the schematics yet.</div>
<div>
The DC-component results in a big peak at 0 Hz, ruining my scaling for the plots. So I write a simple loop to calculate the average for I and Q and in a second loop I subtract the average from the data. This can also be done in one loop but I prefer to make programs simple at first. Later I might change the code if necessary.</div>
<div>
<br /></div>
<h2>
Discontinuity</h2>
<div>
The first 500 samples or so, sometimes show a discontinuity. I solve that problem by simply skipping the first 5000 samples. Later I might go into that problem but for now it is solved.</div>
<div>
<br /></div>
<div>
Commands at bladerf-cli:</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<pre><div id="linux">
[WARNING] extract_field: Field checksum mismatch
[WARNING] Could not extract VCTCXO trim value
[WARNING] extract_field: Field checksum mismatch
[WARNING] Could not extract FPGA size
bladeRF> load fpga hostedx115.rbf
Loading fpga from hostedx115.rbf...
Done.
bladeRF> print frequency
RX Frequency: 1000000000Hz
TX Frequency: 1000000000Hz
bladeRF> set frequency 1575420000
Set RX frequency: 1575420000Hz
Set TX frequency: 1575420000Hz
bladeRF> set samplerate 4000000
Setting RX sample rate - req: 4000000Hz, actual: 4000000Hz
Setting TX sample rate - req: 4000000Hz, actual: 4000000Hz
bladeRF> set bandwidth 2.5E6
Set RX bandwidth - req: 2500000Hz actual: 2500000Hz
Set TX bandwidth - req: 2500000Hz actual: 2500000Hz
bladeRF> set rxvga1 30
bladeRF> set rxvga2 30
bladeRF> rx config format=csv n=40000 file=/temp/AKIEL.csv
bladeRF> rx start
bladeRF> rx config format=csv n=40000 file=/temp/BKIEL.csv
bladeRF> rx start
bladeRF> rx config format=csv n=40000 file=/temp/CKIEL.csv
bladeRF> rx start
bladeRF> rx start
bladeRF> rx start
bladeRF> rx config format=csv n=40000 file=/temp/DKIEL.csv
bladeRF> rx start
bladeRF> rx start
bladeRF> rx start
bladeRF> rx config format=csv n=80000 file=/temp/CKIEL.csv
bladeRF> rx config format=csv n=80000 file=/temp/DKIEL.csv
bladeRF> rx start<br />
bladeRF> rx start
bladeRF>
</div>
</pre>
<br />
As you can see I set the frequency at <span style="font-family: monospace; white-space: pre;">1575420000 Hz</span>. This is the main frequency for GPS. I choose a samplerate of 4 MHz, USB2 can handle this. I choose 2.5 MHz for the bandwidth. The gains rxvga1 and rxvga2 are put to the maximum: 30 dB.<br />
<br />
Try to set a higher value, bladeRf software will protest with a funny remark!<br />
<br />
I type start a few time to get rid of the discontinuities, but this might be stupid as well and cause problems. Again something I will have to investigate.<br />
<br />
<h2>
The output of my python-program</h2>
<div>
<br /></div>
<div>
<br /></div>
<pre><div id="" output="">
>>> ================================ RESTART ================================
>>>
filename = /Temp/DKIEL.csv
fsample = 4000000.0
centerfreq = 0
1 msec data is 4000 samples
skip 10000 samples of input-data from datafile
read 4000 samples from file
averI = 1944131.0
averQ = 2448936.0
averI/n = 486.03275
averQ/n = 612.234
freq, [peak, index, prn] = -15000 [13745, 2616, 18]
freq, [peak, index, prn] = -14500 [15293, 1835, 21]
freq, [peak, index, prn] = -14000 [17838, 64, 23]
freq, [peak, index, prn] = -13500 [15970, 2033, 22]
freq, [peak, index, prn] = -13000 [14932, 0, 0]
freq, [peak, index, prn] = -12500 [15607, 1528, 32]
freq, [peak, index, prn] = -12000 [18891, 64, 23]
freq, [peak, index, prn] = -11500 [15460, 329, 9]
freq, [peak, index, prn] = -11000 [15352, 803, 11]
freq, [peak, index, prn] = -10500 [14976, 1098, 27]
freq, [peak, index, prn] = -10000 [14131, 1312, 14]
freq, [peak, index, prn] = -9500 [15606, 2364, 21]
freq, [peak, index, prn] = -9000 [18250, 64, 23]
freq, [peak, index, prn] = -8500 [15687, 3959, 28]
freq, [peak, index, prn] = -8000 [14267, 2166, 26]
freq, [peak, index, prn] = -7500 [16446, 318, 31]
freq, [peak, index, prn] = -7000 [18228, 64, 23]
freq, [peak, index, prn] = -6500 [14471, 3802, 31]
freq, [peak, index, prn] = -6000 [16286, 64, 23]
freq, [peak, index, prn] = -5500 [14694, 1, 11]
freq, [peak, index, prn] = -5000 [14824, 662, 10]
freq, [peak, index, prn] = -4500 [14487, 3566, 11]
freq, [peak, index, prn] = -4000 [15549, 1679, 17]
freq, [peak, index, prn] = -3500 [16070, 2864, 21]
freq, [peak, index, prn] = -3000 [16865, 144, 12]
freq, [peak, index, prn] = -2500 [14733, 896, 15]
freq, [peak, index, prn] = -2000 [19962, 1668, 10]
freq, [peak, index, prn] = -1500 [17504, 64, 23]
freq, [peak, index, prn] = -1000 [17899, 64, 23]
freq, [peak, index, prn] = -500 [17439, 2403, 6]
freq, [peak, index, prn] = 0 [32753, 64, 23]
freq, [peak, index, prn] = 500 [26798, 64, 23]
freq, [peak, index, prn] = 1000 [28387, 782, 13]
freq, [peak, index, prn] = 1500 [18584, 63, 23]
freq, [peak, index, prn] = 2000 [18123, 64, 23]
freq, [peak, index, prn] = 2500 [38468, 1668, 10]
freq, [peak, index, prn] = 3000 [15833, 64, 23]
freq, [peak, index, prn] = 3500 [13939, 970, 20]
freq, [peak, index, prn] = 4000 [21279, 388, 7]
freq, [peak, index, prn] = 4500 [24322, 387, 7]
freq, [peak, index, prn] = 5000 [16517, 64, 23]
freq, [peak, index, prn] = 5500 [16828, 55, 19]
freq, [peak, index, prn] = 6000 [28200, 1154, 5]
freq, [peak, index, prn] = 6500 [21470, 1153, 5]
freq, [peak, index, prn] = 7000 [16290, 1466, 28]
freq, [peak, index, prn] = 7500 [14327, 1471, 14]
freq, [peak, index, prn] = 8000 [15135, 2887, 15]
freq, [peak, index, prn] = 8500 [14257, 1340, 24]
freq, [peak, index, prn] = 9000 [15520, 2217, 4]
freq, [peak, index, prn] = 9500 [14830, 1473, 2]
freq, [peak, index, prn] = 10000 [17611, 64, 23]
freq, [peak, index, prn] = 10500 [14564, 1794, 22]
freq, [peak, index, prn] = 11000 [15766, 1328, 13]
freq, [peak, index, prn] = 11500 [15376, 2485, 28]
freq, [peak, index, prn] = 12000 [17781, 64, 23]
freq, [peak, index, prn] = 12500 [15759, 808, 10]
freq, [peak, index, prn] = 13000 [14780, 124, 26]
freq, [peak, index, prn] = 13500 [15648, 64, 23]
freq, [peak, index, prn] = 14000 [18595, 63, 23]
freq, [peak, index, prn] = 14500 [14543, 1736, 15]
sorted list, max at top of the list
[peak, index, prn, freq]
[38468, 1668, 10, 2500]
[32753, 64, 23, 0]
[28387, 782, 13, 1000]
[28200, 1154, 5, 6000]
[26798, 64, 23, 500]
[24322, 387, 7, 4500]
[21470, 1153, 5, 6500]
[21279, 388, 7, 4000]
[19962, 1668, 10, -2000]
[18891, 64, 23, -12000]
[18595, 63, 23, 14000]
[18584, 63, 23, 1500]
[18250, 64, 23, -9000]
[18228, 64, 23, -7000]
[18123, 64, 23, 2000]
[17899, 64, 23, -1000]
[17838, 64, 23, -14000]
[17781, 64, 23, 12000]
[17611, 64, 23, 10000]
[17504, 64, 23, -1500]
[17439, 2403, 6, -500]
[16865, 144, 12, -3000]
[16828, 55, 19, 5500]
[16517, 64, 23, 5000]
[16446, 318, 31, -7500]
[16290, 1466, 28, 7000]
[16286, 64, 23, -6000]
[16070, 2864, 21, -3500]
[15970, 2033, 22, -13500]
[15833, 64, 23, 3000]
[15766, 1328, 13, 11000]
[15759, 808, 10, 12500]
[15687, 3959, 28, -8500]
[15648, 64, 23, 13500]
[15607, 1528, 32, -12500]
[15606, 2364, 21, -9500]
[15549, 1679, 17, -4000]
[15520, 2217, 4, 9000]
[15460, 329, 9, -11500]
[15376, 2485, 28, 11500]
[15352, 803, 11, -11000]
[15293, 1835, 21, -14500]
[15135, 2887, 15, 8000]
[14976, 1098, 27, -10500]
[14932, 0, 0, -13000]
[14830, 1473, 2, 9500]
[14824, 662, 10, -5000]
[14780, 124, 26, 13000]
[14733, 896, 15, -2500]
[14694, 1, 11, -5500]
[14564, 1794, 22, 10500]
[14543, 1736, 15, 14500]
[14487, 3566, 11, -4500]
[14471, 3802, 31, -6500]
[14327, 1471, 14, 7500]
[14267, 2166, 26, -8000]
[14257, 1340, 24, 8500]
[14131, 1312, 14, -10000]
[13939, 970, 20, 3500]
[13745, 2616, 18, -15000]
bigger than 1.5 * average:
[peak, index, prn, freq[
[38468, 1668, 10, 2500]
[32753, 64, 23, 0]
[28387, 782, 13, 1000]
[28200, 1154, 5, 6000]
[26798, 64, 23, 500]
>>>
</div>
</pre>
<br />
<h2>
Results</h2>
<div>
Those results are encouraging. It is clear that prn 10, 23, 13, 5 and 23 are prominently present.</div>
<br />
From my notes:<br />
<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
According to my Garmin, there are</blockquote>
<blockquote class="tr_bq">
PRN = 5,7,13,16,23</blockquote>
<blockquote class="tr_bq">
Smaller amplitudes: 2,8, 10 and 29</blockquote>
<blockquote class="tr_bq">
All satellites 2,4,5,7,8,9,10,13,16,23,29 </blockquote>
<blockquote class="tr_bq">
26 is invisible</blockquote>
<blockquote class="tr_bq">
Current location N 52 51 25.6 E 6 44 53.3</blockquote>
<blockquote class="tr_bq">
Time 17:05 Amsterdam Time (CET?)</blockquote>
</blockquote>
<br />
OK, now you have the GPS-coordinates of that beautiful minicamping somewhere in the Netherlands!<br />
<br />
<h2>
Epilogue</h2>
<div>
From now on I might go further with this python-program. I might generate a huge data-file, a recording of 20 seconds and try to decode the almanac-data from the satellites. But I want to do something else, something more hardware like. I think I am gonna reprogram the FPGA. First some study, later some experiments as a preparation for the real thing: a hardware multichannel GPS-correlator. But that is far in the future!</div>
<br />Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com8tag:blogger.com,1999:blog-8531143406441550247.post-91956599114211706472013-12-06T22:14:00.000+01:002013-12-06T22:14:14.658+01:00bladeRF-car designed with DesignSpark Mechanical<h2>
BladeRF-car</h2>
A bladerf-car? Yes, somehow. In between my bladerf-project I played a lot with DesignSpark Mechanical, free 3D software. And now in Holland there are fablabs. What is fablab? Fabrication-laboratory. A workshop with machines like 3D-printers and a laser cutter. Somewhere in the corner is a reprap busy reproducing itself… I am excited.<br />
<br />
In the beginning of my career, before being a retired engineer, I was at the start of the computer age. My first job was maintenance of a PDP8 minicomputer. Later, many years later, there was my first PC with a 10 MB hard disk! 10 MB. Incredibly that an average hard disk now is at least 1TB, that is 1000 GB and 1 GB is 100 * 10 MB! So an average hard disk in a laptop (!) has a capacity of 100.000 times my first 10 MB hard disk. The same with memory, the same with transfer speed, the same with…<br />
<br />
These times are incredible times. A few years ago I saw the first regular use of LEDs. Now I have a little pocket flashlight with an enormous amount of light. Ok, my old big maglite with 4 D-cells is still in my car if I need to impress someone. The 4 D-cells in an aluminium case impress more than the light of the small lamp inside that maglite however…<br />
<br />
There is a new phenomenon: 3D printing. It is not new at all, but there is a breakthrough now. I feel that again I am at the start of something new, something that will change the world.<br />
<br />
So, the last few weeks I was playing around with DesignSpark Mechanical. It is free 3D software. With it you can draw 3D objects and produce .STL files. Those files contain the info that a 3D printer needs to 3D print what you did draw with your 3D software. You can upload the file to a printer shop and some time later you get the stuff in real hardware in your postbox. Or you buy or build a 3D printer and print your creative work at home!<br />
<br />
Have a look at <a href="http://www.thingiverse.com/">http://www.thingiverse.com </a>and see what others designed!<br />
<br />
About 35 years ago I designed a car made from plywood. It was a kind of puzzle. But once you slide all the pieces in place you have a car to play with. I redesigned that same car with DesignSpark Mechanical. Just for fun and just because you can. I think I am gonna take a piece of Trespa and take it to the fablab. Then I might use a laser cutter to make this car into a real thing.<br />
<br />
The car:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiipCOAC0Mae0J0Ey69MjsNO4RlTLEvpT62IM3GIdlqlvpvgyrzF_PI7kgiN7G4yfNhehk_EpxFD4he1W_rssdXXalNqxq7nTe3YP5m-kcSnwXIfuCHl60ZPWVS2To2Xrt62EhtXk846HQ/s1600/01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiipCOAC0Mae0J0Ey69MjsNO4RlTLEvpT62IM3GIdlqlvpvgyrzF_PI7kgiN7G4yfNhehk_EpxFD4he1W_rssdXXalNqxq7nTe3YP5m-kcSnwXIfuCHl60ZPWVS2To2Xrt62EhtXk846HQ/s320/01.png" width="320" /></a></div>
<br />
<br />
And a more or less exploded view:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPNVC4939CqHR-EyFqbaNCzxZ4EPQHVn20Lk_7k2h3N9JTeZ9sbfJKIQw8xlqhMH92bOJzqY895qdX9knYXHjRXQJzJtGVvBkCVZ9joD9IJf6DpA83IVWQ08e97QV4gDiLD3bWQNwl7rU/s1600/02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPNVC4939CqHR-EyFqbaNCzxZ4EPQHVn20Lk_7k2h3N9JTeZ9sbfJKIQw8xlqhMH92bOJzqY895qdX9knYXHjRXQJzJtGVvBkCVZ9joD9IJf6DpA83IVWQ08e97QV4gDiLD3bWQNwl7rU/s320/02.png" width="320" /></a></div>
<br />
<br />
How to put this all together?<br />
<br />
First you take the left side (linkerzijde)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0paJAXhiLyNcfLozY3qEavlVE17qzF8y4wFErWnRjUIDQ7rz8ZUO_jL8if9GKHPu3n9QJKwNgQFfOQpJqqMWOJKplWGAPDt4G1IGOlEMSLe7XksyWJZAZpzG_X4bOjxWfPtInitaOLmo/s1600/03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0paJAXhiLyNcfLozY3qEavlVE17qzF8y4wFErWnRjUIDQ7rz8ZUO_jL8if9GKHPu3n9QJKwNgQFfOQpJqqMWOJKplWGAPDt4G1IGOlEMSLe7XksyWJZAZpzG_X4bOjxWfPtInitaOLmo/s320/03.png" width="320" /></a></div>
<br />
Now first take the bakdeksel (cover of the the rear area) and stick it in the left side:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6-iK-Bgha1sK_f-xA4KzGl6CZpc-VcdaqttDvQtkc1itziwB-ZoEIInM5KZL2YdoJ-rXLc1umXTrPFZKRDtWVlQTsltIu9tRijRXSO0JOoeQzu3_EB2JgQfJaG7eb3LRQqRlXLWbSXEc/s1600/04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6-iK-Bgha1sK_f-xA4KzGl6CZpc-VcdaqttDvQtkc1itziwB-ZoEIInM5KZL2YdoJ-rXLc1umXTrPFZKRDtWVlQTsltIu9tRijRXSO0JOoeQzu3_EB2JgQfJaG7eb3LRQqRlXLWbSXEc/s320/04.png" width="320" /></a></div>
<br />
<br />
Not take the right side (rechterzijde) and put it in place:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgol-r1l7PxQPBDs2a3RFgAkKAnsOWIme3ILeT69_JBdKNydlrWeIQ0E-PKrOlpih8QdZzzXgNfn0EeGIR3R7yzrxudAFfJf04gE3pB0iq2eHqyr2VpQifzcjsGxZwxNVbHzcatVkt1X3E/s1600/05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgol-r1l7PxQPBDs2a3RFgAkKAnsOWIme3ILeT69_JBdKNydlrWeIQ0E-PKrOlpih8QdZzzXgNfn0EeGIR3R7yzrxudAFfJf04gE3pB0iq2eHqyr2VpQifzcjsGxZwxNVbHzcatVkt1X3E/s320/05.png" width="320" /></a></div>
<br />
Now is the time for the front plate (frontschot), you slide it upwards in place:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRAZrlSv6EMBGWeMSf9lxD_QF0N-j-0l3EGPAS_9-dOYmvZv5xdtH5TBBdmRxzzVfXLXs_vxvmMG70unVdrRNxOzgZXHLSTemwZ8B7de2TaiZzk3JuAg2LAJU29QUWywfcdtOUhWd7r6M/s1600/06.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRAZrlSv6EMBGWeMSf9lxD_QF0N-j-0l3EGPAS_9-dOYmvZv5xdtH5TBBdmRxzzVfXLXs_vxvmMG70unVdrRNxOzgZXHLSTemwZ8B7de2TaiZzk3JuAg2LAJU29QUWywfcdtOUhWd7r6M/s320/06.png" width="320" /></a></div>
<br />
<br />
At last: the bottom plate (bodemplaat). This is a little tricky: you have to place it at the underside:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimoDbcxi-SW8d07FmN-77Uu2zN45bwy2RzUIJwEqES2C5rfqFLXuy0azhuEVXD7zMtp0HEylJwyi5QJA0ehnkUQHK8647PFO_jbAPbyGD_ytxxxa6VOHWWI_r8AujyKLGn_mGAbq0VXw4/s1600/07.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimoDbcxi-SW8d07FmN-77Uu2zN45bwy2RzUIJwEqES2C5rfqFLXuy0azhuEVXD7zMtp0HEylJwyi5QJA0ehnkUQHK8647PFO_jbAPbyGD_ytxxxa6VOHWWI_r8AujyKLGn_mGAbq0VXw4/s320/07.png" width="320" /></a></div>
<br />
of the car, push it upwards:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi95Uqr53PGRZkyEtg83VmtkfiOHuyulnMWPqy5UQNlygA1r5yPDRbJXDOJw_RgpuaW6GwwMqrQk6gNO5GhKdMVibqgikKR2-Y5_Fqyd_tFgVhQBXgd8691PfQ-453NkuQSuEVf3k4Dfqc/s1600/08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi95Uqr53PGRZkyEtg83VmtkfiOHuyulnMWPqy5UQNlygA1r5yPDRbJXDOJw_RgpuaW6GwwMqrQk6gNO5GhKdMVibqgikKR2-Y5_Fqyd_tFgVhQBXgd8691PfQ-453NkuQSuEVf3k4Dfqc/s320/08.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
and then slide it forwards. The result:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg7_Vn1rAWd8ve6ZYVIb_XU2oEzvNfJhkCqXIm4-HqHWyx9p69-aktG6v1rBZQWCmCkLCL86_uBflJlkgzehUenIj-GZBAzjlWKYE91paZEC7kX4REnOP0gwOXVNFRmZkg3dLDjDTKYrI/s1600/09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg7_Vn1rAWd8ve6ZYVIb_XU2oEzvNfJhkCqXIm4-HqHWyx9p69-aktG6v1rBZQWCmCkLCL86_uBflJlkgzehUenIj-GZBAzjlWKYE91paZEC7kX4REnOP0gwOXVNFRmZkg3dLDjDTKYrI/s320/09.png" width="320" /></a></div>
<br />
Or in the original perspective:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMZXrk2L4OuvWRHXZF7urhHy8EnHK5j_Ico4456eCVzDBe1uU8BBuZxPxcMF5PYsMYZPWjXIOgsl7Iuk718gQYbtzTcO8_0N1NObjBR-hfdu8mwfvfGZpsHVT1H6F4opPyZByd8FH5ncg/s1600/10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMZXrk2L4OuvWRHXZF7urhHy8EnHK5j_Ico4456eCVzDBe1uU8BBuZxPxcMF5PYsMYZPWjXIOgsl7Iuk718gQYbtzTcO8_0N1NObjBR-hfdu8mwfvfGZpsHVT1H6F4opPyZByd8FH5ncg/s320/10.png" width="320" /></a></div>
<br />
<br />
Now we can slide the window (voorruit) on its place:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilLVE9SuqrQNbPELdoMvAO1wJF4s4djJwmZRRCPbCmG1Wdccsarxkxc2y8Pl9Lz0EdnpZtrRzga6GY3RX5EV4Vf6IIe6gR288PtqdZjlpV2_cP9B2rxposgYOSC_Uj6Hy6vDJx1lMgRZE/s1600/11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilLVE9SuqrQNbPELdoMvAO1wJF4s4djJwmZRRCPbCmG1Wdccsarxkxc2y8Pl9Lz0EdnpZtrRzga6GY3RX5EV4Vf6IIe6gR288PtqdZjlpV2_cP9B2rxposgYOSC_Uj6Hy6vDJx1lMgRZE/s320/11.png" width="320" /></a></div>
<br />
<br />
And the roof (cabinedak) with result:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgla0hKJtT9JzUbhor_J7okmFmtbo55D4rMwcCF4x5srGmtRi9g-iu2GWE35zYTQk6gpLV_brh-GtPYO9vTE0XciJNkTxwH22VYxWodlAFQSQFg2rj3wi_Oxd8UsR7hjb4kOfJ1W-KbOCM/s1600/12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgla0hKJtT9JzUbhor_J7okmFmtbo55D4rMwcCF4x5srGmtRi9g-iu2GWE35zYTQk6gpLV_brh-GtPYO9vTE0XciJNkTxwH22VYxWodlAFQSQFg2rj3wi_Oxd8UsR7hjb4kOfJ1W-KbOCM/s320/12.png" width="320" /></a></div>
<br />
<br />
Finally the last two planes called tussenschot and achterschot:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjm0sVz-ds9kSFHsOo09Abx6KHy0CSnrRHGEHmVR_fUku4wkioHdtxKSjt5rYQOL73ccmj92cT1DkP4rrwF1t3PJP8jvhmWe5n6dHwntkzqZfVa0weCn5ZcJf_19Mm7gYR0KTpdMVMi0k/s1600/13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjm0sVz-ds9kSFHsOo09Abx6KHy0CSnrRHGEHmVR_fUku4wkioHdtxKSjt5rYQOL73ccmj92cT1DkP4rrwF1t3PJP8jvhmWe5n6dHwntkzqZfVa0weCn5ZcJf_19Mm7gYR0KTpdMVMi0k/s320/13.png" width="320" /></a></div>
<br />
<br />
<br />
As you can see these last two planes lock the bottom plate, and finally, there it is, the bladerf-car:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsXgJ6HhyWjeo2Mty3M6M2zu1eVdeIRo9lgVR-jTJYqMXkchBcjJQpfDDft4Nq5lwDU5NahcSyBBCrDqUcux81Px0AE0T2pWhTfawyxdRHw6bR3EilEmOQWvjmnX24tHGie6ko62wDFzk/s1600/14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsXgJ6HhyWjeo2Mty3M6M2zu1eVdeIRo9lgVR-jTJYqMXkchBcjJQpfDDft4Nq5lwDU5NahcSyBBCrDqUcux81Px0AE0T2pWhTfawyxdRHw6bR3EilEmOQWvjmnX24tHGie6ko62wDFzk/s320/14.png" width="320" /></a></div>
<br />
<br />
Some remarks:<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>I designed the car from a plate with a thickness of 6 mm<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>In DesignSpark Mechanical I named the various parts, so they can be separately designed<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>I used mostly Select and Pull during the design<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>It is very handy to select a surface and then choose Plan View to get a plane to draw upon<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>With the pull tool you can remove parts by dragging backwards<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>If you want to design something like this: study, do and perform all the tutorials and videos you can find on the Internet<br />
it is really difficult at the start, but at the end you draw with ease and confidence!<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>Use points, lines, rectangles and construction lines: you can delete them selectively when not needed anymore<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>This car is a very simple example with flat planes, DesignSpark Mecanical can do a lot more!<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>I did not laser cut or 3D-print this design. I expect some problems: perhaps the gaps should be wider, a fraction of a millimeter. And may be there are errors in this design…<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>So, not any warranty, but don’t be afraid: do try this at home yourself!<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>I am in no way involved with DesignSpark Mechanical, the software is free and I am just a happy old retired married satisfied customer, really!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi21QRQxVjfge_LrFYtmhtqVm7zMrlWR5jFqwRL_Itepo89s0zerWTL5GK5a85snKYB-cvVLm3z0MlbOAWPsb506ySwgxXW37mWu_CppbQni0tm46G9iRIVJ4QOlxLIzr-bkRGRNWyDs7c/s1600/15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi21QRQxVjfge_LrFYtmhtqVm7zMrlWR5jFqwRL_Itepo89s0zerWTL5GK5a85snKYB-cvVLm3z0MlbOAWPsb506ySwgxXW37mWu_CppbQni0tm46G9iRIVJ4QOlxLIzr-bkRGRNWyDs7c/s320/15.png" width="320" /></a></div>
<br />
The example above was an attempt to design something (the blue ring) to connect a circular LED light (the yellow thing) to the rectangular frame of a microscope (the orangish thing)<br />
I wanted to 3D print the blue adapter but it proved to be a lot easier just to take a piece of plywood and a jigsaw…<br />
<h2>
Epilogue</h2>
At the end of the year, more than ever, I like to look back in (my) history. Because of my age there is more past than future! But the present is interesting enough, so I tend to stay in the present every day as long as I live. The last few weeks I was distracted from my dear bladerf-project because of DesignSpark Mechanical. I took that side path and enjoyed it a lot. I hope you enjoyed it too!<br />
If you want the STL-files of the design of the bladerf-car: just send me an email and I will be more than happy to send it to you.<br />
<br />
Happy Christmas, Happy New Year, Happy Whatever!<br />
<b><i><br /></i></b>
<b><i>Que le vaya bien!</i></b><br />
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com2tag:blogger.com,1999:blog-8531143406441550247.post-8741839507314645242013-11-27T00:16:00.002+01:002013-11-27T00:16:27.944+01:00Without bladeRF: correlation with FFT and problem: python class returns by value<head>
<title>My first styled page</title>
<style type="text/css">
#linux {
padding-left: 4em;
background-color: black;
font-family: Verdana;
color: white;
}
#python {
padding-left: 4em;
background-color: navajowhite;
font-family: Verdana;
color: black;
}
#output {
padding-left: 4em;
background-color: white;
font-family: Verdana;
color: black;
}
</style>
</head>
<br />
<h2>
Python problem: class returns by reference, not by value</h2>
<div>
<div>
I made some changes to my python-class Gold.</div>
<div>
<br /></div>
<div>
The problem is that in python an attribute of a class is returned by reference. This might be nasty in some situations.<br />
<br />
<pre><div id="python">
#import old class Gold goldutil
myGold1 = Gold(13)
prn = myGold1. prnRegAnalogue
prn[0] = 100
prn2 = myGold1. prnRegAnalogue
</div>
</pre>
<br />
if I modify prn I modify the internal list prnRegAnalogue because they are identical: they have the same address!</div>
<div>
So now prn[0] and prn2[0] both have the same value 100.</div>
<div>
<br /></div>
<div>
Therefore I changed my class. Now I hide prnRegAnalogue by prefixing the name with a double-underscore: __ prnRegAnalogue and I defined a method prnReg() to return a copy of prnRegAnalogue. The effect is that now the list prnRegAnalogue is called by value.</div>
<div>
<br /></div>
<pre><div id="python">
# import modified class Gold goldutil
myGold1 = Gold(13)
prn = myGold1. prnRegAnalogue
prn[0] = 100
prn2 = myGold1. prnRegAnalogue
</div>
</pre>
<br />
Now prn2[0] has not been changed.<br />
<div>
<br />
The new class now reads:<br />
<br />
<pre><div id="python">
class Gold:
# Gold-sequence goldutil.py
# Nov-2013 Kees de Groot
# call:
# myprn1 = Gold(3, 7) for code phase selection = (3,7)
# or
# myprn2 = Gold(4) for the 4th from the list
# = satellite ID number = GPS PRN signal number
# start with (0,0) to start numbering with 1
# note that PRN 34 and 37 are identical
prnlist = [ (0,0), (2,6), (3,7), (4,8), (5,9), (1,9),
(2,10), (1,8), (2,9), (3,10), (2,3),
(3,4), (5,6), (6,7), (7,8), (8,9),
(9,10), (1,4), (2,5), (3,6), (4,7),
(5,8), (6,9), (1,3), (4,6), (5,7),
(6,8), (7,9), (8,10), (1,6), (2,7),
(3,8), (4,9), (5,10), (4,10), (1,7),
(2,8), (4,10)]
def __init__(self, a, b = 0):
self.reg1 = [1]*11 # don't use first bit-position [0]
self.reg2 = [1]*11 # so count bit-positions from 1 to 10
self.__prnRegBinary = [] # contains 0 and 1
self.__prnRegAnalogue = [] # contains -1 and +1
if b == 0: # a = GPS PRN signal number or satellite ID
(self.prn1, self.prn2) = self.prnlist[a]
else: # direct code phase selection
(self.prn1, self.prn2) = (a, b)
for i in range(1024):
G1 = self.reg1[10]
G2 = self.reg2[self.prn1] ^ self.reg2[self.prn2]
out = G1 ^ G2
self.__prnRegBinary.append(out) # values 0 and 1
self.__prnRegAnalogue.append(2*out-1) # values -1 and +1
val1 = self.reg1[3] ^ self.reg1[10]
val2 = (self.reg2[2] ^ self.reg2[3] ^ self.reg2[6] ^
self.reg2[8] ^ self.reg2[9] ^ self.reg2[10])
# shift one position to the right
for j in range(9): # j = 0,1,2,3,4,5,6,7,8
k = 10 - j # k = 10,9,8,7,6,5,4,3,2
self.reg1[k] = self.reg1[k-1]
self.reg2[k] = self.reg2[k-1]
self.reg1[1] = val1
self.reg2[1] = val2
# return list by value, not by reference
def prnReg(self):
alist = []
for val in self.__prnRegAnalogue:
alist.append(val)
return alist
</div>
</pre>
<br />
<h2>
Correlation with fft</h2>
<br />
A very interesting property of the Fourier transform is that convolution in the time-domain can be done by multiplication in the frequency-domain.<br />
That means that to calculate a @ b, in which @ is meant to stand for convolution, you can do that calculation as follows:<br />
<blockquote class="tr_bq">
<span style="font-size: large;">ifft( fft(a) * fft(b) )</span></blockquote>
which means do an fft of a, do an fft of b, multiply and inverse-fft the result.<br />
But the result of fft(a) has to be complex conjugated first, which means that all imaginary values has to change sign.<br />
So, the procedure is: ifft(conjugate(fft(a)) * fft(b))<br />
It sound strange perhaps, but this complex (sic) procedure might be very efficient to calculate because in practice the part conjugate(fft(a)) has to be calculated only once during initialization. The remaining calculation boils down to<br />
c = conjugate(fft(a)<br />
…<br />
ifft(c * fft(b))<br />
<br />
To calculate the correlation between a and b.<br />
<br />
I made a small python program to experiment with this procedure:<br />
<br />
<pre><div id="python">
import goldutil as gl # home-made Gold-sequence generator
import pylab as pl # module for plotting
import numpy as np # module for fft
# CorrelFFTdemo2s.py
# Simulation of message constructed using Gold-sequences
# - Define an 8-bit message: eg 0 0 1 1 0 1 0 0 1 = -1, 1, 1, -1, 1, -1, -1, 1
# - Construct an array with 9*1024 samples of the same Gold-sequence,
# eg. satellite id 12
# - Multiply the first 1024 samples with 1, the 2n set with -1,
# the 3rd set with -1, etc to code our message
# - Now try to decode our message using correlation implemented with FFT
# nov 2013 Kees de Groot
messageBin = (0, 0, 1, 1, 0, 1, 0, 0, 1)
print "messageBin = ", messageBin
messageAna = []
for val in messageBin:
messageAna.append(2*val-1)
print "messageAna = ", messageAna
sat1 = 12 # this is the sat we are looking for
myGold1 = gl.Gold(sat1)
pprn1 = myGold1.prnReg() # get list with 1024 bits of Goldsequence
# code message into codedmsg by multiplying
codedmsg = []
for mesbit in messageAna:
for prnbit in pprn1:
codedmsg.append(mesbit * prnbit)
codedmsg = [0]*200 + codedmsg # add some zeroes to improve readability of plot
# decode codedmsg by correlation with origional pprn1 Gold-sequence
# cross-correlation with the right Gold-sequence
# correlate codedmsg with pprn1 and put result in ac
# once-only calculate complex conjugate of prn-sequence pprn1
# problem is that I want the fft to have the same length as codedmsg
# so, just add zeros at the end of pprn1
numzeros = len(codedmsg) - len(pprn1)
pprn1 = pprn1 + [0]*numzeros
fftprn = np.fft.rfft(pprn1)
# complex conjugate (there must be a better method)
for i in range(len(fftprn)):
fftprn[i] = fftprn[i].conjugate()
fftcodedmsg = np.fft.rfft(codedmsg)
# convolution (correlation) == multiplying with complex conjugate
# after fft and inverse-fft the result
# multiply fftcodedmsg with fftprn
for i in range(len(fftcodedmsg)):
fftcodedmsg[i] *= fftprn[i]
# inverse-fft
ac = np.fft.irfft(fftcodedmsg)
pl.figure(1)
pl.title("correlation, calculated with fft-method")
pl.ylim(-1500, 1500)
pl.stem(ac)
pl.show()
</div>
</pre>
This program might look daunting, but there is really a lot of comment and not so much code.<br />
<br />
The output is:<br />
<br />
<pre><div id="" output="">
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
messageBin = (0, 0, 1, 1, 0, 1, 0, 0, 1)
messageAna = [-1, -1, 1, 1, -1, 1, -1, -1, 1]
</div>
</pre>
Graphics<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdFc7t1oUlHBqpgcPWUOifJb12EYEoSEKP6R3H4Q6ODs6HtsRuN1HBSpUxgNC07wei9Wh_byEFn_OWqcgftpRLF8Mm9cRFW0MHOeECT9mrheLbMtLvg4OD1hP_DFsntx6BHqRxJu3GT5o/s1600/00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdFc7t1oUlHBqpgcPWUOifJb12EYEoSEKP6R3H4Q6ODs6HtsRuN1HBSpUxgNC07wei9Wh_byEFn_OWqcgftpRLF8Mm9cRFW0MHOeECT9mrheLbMtLvg4OD1hP_DFsntx6BHqRxJu3GT5o/s320/00.png" width="320" /></a></div>
<br />
It is obvious that this is exactly the same result as in the previous blog-message where I programmed plain convolution.<br />
<br />
<h2>
Correlation with fft, block-mode</h2>
<div>
I expect to handle my real-time samples in blocks of 1024 chips. A chip is one bit of a Gold-sequence. In this example I simulated this procedure. In a loop I correlate 1024 chips from my input and decode the message bit by bit.</div>
<div>
<br /></div>
<div>
<pre><div id="python">
import goldutil as gl # home-made Gold-sequence generator
import pylab as pl # module for plotting
import numpy as np # module for fft
# CorrelFFTblock.py
# Simulation of message constructed using Gold-sequences
# - Define an 8-bit message: eg 0 0 1 1 0 1 0 0 1 = -1, 1, 1, -1, 1, -1, -1, 1
# - Construct an array with 9*1024 samples of the same Gold-sequence,
# eg. satellite id 12
# - Multiply the first 1024 samples with 1, the 2n set with -1,
# the 3rd set with -1, etc to code our message
# - Now try to decode our message using correlation implemented with FFT
# do this piece-wise in blocks of 1024 bits
# nov 2013 Kees de Groot
def minmax(ac):
minval = min(ac)
maxval = max(ac)
if abs(minval) > abs(maxval):
result = 0
else:
result = 1
return result
messageBin = (0, 0, 1, 1, 0, 1, 0, 0, 1)
print "messageBin = ", messageBin
messageAna = []
for val in messageBin:
messageAna.append(2*val-1)
print "messageAna = ", messageAna
sat1 = 12 # this is the sat we are looking for
myGold1 = gl.Gold(sat1)
pprn1 = myGold1.prnReg() # get list with 1024 bits of Goldsequence
# code message into codedmsg by multiplying
codedmsg = []
for mesbit in messageAna:
for prnbit in pprn1:
codedmsg.append(mesbit * prnbit)
codedmsg = [0]*200 + codedmsg + [0]*824 # add some zeroes
# decode codedmsg by correlation with origional pprn1 Gold-sequence
# cross-correlation with the right Gold-sequence
# correlate codedmsg with pprn1 and put result in ac
# once-only calculate complex conjugate of prn-sequence pprn1
fftprn = np.fft.rfft(pprn1)
# complex conjugate (there must be a better method)
for i in range(len(fftprn)):
fftprn[i] = fftprn[i].conjugate()
# the above calculation has to be done once during initialization
# now take 1024 bit blocks and correlate using fft
N = len(codedmsg) / len(pprn1)
print "N = ", N
for n in range(N):
fftcodedmsg = np.fft.rfft(codedmsg[n*1024:(n+1)*1024])
for i in range(len(fftcodedmsg)):
fftcodedmsg[i] *= fftprn[i]
ac = np.fft.irfft(fftcodedmsg)
print "block ", n, ", message-bit = ", minmax(ac)
pl.figure(n+1)
pl.title("correlation, calculated with fft-method " + "block " + str(n))
pl.ylim(-1500, 1500)
pl.stem(ac)
pl.show()
</div>
</pre>
with output:<br />
<br />
<pre><div id="" output="">
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
messageBin = (0, 0, 1, 1, 0, 1, 0, 0, 1)
messageAna = [-1, -1, 1, 1, -1, 1, -1, -1, 1]
N = 10
block 0 , message-bit = 0
block 1 , message-bit = 0
block 2 , message-bit = 1
block 3 , message-bit = 1
block 4 , message-bit = 0
block 5 , message-bit = 1
block 6 , message-bit = 0
block 7 , message-bit = 0
block 8 , message-bit = 1
block 9 , message-bit = 1
</div>
</pre>
and a lot of nice graphics:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi01WYosPkBdoxAemSLQApYMTMSSTX_uOwzNMSybmzPYFebzpUaY42FiCVqrdOVUmnHY7p2eZKnBg_uEBndKwgmxC_OSjG2syz0eX6RHUvQ8uwyWSZwlKjCS1hd6jSMvN_csoW_aMPFtm0/s1600/01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi01WYosPkBdoxAemSLQApYMTMSSTX_uOwzNMSybmzPYFebzpUaY42FiCVqrdOVUmnHY7p2eZKnBg_uEBndKwgmxC_OSjG2syz0eX6RHUvQ8uwyWSZwlKjCS1hd6jSMvN_csoW_aMPFtm0/s320/01.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAvrl17Cn7JxJxMu1gBXuIGT9t4ImeBGyZChD3E4hs2-Mcm8OqWphmoP49HBsE8aFbdva1QHAZDxptPZpr2_IjTIJEmDKgbUPJYfmGawQSxcysKnpR5XmyCP1sw2Visdr3Luy3ozLgBxo/s1600/02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAvrl17Cn7JxJxMu1gBXuIGT9t4ImeBGyZChD3E4hs2-Mcm8OqWphmoP49HBsE8aFbdva1QHAZDxptPZpr2_IjTIJEmDKgbUPJYfmGawQSxcysKnpR5XmyCP1sw2Visdr3Luy3ozLgBxo/s320/02.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTntLdPn08A0fouKv2WeN-dVJ7a8ZrdmylV_SjzfRJk0rBgg0ZNB9iTpYva1TwF644e9-JUjJZCD33Ddjasd4fSb3h0CyzJe36m6jRb9akmiXwSBfGaacC_eo5geOy6LMXMG-0jiY9hh4/s1600/03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTntLdPn08A0fouKv2WeN-dVJ7a8ZrdmylV_SjzfRJk0rBgg0ZNB9iTpYva1TwF644e9-JUjJZCD33Ddjasd4fSb3h0CyzJe36m6jRb9akmiXwSBfGaacC_eo5geOy6LMXMG-0jiY9hh4/s320/03.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-faSnjFQ8FZX87M_2AH6W7kNrwC8l7XrAIgEFk10sqccBYQSyK1OSeOGIyEr9lgKu74WzSluMM97I9aeZJGbVTFchd-H3rFUI7o6huuJaUhY3AmaMjiDcchdx76olSecDga47bF0KoWI/s1600/04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-faSnjFQ8FZX87M_2AH6W7kNrwC8l7XrAIgEFk10sqccBYQSyK1OSeOGIyEr9lgKu74WzSluMM97I9aeZJGbVTFchd-H3rFUI7o6huuJaUhY3AmaMjiDcchdx76olSecDga47bF0KoWI/s320/04.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAoHbmCV-HVfVEE2zr-eCizPqz62HRxLcuDW2SCuO_5roOCVEKT7UitBlc1eIbV7Mk2f2JiiEU264aMJYj0_RCbenw11-8RD-wskwJFIGCAu8s1RQouKH6AmRQnqie6IFpCkqhetzRbz4/s1600/05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAoHbmCV-HVfVEE2zr-eCizPqz62HRxLcuDW2SCuO_5roOCVEKT7UitBlc1eIbV7Mk2f2JiiEU264aMJYj0_RCbenw11-8RD-wskwJFIGCAu8s1RQouKH6AmRQnqie6IFpCkqhetzRbz4/s320/05.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkzVoB-ek5My1uDDfwzuW4-4MVn47SNwxCCeT6ZrlmDMW06_LsSC9AjG_oJeKjmgA0O5POHZDhgVwWclsvuTW-vAoE6i0yE2B6LLDzafhyUoIi_wGTjycpAsLxLUD1M1HWpAn_DzWSGCo/s1600/06.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkzVoB-ek5My1uDDfwzuW4-4MVn47SNwxCCeT6ZrlmDMW06_LsSC9AjG_oJeKjmgA0O5POHZDhgVwWclsvuTW-vAoE6i0yE2B6LLDzafhyUoIi_wGTjycpAsLxLUD1M1HWpAn_DzWSGCo/s320/06.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWuZS2QxsRKKXs5ZHsrmngo4TKpuOQK5sXzdkjCXxWHNJm33jLVQgYK_rEi_6T7IDNlDogkysOrfMMl0USY9T_X0JVSe_9R2arjmMtTcE5cXDiXaFwcHvDl000euQsgA_p_peQCUljbWk/s1600/07.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWuZS2QxsRKKXs5ZHsrmngo4TKpuOQK5sXzdkjCXxWHNJm33jLVQgYK_rEi_6T7IDNlDogkysOrfMMl0USY9T_X0JVSe_9R2arjmMtTcE5cXDiXaFwcHvDl000euQsgA_p_peQCUljbWk/s320/07.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGz_qXocWfz25CiukQiuZsf2oVF6ZgQhEpXtiRxJUhy7tUNpCFNzZsCPW-9XxhT1UM2edHu4P0oUp11q1Ua6jog66vOJp-smZrYVbsGcYR35r4lXnb_mm_cubxzFqCydng5W04vR0b8Fs/s1600/08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGz_qXocWfz25CiukQiuZsf2oVF6ZgQhEpXtiRxJUhy7tUNpCFNzZsCPW-9XxhT1UM2edHu4P0oUp11q1Ua6jog66vOJp-smZrYVbsGcYR35r4lXnb_mm_cubxzFqCydng5W04vR0b8Fs/s320/08.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrLlxYkIlLC9RfBJk_8hK05iEAA76NNrw6pmu3zK8cFsSRnkKofGRbhARAME6QMd_EPrQpYgzNwRzJN2h5sRTA8ofdKbqfTYQ3irLZkO8911_ey1sv6Sm-DMVGJ8KOX14gaVoS8iy6Zk8/s1600/09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrLlxYkIlLC9RfBJk_8hK05iEAA76NNrw6pmu3zK8cFsSRnkKofGRbhARAME6QMd_EPrQpYgzNwRzJN2h5sRTA8ofdKbqfTYQ3irLZkO8911_ey1sv6Sm-DMVGJ8KOX14gaVoS8iy6Zk8/s320/09.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWRaVroZXUbefR1b0ySf0E3go6K75HyGh_cn9EL7NH-AI0vuUOnuMe0KtZHKC8IkF3aEXsEChr9ZGh2tMAmeW45uGQRzrzOqHkSFYHNhhEKftGVc2GQYhUXqRkUlyV4KKZQsg_92by5co/s1600/10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWRaVroZXUbefR1b0ySf0E3go6K75HyGh_cn9EL7NH-AI0vuUOnuMe0KtZHKC8IkF3aEXsEChr9ZGh2tMAmeW45uGQRzrzOqHkSFYHNhhEKftGVc2GQYhUXqRkUlyV4KKZQsg_92by5co/s320/10.png" width="320" /></a></div>
<br /></div>
<div>
<br /></div>
<div>
<h2>
Conclusion</h2>
</div>
<div>
To find a message coded with a Gold-sequence one uses correlation. One method is to use convolution. It is a simple process but might cost a lot of time.</div>
<div>
<br /></div>
<div>
Another method is to make use of a property of the Fourier-transform:</div>
<blockquote class="tr_bq">
Convolution in the time-domain is the same as multiplication in the frequency-domain</blockquote>
I experimented with this method and showed it to be possible.<br />
Now I am confident to use this method with real samples from the bladeRF.<br />
<br />
Keep tuned!<br />
<div>
<br /></div>
<br /></div>
</div>
Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com0tag:blogger.com,1999:blog-8531143406441550247.post-80254459412917394182013-11-21T00:29:00.000+01:002013-11-21T00:29:46.494+01:00For GPS on a bladeRF you have to start with Gold-sequences to find signals buried in noise: it is all about correlation<head>
<title>My first styled page</title>
<style type="text/css">
#linux {
padding-left: 4em;
background-color: black;
font-family: Verdana;
color: white;
}
#python {
padding-left: 4em;
background-color: navajowhite;
font-family: Verdana;
color: black;
}
</style>
</head>
<br />
<pre><span style="font-family: Times New Roman;"><span style="white-space: normal;">
</span></span></pre>
<h2>
Gold-sequence</h2>
GPS-signals is all about correlation. The signals are completely buried in the noise. Only by searching (or knowing) the code-sequences and the Doppler frequencies is it possible to decode the signals. And they are all transmitted at that same frequency!<br />
<br />
I did some experiments in python to get aquainted (again) with Gold-sequences and correlation. So, I programmed a class Gold and wrote some test-programs. Very nice experiments!<br />
<br />
I had a lot of fun with it. Python is a very simple language. Plotting is a breeze. And with a class that you can import you get nice short programs. The IDLE editor is sufficient to get experiments running.<br />
<br />
<br />
A very nice article is: “Understanding Spread Spectrum for Communications” at <a href="http://www.ni.com/white-paper/4450/en/">http://www.ni.com/white-paper/4450/en/</a><br />
<br />
<h2>
A python class "Gold"</h2>
<br />
In python I programmed the following class:<br />
<br />
<pre><div id="python">
class Gold:
# Gold-sequence goldutil.py
# Nov-2013 Kees de Groot
# call:
# myprn1 = Gold(3, 7) for code phase selection = (3,7)
# or
# myprn2 = Gold(4) for the 4th from the list
# = satellite ID number = GPS PRN signal number
# start with (0,0) to start numbering with 1
# note that PRN 34 and 37 are identical
prnlist = [ (0,0), (2,6), (3,7), (4,8), (5,9), (1,9),
(2,10), (1,8), (2,9), (3,10), (2,3),
(3,4), (5,6), (6,7), (7,8), (8,9),
(9,10), (1,4), (2,5), (3,6), (4,7),
(5,8), (6,9), (1,3), (4,6), (5,7),
(6,8), (7,9), (8,10), (1,6), (2,7),
(3,8), (4,9), (5,10), (4,10), (1,7),
(2,8), (4,10)]
def __init__(self, a, b = 0):
self.shreg1 = [1]*11 # don't use first bit-position [0]
self.shreg2 = [1]*11 # so count bit-positions from 1 to 10
self.prnRegBinary = [] # contains 0 and 1
self.prnRegAnalogue = [] # contains -1 and +1
if b == 0: # a = GPS PRN signal number or satellite ID
(self.prn1, self.prn2) = self.prnlist[a]
else: # direct code phase selection
(self.prn1, self.prn2) = (a, b)
for i in range(1024):
G1 = self.shreg1[10]
G2 = self.shreg2[self.prn1] ^ self.shreg2[self.prn2]
out = G1 ^ G2
self.prnRegBinary.append(out)
self.prnRegAnalogue.append(2*out-1)
val1 = self.shreg1[3] ^ self.shreg1[10]
val2 = (self.shreg2[2] ^ self.shreg2[3] ^ self.shreg2[6] ^
self.shreg2[8] ^ self.shreg2[9] ^ self.shreg2[10])
# shift one position to the left
for j in range(9):
k = 10 - j
self.shreg1[k] = self.shreg1[k-1]
self.shreg2[k] = self.shreg2[k-1]
self.shreg1[1] = val1
self.shreg2[1] = val2
</div>
</pre>
A first test-program:
<br />
<br />
<pre><div id="python">
import goldutil as gl
myGold37 = gl.Gold(3, 7)
prn1 = myGold37.prnRegBinary
prn2 = myGold37.prnRegAnalogue
print "the first 20 points of the binary version of Gold37:"
for i in range(20):
print prn1[i],
print "\n..."
print "\nthe first 20 points of the analogue version of Gold37:"
for i in range(20):
print prn2[i],
print "\n..."</div>
</pre>
<br />
with output:<br />
<br />
<pre><div id="output">
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
the first 20 points of the binary version of Gold37:
1 1 1 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1
...
the first 20 points of the analogue version of Gold37:
1 1 1 -1 -1 1 -1 -1 -1 -1 1 1 1 -1 -1 -1 -1 -1 1 1
...
>>>
</div>
</pre>
With this framework I can write simple programs by importing the class Gold with the command<br />
<b>import goldutil as gl</b><br />
<br />
<h2>
Autocorrelation</h2>
<div>
As a first test I calculate autocorrelation.<br />
<br /></div>
<pre><div id="python">
# Gold02b.py
# autocorrelation
# nov-2013 Kees de Groot
import goldutil as gl
import pylab as pl
myGold37 = gl.Gold(3, 7)
prn2 = myGold37.prnRegAnalogue
# autocorrelation
ac = [0]*1024
for m in range(1024):
for l in range(1024):
ac[m] += prn2[l] * prn2[(l + m)%1024]
print "\nthe first 20 points of the autocorrelation of myGold37:"
for i in range(20):
print ac[i],
print "\n..."
pl.figure(1)
pl.title("autocorrelation, note big peak of 1024 at x = 0")
pl.vlines(range(1024),[0]*1024,ac)
pl.show()
</div>
</pre>
with output:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<pre><div id="output">
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
the first 20 points of the autocorrelation of myGold37:
1024 0 0 0 -68 -4 0 0 60 -8 4 4 -4 0 -4 60 64 60 -8 4
...
</div>
</pre>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBDj8drFBS5Rsvf3ZRtlHpmK1traL4kIhue8oY_mgxe8BvmtpcAXOCveAyIROy4UPFChDMbhyphenhyphenMcSD1J5AF8V8jDlPH8gLnr-8XBCT5zCJzLFw1ylQTnTL7CeOkMhUmMwtmv6y8FIKduAA/s1600/01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBDj8drFBS5Rsvf3ZRtlHpmK1traL4kIhue8oY_mgxe8BvmtpcAXOCveAyIROy4UPFChDMbhyphenhyphenMcSD1J5AF8V8jDlPH8gLnr-8XBCT5zCJzLFw1ylQTnTL7CeOkMhUmMwtmv6y8FIKduAA/s320/01.png" width="320" /></a></div>
<br />
There is nice peak at x=0, indicating positive correlation, the codes overlaps perfectly<br />
<br />
Now correlate two different Gold-sequences.
<br />
<br />
<pre><div id="python">
# Gold02c.py
# correlation between different Gold-sequences
# nov-2013 Kees de Groot
import goldutil as gl
import pylab as pl
myGold37 = gl.Gold(3, 7) # code (3,7)
prn1 = myGold37.prnRegAnalogue
myGold15 = gl.Gold(15) # satellite 15
prn2 = myGold15.prnRegAnalogue
# correlation
ac = [0]*1024
for m in range(1024):
for l in range(1024):
ac[m] += prn1[l] * prn2[(l + m)%1024]
print "\nthe first 20 points of the correlation:"
for i in range(20):
print ac[i],
print "\n..."
pl.figure(1)
pl.title("correlation between two different Gold-codes")
pl.vlines(range(1024),[0]*1024,ac)
pl.show()
</div>
</pre>
with output:
<br />
<br />
<pre><div id="output">
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
the first 20 points of the correlation:
0 0 0 -64 0 0 0 0 0 -4 64 0 4 -4 -64 0 -4 -68 0 64
...
</div>
</pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG5wBG-aVGS1AKuA67dl_pxK8GoTYwibipfapV2A2e-feNpmtuuKpTCnxWCkSrKmwXLuvz1Dd6xxR2bKhliqIKaES_rDae8iY1LPCcj69BGKuvy7JR0gnguK2QxTwBdf0kYcytP9meh-k/s1600/02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG5wBG-aVGS1AKuA67dl_pxK8GoTYwibipfapV2A2e-feNpmtuuKpTCnxWCkSrKmwXLuvz1Dd6xxR2bKhliqIKaES_rDae8iY1LPCcj69BGKuvy7JR0gnguK2QxTwBdf0kYcytP9meh-k/s320/02.png" width="320" /></a></div>
<br />
<br />
<br />
There are some peaks, but not a single strong one, so there is no correlation.<br />
<br />
<h2>
The real thing</h2>
<br />
Now it is time for the real thing.<br />
<ul>
<li>Take a Gold-sequence of sat 18</li>
<li>Shift it to the right 200 chips</li>
<li>Add two more Gold-sequences: sat 4 and sat 17</li>
<li>Now I have a shifted contaminated satellite signal.</li>
</ul>
First correlate with a Gold-sequence sat=20. Of course there is not any correlation, only noise<br />
Then, the wonder: correlate with a Gold-sequence sat=18. We see an obvious peak at x=200.<br />
So we know we found the satellite and we know the delay of the signal!<br />
<br />
<pre><div id="python">
import goldutil1 as gl
import pylab as pl
# Gold04.py
# Generate a Gold-sequence, shift it 200 chips
# and add two more different Gold-sequences
# then, correlate it with an arbitrary Gold-sequence
# and finally correlate it with the same Gold-sequence
# nov 2013 Kees de Groot
sat1 = 18 # this is the sat we are looking for
myGold1 = gl.Gold(sat1)
pprn1 = myGold1.prnRegAnalogue
sat2 = 20 # this is our guess1
myGold2a = gl.Gold(sat2)
pprn2a = myGold2a.prnRegAnalogue
sat2 = 18 # this is our guess2
myGold2b = gl.Gold(sat2)
pprn2b = myGold2b.prnRegAnalogue
# shift pprn1 200 bits to the right
k = 200
for i in range(1024):
temp = pprn1[(i + k)%1024]
pprn1[(i + k)%1024] = pprn1[i]
pprn1[i] = temp
# add two different Gold-sequences to pprn1
myGold3 = gl.Gold(4)
myGold4 = gl.Gold(17)
for i in range(1024):
pprn1[i] = (pprn1[i] + myGold3.prnRegAnalogue[i] +
myGold4.prnRegAnalogue[i])
# now pprn1 is contaminated with two other sequences
# cross-correlation with wrong Gold-sequence
ac = [0]*1024
for m in range(1024):
for l in range(1024):
ac[m] += pprn1[l] * pprn2a[(l + m)%1024]
print "\n 20 points around the peak at 200:"
for i in range(190, 210):
print ac[i],
print "\n..."
pl.figure(1)
pl.title("correlation with different sequence")
pl.vlines(range(1024),[0]*1024,ac)
# cross-correlation with the right Gold-sequence
ac = [0]*1024
for m in range(1024):
for l in range(1024):
ac[m] += pprn1[l] * pprn2b[(l + m)%1024]
print "\n 20 points around the peak at 200:"
for i in range(190, 210):
print ac[i],
print "\n..."
pl.figure(2)
pl.title("correlation with the right sequence")
pl.vlines(range(1024),[0]*1024,ac)
pl.show()
</div>
</pre>
With output:<br />
<br />
<pre><div id="output">
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
20 points around the peak at 200:
12 116 112 28 4 -4 -8 12 0 -48 -48 -36 -8 128 8 -4 -88 -20 -24 -28
...
20 points around the peak at 200:
48 104 124 184 72 -12 -32 0 60 8 708 -40 -20 -32 -32 80 12 -24 -80 -48
...
</div>
</pre>
Note there is no peak in the first run, but in the second run there is a peak with a value of 708, indicating strong correlation around delay = 200 chips.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUOl3vRX-qelhlEazuylY9UY6EN4k9lrFMWzi5yE3ATUpdSgZqj01C3hFENAh8UCPG5wmtVvLUfMXya_CWq1hE3IDzkxcvsHqZRM1GaJf0XHpFjzuSO-CajavV2bIt3MYlZdYIEy0VsfI/s1600/03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUOl3vRX-qelhlEazuylY9UY6EN4k9lrFMWzi5yE3ATUpdSgZqj01C3hFENAh8UCPG5wmtVvLUfMXya_CWq1hE3IDzkxcvsHqZRM1GaJf0XHpFjzuSO-CajavV2bIt3MYlZdYIEy0VsfI/s320/03.png" width="320" /></a></div>
<br />
<br />
Only noisy correlation, not one obvious peak<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVTbya2T1vCPIRX04638P405uZge9QC-SQ2bm6lwCU2NHgT6t6WJToQVY8ukTv08FDXmERssPh7ayDHWxOI6CnoL6xfD2WhKuFDoJSREqfCQbZAo4I53JQ73pCGJiSBjyL7NYKfiYjdSU/s1600/04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVTbya2T1vCPIRX04638P405uZge9QC-SQ2bm6lwCU2NHgT6t6WJToQVY8ukTv08FDXmERssPh7ayDHWxOI6CnoL6xfD2WhKuFDoJSREqfCQbZAo4I53JQ73pCGJiSBjyL7NYKfiYjdSU/s320/04.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
And there it is: a peak around x=200. A clear indication of the existence of a signal in the noise.<br />
<br />
<h2>
Conclusion:</h2>
I implemented the Gold-sequence as a class Gold in python.<br />
With that class I first demonstrated a working implementation.<br />
Then I did some experiments with (auto)correlation and finally demonstrated that you can find a certain code-sequence in a noisy contaminated signal and even calculate the delay of that signal.<br />
<div>
<br /></div>
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com0tag:blogger.com,1999:blog-8531143406441550247.post-75809276781304937952013-11-07T00:30:00.002+01:002013-11-07T00:30:44.391+01:00BladeRF data around GPS frequency of 1575.42 MHz<head>
<title>My first styled page</title>
<style type="text/css">
#linux {
padding-left: 4em;
background-color: black;
font-family: Verdana;
color: white;
}
#python {
padding-left: 4em;
background-color: navajowhite;
font-family: Verdana;
color: black;
}
</style>
</head>
<br />
<h2>
GPS revisited and some confessions</h2>
<div>
<h3>
The book</h3>
<div>
An interesting book is:</div>
<blockquote class="tr_bq">
"A software defined GPS and Galileo receiver" , a single frequency approach, by Kai Borre et al.</blockquote>
<div>
In the back of the book is a CDROM with a dataset. That dataset contains the if-output of a real SDR tuned to a GPS-signal. I copied the test-file to a convenient place and renamed it to testdata.dat.</div>
<div>
That started my struggle with GPS. In that timeperiod I did a course on java and wanted to do something ‘useful’ with that knowledge. I decided to build a GPS-receiver and program it in java. So, I bought some books, read a lot about it on the internet and really got a deep understanding of the system and the signals used in a GNSS-system.</div>
<div>
I decided to first develop the software and later concentrate on the hardware. The software was difficult enough for me…</div>
<div>
To make a really long story short I finally managed to read almanac-data from the GPS-signals. However I got stuck in the tracking loop. I never got the loop stable. That last problem never made it to my blog at <a href="http://www.qsl.net/pa1kdg/">http://www.qsl.net/pa1kdg/</a> by the way.</div>
<div>
So, I also did not succeed in calculating the position from the data in that huge data-file. But, what the heck, I learned soo much of that whole project…</div>
<h3>
Next step</h3>
<div>
My next step now is restart that whole project with a bladeRF-board. I want to use python now as a programming language. Just because I can ;>))</div>
<div>
<br /></div>
<h3>
TANSTAAFL There aint no such thing as a free lunch</h3>
<div>
Being a retired engineer, the Mathworks, the developers of MATLAB, is no longer interested in me. When I worked at Wageningen University and Research I got an enormous lot of software free. I was addicted to MATLAB (and LABVIEW by the way), with that software you can solve all your scientific problems. After my retirement I soon discovered that the love of the Mathworks I felt was quite different than real life love I perceive on a daily basis from the people around me. Just before retirement I got an SDR-board with a huge Xilinx FPGA. That would be my big and only project after retirement! Nope, Xilinx too discovered I am not longer interesting for them. Real-life for a CEO is about earning money, not about supporting retired engineers. I have not any problem to pay for hardware or software but 2000 bucks for my hobby is in-explainable to my wife (ok, this whole hobby is inexplainable…) OK, I am back on earth now with two feet on the ground, with my bladeRF and open source software. This is my real life now!!</div>
<div>
<br /></div>
<h3>
Life is complicated though</h3>
<div>
On my way along my GPS-project I discovered a lot about linux, VMWare, github, python-eggs, C, VHDL, makefiles, Quartus, SDR-Radio, gnuradio, Octavo and finally plotting in python (and kind of python-MATLAB too). And I found many sidepaths, DesignSpark Mechanical e.g. and soldering SMD’s.</div>
<div>
<br /></div>
<h3>
What now</h3>
<div>
Back to GPS. I want to record a data-file with real-bladeRF-data and try to process that file. First discover what satellites are visible, later read the almanac data. Finally try to get past that data-tracking-loop problem and solve the position-equations. In the meantime I want to try to get some calculations done in the FPGA. It should be possible to do the correlation-part in the FPGA. Quite a challenge!</div>
<h3>
Some facts</h3>
<div>
I concentrate on GPS, not GLONASS. GPS transmits on one frequency. All satellites transmit on the same frequency, that is to say, because of Doppler effects there is a slight deviation of that frequency for every satellite. Each satellite has a different code. If you know the code and the Doppler-frequency you can decode the signal of that very satellite. The signal is simply almanac-data at 50 baud. The satellites tell you constantly where they are. Because you know exactly which bit of the code-sequence you receive and because you ‘see’ 4 satelites or more you can calculate where your GPS-antenna is. For 50 $ you can buy a module that does this trick in a very good way, so…</div>
<h3>
Practical now</h3>
<div>
Ok, I tune bladeRF to 1575.42 MHz. With a bandwidth of 2 MHz I might expect to get a weak noisy signal, barely a signal, -160dBW. So, only noise.</div>
<div>
There are 32 different code sequences. Just try all those sequences one by one.</div>
<div>
There are about 60 different frequencies to consider because of the unknown Doppler shift. So try all frequencies.</div>
<div>
In a 3D-display one can find some peaks. Then you know some codes and some Doppler shifts. From then on you can decode the satellite signals and get the almanac data. Then you know te distance to each found satellite. In 3D, if you know the distance to 3 or more satellites, you can calculate where you are. Because you know where the satellites are you know where you are. Simple eh? That is GPS</div>
<div>
<br /></div>
<div>
GLONASS, the Russian system, uses different frequencies. No problem, bladeRF can handle that too. And, with an FPGA you can put the most time-consuming calculations on that chip.</div>
<div>
<br /></div>
<div>
That is the theory.</div>
<div>
<br /></div>
<div>
Tune to 1575.42 MHz. Bandwidth 2 MHz, so samplerate 4 MHz. VGA-gains at 30 dB. Get 1M samples into a file. Perform an FFT. Hopefully something interesting will show up.</div>
<div>
Filename A1575.csv without GPSantenna connected and B1575.csv with the GPSantenna connected and pearing out of my window. In the meantime I have a TomTom and a Garmin device locked at the satellites in the sky so I know some data already.</div>
<div>
<br /></div>
<div>
Got my first two files with bladeRF-cli. GPS-systems say: satellites in the sky: 2,4,5,8,9,10,13,16 of which 2,4, 9 are strongest. So I might see satellites 2, 4 and 9 in my datafiles.</div>
</div>
<div>
<br /></div>
<div>
<br /></div>
<pre><div id="linux">
[INFO] Using libusb version 1.0.16.10774
[INFO] Found a bladeRF
[INFO] Claimed all inferfaces successfully
[WARNING] extract_field: Field checksum mismatch
[WARNING] Could not extract VCTCXO trim value
[WARNING] extract_field: Field checksum mismatch
[WARNING] Could not extract FPGA size
bladeRF> load fpga hostedx115.rbf
Loading fpga from hostedx115.rbf...
[INFO] Change to alternate interface 3
[INFO] Change to alternate interface 1
[INFO] Changed into RF link mode: LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED
[INFO] Setting integer sample rate: 1000000
[INFO] Found r value of: 4
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx P1: 0x00009c66 (40038) P2: 0x00000002 (2) P3: 0x00000005 (5)
[INFO] Calculated samplerate: 1000000 + 0/1
[INFO] Set actual integer sample rate: 1000000
[INFO] Setting integer sample rate: 1000000
[INFO] Found r value of: 4
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx P1: 0x00009c66 (40038) P2: 0x00000002 (2) P3: 0x00000005 (5)
[INFO] Calculated samplerate: 1000000 + 0/1
[INFO] Set actual integer sample rate: 1000000
Done.
bladeRF> print rxvga1
RXVGA1 Gain: 33
bladeRF> print rxvga2
RXVGA2 Gain: 3dB
bladeRF> set rxvga2 33
[WARNING] Setting gain above 30dB? You crazy!!
bladeRF> set rxvga2 30
bladeRF> print rxvga2
RXVGA2 Gain: 30dB
bladeRF> set bandwidth 2000000
Set RX bandwidth - req: 2000000Hz actual: 2500000Hz
Set TX bandwidth - req: 2000000Hz actual: 2500000Hz
bladeRF> set frequency 1575420000
Set RX frequency: 1575420000Hz
Set TX frequency: 1575420000Hz
bladeRF> set bandwidth 2000000
Set RX bandwidth - req: 2000000Hz actual: 2500000Hz
Set TX bandwidth - req: 2000000Hz actual: 2500000Hz
bladeRF> set samplerate 4000000
[INFO] Setting integer sample rate: 4000000
[INFO] Found r value of: 1
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx P1: 0x00009c66 (40038) P2: 0x00000002 (2) P3: 0x00000005 (5)
[INFO] Calculated samplerate: 4000000 + 0/1
[INFO] Set actual integer sample rate: 4000000
Setting RX sample rate - req: 4000000Hz, actual: 4000000Hz
[INFO] Setting integer sample rate: 4000000
[INFO] Found r value of: 1
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx P1: 0x00009c66 (40038) P2: 0x00000002 (2) P3: 0x00000005 (5)
[INFO] Calculated samplerate: 4000000 + 0/1
[INFO] Set actual integer sample rate: 4000000
Setting TX sample rate - req: 4000000Hz, actual: 4000000Hz
bladeRF> set bandwidth 2000000
Set RX bandwidth - req: 2000000Hz actual: 2500000Hz
Set TX bandwidth - req: 2000000Hz actual: 2500000Hz
bladeRF> rx config format=csv n=1000000 file=/temp/A1575.csv
bladeRF> rx start
bladeRF> rx start
bladeRF> rx start
bladeRF> rx config format=csv n=1000000 file=/temp/B1575.csv
bladeRF> rx start
bladeRF> rx start
bladeRF> rx start
bladeRF>
</div>
</pre>
<br />
Note the warning about gain higher than 30 dB ;>))
<br />
<pre><div id="python">
# FFTSDRdata03.py
# Nov-2013 Kees de Groot
#
# show and analyse snapshot file from bladeRF
# remove DC-component
# show data in different ways; I/Q, realtimeplot, FFT
import pylab as pl
import numpy as np
import math
filename = 'B1575.csv'
fsample = 4E6
timestep = 1 / fsample
f = open('/Temp/' + filename, 'r')
print f
print "fsample = ", fsample
dataI = []
dataQ = []
n = 0
sumI = 0
sumQ = 0
# read I, Q - values into memory
for line in f:
list = line.split(',') # two values with comma inbetween
Q = int(list[0])
I = int(list[1])
# print 1st 10 lines of data-file
if n == 0:
print '1st 10 lines of I/Q-values'
if n < 10:
print I, Q
dataI.append(I) # save data in memory
dataQ.append(Q)
sumI += I
sumQ += Q
n += 1
averI = sumI / n # calculate average
averQ = sumQ / n
#averI = 0 # debug
#averQ = 0 # debug
print "n = ", n
# remove DC-component and construct complex dataC
dataC = []
for i in range(n):
I = dataI[i] - averI
Q = dataQ[i] - averQ
dataI[i] = I
dataQ[i] = Q
dataC.append(complex(I,Q)) # this one has complex data
pl.figure(1)
pl.title("Q versus I of " + filename)
pl.xlabel('=======> I')
pl.ylabel('=======> Q')
pl.plot(dataI, dataQ, 'ro')
pl.figure(2)
pl.subplot(211)
pl.title("I-values of " + filename)
pl.ylabel('=======> I')
pl.plot(dataI)
pl.subplot(212)
pl.title("Q-values of " + filename)
pl.ylabel('=======> Q')
pl.plot(dataQ)
pl.figure(3)
sp = np.fft.fft(dataC) # use fft, not rfft, since dataC is complex
freq = np.fft.fftfreq(n, d=timestep) # for convenient x-axis-ticks
pl.title('fft of ' + filename)
pl.xlabel('frequency')
pl.ylabel('magnitude')
pl.plot(freq, abs(sp)/n) # abs converts to magnitude; /n normalizes
pl.show()
</div>
</pre>
Run the program for the file without antenna connected:
I would expect simply noise but there are three peaks at
-583kHz, 0 kHz and 1022 kHz.
Perhaps the gain was too big
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglwKD_uWPCEvUTp7_znUibWXz-RBsYMdmuUY6uDlXd_F1IufTnUEHT2-Ixujt7BvzmvcgKvTYQj_4hb6Y1PJEgAf9NVQXVqrU4KimwPbAThCv_i2L3O4n1qE2VWqKCoMHct_5sPp3Fx2U/s1600/01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="184" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglwKD_uWPCEvUTp7_znUibWXz-RBsYMdmuUY6uDlXd_F1IufTnUEHT2-Ixujt7BvzmvcgKvTYQj_4hb6Y1PJEgAf9NVQXVqrU4KimwPbAThCv_i2L3O4n1qE2VWqKCoMHct_5sPp3Fx2U/s320/01.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvzI1wJ4m2Tgh0wqpxtN98tEc2rwgfvpcD2nVWoGKc13P2aJfulX5EVsKCRfBdq26JwCKI2gAW0nSdKDViXu1pHnafVtF3SIIns7kLK6Uk7R26C66t8DWYuQvl25X4XlHxvaVCaLEqGB0/s1600/02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvzI1wJ4m2Tgh0wqpxtN98tEc2rwgfvpcD2nVWoGKc13P2aJfulX5EVsKCRfBdq26JwCKI2gAW0nSdKDViXu1pHnafVtF3SIIns7kLK6Uk7R26C66t8DWYuQvl25X4XlHxvaVCaLEqGB0/s320/02.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX28Kdt0hbU6MZXZTHHeSqPZGhbSU4fTrmJRZsI5mhKPrzPCYrVvJOL1yISrN-ewyXeXTNWaoBcE6qekcl-fojSF8T8aqG9Ad8mZ7rO5CBwg8kXc1PEI_kCkkGcl9j4gASQsGRRBAfLSQ/s1600/03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX28Kdt0hbU6MZXZTHHeSqPZGhbSU4fTrmJRZsI5mhKPrzPCYrVvJOL1yISrN-ewyXeXTNWaoBcE6qekcl-fojSF8T8aqG9Ad8mZ7rO5CBwg8kXc1PEI_kCkkGcl9j4gASQsGRRBAfLSQ/s320/03.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbGRFcQbIbNshe11pv0YCE3Eq812J-854t6OvGa81KAP2Yo9aTIrhrBfjc_TfNbbzszyrdumoKu3az5B8JHZnu4fFCp4N3ScP1bG7jDhwuPzoOhjlIjlQE2ypoJYibxeHkatcGBbA9XKw/s1600/04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbGRFcQbIbNshe11pv0YCE3Eq812J-854t6OvGa81KAP2Yo9aTIrhrBfjc_TfNbbzszyrdumoKu3az5B8JHZnu4fFCp4N3ScP1bG7jDhwuPzoOhjlIjlQE2ypoJYibxeHkatcGBbA9XKw/s320/04.png" width="320" /></a></div>
I would expect simply noise but there are three peaks at<br />
-583kHz, 0 kHz and 1022 kHz.<br />
<br />
Now connect GPS-antenna<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPfFImyEQTFjPl7d20vaG2sgqg9CV1HmEqR7uLlhyphenhypheno5XZWOef1JRisxkTrbQbYppw65UJzqezPK97i3QzcDtXgnw9eqeegDjaDNg0upYmaVxGyauH1BJTs1u35vf7bp7IRGYKMQQcwU08/s1600/05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="169" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPfFImyEQTFjPl7d20vaG2sgqg9CV1HmEqR7uLlhyphenhypheno5XZWOef1JRisxkTrbQbYppw65UJzqezPK97i3QzcDtXgnw9eqeegDjaDNg0upYmaVxGyauH1BJTs1u35vf7bp7IRGYKMQQcwU08/s320/05.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC83FBXcAdfwb6bN95Xp8yVEw1PXeqsgFDEwkTbK35kBe9MXpOBMwttgt0AokMNT_j_m7-siijZNFzVVmzcYKdiNQRe19o3IcR8gAIoNnvsfodRfcavD1rCViqJ88kd4_1sH9eO0kapPs/s1600/06.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC83FBXcAdfwb6bN95Xp8yVEw1PXeqsgFDEwkTbK35kBe9MXpOBMwttgt0AokMNT_j_m7-siijZNFzVVmzcYKdiNQRe19o3IcR8gAIoNnvsfodRfcavD1rCViqJ88kd4_1sH9eO0kapPs/s320/06.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaAuNzPbKDAER9xU22RbHVThJHzkE5uy7_UR-C7w6oQ0e9MRYkqI-pkQWmQD6xuW5Q44rVDmTscZOAqsw42s-U8KH-NDk8SGoZn-tpyhUkhKYp2Knl6G3VwHqWFaMiGDfuoALSkfYehac/s1600/07.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaAuNzPbKDAER9xU22RbHVThJHzkE5uy7_UR-C7w6oQ0e9MRYkqI-pkQWmQD6xuW5Q44rVDmTscZOAqsw42s-U8KH-NDk8SGoZn-tpyhUkhKYp2Knl6G3VwHqWFaMiGDfuoALSkfYehac/s320/07.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDbzR6SbkcJ_D84X-X8BM0d4KFbjATFCdJY96_hTO6cb3WLAaKKyAt9ddyuwjmQiLklP3fvB4fUhQVetWv-OMRYawbJqkhcKTzohBJYkMNWurO0vheqe8jc74tBgI2NhKjeMO3Ajnl-2w/s1600/08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDbzR6SbkcJ_D84X-X8BM0d4KFbjATFCdJY96_hTO6cb3WLAaKKyAt9ddyuwjmQiLklP3fvB4fUhQVetWv-OMRYawbJqkhcKTzohBJYkMNWurO0vheqe8jc74tBgI2NhKjeMO3Ajnl-2w/s320/08.png" width="320" /></a></div>
<br />
Perhaps the gain was too big<br />
<br />
<br />
<br />
<pre><div id="linux">
bladeRF> set rxvga2 27
bladeRF> set rxvga1 27
bladeRF> rx config format=csv n=1000000 file=/temp/C1575.csv
bladeRF> rx start
bladeRF> rx start
bladeRF> rx start
bladeRF>
</div>
</pre>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKMwDvonapJnA42P4r78H4ArHDIWTli6DVj02XgfWmkm9pTTcdZ9YetB3B7qiWYV1fS1Y_uQ2Hpmg5VidRKzGl97qjrFwCNOOOTJiuuiGap_j1gZ1hB_IlEA81kAEekWzvmOrxN6Elxck/s1600/09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="177" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKMwDvonapJnA42P4r78H4ArHDIWTli6DVj02XgfWmkm9pTTcdZ9YetB3B7qiWYV1fS1Y_uQ2Hpmg5VidRKzGl97qjrFwCNOOOTJiuuiGap_j1gZ1hB_IlEA81kAEekWzvmOrxN6Elxck/s320/09.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu7PgY-657H7APCnTU4SMTWLmO-Y1yhHbU8oft3lf3bpnF-TPrwd_OewktFJTLSiFeFQ_CKfcrfrelnNkCegV_gYPkw0T2G4pQcBK_JYGaTwR-jHRwBoYsSDoeG40u9CfQ5i1oWvMk5MY/s1600/10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu7PgY-657H7APCnTU4SMTWLmO-Y1yhHbU8oft3lf3bpnF-TPrwd_OewktFJTLSiFeFQ_CKfcrfrelnNkCegV_gYPkw0T2G4pQcBK_JYGaTwR-jHRwBoYsSDoeG40u9CfQ5i1oWvMk5MY/s320/10.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNfqERShZkjLxfbtczostcS3GuGLQyJwAO3Q5Wvy2SVgLUOUbRX-n9t3yxPmHuIHm3trwqzWtprRetQzwEVYrmoU72yrKHLQwh494kiVi2rNvC5eQf7zLCFr4DZ-LYFkCO2JDZj_Uug7w/s1600/11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNfqERShZkjLxfbtczostcS3GuGLQyJwAO3Q5Wvy2SVgLUOUbRX-n9t3yxPmHuIHm3trwqzWtprRetQzwEVYrmoU72yrKHLQwh494kiVi2rNvC5eQf7zLCFr4DZ-LYFkCO2JDZj_Uug7w/s320/11.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxENC1uqMrMeyTHnsjrrPBRpc6AdVNwRbjgr-_fBUQaB5B5VQ2KuUsiznCjknjTmh6WvdeLqv4toc-WLuOll_T_n-IlP8ymShS35SMAt221IT5OxnEgqI1v5Y7sGseKbEEHbEh1irdvfk/s1600/12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxENC1uqMrMeyTHnsjrrPBRpc6AdVNwRbjgr-_fBUQaB5B5VQ2KuUsiznCjknjTmh6WvdeLqv4toc-WLuOll_T_n-IlP8ymShS35SMAt221IT5OxnEgqI1v5Y7sGseKbEEHbEh1irdvfk/s320/12.png" width="320" /></a></div>
<br />
<br />
<br />
I am still puzzled about the fact that I see a signal when no antenna is connected.
I remove the SMB cable from RX and set gains to 0 dB. Then create file D1575.csv:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio35XtuiZBMvQcbzbwajRULe_iIhe-jG7JZI4DPnhSme4uhdU3N8_NqX8nzPsmtNPVAUxo3o6UIHNWGbqL8MUA07B0gk7V4JkZIWmVep1IdNiO_ldjWbkm9VUgGxrq1p95_00oSaImkIA/s1600/13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="160" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio35XtuiZBMvQcbzbwajRULe_iIhe-jG7JZI4DPnhSme4uhdU3N8_NqX8nzPsmtNPVAUxo3o6UIHNWGbqL8MUA07B0gk7V4JkZIWmVep1IdNiO_ldjWbkm9VUgGxrq1p95_00oSaImkIA/s320/13.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjexHHduuyCz5Gz0efGo4D0kYZ21nHeVO2uR-1JN8x0mrgEuVlR2d6UPRJGFbUY__4C-DBF8afrOEtS9aZcGYvNgfPGoFKd6YVbFFOBjwey5PDdtCq8iILhAJkoPWdjdhfAWT9o57sB0pQ/s1600/14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjexHHduuyCz5Gz0efGo4D0kYZ21nHeVO2uR-1JN8x0mrgEuVlR2d6UPRJGFbUY__4C-DBF8afrOEtS9aZcGYvNgfPGoFKd6YVbFFOBjwey5PDdtCq8iILhAJkoPWdjdhfAWT9o57sB0pQ/s320/14.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG-q_qOmSFhICGgB6lTuiWXoJxkaYLYFLPzskhHDJ5FYggZWrzwOcLEaVqWvkRTw90lhNJFnkdUzH9sspdc7DWHy3yX5tU69w9KvQVPlHgCDDABr74JVNGruRojyFDFvSRkob3RLaTNKc/s1600/15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG-q_qOmSFhICGgB6lTuiWXoJxkaYLYFLPzskhHDJ5FYggZWrzwOcLEaVqWvkRTw90lhNJFnkdUzH9sspdc7DWHy3yX5tU69w9KvQVPlHgCDDABr74JVNGruRojyFDFvSRkob3RLaTNKc/s320/15.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD7dFLty4dlPBPYWwHWNEmitVKAAC85BvjAtcrmJRNtV-z9WfJvnwHnyQu0HJdPUlX8zJHThjaGwk4n0u3tLNdXd8jSTrPumlyjJpxO8u_fFU7HdM79ItTIQcHl8eUAQeb9viuGPtYw2U/s1600/16.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD7dFLty4dlPBPYWwHWNEmitVKAAC85BvjAtcrmJRNtV-z9WfJvnwHnyQu0HJdPUlX8zJHThjaGwk4n0u3tLNdXd8jSTrPumlyjJpxO8u_fFU7HdM79ItTIQcHl8eUAQeb9viuGPtYw2U/s320/16.png" width="320" /></a></div>
<br />
Biggest peak is at 0 Hz exactly, the other is at 1.01882E6, so around 1 MHz<br />
<br />
Again without antenna but a 50 ohm dummyload directly connected to bladeRF-RX-input.<br />
Something went wrong with the board. Error because of physical touching it with too big dummyload directly connected?<br />
<br />
<br />
<pre><div id="linux">
[INFO] Using libusb version 1.0.16.10774
[INFO] Found a bladeRF
[INFO] Claimed all inferfaces successfully
[WARNING] extract_field: Field checksum mismatch
[WARNING] Could not extract VCTCXO trim value
[WARNING] extract_field: Field checksum mismatch
[WARNING] Could not extract FPGA size
bladeRF> load fpga hostedx115.rbf
Loading fpga from hostedx115.rbf...
[INFO] Change to alternate interface 3
[INFO] Change to alternate interface 1
[INFO] Changed into RF link mode: LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED
[INFO] Setting integer sample rate: 1000000
[INFO] Found r value of: 4
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx P1: 0x00009c66 (40038) P2: 0x00000002 (2) P3: 0x00000005 (5)
[INFO] Calculated samplerate: 1000000 + 0/1
[INFO] Set actual integer sample rate: 1000000
[INFO] Setting integer sample rate: 1000000
[INFO] Found r value of: 4
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx P1: 0x00009c66 (40038) P2: 0x00000002 (2) P3: 0x00000005 (5)
[INFO] Calculated samplerate: 1000000 + 0/1
[INFO] Set actual integer sample rate: 1000000
Done.
bladeRF> print rxvga1
RXVGA1 Gain: 33
bladeRF> set rxvga1 0
bladeRF> set rxvga2 0
bladeRF> set samplerate 1000000
[INFO] Setting integer sample rate: 1000000
[INFO] Found r value of: 4
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx P1: 0x00009c66 (40038) P2: 0x00000002 (2) P3: 0x00000005 (5)
[INFO] Calculated samplerate: 1000000 + 0/1
[INFO] Set actual integer sample rate: 1000000
Setting RX sample rate - req: 1000000Hz, actual: 1000000Hz
[INFO] Setting integer sample rate: 1000000
[INFO] Found r value of: 4
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx P1: 0x00009c66 (40038) P2: 0x00000002 (2) P3: 0x00000005 (5)
[INFO] Calculated samplerate: 1000000 + 0/1
[INFO] Set actual integer sample rate: 1000000
Setting TX sample rate - req: 1000000Hz, actual: 1000000Hz
bladeRF> set frequency 1575420000
Set RX frequency: 1575420000Hz
Set TX frequency: 1575420000Hz
bladeRF> set bandwidth 2000000
Set RX bandwidth - req: 2000000Hz actual: 2500000Hz
Set TX bandwidth - req: 2000000Hz actual: 2500000Hz
bladeRF> rx config format=csv n=1000000 file=/temp/E1575.csv
bladeRF> start
Unrecognized command: start
bladeRF> rx start
bladeRF> rx start
Error: Operation invalid in current state
bladeRF> rx start
bladeRF> rx start
bladeRF> rx start
bladeRF>
</div>
</pre>
Beware: sample rate = 1 Mhz
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYwdvZstozOaX0nx8TQSKAJi8wDjfT6nJjVGT_5rcpSpcXYDvSyZllnu0ThWKSH2YmesOBkwYViuWwQHX7X8ItcxzWcdIf3yZ0meOToamhLVxLj7RpU8dtuj61mbA6BNr9SHU-37SNrQA/s1600/17.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYwdvZstozOaX0nx8TQSKAJi8wDjfT6nJjVGT_5rcpSpcXYDvSyZllnu0ThWKSH2YmesOBkwYViuWwQHX7X8ItcxzWcdIf3yZ0meOToamhLVxLj7RpU8dtuj61mbA6BNr9SHU-37SNrQA/s320/17.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
One peak at zero Hz, the other is at 19.354 Hz.<br />
Now samplerate = 2 MHz<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAhWdzkZ8O5UrSSowk_JMxHuax2tdTbR2RLm6WrQszMmZZFBAnw4zENbKs-GkBki4DKe9AbGmvykN52Z6qtQo1Eiid_MknivbFjWRshBrF-9gQru1GwaiqcusNgjwGHbMkqFkz4_sOvAw/s1600/18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="167" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAhWdzkZ8O5UrSSowk_JMxHuax2tdTbR2RLm6WrQszMmZZFBAnw4zENbKs-GkBki4DKe9AbGmvykN52Z6qtQo1Eiid_MknivbFjWRshBrF-9gQru1GwaiqcusNgjwGHbMkqFkz4_sOvAw/s320/18.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihtxq4Iej9emARnRdL-EyilJa91VsSDkBJS1WFevHPY1boBSd-1nIO_IRTvLanEHanb5wVXJvgCOdUY6QeDTYiaRVodNMqHlTrBuloSW2LvMCv9niB61aIFpUGQUsNa-t939BxskPp8Do/s1600/19.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihtxq4Iej9emARnRdL-EyilJa91VsSDkBJS1WFevHPY1boBSd-1nIO_IRTvLanEHanb5wVXJvgCOdUY6QeDTYiaRVodNMqHlTrBuloSW2LvMCv9niB61aIFpUGQUsNa-t939BxskPp8Do/s320/19.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<span style="text-align: center;">Now same with samplerate = 4MHz</span><br />
<span style="text-align: center;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3tHL_ifDaBlvrn04-8FR-GBq_iHcSohrcwggM5cPJtKQ74SsyJVffokwRYlPjF4NrTHkZfpsWVA94uQfNReDvNwrMnTu7LDMQ9u0hwcT6CIhyphenhyphen3PaKak6zPlFBReJbWQDGc_plroc7Svc/s1600/20.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="171" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3tHL_ifDaBlvrn04-8FR-GBq_iHcSohrcwggM5cPJtKQ74SsyJVffokwRYlPjF4NrTHkZfpsWVA94uQfNReDvNwrMnTu7LDMQ9u0hwcT6CIhyphenhyphen3PaKak6zPlFBReJbWQDGc_plroc7Svc/s320/20.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKZLQIi1nQCu_mgsDr9VcQfdAW6T6PhVBW4hDoQb7IIfzZsL3PIv1H63Xzk6i-sRJxQBjoWHDhLB3qW9Rvn4mgJErUtLQ9S0R31JHOS25CqPOGe0EUQcDMqAppFEG7tVBr3Ui5vyshL3M/s1600/21.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKZLQIi1nQCu_mgsDr9VcQfdAW6T6PhVBW4hDoQb7IIfzZsL3PIv1H63Xzk6i-sRJxQBjoWHDhLB3qW9Rvn4mgJErUtLQ9S0R31JHOS25CqPOGe0EUQcDMqAppFEG7tVBr3Ui5vyshL3M/s320/21.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieoxJppabPwzSYki2iqlRtlYvyxSKySfagG1ZdgsGmQQm-OmtL6HoiDp0ObHY8GjDQtENNQGwXoCgK5VDynem8pc9JpBvuMbvEPBGIVRbFIHHeW51bESewEPrQUcRuZGWf9aHZQVXXDAg/s1600/22.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="151" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieoxJppabPwzSYki2iqlRtlYvyxSKySfagG1ZdgsGmQQm-OmtL6HoiDp0ObHY8GjDQtENNQGwXoCgK5VDynem8pc9JpBvuMbvEPBGIVRbFIHHeW51bESewEPrQUcRuZGWf9aHZQVXXDAg/s320/22.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5cu0_8oVeoIqpn1-JOc9xGI_aGCHNXc6ikwhRhGh2ZG4Puh8LwYN9DQ-3-ytFa-DyOKqnmwWRVFS_zOXxyqWtfnIR4IUEBzoJIzpTcZXhT5kSl7EMLB4-ZeXR2n48_Mq-K_8POI03MXQ/s1600/23.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="175" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5cu0_8oVeoIqpn1-JOc9xGI_aGCHNXc6ikwhRhGh2ZG4Puh8LwYN9DQ-3-ytFa-DyOKqnmwWRVFS_zOXxyqWtfnIR4IUEBzoJIzpTcZXhT5kSl7EMLB4-ZeXR2n48_Mq-K_8POI03MXQ/s320/23.png" width="320" /></a></div>
<span style="text-align: center;"><br /></span>
<span style="text-align: center;"><br /></span>
<span style="text-align: center;">Still, no antenna connected, but dummyload directly at RX</span><br />
<span style="text-align: center;"><br /></span>
<h2>
<span style="text-align: center;">Conclusion</span></h2>
<div>
<span style="text-align: center;">I have a problem. I expected a flat noise floor without any antenna connected. But I see some spurious signals. I might be able to explain the signal at 0 Hz. But the others are strange.</span></div>
<div>
<span style="text-align: center;">I have to check again without any antenna connected and vary the parameters that I can set:</span></div>
<div>
<span style="text-align: center;">n, the number of samples, it might be a hickup of the interface</span></div>
<div>
<span style="text-align: center;">samplerate, there is a clock, so there are some signals</span></div>
<div>
<span style="text-align: center;">frequency, mixer-products?</span></div>
<div>
<span style="text-align: center;">rxvga1 the more gain, the more spurious signals</span></div>
<div>
<span style="text-align: center;">rxvga2 same</span></div>
<div>
<span style="text-align: center;">bandwidth, dont think so</span></div>
<div>
<span style="text-align: center;"><br /></span></div>
<div>
<span style="text-align: center;">Well I had a nice evening trying to get a GPS-satellite-signal but discovered my bladeRF also is very creative?</span></div>
<div>
<span style="text-align: center;"><br /></span></div>
<div>
<span style="text-align: center;"><br /></span></div>
<div>
<span style="text-align: center;"><br /></span></div>
<div>
<span style="text-align: center;"><br /></span></div>
Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com0tag:blogger.com,1999:blog-8531143406441550247.post-40042280202798703202013-11-04T23:48:00.000+01:002013-11-04T23:48:10.393+01:00Data analysis of a file of bladeRF samples with python<head>
<title>My first styled page</title>
<style type="text/css">
#linux {
padding-left: 4em;
background-color: black;
font-family: Verdana;
color: white;
}
#python {
padding-left: 4em;
background-color: navajowhite;
font-family: Verdana;
color: black;
}
</style>
</head>
<br />
<h2>
Finally, some python-programming</h2>
<div>
With bladeRF-CLI, the bladeRF-control-program, one can collect received data into a file. That file contains I- and Q-samples. With a very simple python-program I try to get some insight in the received data.</div>
<div>
<br /></div>
<h3>
First python-program for bladeRF-datafile</h3>
Create a data-file with bladeRF-cli:
<br />
<pre><div id="linux">
bladeRF> version
[WARNING] FPGA currently does not have a version number.
Serial #: b436de8c8212b9aeaaeba852246866e7
VCTCXO DAC calibration: 0x9a5d
FPGA size: 115 KLE
Firmware version: 1.5
FPGA version: 0.0
bladeRF> print bandwidth
RX Bandwidth: 28000000Hz
TX Bandwidth: 28000000Hz
bladeRF> print samplerate
[INFO] Calculated samplerate: 1000000 + 0/1
[INFO] Calculated samplerate: 1000000 + 0/1
RX sample rate: 1000000
TX sample rate: 1000000
bladeRF> set frequency 800000000
Set RX frequency: 800000000Hz
Set TX frequency: 800000000Hz
bladeRF> rx config format=csv n=1024 file=C:/temp/A800MHzCW.csv
bladeRF> rx start
bladeRF>
</div>
</pre>
And now analyse the datafile with a python-program
<br />
<br />
<pre><div id="python">
f = open('/Temp/A800MHzCW.csv', 'r')
n = 0
averageI = 0
averageQ = 0
for line in f:
if n < 10:
print line,
list = line.split(',')
I = int(list[0])
Q = int(list[1])
#print "I =",I, "Q =",Q
averageI = averageI + I
averageQ = averageQ + Q
n = n + 1
averageI = averageI / n
averageQ = averageQ / n
print f
print "averageI = ", averageI, " averageQ = ", averageQ
</div>
</pre>
and the output is:
<br />
<pre>Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
110, 100
113, 100
112, 103
114, 104
112, 105
110, 101
114, 100
112, 100
115, 97
113, 97
<open 0x02d349c0="" at="" emp="" file="" mode="" r="" zcw.csv="">
averageI = 110 averageQ = 98
>>>
</open></pre>
<br />
This may seem a silly simple program but:<br />
<br />
<ul>
<li>I can read a file</li>
<li>I can interpret the content and get I and Q samples</li>
<li>I can print values</li>
<li>I can calculate some data</li>
</ul>
<div>
So, this is a sort of 'Hello world' program.</div>
<div>
<br />
<h3>
Plotting in python</h3>
</div>
<div>
How?<br />
I need to install matplotlib for python 2.7<br />
Download from <a href="http://sourceforge.net/projects/matplotlib/postdownload?source=dlp">http://sourceforge.net/projects/matplotlib/postdownload?source=dlp</a><br />
And execute matplotlib-1.3.1.win-amd64-py2.7.exe<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGog0W5KFBji3ndipNVOFVMlYMnPyqTuD12EdZV3OrPN3BfO4jCLfuIUhDtgCNxB9q-I02yXHDbbae9NALjQKafhBGJEk1lHBxSB9yZJeH4QHRk4ah8lbiS7xP8ZfqAYhx_WVjoTpRTbs/s1600/01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="114" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGog0W5KFBji3ndipNVOFVMlYMnPyqTuD12EdZV3OrPN3BfO4jCLfuIUhDtgCNxB9q-I02yXHDbbae9NALjQKafhBGJEk1lHBxSB9yZJeH4QHRk4ah8lbiS7xP8ZfqAYhx_WVjoTpRTbs/s320/01.png" width="320" /></a></div>
<br />
Helloo, I _<b>have</b>_ python 2.7 installed!!!<br />
<br />
I have python 2.7 running on my machine, obviously not registered properly?<br />
I’’ try matplotlib-1.3.1.win32-py2.7.exe instead<br />
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKrSziC9Nscpftst3iv5lOsYdDPy8ZYNLnVCrG_8emZNosMRIHo_waXisHoMd1vS5k6RyqW-QTMev8LYwq9401qrUpvxEaNv4gaiw_2DDji-sdSWrF3x2C6z_dbur3FljvRXnszirtM80/s1600/02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKrSziC9Nscpftst3iv5lOsYdDPy8ZYNLnVCrG_8emZNosMRIHo_waXisHoMd1vS5k6RyqW-QTMev8LYwq9401qrUpvxEaNv4gaiw_2DDji-sdSWrF3x2C6z_dbur3FljvRXnszirtM80/s320/02.png" width="320" /></a></div>
<div>
<br /></div>
Seems to be ok.<br />
<br />
But...<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWNObrnHDyvEFsFYX7aGdiKOFTZN6wi_ZGji_RUUSppwjfbqSsbFKRKuYOv9fGRnvFs8gqgG5hyb7_8Z3eg83k9PRLuT3kkDicsurtvkds9ttH997uKnXeqRS0sWjdxD-plrvfz2x08KY/s1600/03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="114" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWNObrnHDyvEFsFYX7aGdiKOFTZN6wi_ZGji_RUUSppwjfbqSsbFKRKuYOv9fGRnvFs8gqgG5hyb7_8Z3eg83k9PRLuT3kkDicsurtvkds9ttH997uKnXeqRS0sWjdxD-plrvfz2x08KY/s320/03.png" width="320" /></a></div>
<br />
So...<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6rnAFUagTl76mA2X7ovc4p1Pwx-RniwNfdd6WnaNkKh5LINttiDBzNuFCx3MwCI6m4TGXiJkDQ8C3R00fRS9SeoUbLMrlr3QIeW4B4B7c8Ul88rTM78ApGvrz2Ktx9JBTR21_zcY_uq0/s1600/04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6rnAFUagTl76mA2X7ovc4p1Pwx-RniwNfdd6WnaNkKh5LINttiDBzNuFCx3MwCI6m4TGXiJkDQ8C3R00fRS9SeoUbLMrlr3QIeW4B4B7c8Ul88rTM78ApGvrz2Ktx9JBTR21_zcY_uq0/s320/04.png" width="320" /></a></div>
<br />
From <a href="http://www.lfd.uci.edu/~gohlke/pythonlibs/">http://www.lfd.uci.edu/~gohlke/pythonlibs/</a><br />
python-dateutil-1.5.win32-py2.7.exe<br />
<br />
>>> import matplotlib<br />
<br />
Traceback (most recent call last):<br />
File "<pyshell#4>", line 1, in <module><br />
import matplotlib<br />
File "C:\Python27\lib\site-packages\matplotlib\__init__.py", line 125, in <module><br />
raise ImportError("matplotlib requires pyparsing")<br />
ImportError: matplotlib requires pyparsing<br />
>>><br />
<br />
From <a href="http://www.lfd.uci.edu/~gohlke/pythonlibs/">http://www.lfd.uci.edu/~gohlke/pythonlibs/</a><br />
pyparsing-2.0.1.win32-py2.7.exe<br />
<br />
>>> import matplotlib<br />
>>><br />
<br />
Quite encouraging!<br />
<br />
All examples from internet about plotting with matplotlib function very well!<br />
<br />
Nice playing by the way!!<br />
<br />
<blockquote class="tr_bq">
Sometimes it is difficult to go persistently only into the direction of your goal. Before my retirement I had to focus on result, that was very important. But there are so many distracting sidepaths... Nowadays I play a lot, go into an enormous lot of sidepaths, and that is great fun! So, progress is not the issue anymore...</blockquote>
<h3>
Some data-files</h3>
summary:<br />
freq = 1575.450.000 Hz<br />
bandwidth = 28.000.000 Hz<br />
samplerate = 1.000.000 Hz<br />
file=/temp/AA.csv<br />
n = 5000 samples<br />
<br /></div>
<pre><div id="python">
# FFTSDRdata01.py
# Oct-2013 Kees de Groot
#
# show data collected from bladeRF
import pylab as pl
import numpy as np
import math
filename = 'AA.csv'
f = open('/Temp/' + filename, 'r')
print f
n = 0
dataI = []
dataQ = []
dataC = []
for line in f: # print 1st 10 lines of data-file
if n < 10:
print line,
list = line.split(',')
I = int(list[0])
Q = int(list[1])
dataI.append(I)
dataQ.append(Q)
dataC.append(complex(I,Q))
n += 1
print "n = ", n
pl.figure(1)
pl.title("Q versus I of " + filename)
pl.xlabel('=======> I')
pl.ylabel('=======> Q')
pl.plot(dataI, dataQ, 'ro')
pl.figure(2)
pl.subplot(211)
pl.title(filename)
pl.ylabel('=======> I')
pl.plot(dataI)
pl.title("I-values of " + filename)
pl.subplot(212)
pl.title(filename)
pl.ylabel('=======> Q')
pl.plot(dataQ)
pl.figure(3)
fsample = 1E6
timestep = 1 / fsample
sp = np.fft.fft(dataC)
freq = np.fft.fftfreq(n, d=timestep)
pl.title(filename)
pl.plot(freq, abs(sp))
pl.show()
</div>
</pre>
<br />
<br />
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32<br />
Type "copyright", "credits" or "license()" for more information.<br />
>>> ================================ RESTART ================================<br />
>>><br />
<open file '/Temp/AA.csv', mode 'r' at 0x0343D390><br />
80, 80<br />
82, 77<br />
81, 77<br />
77, 79<br />
80, 77<br />
80, 81<br />
78, 79<br />
81, 76<br />
84, 80<br />
80, 76<br />
n = 5000<br />
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9p-PUM6lLgwSNXtQ1JiI8FIv2XUMBt08Pdl6uYKsV7FkkqZgkNvTn5Ndtn2DjXTUXSykhhVL8HXlBCboxxJrwNuYA936u7hgzeoHAkreYGF5BsIppP6uZXGLF1PpgC-mtRrygkdYCC2Q/s1600/05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="270" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9p-PUM6lLgwSNXtQ1JiI8FIv2XUMBt08Pdl6uYKsV7FkkqZgkNvTn5Ndtn2DjXTUXSykhhVL8HXlBCboxxJrwNuYA936u7hgzeoHAkreYGF5BsIppP6uZXGLF1PpgC-mtRrygkdYCC2Q/s320/05.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3Nth27Nhbhv2xkJoVQ6wsIejutdUUtDYaL8NVIahWu6XOHktfBjwu7nA0Q9HVq0zxX6uIgHmH5syAUrxAhbktCpN52mifVl7Y4Qns4kA79KahaVT1jL9J6pWjtTuTBNhMNhXU8cmVbdU/s1600/06.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="270" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3Nth27Nhbhv2xkJoVQ6wsIejutdUUtDYaL8NVIahWu6XOHktfBjwu7nA0Q9HVq0zxX6uIgHmH5syAUrxAhbktCpN52mifVl7Y4Qns4kA79KahaVT1jL9J6pWjtTuTBNhMNhXU8cmVbdU/s320/06.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLlLe3u-xWI1Zy0GAwYnHmmqu9bFY-X35hwKQbKzcXmcnKe6nBZLQve2i5PQ8hBSd5vUjf4VdDnaoU7xH-sLFw-jOk-K-TYlkltGI9VchjxEroljMF1KmesRP7YKwMMhcLGr3ye4B4dxA/s1600/07.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="270" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLlLe3u-xWI1Zy0GAwYnHmmqu9bFY-X35hwKQbKzcXmcnKe6nBZLQve2i5PQ8hBSd5vUjf4VdDnaoU7xH-sLFw-jOk-K-TYlkltGI9VchjxEroljMF1KmesRP7YKwMMhcLGr3ye4B4dxA/s320/07.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div>
No rocket-science, but quite encouraging.</div>
<div>
I see some interruptions/setting-changes/discontinuities, but what-the-heck: nice pictures!</div>
<blockquote class="tr_bq">
(I may be a strange person, but I really became quite excited when I first got these pictures!)</blockquote>
<div>
<h3>
<span lang="EN-US">Settable gains inside the bladeRF-board</span></h3>
<div class="MsoNoSpacing">
From the
log of SDR-Radio console:</div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">16:33:51>
bladeRF<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">16:33:51> --Starting sending<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">16:33:51> Set RX VGA gain 2: value 30dB, status =
Success<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">16:33:51> Set RX LPF mode: Normal, status = Success<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">16:33:51> Set RX VGA gain 1: value 30dB, status =
Success<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">16:33:51> Set LNA gain: Maximum, status = Success<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">16:33:51>
Input Reader (Part 1)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">16:33:51> Starting listener, Radio defn 04A686B0,
buffer size 65536<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">There is
a third settable gain: lna-gain.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">
</span><br />
<pre><div id="linux">
<span lang="EN-US">[INFO] Using libusb version 1.0.16.10774
[INFO] Found a bladeRF
[INFO] Claimed all inferfaces successfully
[INFO] Change to alternate interface 1
[INFO] Changed into RF link mode: LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED
[WARNING] extract_field: Field checksum mismatch
[WARNING] Could not extract VCTCXO trim value
[WARNING] extract_field: Field checksum mismatch
[WARNING] Could not extract FPGA size
bladeRF> print bandwidth
RX Bandwidth: 28000000Hz
TX Bandwidth: 28000000Hz
bladeRF> print frequency
RX Frequency: 1575450000Hz
TX Frequency: 1575450000Hz
bladeRF> print samplerate
[INFO] Calculated samplerate: 38400000 + 0/1
[INFO] Calculated samplerate: 1000000 + 0/1
RX sample rate: 38400000
TX sample rate: 1000000
bladeRF> print vga1gain
print: Invalid parameter (vga1gain)
bladeRF> print gainvga1
print: Invalid parameter (gainvga1)
bladeRF> help set
set <param /> <arguments>
The set command takes a parameter and an arbitrary number of
arguments for that particular command. The parameter is one
of:
bandwidth Bandwidth settings
config Overview of everything
frequency Frequency settings
lmsregs LMS6002D register dump
loopback Loopback settings
mimo MIMO settings
pa PA settings
pps PPS settings
refclk Reference clock settings
rxvga1 Gain setting of RXVGA1 in dB (range: )
rxvga2 Gain setting of RXVGA2 in dB (range: )
samplerate Samplerate settings
trimdac VCTCXO Trim DAC settings
txvga1 Gain setting of TXVGA1 in dB (range: )
txvga2 Gain setting of TXVGA2 in dB (range: )
bladeRF> print rxvga1
RXVGA1 Gain: 30
bladeRF> print rxvga2
RXVGA2 Gain: 30dB
bladeRF>
</arguments></span></div>
<span lang="EN-US">
<div class="MsoNoSpacing" style="background: white; mso-background-themecolor: background1;">
<span lang="EN-US">nope, no other gain-setting.<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="background: white; mso-background-themecolor: background1;">
What is the maximum data-rate / samplerate for USB2?</div>
</span><h3>
<span lang="EN-US">A lot of different experiments lead to the following python-program:</span></h3>
A.csv is a file without any connection from bladeRF to the signal generator, so, pure noise
<h3>
<span lang="EN-US"><div class="MsoNoSpacing" style="background: white; mso-background-themecolor: background1;">
<span lang="EN-US"><o:p>The python-program:</o:p></span></div>
<div class="MsoNoSpacing" style="background: white; mso-background-themecolor: background1;">
</div>
</span></h3>
</pre>
</div>
</div>
<pre><div id="python">
# FFTSDRdata03.py
# Nov-2013 Kees de Groot
#
# show and analyse snapshot file from bladeRF
# remove DC-component
# show data in different ways; I/Q, realtimeplot, FFT
import pylab as pl
import numpy as np
import math
filename = 'A.csv'
fsample = 1E6
timestep = 1 / fsample
f = open('/Temp/' + filename, 'r')
print f
print "fsample = ", fsample
dataI = []
dataQ = []
n = 0
sumI = 0
sumQ = 0
# read I, Q - values into memory
for line in f:
list = line.split(',') # two values with comma inbetween
Q = int(list[0])
I = int(list[1])
# print 1st 10 lines of data-file
if n == 0:
print '1st 10 lines of I/Q-values'
if n < 10:
print I, Q
dataI.append(I) # save data in memory
dataQ.append(Q)
sumI += I
sumQ += Q
n += 1
averI = sumI / n # calculate average
averQ = sumQ / n
print "n = ", n
# remove DC-component and construct complex dataC
dataC = []
for i in range(n):
I = dataI[i] - averI
Q = dataQ[i] - averQ
dataI[i] = I
dataQ[i] = Q
dataC.append(complex(I,Q)) # this one has complex data
pl.figure(1)
pl.title("Q versus I of " + filename)
pl.xlabel('=======> I')
pl.ylabel('=======> Q')
pl.plot(dataI, dataQ, 'ro')
pl.figure(2)
pl.subplot(211)
pl.title("I-values of " + filename)
pl.ylabel('=======> I')
pl.plot(dataI)
pl.subplot(212)
pl.title("Q-values of " + filename)
pl.ylabel('=======> Q')
pl.plot(dataQ)
pl.figure(3)
sp = np.fft.fft(dataC) # use fft, not rfft, since dataC is complex
freq = np.fft.fftfreq(n, d=timestep) # for convenient x-axis-ticks
pl.title('fft of ' + filename)
pl.xlabel('frequency')
pl.ylabel('magnitude')
pl.plot(freq, abs(sp)/n) # abs converts to magnitude; /n normalizes
pl.show()
</div>
</pre>
With output<br />
A.csv is a file without any connection from bladeRF to the signal generator, so, pure noise:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG1JKd5oBptK1d7S-dsOSkqctdWmWYjZRq-cX3ELLFIEbhm-BNEBTKZ1M5UhlQXOCBXzvaBhapRRovQifDJGn7iXrocvkBHMJ3xNNwD1TWZaXUraiWIUDV1UMkdkc-VIkuns-IwnqtV1A/s1600/08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="185" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG1JKd5oBptK1d7S-dsOSkqctdWmWYjZRq-cX3ELLFIEbhm-BNEBTKZ1M5UhlQXOCBXzvaBhapRRovQifDJGn7iXrocvkBHMJ3xNNwD1TWZaXUraiWIUDV1UMkdkc-VIkuns-IwnqtV1A/s320/08.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbeH2iT1bcILLx0_pP_jbCnSgiiIwIbi9F_eVgxQcE7jFbSLjyoJJFlLuXcat3zwxtTMu549Tq58GfWQ43uGhFRPZubrApKlD_qtoRT8QptOYqv3u8ahzNdy1IdGYf9Anl7Ele2xWC70o/s1600/09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbeH2iT1bcILLx0_pP_jbCnSgiiIwIbi9F_eVgxQcE7jFbSLjyoJJFlLuXcat3zwxtTMu549Tq58GfWQ43uGhFRPZubrApKlD_qtoRT8QptOYqv3u8ahzNdy1IdGYf9Anl7Ele2xWC70o/s320/09.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibcQq4GTQFRNldiHqB8vinYuY5LNM40go5RHPjmqL19f3wBPNsvNAmpBL-vFBwhTQb4N4SxhZxiNNh9nEgw9djqe1unvpTle3yUbPVeRsS0ZcpdTesHBlvtJkGGDYE8eQwMyrXuvDoHZ0/s1600/10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibcQq4GTQFRNldiHqB8vinYuY5LNM40go5RHPjmqL19f3wBPNsvNAmpBL-vFBwhTQb4N4SxhZxiNNh9nEgw9djqe1unvpTle3yUbPVeRsS0ZcpdTesHBlvtJkGGDYE8eQwMyrXuvDoHZ0/s320/10.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIsoqxpgcW-YniokyJ1Ceo2eJu-5Z_44ORyQ5BAsfvtdY7I5UQx9U5GzS3xgkOgWrpuEln_O_rubC_1vyByyn3mvhsh3GgN3VJfqMhlGypDF657MpNWsreDQ2KI0T9kXPZMOdq0XUaWSI/s1600/11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIsoqxpgcW-YniokyJ1Ceo2eJu-5Z_44ORyQ5BAsfvtdY7I5UQx9U5GzS3xgkOgWrpuEln_O_rubC_1vyByyn3mvhsh3GgN3VJfqMhlGypDF657MpNWsreDQ2KI0T9kXPZMOdq0XUaWSI/s320/11.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
There is an enormous peak at 200kHz which was not there before on other pictures. I have to find out what is happening there.<br />
<br />
I did a lot of more measurements:<br />
<br />
BladeRF is setup:<br />
RX Bandwidth: 28.000.000Hz<br />
RX sample rate: 1.000.000<br />
RX frequency: 646.000.000 Hz<br />
RXVGA1 Gain: 33<br />
RXVGA2 Gain: 3dB<br />
A.csv is a file without any connection from bladeRF to the signal generator, so, pure noise<br />
Now the signal generator, a HP8656B is directly connected to RX of bladeRF<br />
B.csv is 646 MHz, AM 1 kHz 75% modulation, 1 µV amplitude<br />
C.csv is 3,98 µV<br />
D.csv is 7.94 µV<br />
E.csv is 31.6 µV<br />
F.csv is 63,1 µV<br />
<br />
Back to 1 µV and now FM 1 kHz sweep 75 kHz wide<br />
<br />
AF.csv is 1 µV<br />
BF.csv is 3.98 µV<br />
CF.csv is 7.94 µV<br />
DF.csv is 31,6 µV<br />
<br />
This last signal, DF.csv, is very nice:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdr3PUV0z8XWm8-aMAjIGCxJ878WeDMLtUgHoCEKiyyXEuyi1IvzcGsajyhudF77xmp9ZOb5C8WrzJ1DDpN9s4pZ3fe5P0DNbU-296H4Jj0FD5JMCm0HPhGzCrXQqvxnKYAwcryHml9-8/s1600/12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdr3PUV0z8XWm8-aMAjIGCxJ878WeDMLtUgHoCEKiyyXEuyi1IvzcGsajyhudF77xmp9ZOb5C8WrzJ1DDpN9s4pZ3fe5P0DNbU-296H4Jj0FD5JMCm0HPhGzCrXQqvxnKYAwcryHml9-8/s320/12.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_iUxf3L9NEYOrwQeovTKWCrkRlYU3z4VL9LKaRS0SxDSzql2IoBlC234baxPLfvGk0rt50H0iKHqhYzyebu1MyA1yV3obIooiYj31d3oE1QW2k7zwyQ6E1S6QuhTD1_CHMYiuFc-c25M/s1600/13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_iUxf3L9NEYOrwQeovTKWCrkRlYU3z4VL9LKaRS0SxDSzql2IoBlC234baxPLfvGk0rt50H0iKHqhYzyebu1MyA1yV3obIooiYj31d3oE1QW2k7zwyQ6E1S6QuhTD1_CHMYiuFc-c25M/s320/13.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXwgjsTmDlN2FP-LMlyRQYMxpiAZdwdSsCi2tRxRLyLL4ChPOaZzfcO7wj0ZlftkZ3rK-GUkZWwv2vh5EqC9VoboBxMEw3sPdOufoSWTRF04mO49MKJKYoe7qitqxyLprErjut-TDl0N4/s1600/14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXwgjsTmDlN2FP-LMlyRQYMxpiAZdwdSsCi2tRxRLyLL4ChPOaZzfcO7wj0ZlftkZ3rK-GUkZWwv2vh5EqC9VoboBxMEw3sPdOufoSWTRF04mO49MKJKYoe7qitqxyLprErjut-TDl0N4/s320/14.png" width="320" /></a></div>
<br />
<h2>
Conclusion</h2>
<div>
I managed to get a file with data (I and Q-samples) from bladeRF-board. With a program written in python I managed to read these files, interpret and show the data. Nice results, and a big question: what is that signal at 200kHz? So, every experiment gives you new things to investigate...</div>
<div>
<br /></div>
<blockquote class="tr_bq">
Wife: what are you doing?<br />Me: Well, you know, my project..<br />Wife: What are you trying to achieve?<br />Me: Well, at the end this board will tell me where I am..<br />Wife: Do you know where you are at the end?<br />Me: Yes..<br />Wife: So, ???</blockquote>
<div>
<br /></div>
<blockquote class="tr_bq">
This whole project, that keeps me out of all evil places of the world, that keeps me home, ok, that keeps me behind my laptop the whole evening and the first part of the night, that keeps me active,<br />h o w c a n I e v e r e x p l a i n t o a n a l i e n w h a t I a m d o i n g h e r e?<br />My wife stops asking when I speak the magic spell: "it is just my hobby!"</blockquote>
<div>
<br /></div>
<blockquote class="tr_bq">
<br /></blockquote>
Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com1tag:blogger.com,1999:blog-8531143406441550247.post-82343187354708031392013-11-01T00:09:00.000+01:002013-11-01T00:09:05.883+01:00How to blow up a bladeRF-board and recover from it<head>
<title>My first styled page</title>
<style type="text/css">
#linux {
padding-left: 4em;
background-color: black;
font-family: Verdana;
color: white;
}
#python {
padding-left: 4em;
background-color: navajowhite;
font-family: Verdana;
color: black;
}
</style>
</head>
In the blog of nuand.com I read:<br />
<blockquote class="tr_bq">
By upgrading to the latest FX3 image ( http://nuand.com/fx3/latest.img ) you can now store FPGA images on the SPI flash by running `bladeRF-cli -L hostedx40.rbf`. This will allow your bladeRF to read an FPGA image from flash and program the FPGA without the need of a host computer.</blockquote>
So, that is what I tried. But -L is not the right command, nothing happens. So, I tried -f instead. I programmed the Flash-memory of the USB-FX3-chip with an FPGA-image. Yes, very stupid. After that I had an expensive board not even useful as a presse-papier.<br />
<br />
But don't panic. I easily found an followed the recipe to wake up my precious bladeRF-board from the "booting-sleep" it was in.<br />
<br />
<h2>
How I destroyed the Flash-memory</h2>
<pre><div id="linux">
Microsoft Windows [versie 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Alle rechten voorbehouden.
C:\Users\lonneke\Desktop>cd \Program Files (x86)\bladeRF\x64
C:\Program Files (x86)\bladeRF\x64>bladeRF-cli -L hostedx115.rbf
0.5.0-git-
C:\Program Files (x86)\bladeRF\x64>bladeRF-cli
Usage: bladeRF-cli <options>
bladeRF command line interface and test utility (0.4.0-git-)
Options:
-d, --device <device> Use the specified bladeRF device.
-f, --flash-firmware <file> Flash specified firmware file.
-l, --load-fpga <file> Load specified FPGA bitstream.
-p, --probe Probe for devices, print results, then exit.
-s, --script <file> Run provided script.
-i, --interactive Enter interactive mode.
-L, --lib-version Print libbladeRF version and exit.
-v, --verbosity <level> Set the libbladeRF verbosity level.
Levels, listed in increasing verbosity, are:
critical, error, warning,
info, debug, verbose
-V, --version Print CLI version and exit.
-h, --help Show this help text.
Notes:
The -d option takes a device specifier string. See the bladerf_open()
documentation for more information about the format of this string.
If the -d parameter is not provided, the first available device
will be used for the provided command, or will be opened prior
to entering interactive mode.
C:\Program Files (x86)\bladeRF\x64>bladeRF-cli.exe -f ../hostedx115.rbf
[INFO] Using libusb version 1.0.16.10774
[INFO] Found a bladeRF
[INFO] Claimed all inferfaces successfully
[INFO] Change to alternate interface 1
[INFO] Changed into RF link mode: LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED
Flashing firmware...
[INFO] Change to alternate interface 2
[INFO] Erasing 55 sectors starting @ sector 0
[INFO] Erased sector 0...
[INFO] Erased sector 1...
[INFO] Erased sector 2...
[INFO] Erased sector 3...
[INFO] Erased sector 4...
[INFO] Erased sector 5...
[INFO] Erased sector 6...
[INFO] Erased sector 7...
[INFO] Erased sector 8...
[INFO] Erased sector 9...
[INFO] Erased sector 10...
[INFO] Erased sector 11...
[INFO] Erased sector 12...
[INFO] Erased sector 13...
[INFO] Erased sector 14...
[INFO] Erased sector 15...
[INFO] Erased sector 16...
[INFO] Erased sector 17...
[INFO] Erased sector 18...
[INFO] Erased sector 19...
[INFO] Erased sector 20...
[INFO] Erased sector 21...
[INFO] Erased sector 22...
[INFO] Erased sector 23...
[INFO] Erased sector 24...
[INFO] Erased sector 25...
[INFO] Erased sector 26...
[INFO] Erased sector 27...
[INFO] Erased sector 28...
[INFO] Erased sector 29...
[INFO] Erased sector 30...
[INFO] Erased sector 31...
[INFO] Erased sector 32...
[INFO] Erased sector 33...
[INFO] Erased sector 34...
[INFO] Erased sector 35...
[INFO] Erased sector 36...
[INFO] Erased sector 37...
[INFO] Erased sector 38...
[INFO] Erased sector 39...
[INFO] Erased sector 40...
[INFO] Erased sector 41...
[INFO] Erased sector 42...
[INFO] Erased sector 43...
[INFO] Erased sector 44...
[INFO] Erased sector 45...
[INFO] Erased sector 46...
[INFO] Erased sector 47...
[INFO] Erased sector 48...
[INFO] Erased sector 49...
[INFO] Erased sector 50...
[INFO] Erased sector 51...
[INFO] Erased sector 52...
[INFO] Erased sector 53...
[INFO] Erased sector 54...
[INFO] Change to alternate interface 2
[INFO] Flashing with write size = 64
[INFO] Verifying with read size = 64
Done.
C:\Program Files (x86)\bladeRF\x64>bladeRF-cli -i
[INFO] Using libusb version 1.0.16.10774
[ERROR] Couldn't populate devinfo - LIBUSB_ERROR_NOT_SUPPORTED
[ERROR] Could not open FX3 bootloader device: LIBUSB_ERROR_NOT_SUPPORTED
[ERROR] No devices available on the libusb backend.
Failed to open device (NULL): No devices available
Could not open device
bladeRF> exit
C:\Program Files (x86)\bladeRF\x64>bladeRF-cli.exe -f ../latest.img
[INFO] Using libusb version 1.0.16.10774
[ERROR] Couldn't populate devinfo - LIBUSB_ERROR_NOT_SUPPORTED
[ERROR] Could not open FX3 bootloader device: LIBUSB_ERROR_NOT_SUPPORTED
[ERROR] No devices available on the libusb backend.
Failed to open device (NULL): No devices available
Could not open device
C:\Program Files (x86)\bladeRF\x64>
</level></file></file></file></device></options></div>
</pre>
Something is very wrong. I programmed the Flash-memory with a completely nonsense FPGA-image. This is not a non-sense image but not code that can be executed by the FX3-chip. The FPGA-code is intended for the setup-configuration for the FPGA.<br />
<br />
<h2>
What now?</h2>
<div>
Take a break, have a coffee, keep calm and count your blessings...</div>
<div>
Then, google and find the solution.</div>
<div>
I have to use a Cypress tool to flash the right image back on the bladeRF-board</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn9CIQth1ZqrWJLH8OxUPee7K2jfERSZK2vpUHd1NeFwkx3QqmyUZkEURCoVX_IilZoDKicCfwN508L2hDpDxKEwWTGDkTCrMYCp1jacUmB4aa3N77_nuKchNyGSvHFFhTHAXdWcUcrbw/s1600/001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn9CIQth1ZqrWJLH8OxUPee7K2jfERSZK2vpUHd1NeFwkx3QqmyUZkEURCoVX_IilZoDKicCfwN508L2hDpDxKEwWTGDkTCrMYCp1jacUmB4aa3N77_nuKchNyGSvHFFhTHAXdWcUcrbw/s320/001.png" width="220" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
There is not any sign of a libusb-bladeRF-board...</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div>
<span lang="EN-US" style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">BladeRF
is not there… (but physically connected to a USB2-port.</span></div>
<div>
<span lang="EN-US" style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGdSYwb_ek2OnaQ7ukaVrW94EwhsuCpcuGuJ5P6EwGQbkWakKZmU18dIfJL-RUuqljLTpEZat0a21_UqUehKNyrK6nuQWZF3zu2Bx_lHD5uEmfEhLxyPf-C5Og-OkRUAcEVxTS-bCL4BM/s1600/002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="310" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGdSYwb_ek2OnaQ7ukaVrW94EwhsuCpcuGuJ5P6EwGQbkWakKZmU18dIfJL-RUuqljLTpEZat0a21_UqUehKNyrK6nuQWZF3zu2Bx_lHD5uEmfEhLxyPf-C5Og-OkRUAcEVxTS-bCL4BM/s320/002.png" width="320" /></a></div>
<div>
<span lang="EN-US" style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></div>
Nuand has a tool!<br />
<div class="MsoNoSpacing">
<span lang="EN-US">Let’s
try the rescue flasher…<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<br />
<div class="MsoNoSpacing">
<span lang="EN-US">Very
short flash of a command-window, but:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjo5QWkJasl3QO0xvmx74BJPGhmZUjut4tH-lF1_rywJ7zfdSYOIZ8jUX05Ccn0sAO7L3jk7LWJ8Mb9sQTXl5gO9raZ0Rz2EsIce98PCYnR1YLWqBiY-cAyuWMiRx41ChvsPBmXbG5d30/s1600/003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="87" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjo5QWkJasl3QO0xvmx74BJPGhmZUjut4tH-lF1_rywJ7zfdSYOIZ8jUX05Ccn0sAO7L3jk7LWJ8Mb9sQTXl5gO9raZ0Rz2EsIce98PCYnR1YLWqBiY-cAyuWMiRx41ChvsPBmXbG5d30/s320/003.png" width="320" /></a></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Nope<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhptKgZYmiZJBqGlTLVOLWcv65nHt60c_-n1UTyg4rZjdQJBNAQcQwGZ2WslMO2Q-U1yCtxwzcEoADIjWwmE57QpK2glehLAzVaU-JO-emCXQLf-eT-3tsvEGDVdPezZDfNojnmc7YsX3k/s1600/004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhptKgZYmiZJBqGlTLVOLWcv65nHt60c_-n1UTyg4rZjdQJBNAQcQwGZ2WslMO2Q-U1yCtxwzcEoADIjWwmE57QpK2glehLAzVaU-JO-emCXQLf-eT-3tsvEGDVdPezZDfNojnmc7YsX3k/s320/004.png" width="308" /></a></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">As you can see, I am not trying to show how smart I am, neither how stupid I am. I just want to show what I tried in a situation like this.</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span lang="EN-US" style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Laptop
restarted, bladeRF in USB2-port</span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span lang="EN-US" style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYO7Ddyn5rizjTkmc60uHPDg1QMo3ycX4DZuoL-8E5aESVTBdpWg3U2egLgdP_T-opV3mXheb9W9yR4znd7Wdumz5uiRKhPynUnSOw36HOwVZo02mi_BfVx_8Zf5wyQOser_iqaPqmd6U/s1600/005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYO7Ddyn5rizjTkmc60uHPDg1QMo3ycX4DZuoL-8E5aESVTBdpWg3U2egLgdP_T-opV3mXheb9W9yR4znd7Wdumz5uiRKhPynUnSOw36HOwVZo02mi_BfVx_8Zf5wyQOser_iqaPqmd6U/s320/005.png" width="233" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Nothing
yet.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span lang="EN-US" style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">
</span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Now
trying to re-install bladeRF-CLI using Windows-installer, hoping to re-flash
automagically??<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhn7YjzmZHtImhuSk_A8REh_gkvbbz34CDbs3hyIGi82iT9eh-1yyW1bYymoSAUiWLWF3EJrAu9kZwtC26Jk-0Zj6SZJpDKbG2QopXuPB6ULl-ElnfejnuItGUoMj-E8zFOVySs6gAgG0c/s1600/006.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="248" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhn7YjzmZHtImhuSk_A8REh_gkvbbz34CDbs3hyIGi82iT9eh-1yyW1bYymoSAUiWLWF3EJrAu9kZwtC26Jk-0Zj6SZJpDKbG2QopXuPB6ULl-ElnfejnuItGUoMj-E8zFOVySs6gAgG0c/s320/006.png" width="320" /></a></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Encouraging…<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2Pm9rJBGkXKMm9HSRhNt1Cm0XQ_fx5E4zGGRI5QE2Uo4-P7MSE1eTGYrlpyFh1HnRKsLmRKMPyXNPPN8YiUZmQG15Olvk3m4yYR5c_b6v6caq3f1e2Q-OKe2JN2LtCv5HpIXwtzYI_28/s1600/007.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2Pm9rJBGkXKMm9HSRhNt1Cm0XQ_fx5E4zGGRI5QE2Uo4-P7MSE1eTGYrlpyFh1HnRKsLmRKMPyXNPPN8YiUZmQG15Olvk3m4yYR5c_b6v6caq3f1e2Q-OKe2JN2LtCv5HpIXwtzYI_28/s320/007.png" width="233" /></a></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Nothing
yet,<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Replug
bladeRF<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Ah,
stupid me, it was plugged in an USB3-port instead of USB2.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">
</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Try
again<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzNfXsFkD5oDq73gKuH662LPESDfsL1zuZTD2bGASOBIWk7pTTob7t7TbhHhO3dfkuOMUyCCu61-9MLZOrWvxW9Ag1B9dw3yWFqeNk37kfnQME3GkcnjiZF28Ib-stjGNYHPVSq3kMv-w/s1600/008.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzNfXsFkD5oDq73gKuH662LPESDfsL1zuZTD2bGASOBIWk7pTTob7t7TbhHhO3dfkuOMUyCCu61-9MLZOrWvxW9Ag1B9dw3yWFqeNk37kfnQME3GkcnjiZF28Ib-stjGNYHPVSq3kMv-w/s320/008.png" width="233" /></a></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">
</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Nope<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9PpCfUK4QagrK6G5S8RudUOosgfoPtK8UV3ukqQme4bBmvywnBinNxG7Q6LJ_4qppl07F1xbiFVvxd3PlhXKndPIB_y-JUVUz5e5RwpHZzLiCPPkWqvqHH0pvbl1yQqT-9WkEgH32Bkc/s1600/009.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="113" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9PpCfUK4QagrK6G5S8RudUOosgfoPtK8UV3ukqQme4bBmvywnBinNxG7Q6LJ_4qppl07F1xbiFVvxd3PlhXKndPIB_y-JUVUz5e5RwpHZzLiCPPkWqvqHH0pvbl1yQqT-9WkEgH32Bkc/s320/009.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw2nLJMTqWsINmcP1-8Z9rdqj0XMDjTS2X4smSl5Z4n1kwqJfDSzC2LakVF1-sw8T_XCSvYWQDJf8tKcmF4wQguEhyphenhyphen6QfC4XIX_VCXDqjMQuOUqxFdSPJbVMbk80tSZnjFKaSgTNKh2Ww/s1600/010.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw2nLJMTqWsINmcP1-8Z9rdqj0XMDjTS2X4smSl5Z4n1kwqJfDSzC2LakVF1-sw8T_XCSvYWQDJf8tKcmF4wQguEhyphenhyphen6QfC4XIX_VCXDqjMQuOUqxFdSPJbVMbk80tSZnjFKaSgTNKh2Ww/s320/010.png" width="308" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
This is the USB Control Center of Cypress.</div>
<div class="separator" style="clear: both; text-align: center;">
Beware: there are versions for FX2 and FX3. </div>
<div class="separator" style="clear: both; text-align: center;">
We need the latter, FX3</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh83kvQQI0k_uZiiChjqsj6vda0YZKaFToVsjIVUBA0hTyZqbCL_f036R34L0jNqbv9TzZRdgz1BeyaUqJrGTFd_WKfinpoXmf9XGJoHwyQAsc3kqxRfobbwJj-3RY-phH7TsnN8OzSdvw/s1600/011.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="277" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh83kvQQI0k_uZiiChjqsj6vda0YZKaFToVsjIVUBA0hTyZqbCL_f036R34L0jNqbv9TzZRdgz1BeyaUqJrGTFd_WKfinpoXmf9XGJoHwyQAsc3kqxRfobbwJj-3RY-phH7TsnN8OzSdvw/s320/011.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
I could not show what happens here. Normally I press</div>
<div class="separator" style="clear: both; text-align: center;">
<Ctrl><Alt><PrtScrn> to get a pastable image. While</div>
<div class="separator" style="clear: both; text-align: center;">
doing that, the info simply disappeared. </div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Programmed
FX3, pointed to latest.img<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv7V1Hg8vw8jwtjJTx_wn1agE2eKzGuq_htNvT3Pnz_7LuD0DIej7MxBgN-s4ZPb40dcn218r1wyZih8ozeh5N1Fo-bA1_8uiBBgx0NIsKO_jDVhscrtI3Yeyn2mu1XTdQC2JFoapuRNE/s1600/012.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv7V1Hg8vw8jwtjJTx_wn1agE2eKzGuq_htNvT3Pnz_7LuD0DIej7MxBgN-s4ZPb40dcn218r1wyZih8ozeh5N1Fo-bA1_8uiBBgx0NIsKO_jDVhscrtI3Yeyn2mu1XTdQC2JFoapuRNE/s320/012.png" width="233" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
YES!!! there it is: libusbK USB Devices</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZ6qZt-JByymHx6sWDLJ4zcHD2hePNytzDAdw8UISOQ7zJurMFP5UUrSXJRc05kb0XDK8ky_uhzmleYzYgfes6RonbgAMmlJtAz-v5u_emBt4Rato2uPYyc-3fCANnrH5muDydodfKO8Q/s1600/013.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="121" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZ6qZt-JByymHx6sWDLJ4zcHD2hePNytzDAdw8UISOQ7zJurMFP5UUrSXJRc05kb0XDK8ky_uhzmleYzYgfes6RonbgAMmlJtAz-v5u_emBt4Rato2uPYyc-3fCANnrH5muDydodfKO8Q/s320/013.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
And bladeRF as seen by bladeRF-CLI</div>
<div class="separator" style="clear: both; text-align: center;">
Only thing is load hostedx115.rbf</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<pre><div id="linux">
Microsoft Windows [versie 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Alle rechten voorbehouden.
C:\Users\lonneke\Desktop>cd C:\Program Files (x86)\bladeRF
C:\Program Files (x86)\bladeRF>bladerf_winflasher
The device is running the FX3 bootloader.
Please use the Cypress Control tool to flash the SPI
C:\Program Files (x86)\bladeRF>bladerf-cli -i
[INFO] Using libusb version 1.0.16.10774
[INFO] Found a bladeRF
[INFO] Claimed all inferfaces successfully
[WARNING] extract_field: Field checksum mismatch
[WARNING] Could not extract VCTCXO trim value
[WARNING] extract_field: Field checksum mismatch
[WARNING] Could not extract FPGA size
bladeRF> load fpga hostedx115.rbf
Loading fpga from hostedx115.rbf...
[INFO] Change to alternate interface 3
[INFO] Change to alternate interface 1
[INFO] Changed into RF link mode: LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED
[INFO] Setting integer sample rate: 1000000
[INFO] Found r value of: 4
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx P1: 0x00009c66 (40038) P2: 0x00000002 (2) P3: 0x00000005 (5)
[INFO] Calculated samplerate: 1000000 + 0/1
[INFO] Set actual integer sample rate: 1000000
[INFO] Setting integer sample rate: 1000000
[INFO] Found r value of: 4
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx P1: 0x00009c66 (40038) P2: 0x00000002 (2) P3: 0x00000005 (5)
[INFO] Calculated samplerate: 1000000 + 0/1
[INFO] Set actual integer sample rate: 1000000
Done.
bladeRF>
</div>
</pre>
<div class="MsoNoSpacing">
<span lang="EN-US">Yes,
everything ok!<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<h2>
<span lang="EN-US">Epilogue</span></h2>
<div>
<span lang="EN-US">I blew up and repaired my precious bladeRF-board. Later that evening I read something about SDR-radio.com. That is hot stuff!!</span></div>
<div>
<span lang="EN-US"><br /></span></div>
<div>
<span lang="EN-US"><h3>
<span lang="EN-US">Playing
with a signal-generator a</span>t a
frequency adjacent to a tv-channel.</h3>
<div class="MsoNoSpacing">
<span lang="EN-US">I simply
put a whip-antenna on the signal-generator, a HP 8656B signal generator 0.1-990
MHz<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijSvvmja9CBbxDoIQJoyTNJvSza3woc3zsNuGCWcXhlS2RWeU3TuJQgHWmL51sgoQoO4u9y1YHfES1wthBQav6zn04C-N5MgMmdG8dRPJe4HoumD_rD6F48rHBesJDScsYiTaODfHPaS0/s1600/014.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="173" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijSvvmja9CBbxDoIQJoyTNJvSza3woc3zsNuGCWcXhlS2RWeU3TuJQgHWmL51sgoQoO4u9y1YHfES1wthBQav6zn04C-N5MgMmdG8dRPJe4HoumD_rD6F48rHBesJDScsYiTaODfHPaS0/s320/014.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">What a marvelous piece of software! I played hours with it. First connected a signal genarator, later my active GPS-antenna and still later a 70 cm antenna on the roof. Yes, it was very late that evening. I managed to write some python-software to decode the bladeRF-outputfiles. Plots and FFTs. Later more. </span></div>
</span></div>
Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com0tag:blogger.com,1999:blog-8531143406441550247.post-81736307443107668622013-10-26T17:24:00.002+02:002013-11-02T23:40:47.327+01:00A case for bladeRF and DesignSpark Mechanical<h2>
A case for DesignSparc Mechanical</h2>
<div>
<div>
The bladeRF-board was bought for GNSS-experiments. So I need to connect a GPS-antenna. The one I have is an active antenna that needs power. I built a small circuit to feed the antenna using phantom power. From two small pieces of PCB I made a stand and soldered them on a PCB-ground plate. This became the basis of my bladeRF-case.</div>
<div>
<br /></div>
<div>
I did some drawing with DesignSpark Mechanical and was looking for some serious work to develop skills: a case was born...</div>
</div>
<div>
<br /></div>
<h2>
First sketch</h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQfRaKySojOol3tVO6o1MPJHP2MM8rM1SNtsP1yOqox5L5CLaSxxdmP_fpmqXAa87m_D6JN3UyScx6qt5ofnZksRLncEZwqiLm7iqtLyu_UaK91rSmouhEes5ypQCLkz-IBAMYip0DNUM/s1600/001.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="274" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQfRaKySojOol3tVO6o1MPJHP2MM8rM1SNtsP1yOqox5L5CLaSxxdmP_fpmqXAa87m_D6JN3UyScx6qt5ofnZksRLncEZwqiLm7iqtLyu_UaK91rSmouhEes5ypQCLkz-IBAMYip0DNUM/s320/001.jpg" width="320" /></a></div>
<div>
<br /></div>
<div>
The GPS-antenna is a Unictron GPS 02 and needs 2.4 .. 5,5 V. At 5 V it draws about 20 mA current. Not too much for the 5 V regulator in the bladeRF-board. I placed a jumper on J70 and soldered a wire to get the needed 5 V for the antenna-supply. </div>
<div>
<br /></div>
<div>
In UHF the golden rule is: the smaller the better. I decided to use SMD only. From my (big) SMD-junkbox I found the needed parts. The values are not calculated: I just more or less took what I found in the junkbox...</div>
<div>
<br /></div>
<div>
In retrospect the value of 39 ohm for the series resistor might become a problem. The power dissipation I*I*R = 20 * 20 * 39 = 15.6 mW. This SMD is very small, about 1*2 mm. I have no idea how much it can dissipate.</div>
<div>
<br /></div>
<div>
In case of a short cut the dissipation will be U*U/R = 5 *5 / 39 = 0,6 W. The resistor will act as a fuse in that case!</div>
<div>
<br /></div>
<div>
The RX-enty of the bladeRF is protected by two anti-parallel-diodes, hence the 820 pF capacitor to the RX-entry.</div>
<div>
<br /></div>
<h2>
Connectors</h2>
<div>
I bought an SMB socket and a socket for the GPS-antenna, I think is was MMX with a diameter of 3.2 mm. Quite expensive: 6 + 10 euro at my local electronics-store. I needed some support for this sockets so decided to use a piece of PCB. Drilling an soldering of PCB makes a nice and sturdy support.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPgU8VKkaDhwLPEhfKyOAzzai7OBDd_tbCe9AxZsi0bwVc39vE5ybfDyNiH_PnMb_8YGEyjIAL9D-MMMC49cClu-p9_d161hJUkiQheNDZ4F-AfBLJrHEteBBY5w-4x660fv-szLEGz0U/s1600/002+(Small).jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPgU8VKkaDhwLPEhfKyOAzzai7OBDd_tbCe9AxZsi0bwVc39vE5ybfDyNiH_PnMb_8YGEyjIAL9D-MMMC49cClu-p9_d161hJUkiQheNDZ4F-AfBLJrHEteBBY5w-4x660fv-szLEGz0U/s320/002+(Small).jpg" width="240" /></a></div>
<div>
<br /></div>
<div>
In the picture above you see a PCB ground plane and the support stand for the connectors. In the air between the two connectors you see the SMD- 820 pF capacitor. The red wire is the +5 V wire connecting to a jumper on J70 nof the bladeRF.</div>
<div>
In the upper right you see that the bolt that holds the bladeRF is soldered to the base-plate.</div>
<div>
<br /></div>
<h2>
Warning</h2>
<div>
For the sockets you need to drill a hole of 6.5 mm. I was so stupid to hold the small piece of PCB with my fingers firmly pressed to the table while drilling the 6.5 mm hole in the PCB. You might guess what happened: the PCB will be lifted up by the drill and will turn around the drill. With your fingers so close-by you get a nice long (15 mm) wound and rather deep too.</div>
<div>
<br /></div>
<div>
OK, not love and understanding this time, but my wife helped me close the wound with a nice plaster. Yes, I am 65 and stupid too!</div>
<div>
<br /></div>
<h2>
The SMD-circuit in 3D</h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi57lKbV0CaV3Uim_CX5BtZIc6_jCmL-4P3aVjOiTBJ-IXbUwiWMsHVsh1yWZID6nbakW9nscckSVRSjSHpA3O2KuwNBH80nFk38uYM6CZSVoM609Kgm5H0RVjrmgbuMcIPSLgHQAjUqQQ/s1600/003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="281" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi57lKbV0CaV3Uim_CX5BtZIc6_jCmL-4P3aVjOiTBJ-IXbUwiWMsHVsh1yWZID6nbakW9nscckSVRSjSHpA3O2KuwNBH80nFk38uYM6CZSVoM609Kgm5H0RVjrmgbuMcIPSLgHQAjUqQQ/s320/003.png" width="320" /></a></div>
<div>
<br /></div>
<div>
I used DesignSpark Mechanical to draw the circuit (just for fun). </div>
<div>
<br /></div>
<div>
The same, but now in real-life:</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPlWIcdsDnkBOKTNz-myk94VCpgluBTSzb6Y0axz9Z3FbvhxeJMAnjOnWxo326Iq52P5bxiLN7jsuEVKaY3P-cj-Um3GiMDueYLGTyvxveIEHsQBmmOZNwIHVkRcEOQd75iL-UfyR97Zw/s1600/004+(Small).jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="257" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPlWIcdsDnkBOKTNz-myk94VCpgluBTSzb6Y0axz9Z3FbvhxeJMAnjOnWxo326Iq52P5bxiLN7jsuEVKaY3P-cj-Um3GiMDueYLGTyvxveIEHsQBmmOZNwIHVkRcEOQd75iL-UfyR97Zw/s320/004+(Small).jpg" width="320" /></a></div>
<div>
<br /></div>
<h2>
The case</h2>
<div>
The case is a lower case and an upper case (my name, by the way is Kees which is pronounced like case, just in case). The lower case is a piece of PCB. At Elektor's shop I bought a "project-case". This is not much more than two pieces of plastic with some hex-stands. I used one plate of the project-case as the top plate. </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjhfdLBJMNhgwSaG_1tlnN8AQxIz3x2XXQDTuKsxJIT9IUsbdgJv1SkG-cbOs2iXYKVN12VPdi6dyhmzgvlG29pvBC2catay3gDl1ZGYLormU-YQKfFbqDeANbJcoavQqsvlKCUP4zQlg/s1600/005+(Small).jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjhfdLBJMNhgwSaG_1tlnN8AQxIz3x2XXQDTuKsxJIT9IUsbdgJv1SkG-cbOs2iXYKVN12VPdi6dyhmzgvlG29pvBC2catay3gDl1ZGYLormU-YQKfFbqDeANbJcoavQqsvlKCUP4zQlg/s320/005+(Small).jpg" width="298" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div>
The bladeRF board is mounted with 4 bolts 2.5 mm. The bolts are soldered on the bottom-plate. The holes in the bladeRF-board are not 3 mm, just slightly smaller. That is a pity because M3 is much stronger than M2.5 that I had to use.</div>
<div>
<br /></div>
<h2>
Epilogue</h2>
<div>
It was nice, after a long time of only programming, to find myself with a soldering iron again. It was great fun to solder the tiny SMD-parts, this time without a microscope. I found spectacles with very thick glasses <complete id="goog_159569553">+</complete>3. Sometimes I wear two spectacles for a better view (I am not joking, try it yourself!).</div>
<div>
<br /></div>
<div>
PCB is a very good material to make a housing, a case, for your circuits.</div>
<div>
<br /></div>
<div>
DesignSpark Mechanical is a free tool. Download it free and use it. I thought it is only a package to use a pre defined library of connectors from RS, but it is more, much more than that!</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwBUDY_1WRaBrcLnOjxDeWXUxQM-hNXMLxbJ-hsYmuy7JNwVIlvzqIZJ9ZNHJUv-kVUDj_z5CIhZGnprv_FXrA_bxw9phb2suXaANErqzvmEFE568fc86WCGZrH-bQqmuVkpRAtTXzUEI/s1600/006.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="174" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwBUDY_1WRaBrcLnOjxDeWXUxQM-hNXMLxbJ-hsYmuy7JNwVIlvzqIZJ9ZNHJUv-kVUDj_z5CIhZGnprv_FXrA_bxw9phb2suXaANErqzvmEFE568fc86WCGZrH-bQqmuVkpRAtTXzUEI/s320/006.png" width="320" /></a></div>
<div>
<br /></div>
<div>
Next time, my ramblings with DesignSpark Mechanics or my struggling with getting GNSS-bladeRF-samples into a file and processing that file with Python.</div>
<div>
<br /></div>
<div>
Feel free to comment if something is not soo obvious!</div>
<div>
<br /></div>
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com1tag:blogger.com,1999:blog-8531143406441550247.post-76346113333810869612013-10-23T22:43:00.000+02:002013-10-23T22:43:01.106+02:00The Windows installer for bladeRF-software<h2>
Nuand has new installer software for Windows</h2>
<div>
In the blog at nuand.com they write:</div>
<blockquote class="tr_bq">
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;">There is now a Windows based installer for the bladeRF that will install all of the relevant drivers, user mode utilities, and FX3/FPGA images. The file can be directly downloaded from </span><a href="http://nuand.com/downloads/bladerf_win_installer.exe" style="background-color: white; color: #0088cc; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; text-decoration: none;" target="_blank">http://nuand.com/downloads/bladerf_win_installer.exe</a><span style="background-color: white; color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px;"> .</span></blockquote>
OK, download this installer and open it<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvaEWVhrY-vem1irZTEGUSO0N-8zlr3zLBMv3JZG2UrEGoywMj3JFani4bgb9ONMp7giTnJj1XDUp_xdHqz2cW7PNdN842T6wC0wg_FVaoQGqMg_6kkpkVITdmaTUVhVW7baoARisbgRI/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvaEWVhrY-vem1irZTEGUSO0N-8zlr3zLBMv3JZG2UrEGoywMj3JFani4bgb9ONMp7giTnJj1XDUp_xdHqz2cW7PNdN842T6wC0wg_FVaoQGqMg_6kkpkVITdmaTUVhVW7baoARisbgRI/s320/1.png" width="320" /></a></div>
<br />
A warning, but what else can I do than execute this file?<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgO9vRsQMjM3VvnaWB3og8vCPZrGjfnHcRaHQCeCSkog4uuIiINAtKJpoyJHSZA5BJS5deBxZURj3RGKGgqAA2zHnEGV2fIzyw5b7X2ncStYyD-x_tfIoWX6exKokLbav9XJrnIXK4FgxE/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="248" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgO9vRsQMjM3VvnaWB3og8vCPZrGjfnHcRaHQCeCSkog4uuIiINAtKJpoyJHSZA5BJS5deBxZURj3RGKGgqAA2zHnEGV2fIzyw5b7X2ncStYyD-x_tfIoWX6exKokLbav9XJrnIXK4FgxE/s320/2.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZpTqyYuckEEjEajyczAIRVO7zhZq7ce-p2yjubH3LB8pSzlYA3BL8_QRCVgm2Hwv_eUt7E-UYSY_pyugAytrFLPqTj0i7Yk9yo6HwVL8PEgftu23_tazZ3XmFPfl03HQu5CbpA68TmIU/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="248" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZpTqyYuckEEjEajyczAIRVO7zhZq7ce-p2yjubH3LB8pSzlYA3BL8_QRCVgm2Hwv_eUt7E-UYSY_pyugAytrFLPqTj0i7Yk9yo6HwVL8PEgftu23_tazZ3XmFPfl03HQu5CbpA68TmIU/s320/3.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-qiTX5_JnTAR1M2Nspn9Od3h68bBmSJdAvYdEg_wuS5BCTQzUPX_OcF1wQnuIk5Au-rDqcEimsAZN0tPDod1Zewf1ae6X5RoB6RPP2A6EuogSTXSQdAFfuXmHBz7tUMcSdCaDAPQyw9w/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="248" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-qiTX5_JnTAR1M2Nspn9Od3h68bBmSJdAvYdEg_wuS5BCTQzUPX_OcF1wQnuIk5Au-rDqcEimsAZN0tPDod1Zewf1ae6X5RoB6RPP2A6EuogSTXSQdAFfuXmHBz7tUMcSdCaDAPQyw9w/s320/4.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXKRR44fBRWw4UynkySjuS2PAYS2i-aGl1Nxregw-lJXbaNUfNdCFCG6OCbl1y2mkytzMKb53akM6xSHyd2jIhXJNLtr-6S64JmjFN-LQnRXHvYH7fx1ONio1RhKfzLIHlZHquM8g35jM/s1600/5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="248" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXKRR44fBRWw4UynkySjuS2PAYS2i-aGl1Nxregw-lJXbaNUfNdCFCG6OCbl1y2mkytzMKb53akM6xSHyd2jIhXJNLtr-6S64JmjFN-LQnRXHvYH7fx1ONio1RhKfzLIHlZHquM8g35jM/s320/5.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitq7mlhH_V6mWH2aA-tU5l3sopkDGeRD2SZP3Ezd6p01EADKVqp1vcEq12T_JJWPF4HhvG_a2rCP6Ptk-2nmpYb1MG5YPKQxyZWV_u3v_n7gedF-7MbXJHY1r451O7rhEtd7Te7xTFHrk/s1600/6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="248" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitq7mlhH_V6mWH2aA-tU5l3sopkDGeRD2SZP3Ezd6p01EADKVqp1vcEq12T_JJWPF4HhvG_a2rCP6Ptk-2nmpYb1MG5YPKQxyZWV_u3v_n7gedF-7MbXJHY1r451O7rhEtd7Te7xTFHrk/s320/6.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEuQWoSJcrNKdLjqLrHGaxMpq4HYbolPRWtSkgU3iT3QZWlCz_8ReoXZdtjq_xZYhWPo6EgRW0cZOhEj1umjXI-m15pX8ANSJsMosgyWwdI6qx_QXu6O6l7RIYh6b97IaHw4yL2oacxKg/s1600/7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="198" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEuQWoSJcrNKdLjqLrHGaxMpq4HYbolPRWtSkgU3iT3QZWlCz_8ReoXZdtjq_xZYhWPo6EgRW0cZOhEj1umjXI-m15pX8ANSJsMosgyWwdI6qx_QXu6O6l7RIYh6b97IaHw4yL2oacxKg/s320/7.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiRjcNrd_g_TQSpae7zPHdPAQwceI0sXrC6Q0Y7V722sEEfE3nUzWE_gxofH8dVkZ-H2yU4SITbvROxeTLLOQwmwa4Ite25YuDA1EfEVl8mT0OSzphBzANPyFmnlVuhazk-QkEHA9QbW4/s1600/8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="248" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiRjcNrd_g_TQSpae7zPHdPAQwceI0sXrC6Q0Y7V722sEEfE3nUzWE_gxofH8dVkZ-H2yU4SITbvROxeTLLOQwmwa4Ite25YuDA1EfEVl8mT0OSzphBzANPyFmnlVuhazk-QkEHA9QbW4/s320/8.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUfabnBvWRvYFFvOCPpDzX9-jowD-t4lfilS4i7_gYRK2_p-Aljc02yqPFvx70DgD97r_MgfZK3cRa_RhbGC6WVzIkaHsky1X7YtjU8krQL1N_VDKUdEN_BDZXlbTCec-LM_7LZmv7f0k/s1600/9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="248" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUfabnBvWRvYFFvOCPpDzX9-jowD-t4lfilS4i7_gYRK2_p-Aljc02yqPFvx70DgD97r_MgfZK3cRa_RhbGC6WVzIkaHsky1X7YtjU8krQL1N_VDKUdEN_BDZXlbTCec-LM_7LZmv7f0k/s320/9.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaxxeSrpbZyHR2kbj9729bXjIx5FFvBD1w7U8tlJydbp6BrXgNEJVPW1mQeEAZL4vvVl6h2YSlapmglL7f1MqkNDgJWtSjsGZ5Ul5K-IfIQ13wqqij26A3FHsDjZTw5-1-N9wWOyG6jyg/s1600/10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="310" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaxxeSrpbZyHR2kbj9729bXjIx5FFvBD1w7U8tlJydbp6BrXgNEJVPW1mQeEAZL4vvVl6h2YSlapmglL7f1MqkNDgJWtSjsGZ5Ul5K-IfIQ13wqqij26A3FHsDjZTw5-1-N9wWOyG6jyg/s320/10.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Yes! There is bladeRF CLI in the Windows Start Menu</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<h3>
What about USB3?</h3>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The bladeRF-board was connected all the time at anUSB2-port. Now the LEDs stopped blinking. The installation did something to it. The bladeRF-board was connected all the time at a USB2-port. I’ll unplug it and reconnect to a USB3-port and start bladeRF CLI</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrRy5x3vztXMjmLPo0wuWoavHOuEZ3kbQfmzWl55VgObyE2cx25PR74Z5vCCTf_pnl7rn2f_7Rel1I-uZKDYWu8Wb07mWDwos4Vvh21_iXyVFE2ixa5TsjX3rV6eQYmRbN0Uljv-d8-XU/s1600/11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="112" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrRy5x3vztXMjmLPo0wuWoavHOuEZ3kbQfmzWl55VgObyE2cx25PR74Z5vCCTf_pnl7rn2f_7Rel1I-uZKDYWu8Wb07mWDwos4Vvh21_iXyVFE2ixa5TsjX3rV6eQYmRbN0Uljv-d8-XU/s320/11.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Oeps, the board is invisible for bladeRF-cli when connected at a USB3-port!<br />
Reconnect to a USB2-port and restart bladeRF CLI<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDpcDCt8nFsFmZsI65pixwclsoJL6rJb13lJ8JzLTE-7BwDocFAizhjvOUfxwtDEHA23TjGpCkvBQaEban5MWcyrvg-haMZRNRoRsypqaNhKuwoLJSNdktkdt4ejXOop-cKolxR6RkVp4/s1600/12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="113" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDpcDCt8nFsFmZsI65pixwclsoJL6rJb13lJ8JzLTE-7BwDocFAizhjvOUfxwtDEHA23TjGpCkvBQaEban5MWcyrvg-haMZRNRoRsypqaNhKuwoLJSNdktkdt4ejXOop-cKolxR6RkVp4/s320/12.png" width="320" /></a></div>
<br />
<h3>
Get the latest image for the FPGA</h3>
<br />
I have to get the latest.img from http://nuand.com/fx3/latest.img<br />
C:\bladeRF-master_new might be a good place for it.<br />
I’ll put it on C:\Program Files (x86)\bladeRF<br />
<br />
<h3>
A lot of errors, I seem to have to define a variable</h3>
<br />
I get a lot of errors and I have to define an environment variable in Windows.<br />
So, in the configuration screen of the start menu of Windows I select advanced and environment-variables.<br />
<br />
Defined BLADERF_SKIP_FW_SIZE_CHECK = 0<br />
<br />
Now it seems to be OK<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3PVyEjmi49QGg0d3a4bSJUbeNMCUMKhgRr2YzbF1iH10-SPv6JTANu_sVQdxAta_AVQZvIRXKugbptDwmQfrZ1qGV4jxFuVBRtJHDbCGecKAtRmM1RL7Om5vYy9eS60pqIe7Dmo5_Rhg/s1600/13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3PVyEjmi49QGg0d3a4bSJUbeNMCUMKhgRr2YzbF1iH10-SPv6JTANu_sVQdxAta_AVQZvIRXKugbptDwmQfrZ1qGV4jxFuVBRtJHDbCGecKAtRmM1RL7Om5vYy9eS60pqIe7Dmo5_Rhg/s320/13.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<h3>
Connect an antenna and try to get samples into a file</h3>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Oh boy, this is interesting. It is late in the night already but I take the antenna from my Kenwood TH-F7, it has the same connector as the bladeRF-board, and connect it to RX.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOPr5j1nd_-eWPoZO2evg_KvgrOQiX-NWflAOTMss1dQFBJ8xwqXzA66Jl5sMNru4pSvKjPzvStL6eOg9vJ9LAB4N_KeonXdL44vna2KOk4OM7O_07pqAD9-D29SWxhyphenhyphenWzUuTxjD2JMtQ/s1600/14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOPr5j1nd_-eWPoZO2evg_KvgrOQiX-NWflAOTMss1dQFBJ8xwqXzA66Jl5sMNru4pSvKjPzvStL6eOg9vJ9LAB4N_KeonXdL44vna2KOk4OM7O_07pqAD9-D29SWxhyphenhyphenWzUuTxjD2JMtQ/s320/14.png" width="240" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
I created a file with samples. What is in this comma-separated-values file?</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
File C:/temp/new282810M.csv reads:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<pre>…
89, 81
88, 80
92, 76
84, 76
90, 77
88, 76
92, 77
90, 84
85, 77
92, 80
88, 81
86, 75
92, 73
86, 82
91, 76
89, 81
91, 77
92, 77
88, 81
86, 73
88, 77
86, 77
90, 77
90, 77
91, 77
88, 77
91, 79
…
</pre>
So, not so interesting. I’d expect more variation in the value of the numbers…
<br />
<br />
<h3>
Epilogue</h3>
<div>
OK, installation of the Windows software with the installer from Nuand is a breeze! Thanks a lot for all their efforts. They keep doing a great job.</div>
<div>
<br /></div>
<div>
After installation I got error-messages with a clue: define BLADERF_SKIP_FW_SIZE_CHECK = 0</div>
<div>
<br /></div>
<div>
It seems I did only get some noise in the file with the samples. I'll experiment with some parameters like the gain, bandwidth, frequency and samplerate. I have a signal-generator that can put a signal up to 1 GHz on the antenna. With 100 W output-power to the RX-input of the bladeRF-board I should be able to get some smoke into and out of my file!</div>
<div>
<br /></div>
<div>
(dont try this with 100 W, some microVolts should be enough :>))</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<br />
<br />Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com1tag:blogger.com,1999:blog-8531143406441550247.post-33550411404402903672013-10-13T18:00:00.001+02:002013-10-14T00:46:19.321+02:00Architecture of the bladeRF-software<h2>
Thoughts</h2>
Before I bought the bladeRF-board I decided to make a program coded in python to control my bladeRF-board from the laptop. Furthermore I wanted to do the time-consuming calculations on the
FPGA coded in VHDL. Quite challenging. Now I understand more of the bladeRF. There is a very good program bladeRF-cli that can do almost everything I want. There is C-coded program in the
FX3-USB-chip. And there seems to be a NIOS-processor soft-programmed in the FPGA. That can be programmed in C too?<br />
<h2>
Goal</h2>
To understand/lear<span style="font-family: inherit;">n a </span>device I define a goal and try to achieve that goal:<br />
<br />
<blockquote class="tr_bq">
"Try to code a python-program that gets some info from the bladeRF, eg. the bandwidth".</blockquote>
<h2>
Investigating the bladeRF-software</h2>
On my laptop the software is at C:\bladeRF-master.<br />
<h2>
Have a look at the source bladeRF.cli</h2>
The source for the basic funtions of bladeRF seems to be at<br />
<span style="color: blue;"><br /></span>
<span style="color: blue;">C:\bladeRF-master\host\libraries\libbladeRF\src</span><br />
<h2>
Doc for the libusb-API</h2>
I was desperately looking for the python-libusb-API on the internet. I did not find it!!
However, the doc is in python itself, just type “help(usb)” and you get:<br />
<br />
<pre><span style="color: blue;">Help on package usb:
NAME
usb - PyUSB - Easy USB access in Python
FILE
c:\python27\lib\site-packages\usb\__init__.py
DESCRIPTION
This package exports the following modules and subpackages:
core - the main USB implementation
legacy - the compatibility layer with 0.x version
backend - the support for backend implementations.
Since version 1.0, main PyUSB implementation lives in the 'usb.core'
module. New applications are encouraged to use it.
PACKAGE CONTENTS
_debug
_interop
backend (package)
control
core
legacy
util
DATA
__all__ = ['legacy', 'core', 'backend', 'util']
__author__ = 'Wander Lairson Costa'
AUTHOR
Wander Lairson Costa
</span>
>>> Help(usb.core):
<span style="color: blue;">Help on module usb.core in usb:
<pre>NAME
usb.core - usb.core - Core USB features.
FILE
c:\python27\lib\site-packages\usb\core.py
DESCRIPTION
This module exports:
Device - a class representing a USB device.
Configuration - a class representing a configuration descriptor.
Interface - a class representing an interface descriptor.
Endpoint - a class representing an endpoint descriptor.
find() - a function to find USB devices.
CLASSES
__builtin__.object
Configuration
Device
Endpoint
Interface
</pre>
</span>
</pre>
Etcetera, so the doc is in python!!<br />
<h2>
My goal again</h2>
In order to set the bandwidth to 12.345 MHz what to program in python?
After that, read back the bandwidth from bladeRF-cli.<br />
<h2>
bladeRF-software</h2>
<span style="color: blue;">C:\bladeRF-master\host\libraries\libbladeRF\src </span>contains bladerf.c:<br />
<br />
<div style="background-color: navajowhite;">
<table><tbody>
<tr><td><pre>….
int bladerf_get_bandwidth(struct bladerf *dev, bladerf_module module,
unsigned int *bandwidth )
{
/* TODO: Make return values for lms call and return it for failure */
lms_bw_t bw = lms_get_bandwidth( dev, module );
*bandwidth = lms_bw2uint(bw);
return 0;
}
….
</pre>
</td></tr>
</tbody></table>
</div>
<span style="color: blue;"><br /></span>
<span style="color: blue;">C:\bladeRF-master\host\libraries\libbladeRF\src </span>contains lms.c:<br />
<br />
<div style="background-color: navajowhite;">
<table><tbody>
<tr><td><pre>…
// Get the bandwidth for the selected module
lms_bw_t lms_get_bandwidth(struct bladerf *dev, bladerf_module mod)
{
uint8_t data;
uint8_t reg = (mod == BLADERF_MODULE_RX) ? 0x54 : 0x34;
bladerf_lms_read(dev, reg, &data);
data &= 0x3c;
data >>= 2;
return (lms_bw_t)data;
}
…
</pre>
</td></tr>
</tbody></table>
</div>
So, search for bladerf_lms_read.<br />
<br />
<span style="color: blue;">C:\bladeRF-master\host\libraries\libbladeRF\include</span><br />
<span style="color: blue;"><br /></span>
libbladeRF.h contains:<br />
<br />
<div style="background-color: navajowhite;">
<table><tbody>
<tr><td><pre>/**
* Read a LMS register
*
* @param dev Device handle
* @param address LMS register offset
* @param val Pointer to variable the data should be read into
*
* @return 0 on success, value from \ref RETCODES list on failure
*/
API_EXPORT int bladerf_lms_read(struct bladerf *dev,
uint8_t address,
uint8_t *val);
/**
* Write a LMS register
*
* @param dev Device handle
* @param address LMS register offset
* @param val Data to write to register
*
* @return 0 on success, value from \ref RETCODES list on failure
*/
API_EXPORT int bladerf_lms_write(struct bladerf *dev,
uint8_t address,
uint8_t val);
</pre>
</td></tr>
</tbody></table>
</div>
<h2>
<br />What is API_EXPORT? a macro?
</h2>
<br />
<div style="background-color: navajowhite;">
<table><tbody>
<tr><td><pre>…
/** Marks an API routine to be made visible to dynamic loader */
#if defined _WIN32 || defined _CYGWIN__
# ifdef __GNUC__
# define API_EXPORT __attribute__ ((dllexport))
# else
# define API_EXPORT __declspec(dllexport)
# endif
#else
# define API_EXPORT __attribute__ ((visibility ("default")))
#endif
…
</pre>
</td></tr>
</tbody></table>
</div>
<br />
<h2>
Search for lms_read and lms_write</h2>
<br />
<span style="color: blue;">C:\bladeRF-master\host\libraries\libbladeRF\src</span><br />
bladerf.c<br />
<br />
<br />
<div style="background-color: navajowhite;">
<table><tbody>
<tr><td><pre>/*------------------------------------------------------------------------------
* LMS register read / write functions
*----------------------------------------------------------------------------*/
int bladerf_lms_read(struct bladerf *dev, uint8_t address, uint8_t *val)
{
return dev->fn->lms_read(dev,address,val);
}
int bladerf_lms_write(struct bladerf *dev, uint8_t address, uint8_t val)
{
return dev->fn->lms_write(dev,address,val);
}
C:\bladeRF-master\host\libraries\libbladeRF\src bladerf_priv.h
/* LMS6002D accessors */
int (*lms_write)(struct bladerf *dev, uint8_t addr, uint8_t data);
int (*lms_read)(struct bladerf *dev, uint8_t addr, uint8_t *data);
</pre>
</td></tr>
</tbody></table>
</div>
<br />
<h2>
Where are lms_read and lms_write defined?</h2>
<br />
<span style="color: blue;">C:\bladeRF-master\hdl\fpga\ip\altera\nios_system\software\lms_spi_controller hello_world_small.c</span><br />
<br />
<div style="background-color: navajowhite;">
<table><tbody>
<tr><td><pre>#define LMS_READ 0
#define LMS_WRITE (1<<7 data-blogger-escaped-access="" data-blogger-escaped-address="" data-blogger-escaped-an="" data-blogger-escaped-backend="(struct" data-blogger-escaped-bladerf-master="" data-blogger-escaped-bladerf="" data-blogger-escaped-bladerf_linux="" data-blogger-escaped-c:="" data-blogger-escaped-definition="" data-blogger-escaped-dev-="" data-blogger-escaped-dev="" data-blogger-escaped-finally="" data-blogger-escaped-for="" data-blogger-escaped-fpga="" data-blogger-escaped-host="" data-blogger-escaped-in="" data-blogger-escaped-int="" data-blogger-escaped-ioctl="" data-blogger-escaped-is="" data-blogger-escaped-it="" data-blogger-escaped-libbladerf="" data-blogger-escaped-libraries="" data-blogger-escaped-linux.c="" data-blogger-escaped-linux_lms_read="" data-blogger-escaped-lms="" data-blogger-escaped-lms_read:="" data-blogger-escaped-nios="" data-blogger-escaped-processor="" data-blogger-escaped-register="" data-blogger-escaped-ret="" data-blogger-escaped-runs="" data-blogger-escaped-software="" data-blogger-escaped-src="" data-blogger-escaped-static="" data-blogger-escaped-struct="" data-blogger-escaped-that="" data-blogger-escaped-the="" data-blogger-escaped-this="" data-blogger-escaped-uart_cmd="" data-blogger-escaped-uc="" data-blogger-escaped-uint8_t="" data-blogger-escaped-val="" data-blogger-escaped-virtual="">backend;
address &= 0x7f;
uc.addr = address;
uc.data = 0xff;
ret = ioctl(backend->fd, BLADE_LMS_READ, &uc);
*val = uc.data;
return ret;
}
static int linux_lms_write(struct bladerf *dev, uint8_t address, uint8_t val)
{
struct uart_cmd uc;
struct bladerf_linux *backend = (struct bladerf_linux *)dev->backend;
uc.addr = address;
uc.data = val;
return ioctl(backend->fd, BLADE_LMS_WRITE, &uc);
}</pre>
<pre></pre>
</td></tr>
</tbody></table>
</div>
<br />
<span style="color: blue;">C:\bladeRF-master\firmware_common</span><br />
bladeRF.h<br />
<br />
<div style="background-color: navajowhite;">
<table><tbody>
<tr><td><pre>#define BLADE_LMS_WRITE _IOR(BLADERF_IOCTL_BASE, 20, unsigned int)
#define BLADE_LMS_READ _IOR(BLADERF_IOCTL_BASE, 21, unsigned int)
</pre>
</td></tr>
</tbody></table>
</div>
<br />
It looks like BLADE_LMS_WRITE and BLADE_LMS_READ are defined here. In the interface to the USB-FX3-chip!!
IOR = Input Output Request??
<br />
<br />
<h2>
IOR/IOCTL</h2>
<br />
<a href="http://h30097.www3.hp.com/docs/dev_doc/DOCUMENTATION/HTML/DDK_R2/DOCS/HTML/MAN/MAN9/0028___R.HTM">http://h30097.www3.hp.com/docs/dev_doc/DOCUMENTATION/HTML/DDK_R2/DOCS/HTML/MAN/MAN9/0028___R.HTM</a><br />
<br />
<div style="background-color: navajowhite;">
<table><tbody>
<tr><td><pre>NAME
_IOR - General: Defines ioctl types for device control operations
SYNOPSIS
#include <sys ioctl.h="">
_IOR(
g,
n,
t );
ARGUMENTS
g Specifies the group that this ioctl type belongs to. This argument must
be a nonnegative 8-bit number (that is, in the range 0-255 inclusive).
You can pass the value zero (0) to this argument if a new ioctl group
is not being defined.
n Specifies the specific ioctl type within the group. These types should
be sequentially assigned numbers for each different ioctl operation the
driver supports. This argument must be a nonnegative 8-bit number (that
is, in the range 0-255 inclusive).
t Specifies the data structure size, which cannot exceed 128 bytes. You
use this argument to size how much data is passed from the kernel back
to the user application. The kernel determines the number of bytes to
transfer by passing the value in this argument to the sizeof operator.
</sys></pre>
</td></tr>
</tbody></table>
</div>
<br />
<a href="http://en.wikipedia.org/wiki/Ioctl">http://en.wikipedia.org/wiki/Ioctl</a><br />
<br />
<pre>The ioctl system call first appeared in Version 7 of Unix under that name. It is supported by most Unix and Unix-like systems, including Linux and Mac OS X, though the available request
codes differ from system to system. Microsoft Windows provides a similar function, named "DeviceIoControl", in its Win32 API.</pre>
<pre>…</pre>
<pre>For example, on Win32 systems, ioctl calls can communicate with USB devices, or they can discover drive-geometry information for attached storage-devices.
</pre>
<pre>…
<a href="http://docs.python.org/2/library/fcntl.html">http://docs.python.org/2/library/fcntl.html</a>
35.10. fcntl — The fcntl() and ioctl() system calls¶
This module performs file control and I/O control on file descriptors. It is an interface to the fcntl() and ioctl() Unix routines.
All functions in this module take a file descriptor fd as their first argument. This can be an integer file descriptor, such as returned by sys.stdin.fileno(), or a file object, such as
sys.stdin itself, which provides a fileno() which returns a genuine file descriptor.
http://sourceforge.net/apps/trac/libusb-win32/wiki/libusbwin32_documentation
<a href="http://tali.admingilde.org/linux-docbook/usb/ch07s06.html">http://tali.admingilde.org/linux-docbook/usb/ch07s06.html</a></pre>
<pre>The ioctl() Requests
Chapter 7. The USB Filesystem (usbfs)
The ioctl() Requests
<a href="http://www.ioctls.net/">http://www.ioctls.net/</a></pre>
<pre>IOCTL_USB_DIAGNOSTIC_MODE_OFF 0x220404 inc\api\usbioctl.h
IOCTL_USB_DIAGNOSTIC_MODE_ON
0x220400 inc\api\usbioctl.h TheIOCTL_USB_DIAGNOSTIC_MODE_ONI/O control has been deprecated. Do not use.
...
IOCTL_USB_HCD_GET_STATS_1
0x2203fc inc\api\usbioctl.h TheIOCTL_USB_HCD_GET_STATS_1IOCTL has been deprecated. Do not use.
IOCTL_USB_HCD_GET_STATS_2
0x220428 inc\api\usbioctl.h TheIOCTL_USB_HCD_GET_STATS_2IOCTL has been deprecated. Do not use.
IOCTL_USB_HUB_CYCLE_PORT
0x220444 inc\api\usbioctl.h TheIOCTL_USB_HUB_CYCLE_PORTI/O control request power cycles the port that is associated with the PDO that receives the request.
IOCTL_USB_RESET_HUB
0x22044c inc\api\usbioctl.h TheIOCTL_USB_RESET_HUBIOCTL is used by the USB driver stack. Do not use.
IOCTL_USB_USER_REQUEST
0x220438 inc\api\usbuser.h Do not use this request.
</pre>
<h2>
Conclusion</h2>
I have to dig further in IOCTL and have a look at/in PYUSB. Somehow these two worlds should meet. I am sure the final Python-program to set the bandwidth will be remarkably simple! But I don't
yet know how to do it. If there is any reader who knows the answer? Make a comment and I will be (almost eternally) grateful!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijDeYZ0icR271dLfnvIgXpJpLDFdFhPedkHw4IZ3_QSsQFkOKhQw1JYY4rTbcD6GraFDyfpsipnnoA1Df7Wv4G2ZPelS6nWddImS1RC_v4KmdTCgepiHl2g4NzFtocRFpuuB23WRUyKDY/s1600/20121212_104130+(Small).jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijDeYZ0icR271dLfnvIgXpJpLDFdFhPedkHw4IZ3_QSsQFkOKhQw1JYY4rTbcD6GraFDyfpsipnnoA1Df7Wv4G2ZPelS6nWddImS1RC_v4KmdTCgepiHl2g4NzFtocRFpuuB23WRUyKDY/s320/20121212_104130+(Small).jpg" width="240" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
This is art. An artist put some stuff on a pillar,</div>
<div class="separator" style="clear: both; text-align: center;">
paint it in nice bright colors and that's it! In </div>
<div class="separator" style="clear: both; text-align: center;">
Spain, Zarautz, in December 2012.</div>
<br />Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com3tag:blogger.com,1999:blog-8531143406441550247.post-51191762558405906582013-09-29T22:53:00.001+02:002013-09-29T23:46:35.949+02:00BladeRF-python problem "ValueError: No backend available" solved and... python has no problems with bladeRF in USB3<h3>
Summary</h3>
I want to access the bladeRF-board from a Python-program. The simple program below returns an error. By changing the driver from libusbk to libusb-win32 I solved the problem and now I can also access the bladeRF-board from python using an USB3-port! However, the program bladeRF-cli still cannot access the bladeRF-board when plugged in an USB3-port.<br />
<br />
Warning: somehow I screw up the layout, I did copy/paste from Word. I have to find out a better way.... Sorry<br />
<h3>
Running a simple python-program</h3>
The follo<span style="font-family: inherit;">wing simple py</span>thon-program:<br />
<br />
<div class="MsoNoSpacing">
<span style="font-family: Courier New; font-size: x-small;">
</span>
<br />
<pre><span style="font-family: Courier New; font-size: x-small;">import usb.backend
import usb.legacy
import usb.core
import usb.util
import usb.control
# find our device
dev = usb.core.find(idVendor=0x1D50, idProduct=0x6066)
# was it found?
if dev is None:
raise ValueError('Device not found')
else:
print ('Device found')
print 'len =', dev.bLength
print 'bNumConfigurations =', dev.bNumConfigurations
print 'bDeviceClass =', dev.bDeviceClass
num = dev.idVendor
num = "%#x"%(num)
print 'idVendor = ', num
#print 'idVendor = ', dev.idVendor
num = dev.idProduct
num = "%#x"%(num)
print 'idProduct = ', num
#print 'idProduct = ', dev.idProduct
print 'bcdUSB = ', dev.bcdUSB
print 'bcdDevice = ', dev.bcdDevice
print 'iManufacturer = ', dev.iManufacturer
# set the active configuration. With no arguments, the first
# configuration will be the active one
dev.set_configuration()
#dev.set_configuration(0)
</span></pre>
<span style="font-family: Courier New; font-size: x-small;">
</span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
Output:</div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span style="color: blue; font-family: Courier New; font-size: x-small;">
</span>
<br />
<pre><span style="color: blue; font-family: Courier New; font-size: x-small;">Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
Traceback (most recent call last):
File "C:\Users\lonneke\python\bladeRF01.py", line 9, in <module>
dev = usb.core.find(idVendor=0x1D50, idProduct=0x6066)
File "C:\Python27\lib\site-packages\usb\core.py", line 846, in find
raise ValueError('No backend available')
ValueError: No backend available
>>>
</module></span></pre>
<span style="color: blue; font-family: Courier New; font-size: x-small;">
</span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<h3>
Trying to solve the problem with environment-variables</h3>
<br />
Changes to the environment-variables PATH and PYTHONPATH did not solve this problem.<br />
<br /></div>
<div class="MsoNoSpacing">
<h3>
Research on the Internet:</h3>
</div>
<div class="MsoNoSpacing">
<a href="http://pyusb.sourceforge.net/docs/1.0/tutorial.html">http://pyusb.sourceforge.net/docs/1.0/tutorial.html</a> :</div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoQuote" style="margin-left: 35.4pt;">
<span lang="EN-US" style="font-size: 13.5pt; line-height: 115%;">PyUSB should run
on any platform with Python >= 2.4,<span class="apple-converted-space"> </span></span><a href="http://docs.python.org/library/ctypes.html"><span lang="EN-US" style="font-size: 13.5pt; line-height: 115%; mso-ansi-language: EN-US;">ctypes</span></a><span class="apple-converted-space"><span lang="EN-US" style="font-size: 13.5pt; line-height: 115%;"> </span></span><span lang="EN-US" style="font-size: 13.5pt; line-height: 115%;">and at least one of the supported builtin backends.<o:p></o:p></span></div>
<div class="MsoQuote" style="margin-left: 35.4pt;">
<span lang="EN-US" style="font-size: 13.5pt; line-height: 115%;"><br /></span></div>
<div class="MsoNoSpacing">
</div>
<div class="MsoNormal">
<span lang="EN-US">Do I have <i>ctypes</i>?<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">Yes: I found a directory C:\Python27\Lib\ctypes</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><a href="http://stackoverflow.com/questions/13773132/pyusb-on-windows-no-backend-available">http://stackoverflow.com/questions/13773132/pyusb-on-windows-no-backend-available</a> :</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div style="background: white; line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 35.4pt; margin-right: 0cm; margin-top: 0cm; vertical-align: baseline;">
<span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;">I am using Python 2.6.5,</span><span class="apple-converted-space"><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;"> </span></span><code><span lang="EN-US" style="background: #EEEEEE; border: none windowtext 1.0pt; color: red; font-family: Consolas; font-size: 10.5pt; mso-ansi-language: EN-US; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: "Times New Roman"; mso-fareast-theme-font: major-fareast; padding: 0cm;">libusb-win32</span></code><code><span lang="EN-US" style="background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;">-device.bin-0.1.12.1</span></code><span class="apple-converted-space"><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;">and</span><span class="apple-converted-space"><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;"> </span></span><code><span lang="EN-US" style="background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;">pyusb-1.0.0-a0</span></code><span class="apple-converted-space"><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;">on a windows XP system and kept receiving</span><span class="apple-converted-space"><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;"> </span></span><code><span lang="EN-US" style="background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;">ValueError: No backend available</span></code><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;">.<o:p></o:p></span></div>
<div style="background: white; line-height: 13.5pt; margin-bottom: .0001pt; margin-bottom: 0cm; margin-left: 35.4pt; margin-right: 0cm; margin-top: 0cm; vertical-align: baseline;">
<span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;">Since there wasn't any real help on the web for this
problem I spent a lot of time finding that</span><span class="apple-converted-space"><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;"> </span></span><code><span lang="EN-US" style="background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;">ctypes util.py</span></code><span class="apple-converted-space"><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;">uses the</span><span class="apple-converted-space"><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;"> </span></span><code><span lang="EN-US" style="background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;">Path</span></code><span class="apple-converted-space"><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;">variable to find the
library file. My</span><span class="apple-converted-space"><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;"> </span></span><code><span lang="EN-US" style="background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;">path</span></code><span class="apple-converted-space"><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;">did not include</span><code><span lang="EN-US" style="background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;">windows\system32</span></code><span class="apple-converted-space"><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;">and</span><span class="apple-converted-space"><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;"> </span></span><code><span lang="EN-US" style="background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;">PYUSB</span></code><span class="apple-converted-space"><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;">didn't find the
library. I updated the</span><span class="apple-converted-space"><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;"> </span></span><code><span lang="EN-US" style="background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border: 1pt none windowtext; font-family: Consolas; font-size: 10.5pt; padding: 0cm;">path</span></code><span class="apple-converted-space"><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;"> </span></span><span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 10.5pt;">variable and now the USB is working.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">
</span></div>
<div class="MsoNoSpacing">
<em><span lang="EN-US" style="font-family: "Calibri","sans-serif"; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-hansi-theme-font: minor-latin;">NOTE:
I use libusbk, NOT libusb-win32!!<o:p></o:p></span></em></div>
<div class="MsoNoSpacing">
<em><span lang="EN-US" style="font-family: "Calibri","sans-serif"; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-hansi-theme-font: minor-latin;"><br /></span></em></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Here is
the libusb wiki:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<a href="http://www.libusb.org/wiki/windows_backend"><span lang="EN-US">http://www.libusb.org/wiki/windows_backend</span></a><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<h2 style="background: white; margin-left: -13.5pt;">
<span lang="EN-US" style="font-family: Arial, sans-serif; font-size: 12pt; line-height: 115%;">USB 3.0 support<o:p></o:p></span></h2>
<div class="MsoNoSpacing">
</div>
<pre style="line-height: 15.0pt; text-align: justify;"><span lang="EN-US" style="color: #222222; mso-ansi-language: EN-US;">libusb 1.0 supports USB 3.0 controllers and devices on Windows, from 1.0.9 release onwards. Because of the large number of USB 3.0 controllers, the lack of official USB 3.0 support from Microsoft in Windows 7 and earlier as well as limited testing, be mindful that USB 3.0 support should be considered experimental. Also, if you are using a NEC/Renesas USB 3.0 controller, such as the fairly widespread uPD720200/uPD720200A, you please make sure that your controller drivers are </span><a href="http://www.station-drivers.com/page/renesas.htm"><span lang="EN-US" style="color: #222222; mso-ansi-language: EN-US; text-decoration: none; text-underline: none;">version 2.1.16.0 or later</span></a><span lang="EN-US" style="color: #222222; mso-ansi-language: EN-US;">. Older versions of the drivers have a bug that prevents access to USB devices when using libusb.<o:p></o:p></span></pre>
<pre style="line-height: 15.0pt; text-align: justify;"><span lang="EN-US" style="color: #222222; mso-ansi-language: EN-US;">
</span></pre>
<h3>
<span lang="EN-US" style="color: #222222; mso-ansi-language: EN-US;">Install a different driver, replace libusbk by libusb-win32</span></h3>
<pre style="line-height: 15.0pt; text-align: justify;"><span lang="EN-US" style="color: #222222; mso-ansi-language: EN-US;">
</span></pre>
<span lang="EN-US" style="color: #222222; mso-ansi-language: EN-US;">Use zadig.exe to install a different driver, libusb-win32:</span><br />
<pre style="line-height: 15.0pt; text-align: justify;"><span lang="EN-US" style="color: #222222; mso-ansi-language: EN-US;">
</span></pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkPFEPxCteFE19pwBH2f5AMqE7_jBOdEDZm1t5WcehmXxBOQFkb42MdLhP3TJdopPB325I3wOcrjknbKI3Sw38TKjBikV5fgPOnPn32jjWNEXFgCEfDZQO_ZkWHex_TrqAosvv69qyq8A/s1600/five.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="138" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkPFEPxCteFE19pwBH2f5AMqE7_jBOdEDZm1t5WcehmXxBOQFkb42MdLhP3TJdopPB325I3wOcrjknbKI3Sw38TKjBikV5fgPOnPn32jjWNEXFgCEfDZQO_ZkWHex_TrqAosvv69qyq8A/s320/five.png" width="320" /></a></div>
<pre style="line-height: 15.0pt; text-align: justify;"><span lang="EN-US" style="color: #222222; mso-ansi-language: EN-US;">
</span></pre>
<pre style="line-height: 15.0pt; text-align: justify;"><span lang="EN-US" style="color: #222222; mso-ansi-language: EN-US;">
</span></pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5_c7oVCfOEiX4yCbU1hvy-aWfC6nMa6Z55cb79C_0MvgTfnzitChAXx3EHQir0rbK9sBtAS_-y7SC3JyUtA59gtiPfxJWJq1-_3fCHTrsWqAFQ4xaBZFggtiXncJ0E2Wdi7Uth0F2V2k/s1600/four.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5_c7oVCfOEiX4yCbU1hvy-aWfC6nMa6Z55cb79C_0MvgTfnzitChAXx3EHQir0rbK9sBtAS_-y7SC3JyUtA59gtiPfxJWJq1-_3fCHTrsWqAFQ4xaBZFggtiXncJ0E2Wdi7Uth0F2V2k/s320/four.png" width="299" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQF97JGdblPy0xJ4qdfveY9PhBKa8df9zFrnx8EoN7kibdSZbyeG4unFV4HV83w4kd7eGIibRFyXQMNG6FdhJI7MhP59gtDESIsB23MUKfgckpj3C0GV4SP-sLaIKhtgENKAxkQCCKuoc/s1600/one.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="138" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQF97JGdblPy0xJ4qdfveY9PhBKa8df9zFrnx8EoN7kibdSZbyeG4unFV4HV83w4kd7eGIibRFyXQMNG6FdhJI7MhP59gtDESIsB23MUKfgckpj3C0GV4SP-sLaIKhtgENKAxkQCCKuoc/s320/one.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheS2mu_isv2lt6aAVxafUZ_mOFku4Odv1QgTiD0pgPjj9dTGC7nzIeSlepz_sisbgRm9wUHbh4Hi9rW_KhPy4qD38J5ZE8dnwE44cNemVAhdUOd6cfVFv2dvwjof8J0FEQKFKdZqeTqdA/s1600/three.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheS2mu_isv2lt6aAVxafUZ_mOFku4Odv1QgTiD0pgPjj9dTGC7nzIeSlepz_sisbgRm9wUHbh4Hi9rW_KhPy4qD38J5ZE8dnwE44cNemVAhdUOd6cfVFv2dvwjof8J0FEQKFKdZqeTqdA/s320/three.png" width="288" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzhyphenhyphenrwzF2kV-k9Tn9PEfMNvNEItOgDgNA8czPuTvImmGDyqapvkRoN-8p0VInr59eL-ZMbcVKnudx7lIq8rhkVYQAInKDuURXt3CFwFTf0JxYm38GTjkI4Rw_zb5u3OPcaZhsvxyh6BOs/s1600/two.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzhyphenhyphenrwzF2kV-k9Tn9PEfMNvNEItOgDgNA8czPuTvImmGDyqapvkRoN-8p0VInr59eL-ZMbcVKnudx7lIq8rhkVYQAInKDuURXt3CFwFTf0JxYm38GTjkI4Rw_zb5u3OPcaZhsvxyh6BOs/s320/two.png" width="201" /></a></div>
<pre style="line-height: 15.0pt; text-align: justify;"><span lang="EN-US" style="color: #222222; mso-ansi-language: EN-US;">
</span></pre>
<pre><span lang="EN-US" style="color: #222222; line-height: 15pt;">
<div class="MsoNoSpacing">
<h3>
<span lang="EN-US" style="font-family: inherit; font-size: large;">Now my bladeRF is a libusb-win32-device</span></h3>
</div>
<div class="MsoNoSpacing">
<h3>
<span style="font-family: inherit; line-height: 115%;">Try bladeRF-cli</span></h3>
<span style="font-family: inherit; line-height: 115%;">What about bladeRF-cli???</span></div>
</span>
<pre>Microsoft Windows [versie 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Alle rechten voorbehouden.
C:\bladeRF-master\host\build\output\Debug>bladeRF-cli -p
Backend: libusb
Serial: b436de8c8212b9aeaaeba852246866e7
USB Bus: 2
USB Address: 3
C:\bladeRF-master\host\build\output\Debug>bladeRF-cli -l hostedx115.rbf
[INFO] Using libusb version 1.0.16.10774
[INFO] Found a bladeRF
[INFO] Claimed all inferfaces successfully
[INFO] Change to alternate interface 2
[INFO] Change to alternate interface 2
Loading fpga...
[INFO] Change to alternate interface 0
[INFO] Change to alternate interface 1
[INFO] Setting integer sample rate: 1000000
[INFO] Found r value of: 4
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx P1: 0x00009c66 (40038) P2: 0x00000002 (2) P3: 0x00000005 (5)
[INFO] Calculated samplerate: 1000000 + 0/1
[INFO] Set actual integer sample rate: 1000000
[INFO] Setting integer sample rate: 1000000
[INFO] Found r value of: 4
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx P1: 0x00009c66 (40038) P2: 0x00000002 (2) P3: 0x00000005 (5)
[INFO] Calculated samplerate: 1000000 + 0/1
[INFO] Set actual integer sample rate: 1000000
Done.
C:\bladeRF-master\host\build\output\Debug>
</pre>
<pre>And all LEDs are blinking!!
Try the python-program Now try the same python-program as above:
And the output is:
<pre>Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
Device found
len = 18
bNumConfigurations = 1
bDeviceClass = 0
idVendor = 0x1d50
idProduct = 0x6066
bcdUSB = 528
bcdDevice = 0
iManufacturer = 1
>>> </pre>
<pre style="text-align: justify;"><span lang="EN-US"><pre style="text-align: justify;"></pre>
<h3>
<span lang="EN-US">Now try USB3 instead of USB2 with bladeRF-cli</span></h3>
<div style="text-align: left;">
<div class="MsoNoSpacing">
<span lang="EN-US">But what about plug bladeRF in an USB3-port with this driver?<o:p></o:p></span></div>
<div class="MsoNoSpacing">
</div>
<div class="MsoNoSpacing">
<span lang="EN-US">BladeRF in USB2-port:<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="font-size: small;">
</div>
<span style="font-size: x-small;">
</span>
<span style="font-size: x-small;">
</span>
<br />
<div class="MsoNoSpacing" style="font-size: small;">
<span style="font-family: Times New Roman, serif;">
</span>
<br />
<pre><span style="font-family: Times New Roman, serif;">Microsoft Windows [versie 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Alle rechten voorbehouden.
C:\bladeRF-master\host\build\output\Debug><span style="color: blue;">bladeRF-cli -l hostedx115.rbf</span>
[INFO] Using libusb version 1.0.16.10774
[INFO] Found a bladeRF
[INFO] Claimed all inferfaces successfully
[INFO] Change to alternate interface 2
[INFO] Change to alternate interface 2
Loading fpga...
[INFO] Change to alternate interface 0
[INFO] Change to alternate interface 1
[INFO] Setting integer sample rate: 1000000
[INFO] Found r value of: 4
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx P1: 0x00009c66 (40038) P2: 0x00000002 (2) P3: 0x00000005 (5)
[INFO] Calculated samplerate: 1000000 + 0/1
[INFO] Set actual integer sample rate: 1000000
[INFO] Setting integer sample rate: 1000000
[INFO] Found r value of: 4
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx P1: 0x00009c66 (40038) P2: 0x00000002 (2) P3: 0x00000005 (5)
[INFO] Calculated samplerate: 1000000 + 0/1
[INFO] Set actual integer sample rate: 1000000
Done.
C:\bladeRF-master\host\build\output\Debug><span style="color: blue;">bladeRF-cli -p</span>
Backend: libusb
Serial: b436de8c8212b9aeaaeba852246866e7
USB Bus: 2
USB Address: 3</span></pre>
<pre><span style="font-family: Times New Roman, serif;">
Now unplug and plug in USB3-port:</span></pre>
<pre><span style="font-family: Times New Roman, serif;">
</span></pre>
<pre><span style="font-family: Times New Roman, serif;">
C:\bladeRF-master\host\build\output\Debug><span style="color: blue;">bladeRF-cli -l hostedx115.rbf</span>
[INFO] Using libusb version 1.0.16.10774
[ERROR] No devices available on the libusb backend.
Failed to open device (NULL): No devices available
Could not open device
</span></pre>
</div>
<div class="MsoNoSpacing" style="font-size: small;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; mso-ansi-language: EN-US;">
</span></div>
<div class="MsoNoSpacing" style="font-size: small;">
</div>
<div class="MsoNoSpacing">
<span lang="EN-US">bladeRF-cli cannot handle the USB3-port on my laptop.</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Unplug and replug in USB2-port:<span style="font-size: x-small;"><o:p></o:p></span></span></div>
<span style="font-size: x-small;">
</span>
<br />
<div class="MsoNoSpacing" style="font-size: small;">
<span style="font-family: Times New Roman, serif;">
</span><br />
<pre><span style="font-family: Times New Roman, serif;">C:\bladeRF-master\host\build\output\Debug><span style="color: blue;">bladeRF-cli -l hostedx115.rbf</span>
[INFO] Using libusb version 1.0.16.10774
[INFO] Found a bladeRF
[INFO] Claimed all inferfaces successfully
[INFO] Change to alternate interface 2
[INFO] Change to alternate interface 2
Loading fpga...
[INFO] Change to alternate interface 0
[INFO] Change to alternate interface 1
[INFO] Setting integer sample rate: 1000000
[INFO] Found r value of: 4
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx P1: 0x00009c66 (40038) P2: 0x00000002 (2) P3: 0x00000005 (5)
[INFO] Calculated samplerate: 1000000 + 0/1
[INFO] Set actual integer sample rate: 1000000
[INFO] Setting integer sample rate: 1000000
[INFO] Found r value of: 4
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx a + b/c: 316 + 4/5
[INFO] MSx P1: 0x00009c66 (40038) P2: 0x00000002 (2) P3: 0x00000005 (5)
[INFO] Calculated samplerate: 1000000 + 0/1
[INFO] Set actual integer sample rate: 1000000
Done.
</span></pre>
<span style="font-family: Times New Roman, serif;">
</span></div>
<div class="MsoNoSpacing" style="font-size: small;">
</div>
<span style="font-size: x-small;">
</span>
<br />
<div class="MsoNoSpacing">
<div style="font-size: small;">
<span lang="EN-US" style="font-family: "Times New Roman","serif"; mso-ansi-language: EN-US;">C:\bladeRF-master\host\build\output\Debug></span></div>
<h3 style="text-align: justify;">
<span lang="EN-US">Now try USB3 instead of USB2 with bladeRF-cli</span></h3>
</div>
<div class="MsoNoSpacing" style="font-size: small;">
</div>
<div class="MsoNoSpacing">
<span style="font-family: inherit;">And what about python?<o:p></o:p></span><br />
<span style="font-family: inherit;">
</span></div>
<div class="MsoNoSpacing">
<span style="font-family: inherit;">First bladeRF in USB2-port:</span>
</div>
<div class="MsoNoSpacing">
Run python-program. </div>
<div class="MsoNoSpacing">
Output:</div>
<div class="MsoNoSpacing">
</div>
<div class="MsoNoSpacing">
<span style="font-family: 'Courier New';"><span style="color: blue;">>>> </span></span></div>
<div class="MsoNoSpacing">
<span style="font-family: 'Courier New';"><span style="color: blue;">Device found</span></span></div>
<div class="MsoNoSpacing">
<span style="font-family: 'Courier New';"><span style="color: blue;">len = 18</span></span></div>
<div class="MsoNoSpacing">
<span style="font-family: 'Courier New';"><span style="color: blue;">bNumConfigurations = 1</span></span></div>
<div class="MsoNoSpacing">
<span style="font-family: 'Courier New';"><span style="color: blue;">bDeviceClass = 0</span></span></div>
<div class="MsoNoSpacing">
<span style="color: blue;"><span style="font-family: 'Courier New';">idVendor =</span><span style="font-family: 'Courier New';"> </span><span style="font-family: 'Courier New';">0x1d50</span></span></div>
<div class="MsoNoSpacing">
<span style="color: blue;"><span style="font-family: 'Courier New';">idProduct =</span><span style="font-family: 'Courier New';"> </span><span style="font-family: 'Courier New';">0x6066</span></span></div>
<div class="MsoNoSpacing">
<span style="color: blue;"><span style="font-family: 'Courier New';">bcdUSB =</span><span style="font-family: 'Courier New';"> </span><span style="font-family: 'Courier New';">528</span></span></div>
<div class="MsoNoSpacing">
<span style="color: blue;"><span style="font-family: 'Courier New';">bcdDevice =</span><span style="font-family: 'Courier New';"> </span><span style="font-family: 'Courier New';">0</span></span></div>
<div class="MsoNoSpacing">
<span style="color: blue;"><span style="font-family: 'Courier New';">iManufacturer </span><span style="font-family: 'Courier New';">=</span><span style="font-family: 'Courier New';"> </span><span style="font-family: 'Courier New';">1</span></span><br />
<span style="color: blue;"><span style="font-family: 'Courier New';">
</span></span></div>
<div class="MsoNoSpacing">
</div>
<div class="MsoNoSpacing">
<span style="font-family: inherit;">Now unplug and put in USB3-slot:</span></div>
<div class="MsoNoSpacing">
</div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"><span style="color: blue;">
</span></span>
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"><span style="color: blue;">>>> ================================ RESTART ================================<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span style="font-family: 'Courier New';"><span style="color: blue;">>>> </span></span></div>
<div class="MsoNoSpacing">
<span style="font-family: 'Courier New';"><span style="color: blue;">Device found</span></span></div>
<div class="MsoNoSpacing">
<span style="font-family: 'Courier New';"><span style="color: blue;">len = 18</span></span></div>
<div class="MsoNoSpacing">
<span style="font-family: 'Courier New';"><span style="color: blue;">bNumConfigurations = 1</span></span></div>
<div class="MsoNoSpacing">
<span style="font-family: 'Courier New';"><span style="color: blue;">bDeviceClass = 0</span></span></div>
<div class="MsoNoSpacing">
<span style="color: blue;"><span style="font-family: 'Courier New';">idVendor =</span><span style="font-family: 'Courier New';"> </span><span style="font-family: 'Courier New';">0x1d50</span></span></div>
<div class="MsoNoSpacing">
<span style="color: blue;"><span style="font-family: 'Courier New';">idProduct =</span><span style="font-family: 'Courier New';"> </span><span style="font-family: 'Courier New';">0x6066</span></span></div>
<div class="MsoNoSpacing">
<span style="color: blue;"><span style="font-family: 'Courier New';">bcdUSB =</span><span style="font-family: 'Courier New';"> </span><span style="font-family: 'Courier New';">768</span></span></div>
<div class="MsoNoSpacing">
<span style="color: blue;"><span style="font-family: 'Courier New';">bcdDevice =</span><span style="font-family: 'Courier New';"> </span><span style="font-family: 'Courier New';">0</span></span></div>
<div class="MsoNoSpacing">
<span style="color: blue;"><span style="font-family: 'Courier New';">iManufacturer =</span><span style="font-family: 'Courier New';"> </span><span style="font-family: 'Courier New';">1</span></span></div>
<div class="MsoNoSpacing">
<span style="color: blue;"><span style="font-family: 'Courier New';">>>></span><o:p style="font-family: 'Courier New';"> </o:p></span></div>
<div class="MsoNoSpacing">
<h3>
<span lang="EN-US" style="font-family: inherit;">Conclusion</span></h3>
<span lang="EN-US" style="font-family: inherit;">YES!!<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span style="font-family: inherit;">Python has no problems with USB3 on my laptop!!</span></div>
<div class="MsoNoSpacing">
</div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: inherit;">The program bladeRF-cli cannot access the bladeRF-board from USB3, so I cannot flash the
</span></div>
<span lang="EN-US" style="font-family: inherit;">FPGA. I should be able to do that from python in this situation. But how?</span><br />
<span lang="EN-US" style="font-family: inherit;">Anyway, with bladeRF plugged in an USB2-port I can solve this problem for the moment.</span><br />
<div class="MsoNoSpacing">
<span style="font-size: x-small;">
</span></div>
<div class="MsoNoSpacing">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv1oVuGC6Pw5zQ6_2Kes12FEd-ppC2bNwpsKvtai392UOZUXbAAnKVhwxDJ16RLr2Dks7rQzmMrBeK1DGbPjvD391RszsuEXz-C1V2ShXFfuEcMxLzbf6TFntRHnmTbvGPggtbJjHgwdo/s1600/20121224_134707+(Small).jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv1oVuGC6Pw5zQ6_2Kes12FEd-ppC2bNwpsKvtai392UOZUXbAAnKVhwxDJ16RLr2Dks7rQzmMrBeK1DGbPjvD391RszsuEXz-C1V2ShXFfuEcMxLzbf6TFntRHnmTbvGPggtbJjHgwdo/s320/20121224_134707+(Small).jpg" width="240" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
December 2012 in Spain, Santiago.</div>
<div class="separator" style="clear: both; text-align: center;">
View on the world from within our caravan.</div>
<div class="separator" style="clear: both; text-align: center;">
This weather is perfect for programming but</div>
<div class="separator" style="clear: both; text-align: center;">
not so pleasant for a long walk with our dog...</div>
</div>
<div class="MsoNoSpacing">
<span style="font-size: x-small;">
</span></div>
<div class="MsoNoSpacing">
</div>
<div class="MsoNoSpacing">
<span style="font-size: x-small;">
</span></div>
<div class="MsoNoSpacing">
<span style="font-size: x-small;">
</span></div>
<span style="font-size: x-small;">
</span></div>
<span style="color: #222222; line-height: 15pt;"><span style="font-size: x-small;">
</span></span><span style="color: #222222; font-size: x-small; line-height: 15pt;">
</span></span></pre>
<pre style="line-height: 15.0pt; text-align: justify;"><span lang="EN-US" style="color: #222222; mso-ansi-language: EN-US;"><span style="font-size: x-small;">
</span></span></pre>
<pre style="line-height: 15.0pt; text-align: justify;"><span lang="EN-US" style="color: #222222; mso-ansi-language: EN-US;">
</span></pre>
</pre>
</pre>
Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com0tag:blogger.com,1999:blog-8531143406441550247.post-66943279379584815192013-09-27T17:21:00.000+02:002013-09-27T23:05:03.851+02:00At last: my bladeRF is up and running on my laptop in Windows 7Finally, I succeeded in getting my bladeRF into life! It was alive a long time ago, i.e. it showed a green LED when powered up by USB. It did not mind USB2 of USB3, the LED was on.<br />
<br />
But seen from the laptop there was not much life.<br />
<br />
At nuand.com there was new software. First there was a <a href="https://github.com/nuand/bladerf/wiki">https://github.com/nuand/bladerf/wiki</a> with some info to get the beast alive in Windows. And now there is new software at github. Look for the 'host' directory (<a href="https://github.com/Nuand/bladeRF/tree/master/host">https://github.com/Nuand/bladeRF/tree/master/host</a>).<br />
<br />
I used cmake to make a project-file for Visual Studio. In Visual Studio I found a button 'build all'. And that was about it. Soo simple!!<br />
<br />
In the meantime my bladeRF thought it was a 'West-Bridge'. I solved that problem using the recover-function of bladeRF-cli:<br />
<br />
<div class="MsoNoSpacing">
<span lang="EN-US">I
downloaded the latest 1.2 FX3 image and renamed it to latest.img<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">C:\bladeRF-master\host\build\output\Debug><span lang="EN-US" style="color: #0070c0;">bladeRF-cli -i<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Using libusb version 1.0.16.10774<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[WARNING] Found FX3 bootloader device libusb:device=2:7,
could be bladeRF.<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[WARNING] Use "recover libusb:device=2:7 <FX3
firmware>" to boot bladeRF.<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[ERROR] No devices available on the libusb backend.<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">Failed to open device (NULL): No devices available<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">Could not open device<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">bladeRF> <span style="color: #0070c0;">recover libusb:device=2:7
latest.img</span><o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Device: 2:7<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Attempting load with file latest.img<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] open firmware image latest.img for RAM upload<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] normal FW binary executable image with checksum<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] FX3 bootloader version: 0x000000A9<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] writing image...<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] transfer execution to Program Entry at
0x40013818<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">Loaded! An open is now required<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">bladeRF> open<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Using libusb version 1.0.16.10774<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Found a bladeRF<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Claimed all inferfaces successfully<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Change to alternate interface 2<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Change to alternate interface 2<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">bladeRF> <span style="color: #0070c0;">exit<o:p></o:p></span></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><span style="color: #0070c0;"><br /></span></span></span></div>
<div class="MsoNoSpacing">
<span style="font-family: Courier New, Courier, monospace;"><b><i>At this point you have to remove power and reapply power again. So, unplug and plug in again.</i></b></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">C:\bladeRF-master\host\build\output\Debug><span style="color: #0070c0;">bladeRF-cli -p<o:p></o:p></span></span></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">
Backend: libusb<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> Serial: b436de8c8212b9aeaaeba852246866e7<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> USB
Bus: 2<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> USB
Address: 7<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace;"><b><i>I did not know which FPGA-file to take. I simply downloaded the latest one.</i></b><span style="font-size: x-small;"> </span></span></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">C:\bladeRF-master\host\build\output\Debug><span style="color: #0070c0;">bladeRF-cli -l hostedx115.rbf<o:p></o:p></span></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Using libusb version 1.0.16.10774<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Found a bladeRF<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Claimed all inferfaces successfully<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Change to alternate interface 2<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Change to alternate interface 2<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">Loading fpga...<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Change to alternate interface 0<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Change to alternate interface 1<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Setting integer sample rate: 1000000<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Found r value of: 4<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] MSx a + b/c: 316 + 4/5<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] MSx a + b/c: 316 + 4/5<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] MSx P1: 0x00009c66 (40038) P2: 0x00000002 (2)
P3: 0x00000005 (5)<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Calculated samplerate: 1000000 + 0/1<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Set actual integer sample rate: 1000000<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Setting integer sample rate: 1000000<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Found r value of: 4<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] MSx a + b/c: 316 + 4/5<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] MSx a + b/c: 316 + 4/5<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] MSx P1: 0x00009c66 (40038) P2: 0x00000002 (2)
P3: 0x00000005 (5)<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Calculated samplerate: 1000000 + 0/1<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[INFO] Set actual integer sample rate: 1000000<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">Done.<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">
</span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span style="font-family: Courier New, Courier, monospace; font-size: x-small;">C:\bladeRF-master\host\build\output\Debug><o:p></o:p></span></span></div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span>
<br />
<h3>
Some issues</h3>
<div>
There is a problem with USB3. My bladeRF does not function in the USB3 slot. However in the USB2 slot it is OK. I have a Renesas Electronics USB 3.0 host controller and hub. I'll send nuand an email about this issue. It was mentioned by them as a problem.</div>
<div>
<br /></div>
<div>
I had a Python-program that could 'see' the bladeRF. Now it barks that it cannot find the backend. I have to solve that problem.</div>
<div>
<br /></div>
<div>
I still have a problem with GNUradio in Windows. The waterfall-display is frozen. It is a problem with openGL I think.</div>
<div>
<br /></div>
<div>
I want to use my bladeRF to decode GPS-signals (please don't tell me there are cheaper solutions with SIRF III chips etc. I know!). So I need to connect a GPS-antenna. I have one, an active antenne. Active means that I have to become active to build something to feed the antenna with DC over the same line that carries the sub-micro-volts of GNSS-info. It is called phantom-supply.</div>
<div>
<br /></div>
<div>
I need a protective case to protect the bladeRF to the real world of metal things on my desk. Elektor sells a project case, that might be a solution.</div>
<div>
<br /></div>
<h3>
Future steps</h3>
<div>
I want a program written in Python to access the bladeRF. So, I will have to write an FX3-program too and I will have to build some VHDL-code. In the past I did some experiments with a java-program to access an SDR-board. I'll dig up that attempts and build upon that.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC2t4o2oji_fKmn6R3nGm3vGcw8GSNlyQ67W8KwXfV662aGSpr5TfTPL6HqDYs5Lo4YG3VHwEramxJrnQXYPVlLKEcd0hAv_dvpsrRTNjtPbMQ6WMtfAt80TuYIWKCj6f4ifvPHusXeek/s1600/PICT0338+(Small).JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC2t4o2oji_fKmn6R3nGm3vGcw8GSNlyQ67W8KwXfV662aGSpr5TfTPL6HqDYs5Lo4YG3VHwEramxJrnQXYPVlLKEcd0hAv_dvpsrRTNjtPbMQ6WMtfAt80TuYIWKCj6f4ifvPHusXeek/s320/PICT0338+(Small).JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
This picture was taken in March this year in</div>
<div class="separator" style="clear: both; text-align: center;">
Castrojeriz, Spain while we were on vacation.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
I love cats. My wife loves cats. And our dog loves</div>
<div class="separator" style="clear: both; text-align: center;">
cats too, but in a different manner...</div>
<div>
<br /></div>
<div>
<br /></div>
<br />Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com0tag:blogger.com,1999:blog-8531143406441550247.post-5837274489326978262013-09-11T23:53:00.003+02:002013-09-11T23:55:12.303+02:00bladeRF, too many options for building the software?<div class="MsoNoSpacing">
<span lang="EN-US">To control the bladeRF-board you have to deal with
two areas:<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l3 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US" style="font-family: Symbol; mso-ansi-language: EN-US; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: NL;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]--><span lang="EN-US">Outside of the bladeRF-board is a system with Windows or linux<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l3 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US" style="font-family: Symbol; mso-ansi-language: EN-US; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: NL;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]--><span lang="EN-US">Inside the bladeRF-board there are two sub-systems:<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 72.0pt; mso-list: l3 level2 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US; mso-fareast-font-family: "Courier New"; mso-fareast-language: NL;">o<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]--><span lang="EN-US">The FX3 Cypress USB subsystem to be programmed in C<br />
there is a non-volatile flash-memory for an initial program<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 72.0pt; mso-list: l3 level2 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US; mso-fareast-font-family: "Courier New"; mso-fareast-language: NL;">o<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]--><span lang="EN-US">The FPGA subsystem to be programmed in VHDL or Verilog<br />
the FPGA is empty at startup, so has to be loaded to perform its virtual
hardware function<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">To use the bladeRF you have to boot the whole system:<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l4 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">1.<span style="font-size: 7pt;">
</span></span><!--[endif]--><span lang="EN-US">The outside system: a laptop, a PC or perhaps a
Raspberry Pi connected by USB3 to the bladeRF<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l4 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">2.<span style="font-size: 7pt;">
</span></span><!--[endif]--><span lang="EN-US">The bladeRF has a flash memory with the software for
the FX3 USB subsystem<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l4 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">3.<span style="font-size: 7pt;">
</span></span><!--[endif]--><span lang="EN-US">The bladeRF gets a new FX3 program<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l4 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">4.<span style="font-size: 7pt;">
</span></span><!--[endif]--><span lang="EN-US">The bladeRF gets a fresh FPGA image<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l4 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">5.<span style="font-size: 7pt;">
</span></span><!--[endif]--><span lang="EN-US">From now on the bladeRF is able to communicate with
the controlling program: bladerf.cli<br />
the bladeRF command line interpreter<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l0 level1 lfo3; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US" style="font-family: Symbol; mso-ansi-language: EN-US; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: NL;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]--><span lang="EN-US">The bladeRF-board has a JTAG-interface-connector. So
it is possible to program the FPGA more or less independent form the remaining
hardware.<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l0 level1 lfo3; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US" style="font-family: Symbol; mso-ansi-language: EN-US; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: NL;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]--><span lang="EN-US">With a suitable program in the FX3-USB-Cypres-chip,
the programming of the FPGA can be done without the JTAG-interface, directly
from the FX3-chip.<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l0 level1 lfo3; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US" style="font-family: Symbol; mso-ansi-language: EN-US; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: NL;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]--><span lang="EN-US">On the outside of the board is the bladeRF.cli. This
program takes care of loading the FX3-program and the program for the FPGA.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">‘Everybody’ seems to use linux for the outside system.
So, may be it is better for me to follow the crowd if I want support and
results.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">To connect the bladeRF to a Windows system there are
in fact two possibilities:<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l2 level1 lfo4; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">1.<span style="font-size: 7pt;">
</span></span><!--[endif]--><span lang="EN-US">Use the Cypress FX3 system with the wizard that
generates the INF-file. From then on you can use the FX3-Cypres diagnostic
tools to load programs<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l2 level1 lfo4; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US">2.<span style="font-size: 7pt;">
</span></span><!--[endif]--><span lang="EN-US">Use the libusb-system. There seem to be a few flavors
of that. Anyway version 0.1 or 1.0. The Zadig software seems to be a keystone
for success.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Whether linux or Windows the bladeRF-board can be
controlled by a program written in java, python or C. The bladeRF.cli is
written in C.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">There is also gnu radio, either in Windows or in
linux. There is a module, OsmoSDR, that can be used to connect a bladeRF-board.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">The above ramblings are sort of start-point-issues.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Now about my dream, my ultimate goal, my ultimate
process:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I want to understand GNSS (Global Navigation Satellite
Systems) by building a GPS-receiver. Perhaps also a GPS-simulator or a
GPS-spoofer. In the past I did some experiments, programming in java, with a
file with a few minutes GPS-signal from a wideband receiver. I built a function
to read the samples. I built a correlator and could ‘see’ the satellites. I
built a phase-locked-loop and got stuck in this very PLL. I did not manage to
get the loop stable, but did manage to
recover some almanac-data.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">For me, it is not the end-result that counts, but the
process itself. By doing, experimenting, programming, testing, debugging and
reading I get a deep understanding of GNSS’s. Furthermore a system containing an
RF-subsystem, an FPGA and an FX3—USB-system controlled by a program on a laptop
is really fascinating. A high level language like python, the C-program in the
FX3-chip and VHDL on an FPGA. This is a piece of hardware that should be able
to do anything you can imagine. Cognitive radio for example. Combined with an
inertial system and Kalman filtering one can do miracles with GNSS. The boys and
girls of Pentex have the real stuff! But the bladeRF-board is such a marvelous
piece of hardware! <o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I am very confused which route to take:<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l1 level1 lfo5; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US" style="font-family: Symbol; mso-ansi-language: EN-US; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: NL;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]--><span lang="EN-US">I have a laptop, an old but usable one, I could
replace Windows and put genuine Ubuntu on it.<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l1 level1 lfo5; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US" style="font-family: Symbol; mso-ansi-language: EN-US; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: NL;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]--><span lang="EN-US">I might try to solve the Windows gnuradio opengl problem and go for the
gnuradio solution<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l1 level1 lfo5; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US" style="font-family: Symbol; mso-ansi-language: EN-US; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: NL;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]--><span lang="EN-US">I might stubbornly stay with Windows and python<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l1 level1 lfo5; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-US" style="font-family: Symbol; mso-ansi-language: EN-US; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: NL;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]--><span lang="EN-US">I might try to go on with Ubuntu in VMware under
Windows 7 professional (64 bit)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<br />
<div class="MsoNoSpacing">
<span lang="EN-US">So far I tried almost everything a little bit, but I
don’t yet know which route to take!<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOi71LXQlVsPfpmSr4B35ElchEnXJvf7GXu8MFHz50eFtDduRGxyzWbxkWvQvztkPq8QHuA1oVoHGuhFKsarVbdU_3VIf1US3gmzKY5T4OuJKbJo9LXH87AYAQvc-4l_wyXtQyV2eJt44/s1600/PICT0194+(Mobile).JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOi71LXQlVsPfpmSr4B35ElchEnXJvf7GXu8MFHz50eFtDduRGxyzWbxkWvQvztkPq8QHuA1oVoHGuhFKsarVbdU_3VIf1US3gmzKY5T4OuJKbJo9LXH87AYAQvc-4l_wyXtQyV2eJt44/s1600/PICT0194+(Mobile).JPG" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
a painting, a reproduction, whatever?</div>
<div class="separator" style="clear: both; text-align: center;">
This beautiful picture we found in VilaCha, Portugal.</div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com2tag:blogger.com,1999:blog-8531143406441550247.post-4734740381023330872013-08-28T01:24:00.000+02:002013-08-28T01:24:15.979+02:00bladeRF board talks back (more or less) to a python programI installed libusb0 (libusb-win32). With inf-wizard I managed to make the bladeRF board visible to Windows. When I connect the device I have a libusb-board called bladeRF!<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw6yU91C_bxLNQTmGuVbh7RSo7nk04ygTGzOLH5UrR-1MrUZzEDMwp0OKQu1yyQSRKXZ0VnDOIRwzK4EAPJXTiwTaDCpJVzE6NU48-twTjXMku23mNaB9bt_RYKGyC3gRKzqBFtwCcum0/s1600/bladeRF01.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw6yU91C_bxLNQTmGuVbh7RSo7nk04ygTGzOLH5UrR-1MrUZzEDMwp0OKQu1yyQSRKXZ0VnDOIRwzK4EAPJXTiwTaDCpJVzE6NU48-twTjXMku23mNaB9bt_RYKGyC3gRKzqBFtwCcum0/s320/bladeRF01.png" width="253" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8ZqQfdNInbwQvtAG_Jqsc-xEHz5zy5MHa5MXb4TYoTM221eolqfN-DADsMkZ-IwPaZG5eZKYCXt3iEI2qEE4L4P1jb-uDcoWE3jNL4-ruRSaGRATaXRjIy1_B_M78bECXg4M_ybZBV-I/s1600/bladeRF02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8ZqQfdNInbwQvtAG_Jqsc-xEHz5zy5MHa5MXb4TYoTM221eolqfN-DADsMkZ-IwPaZG5eZKYCXt3iEI2qEE4L4P1jb-uDcoWE3jNL4-ruRSaGRATaXRjIy1_B_M78bECXg4M_ybZBV-I/s320/bladeRF02.png" width="299" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The problem is, however, that libusb0.sys is a libusb 0.1 implementation.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Well, let's see if can find this device with a Python-program:</div>
<div class="separator" style="clear: both; text-align: left;">
I found this snippet on the big Internet. Wish I saved the URL to give credit to the programmer!</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">#!/usr/bin/env python</span></div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">import usb</span></div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">for bus in usb.busses():</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> for dev in bus.devices:</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> print "Bus %s Device %s: ID %04x:%04x %s" % (bus.dirname,dev.filename,dev.idVendor,dev.idProduct,dev.open().getString(1,30))</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span></div>
<div class="separator" style="clear: both;">
The output:</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">Type "copyright", "credits" or "license()" for more information.</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">>>> ================================ RESTART ================================</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">>>> </span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">Bus Device : ID 1d50:6066 Nuand</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">>>> </span></div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<span style="font-family: inherit;">This is encouraging!</span></div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">From a USB-tutorial I copied:</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"># import usb.backend</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"># import usb.legacy</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">import usb.core</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"># import usb.util</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"># import usb.control</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"># find our device</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">dev = usb.core.find(idVendor=0x1D50, idProduct=0x6066)</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"># was it found?</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">if dev is None:</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> raise ValueError('Device not found')</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">else:</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> print ('Device found')</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> print 'len =', dev.bLength</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> print 'bNumConfigurations =', dev.bNumConfigurations</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> print 'bDeviceClass =', dev.bDeviceClass</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> num = dev.idVendor</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> num = "%#x"%(num)</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> print 'idVendor = ', num</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> #print 'idVendor = ', dev.idVendor</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> num = dev.idProduct</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> num = "%#x"%(num)</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> print 'idProduct = ', num</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> #print 'idProduct = ', dev.idProduct</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> print 'bcdUSB = ', dev.bcdUSB</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> print 'bcdDevice = ', dev.bcdDevice</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> print 'iManufacturer = ', dev.iManufacturer</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> </span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"># set the active configuration. With no arguments, the first</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"># configuration will be the active one</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">dev.set_configuration()</span></div>
<div class="separator" style="clear: both;">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">#dev.set_configuration(0)</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span></div>
<div>
And the output:</div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span></div>
<div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">>>> </span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">Device found</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">len = 18</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">bNumConfigurations = 1</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">bDeviceClass = 0</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">idVendor = 0x1d50</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">idProduct = 0x6066</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">bcdUSB = 768</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">bcdDevice = 0</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">iManufacturer = 1</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">Traceback (most recent call last):</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> File "C:\Users\lonneke\python\bladeRF01.py", line 34, in <module></span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> dev.set_configuration()</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> File "C:\Python27\lib\site-packages\usb\core.py", line 547, in set_configuration</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> self._ctx.managed_set_configuration(self, configuration)</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> File "C:\Python27\lib\site-packages\usb\core.py", line 92, in managed_set_configuration</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> self.backend.set_configuration(self.handle, cfg.bConfigurationValue)</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> File "C:\Python27\lib\site-packages\usb\backend\libusb01.py", line 437, in set_configuration</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> _check(_lib.usb_set_configuration(dev_handle, config_value))</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> File "C:\Python27\lib\site-packages\usb\backend\libusb01.py", line 384, in _check</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> raise USBError(errmsg, ret)</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">USBError: [Errno None] libusb0-dll:err [set_configuration] could not set config 1: win error: De parameter is onjuist.</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">>>> </span></div>
</div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: inherit;">The problem seems to be that dev.set_configuration() needs an argument.</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">I think I have a version problem. I have libusb 0.1 on my Windows system.</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">I googled a lot and found a lot. The right search-arguments are: "libusb pyusb winusb".</span></div>
<div>
<span style="font-family: inherit;">In fact WinUSB is what I was looking for.</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">Then I found zadig:</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNJH0cuoG7rgOmZIs7vJRSFHdaYHGClYfnmOhuze7E5tDMbvSzotFT9XZodmIPcGYxjwpngybkq_8Z_HPVXXx0wsl4xdozB9yuu6kcAFrdlRH1XflMgBzrXBa55nVDDXpw_cfNkL70coo/s1600/bladeRF03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="138" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNJH0cuoG7rgOmZIs7vJRSFHdaYHGClYfnmOhuze7E5tDMbvSzotFT9XZodmIPcGYxjwpngybkq_8Z_HPVXXx0wsl4xdozB9yuu6kcAFrdlRH1XflMgBzrXBa55nVDDXpw_cfNkL70coo/s320/bladeRF03.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
I experimented with their zadig.exe</div>
<div class="separator" style="clear: both; text-align: left;">
I hope I did not do something very stupid!</div>
<div class="separator" style="clear: both; text-align: left;">
You can install WinUSB and also libusbK with that program.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
My little python-program did not see the bladeRF board anymore. Luckily I could reinstall the old driver and try again.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
This libusb 0.1 1.0 issue is very confusing. There is also a libusbK.</div>
<div class="separator" style="clear: both; text-align: left;">
I just want to use PyUSB with my bladeRF board and probably need libusb1.0 for that?</div>
<div class="separator" style="clear: both; text-align: left;">
I read something about legacy, backend, etc. A lot to study, I am afraid.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Perhaps now is the time to formulate a question in the bladerf forum...</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5jNpzT6npYQOsCJHvFC9wCGHxNhPpNqXp6qgjI63_FZcnl582-99oXOPo22O5qL8gc6B-NUo0BVwQbmmaqHBSZMDH6SXJB1hBtDsIlPhi_mqUo9mo7aJgFCRpntQUYJfHbx25DpmubA4/s1600/PICT0196+(Small).JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5jNpzT6npYQOsCJHvFC9wCGHxNhPpNqXp6qgjI63_FZcnl582-99oXOPo22O5qL8gc6B-NUo0BVwQbmmaqHBSZMDH6SXJB1hBtDsIlPhi_mqUo9mo7aJgFCRpntQUYJfHbx25DpmubA4/s320/PICT0196+(Small).JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
In VilaCha, Portugal, there is a marvelous small pub</div>
<div class="separator" style="clear: both; text-align: center;">
where you can drink and eat typical Portuguese food.</div>
<div class="separator" style="clear: both; text-align: center;">
We have been there in February, 2013 and surely will return.</div>
<div class="separator" style="clear: both; text-align: center;">
If you drive along, you can't miss this pirate!</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com1tag:blogger.com,1999:blog-8531143406441550247.post-80228274091095131532013-08-25T00:47:00.001+02:002013-08-25T00:47:34.336+02:00BladeRF board finally visible somehow, but I will go for python, libusb, WindowsIf you want to connect a USB-device in VMWare to a program running in the OS under VMWare you have to tell VMWare what you want!<br />
<div>
<br /></div>
<div>
So, plug-in your USB-device and window will recognize your USB-plugged-in device. Windows will try to find a driver. The USB-device shows up finally in the list of connected hardware devices, with or without an error-message (a yellowish exclamation point)</div>
<div>
<br /></div>
<div>
Now comes the trick:</div>
<div>
<br /></div>
<div>
Start VMWare with your favorite OS, linux-Ubuntu in my case. Then, in VMWare find the settings for your virtual OS. You will find a list, click USB-devices. There you will see your USB-device. In my case BladeRF. The device is connected to the host. Just say YOU want the device and it will be connected to linux!!! Click again and it will be reconnected to the host!</div>
<div>
<br /></div>
<div>
In my case linux is not aware of the device. It does not show up in /dev, and bladerf-cli does not see the device, not in probe, neither in print. It is still possible that this is simply a linux-problem that I might be able solve with the help of the community.</div>
<div>
<br /></div>
<div>
Now for the bad news:</div>
<div>
<br /></div>
<div>
Of course I searched the internet for this problem and I found out that VMWare has problems with USB3.0 devices!</div>
<div>
<br /></div>
<div>
I found:</div>
<div>
<br /></div>
<div>
<div class="MsoNoSpacing">
<a href="http://virtualizationmaximus.com/2013/01/08/intel-xhci-usb-3-0-controller-usb-passthrough-with-vmware-workstation-9-in-windows-7/"><span lang="EN-US">http://virtualizationmaximus.com/2013/01/08/intel-xhci-usb-3-0-controller-usb-passthrough-with-vmware-workstation-9-in-windows-7/</span></a><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: 15.75pt; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; vertical-align: baseline;">
<span lang="EN-US" style="color: #4e4e4e; font-family: "Trebuchet MS","sans-serif"; font-size: x-large; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: NL;">"</span><br />
<blockquote class="tr_bq">
<span lang="EN-US" style="color: #4e4e4e; font-family: "Trebuchet MS","sans-serif"; font-size: 10.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: NL;">Now in order to
get Intel USB 3.0 Passthrough working with VMware Workstation 9 in Windows 7,
make sure that you are running</span><span lang="EN-US" style="color: #4e4e4e; font-family: Symbol; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: NL;">·<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal;">
</span></span><!--[endif]--><b><span lang="EN-US" style="border: none windowtext 1.0pt; color: #4e4e4e; font-family: "Trebuchet MS","sans-serif"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: NL; padding: 0cm;">VMware Workstation Version 9.0.1 with Build Number
894247 OR HIGHER</span></b><span lang="EN-US" style="color: #4e4e4e; font-family: Symbol; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-fareast-language: NL;">·<span style="font-family: 'Times New Roman'; font-size: 7pt; line-height: normal;">
</span></span><!--[endif]--><b><span lang="EN-US" style="border: none windowtext 1.0pt; color: #4e4e4e; font-family: "Trebuchet MS","sans-serif"; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-border-alt: none windowtext 0cm; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: NL; padding: 0cm;">Intel USB 3.0 xHCI Drivers – version 1.0.6.245 OR
HIGHER</span></b><span lang="EN-US" style="color: #4e4e4e; font-family: "Trebuchet MS","sans-serif"; font-size: 10.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: NL;">Also make sure
that you have installed Intel USB 3.0 Controller and USB 3.0 Root Hub Drivers
using “Device Manager” GUI and NOT USING the installable Binary Package version
1.0.6.245 (SETUP.exe).</span></blockquote>
</div>
<div class="MsoNormal" style="background: white; line-height: 15.75pt; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; vertical-align: baseline;">
<span lang="EN-US" style="color: #4e4e4e; font-family: "Trebuchet MS","sans-serif"; font-size: x-large; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: NL;">"</span></div>
<div class="MsoNormal" style="background: white; line-height: 15.75pt; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; vertical-align: baseline;">
<span style="color: #4e4e4e; font-family: inherit;">I did plug the bladeRF-board in a USB 2.0 port and also tried to disable USB3.0 support. I just tried about everything I could think of. But I want genuine USB3-support, not crippled USB2.</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Connect bladeRF into a USB3.0 port. In VMWare Player
-> removable decices -> OpenMoko
bladeRF -> Connect (disconnect from host)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">After a few seconds I see an error message in a box
lower-right “The connection for the USB device “OpenMoko bladeRF” was
unsuccessful”. Driver error.<o:p></o:p></span></div>
<div class="MsoNormal" style="background: white; line-height: 15.75pt; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; vertical-align: baseline;">
</div>
<div class="MsoNoSpacing">
<span lang="EN-US">I don’t know if this is a message from Ubuntu or
VMWare????<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Well, the last few days I went for a 'quick' way to play with my bladeRF board. So, I diverted to linux under VMWare. But, I am afraid that is the wrong way.</span><br />
<span lang="EN-US"><br /></span>
<blockquote class="tr_bq">
<span lang="EN-US"> <i>If you need a machine to make holes in a wall you need an electric drill. I you want to turn screws in the wall you might buy an electric screwdriver. But DO NOT buy a universal solution because that is always a compromise. Anyway that is what my daddy taught me.</i></span></blockquote>
<span lang="EN-US"><br /></span>
<span lang="EN-US"> So now I have to make a choice. Either go for genuine linux (perhaps multiboot or boot from a USB-stick or CD) or go for genuine Windows. I have a spare laptop, I could install genuine linux on that laptop but then I have to take with me (a lot of travelling abroad) two laptops (one Windows (my wife, you know) and one linux). No, too much hassle. I will go for Windows.</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<br />
<ol>
<li>I am used to Windows, my Sony VAIO is powerful enough to run Windows 7 prof.</li>
<li>I still have a lot of space on my harddisk.</li>
<li>Quartos runs perfectly.</li>
<li>The python implementation works flawlessly.</li>
<li>Gnuradio works (almost) perfectly (a problem with OPENGL that I will solve later)</li>
<li>Windows can handle the USB3-port that will be used for the bladeRF</li>
<li><span lang="EN-US">I have some experience with an SDRboar<span style="font-family: inherit;">d </span></span><span style="font-family: inherit;"><a href="http://www.dsptools.com/Radio.htm">SDR4000 from DSPTools</a>, this board has a very big FPGA that is not supported by the free ISE-WEBPACK-software from Xilinx. I accessed this board with a java-program but my Xilinx-license expired ;>((</span></li>
<li><span style="font-family: inherit;">Because I am retired, the Mathwork is not longer interested in me, so I cannot use MATLAB anymore (OK, 100 euro I am willing to pay for software for my hobby, but $2000, noway!)</span></li>
<li><span style="font-family: inherit;">I started to fall in love with Python.</span></li>
</ol>
<div>
Conclusion:</div>
<div>
<ol>
<li>From now on I will use Python whenever possible (but I will use C, java or whatever is necessary)</li>
<li>I will go for libusb</li>
<li>I will stick to Windows for developing my GPS-sofware for the bladeRF board</li>
<li>I will always have the bladeRF board with me in my laptop-case ;>)))</li>
</ol>
<div>
<br /></div>
<div>
<br /></div>
</div>
</div>
<div class="MsoNoSpacing">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdx4awEOfvQrdDeHbepRlPR9bHIvc-x34dPIt-Ljdtf8susL9-DVKfQRS7p_J8KiRZ_OkcCrMOAs9njL50PdJXKWvb3QasH38PsTb8UptlhkCJXs3TW4MYgiEqdgD4dhZd8N25mfvUonc/s1600/P1203513.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdx4awEOfvQrdDeHbepRlPR9bHIvc-x34dPIt-Ljdtf8susL9-DVKfQRS7p_J8KiRZ_OkcCrMOAs9njL50PdJXKWvb3QasH38PsTb8UptlhkCJXs3TW4MYgiEqdgD4dhZd8N25mfvUonc/s320/P1203513.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
This is not me, by the way, but it demonstrates my</div>
<div class="separator" style="clear: both; text-align: center;">
feelings about the sofware problems I encounter...</div>
<span style="font-family: inherit;"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal" style="background: white; line-height: 15.75pt; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; vertical-align: baseline;">
<span style="color: #4e4e4e; font-family: inherit;"><br /></span></div>
<div class="MsoNormal" style="background: white; line-height: 15.75pt; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; vertical-align: baseline;">
<span style="color: #4e4e4e; font-family: inherit;"><br /></span></div>
<div class="MsoNormal" style="background: white; line-height: 15.75pt; margin-bottom: 12.0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 12.0pt; vertical-align: baseline;">
<span style="color: #4e4e4e; font-family: inherit;"><br /></span></div>
</div>
Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com0tag:blogger.com,1999:blog-8531143406441550247.post-7443886081809110292013-08-23T00:54:00.001+02:002013-08-23T00:54:21.499+02:00Installing Gnuradio for bladeRFTonight I finished the installation of the software.<br />
<br />
I managed to get gnuradio installed without any problems.<br />
<br />
And it worked, I managed to run my helloworld-gnuradio-program<br />
<br />
This program consists of a source (a noise-generator), a throttle and a sink.<br />
<br />
I tried to use audio as a sink but that did not work, not any noise.<br />
I tried an FFT and it displayed my noise-source.<br />
I changed the noise source for two signal generators.<br />
One generator with a sine at 400 Hz , the other a sine at 1000 Hz.<br />
I added the two signals into an FFT-display. (yes, with a throttle in between)<br />
<br />
That worked fine!!<br />
<br />
I got a real-time FFT-display.<br />
<br />
If I do exactly the same on Windows ( I installed gnuradio a few weeks before on Windows)<br />
I have a problem with the display. Errors about a circular buffer. If I disable OPENGL it works but not all functions behave normally. The FFT is OK, but histograms does not work.<br />
<br />
So, linux (Ubuntu) under VMWare is able to correctly run gnuradio.<br />
My Windows implimentation of gnuradio is not functioning correctly.<br />
<br />
WORST OF ALL:<br />
<br />
Somehow my precious, expensive, bladeRF-board (a 115-type!) is not seen by linux/VMWare/Windows.<br />
<br />
Any way bladeRF-cli does not see any bladeRFnn<br />
Any way Windows DOES mention a bladeRF-device that does not start up.<br />
<br />
I am afraid I have a VMWare-USB-Windows problem!<br />
<br />
What to do now????<br />
<br />
1. Investigate the USB-VMware-problem<br />
2. Give up and boot my laptop from a live linux-CD/DVD or install multiboot???<br />
<br />
I don't know what is the best strategy to be able to play with my bladeRF-115-toy!<br />
<br />
COMMENTS ARE MORE THAN WELCOME, IE helpful suggestions please!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijOe34BfBDSw5aMCLT2Hoqw39KypoiuubGb8S2e4EiOsr92K9_cdXj-oZ0AYo2DPrv6vjuoR0YD9DvFtziPE_azJkTAyS75_vc1_S-R8Fs7RshdDA514RUYCKk9WNQQFT5IX4AMgeqstk/s1600/PICT0140+(Small).JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijOe34BfBDSw5aMCLT2Hoqw39KypoiuubGb8S2e4EiOsr92K9_cdXj-oZ0AYo2DPrv6vjuoR0YD9DvFtziPE_azJkTAyS75_vc1_S-R8Fs7RshdDA514RUYCKk9WNQQFT5IX4AMgeqstk/s320/PICT0140+(Small).JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Time to show myself and my dog, Boris, in Caminha, Portugal,</div>
<div class="separator" style="clear: both; text-align: center;">
at the end of 2012. My wife takes this picture, I guess...</div>
<br />
<br />Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com0tag:blogger.com,1999:blog-8531143406441550247.post-3126449144060364282013-08-22T01:52:00.002+02:002013-08-27T17:59:15.312+02:00Install remaining software for BladeRFAnother evening stumbling upon/through/over linux.<br />
<br />
<span style="font-size: large;"><b>Warning: I copied/pasted a lot of info from my diary. Not at all to impress you, but to show what I did and had to do to get my BladeRF-board working. I can tell you, I did not succeed this evening. I am afraid many more evenings will come...</b></span><br />
<br />
I took the marvelous installation guide from the bladeRF - forum,<br />
<a href="http://forums.nuand.com/forums/viewtopic.php?f=9&t=2804&sid=c587981f76bf7ca25b1d61c3a7b19553" style="color: #105289; direction: ltr; margin: 0px; padding: 0px; text-decoration: none; unicode-bidi: embed;">kb3gtn's bladeRF setup guide</a> at<br />
<span lang="EN-US" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;"> </span><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;"><span lang="EN-US"><a href="http://forums.nuand.com/forums/viewtopic.php?f=9&t=2804">http://forums.nuand.com/forums/viewtopic.php?f=9&t=2804</a></span></span><br />
<span style="font-size: 11pt; line-height: 115%;"><span style="font-family: inherit;"><br /></span></span>
<span style="line-height: 115%;"><span style="font-family: inherit;">Painfully I followed the instructions.</span></span><br />
<span style="line-height: 115%;"><span style="font-family: inherit;"><br /></span></span>
<span style="line-height: 115%;"><span style="font-family: inherit;">The problem is, however, that I am regaining old linux knowledge that was almost gone. Old forgotten braincells suddenly awaken and try to help me.</span></span><br />
<span style="line-height: 115%;"><span style="font-family: inherit;"><br /></span></span>
<span style="line-height: 115%;"><span style="font-family: inherit;">I had to experiment with well known linux commands. Ok, dir, sudo, cp, mkdir, rmdir, rmd, whatever, a lot of commands I understand. I managed to switch between my terminal-session, my diary in Word in windows and Chrome, or Fox for internet-access. All in different windows. And, Ubuntu is running in VMWare.</span></span><br />
<span style="line-height: 115%;"><span style="font-family: inherit;"><br /></span></span>
<span style="line-height: 115%;"><span style="font-family: inherit;">I re-learned ~ is your home-directory. Trivial perhaps for experienced linux-users.</span></span><br />
<span style="line-height: 115%;"><span style="font-family: inherit;"><br /></span></span>
<br />
<div class="MsoNoSpacing">
<span lang="EN-US">About
libusb, there seem to be two flavors: libusb-dev, the developers lib and
libusb, the underlying lib.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I read
something about aptitude. DO I have that installed in Ubuntu? Just ask the system and you get:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">The
program 'aptitude' is currently not installed.
You can install it by typing:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">
</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">sudo
apt-get install aptitude<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">So I did</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">OK, so
now I can use aptitude or apt-get to semi-automagically install packages...<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:/mnt/hgfs/bladeRF/linux/lib$
sudo apt-get update<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:/mnt/hgfs/bladeRF/linux/lib$
sudo apt-get install libusb<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:/mnt/hgfs/bladeRF/linux/lib$
sudo apt-get install libusb-1.0.0<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:/mnt/hgfs/bladeRF/linux/apps$
make<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Do I use
the wrong libusb?? I use 1.0.0 but there is also a quite different 0.1.0<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">
</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Which
one do I need?<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">In
directory C:\Users\lonneke\Documents\GitHub\bladeRF-1\linux\lib<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">is a
makefile that reads<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">…<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">
</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Courier New"; mso-ansi-language: EN-US;"># Enable libusb (>= 1.0) support by defining
ENABLE_BACKEND_LIBUSB</span><span lang="EN-US"><o:p></o:p></span></div>
<span style="line-height: 115%;"><span style="font-family: inherit;"><br /></span></span>
<br />
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:/mnt/hgfs/bladeRF/linux/lib$
sudo apt-get install libtecla1 libtecla1-dev<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:/mnt/hgfs/bladeRF/linux/apps$
make<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I get a lot of </span><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;">undefined
reference to</span></div>
<span lang="EN-US" style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"></span><br />
<div>
<span lang="EN-US" style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span lang="EN-US" style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></span></div>
<span lang="EN-US" style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">
</span>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span lang="EN-US">NOPE…<o:p></o:p></span></span></div>
<span lang="EN-US" style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Now I am
gonna try the exact procedure at </span><span lang="EN-US"><a href="http://forums.nuand.com/forums/viewtopic.php?f=9&t=2804">http://forums.nuand.com/forums/viewtopic.php?f=9&t=2804</a></span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~$
sudo apt-get install git<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><o:p> </o:p></span>ecokees@ubuntu:~$
sudo apt-get install git-core</div>
</span><br />
<div class="MsoNoSpacing">
<span lang="EN-US"><o:p></o:p></span></div>
<br />
<div class="MsoNoSpacing">
<span lang="EN-US">The
program 'gitk' is currently not installed.
You can install it by typing:<o:p></o:p></span></div>
<br />
<div class="MsoNoSpacing">
<span lang="EN-US">sudo
apt-get install gitk<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/myProject$
sudo apt-get install git-gui<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">How to
see hidden files in the file-browser?
Ctrl-H or edit preferences<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Now I can see all hidden files that start with a . (dot)</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/bladeRF$
git clone https://github.com/Nuand/bladeRF.git<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">this is
the URL for help about git: </span><span lang="EN-US"><a href="http://git-scm.com/book/en/Git-Basics">http://git-scm.com/book/en/Git-Basics</a></span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/bladeRF/bladeRF/linux/kernel$
make<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/bladeRF/bladeRF/linux/kernel$
sudo insmod bladeRF.ko</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/bladeRF/bladeRF/linux/lib$
make all<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/bladeRF/bladeRF/linux/apps$
make<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
ecokees@ubuntu:~/bladeRF/bladeRF/linux/apps$ dir bin<o:p></o:p></div>
<div class="MsoNoSpacing">
bladeRF-cli<o:p></o:p></div>
<div class="MsoNoSpacing">
ecokees@ubuntu:~/bladeRF/bladeRF/linux/apps$ <o:p></o:p></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">
</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">OK: now
I have my bladeRF-cli !!!!!!!!!!!!!!!!<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">The
setup guide starts with a remark:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">
</span></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<span lang="EN-US" style="background: #E1EBF2; color: #333333; font-family: "Trebuchet MS","sans-serif"; font-size: 10.0pt; mso-ansi-language: EN-US;">This procedure builds the nuand
code / FX3 firmware / builds gnuradio-3.7 (from git) / and gr-osmosdr (from
git)</span><span lang="EN-US" style="color: #333333; font-family: "Trebuchet MS","sans-serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><br />
</span><b><i><span lang="EN-US" style="background: #E1EBF2; color: #333333; font-family: "Trebuchet MS","sans-serif"; mso-ansi-language: EN-US; mso-bidi-font-size: 10.0pt;">It is assumed you
have installed build-essential / linux-headers-`uname -r`</span></i></b><span lang="EN-US" style="background: #E1EBF2; color: #333333; font-family: "Trebuchet MS","sans-serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"> and have a general
idea of figuring out other missing (apt-getable) depends.</span><span lang="EN-US" style="color: #333333; font-family: "Trebuchet MS","sans-serif"; font-size: 10.0pt; mso-ansi-language: EN-US;"><br />
<span style="background: #E1EBF2;">In this example install procedure we will be
installing everything into a /opt/[bladeRF]|[cypress]|[gnuradio-3.7.1git]</span><br />
<span style="background: #E1EBF2;">Because of the custom location, it does
require us to update libarary search paths / and pythonpath enviroments / and
optionally exec path. (covered here)</span><br />
<span style="background: #E1EBF2;">This procedure is tailored to ubuntu systems,
but could be adapted to other distros like Centos / Gentoo etc...<o:p></o:p></span></span></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<br /></div>
<span style="font-family: inherit;">So, there we go again:</span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/bladeRF/bladeRF/linux/apps/bin$
sudo apt-get update<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/bladeRF/bladeRF/linux/apps/bin$
sudo apt-get install gcc<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/bladeRF/bladeRF/linux/apps/bin$
sudo apt-get install g++<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/bladeRF/bladeRF/linux/apps/bin$
sudo apt-get install libc6-dev<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">and finally:</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/bladeRF/bladeRF/linux/apps/bin$
sudo apt-get install build-essential<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">What is
linux-headers??<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<span lang="EN-US" style="background: white; color: #333333; font-family: "Tahoma","sans-serif"; font-size: 9.0pt; mso-ansi-language: EN-US;">Kernel *headers* are the header files
used to compile the kernel - and other</span><span lang="EN-US" style="color: #333333; font-family: "Tahoma","sans-serif"; font-size: 9.0pt; mso-ansi-language: EN-US;"><br />
<span style="background: white;">applications which depend on the symbols /
structures defined in these</span><br />
<span style="background: white;">header files, like kernel modules. An example
can be graphic card drivers;</span><br />
<span style="background: white;">if the driver does not have a binary matching
the running kernel and needs</span><br />
<span style="background: white;">to be compiled.<o:p></o:p></span></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="line-height: 115%;"><span style="font-family: inherit;">ecokees@ubuntu:~/bladeRF/bladeRF/linux/apps/bin$
sudo apt-get install linux-headers-generic</span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="line-height: 115%;"><span style="font-family: inherit;"><br /></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="line-height: 115%;"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/sandbox$
git clone https://github.com/Nuand/bladeRF.git<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US" style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><span lang="EN-US" style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"></span></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Yep: I
have a bladeRF directory NOTE:
it is bladeRF, not bladeRf!!<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">OK, again:</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/sandbox/bladeRF/linux/kernel$
make<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">A lot of
warnings, hope that is no problem later on<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/sandbox/bladeRF/linux/kernel$
sudo mkdir -p /lib/modules/'uname -r'/kernel/extras/bladeRF/<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<span lang="EN-US">-p, --parents<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<span lang="EN-US">no error if existing, make parent directories
as needed</span></div>
<br />
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/sandbox/bladeRF/linux/kernel$
sudo depmod<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<span lang="EN-US">The depmod and modprobe utilities are intended
to make a Linux modular kernel manageable for all users, administrators and
distribution maintainers.<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<span lang="EN-US">Depmod creates a "Makefile"-like
dependency file, based on the symbols it finds in the set of modules mentioned
on the command line or from the directories specified in the configuration
file. This dependency file is later used by modprobe to automatically load the
correct module or stack of modules.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<span lang="EN-US">DESCRIPTION<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<span lang="EN-US">Linux kernel modules can provide services
(called "symbols") for other modules to use (using EXPORT_SYMBOL in
the code). If a second module uses this symbol, that second module clearly
depends on the first module. These dependencies can get quite complex.<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<br /></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<span lang="EN-US">depmod creates a list of module dependencies,
by reading each module under /lib/modules/version and determining what symbols
it exports, and what symbols it needs. By default this list is written to
modules.dep in the same directory. If filenames are given on the command line,
only those modules are examined (which is rarely useful, unless all modules are
listed).<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<br /></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<span lang="EN-US">If a version is provided, then that kernel
version’s module directory is used, rather than the current kernel version (as
returned by "uname -r").<o:p></o:p></span></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<br /></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<span lang="EN-US">depmod will also generate various map files in
this directory, for use by the hotplug infrastructure.<o:p></o:p></span></div>
<br />
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> Do you understand this all?</span></div>
<br />
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/sandbox/bladeRF/linux/kernel$
sudo modprobe bladeRF<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">FATAL:
Module bladeRF not found.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/sandbox/bladeRF/linux/kernel$
<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
For some
reason the mkdir command did not make the right directory and the cp command
also did not what it had to do<br />
<br />
This is interesting:<br />
<br />
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:/lib/modules$
cd $(uname -r)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
ecokees@ubuntu:/lib/modules/3.2.0-51-generic-pae$ cd
kernel<o:p></o:p></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
playing with root</div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/sandbox/bladeRF/linux/kernel$
sudo -s<o:p></o:p></span></div>
<div class="MsoNoSpacing">
root@ubuntu:~/sandbox/bladeRF/linux/kernel# echo
"bladeRF" >> /etc/modules<o:p></o:p></div>
<div class="MsoNoSpacing">
root@ubuntu:~/sandbox/bladeRF/linux/kernel# exit<o:p></o:p></div>
<div class="MsoNoSpacing">
exit<o:p></o:p></div>
<div class="MsoNoSpacing">
<span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: NL; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">ecokees@ubuntu:~/sandbox/bladeRF/linux/kernel$</span></div>
<div class="MsoNoSpacing">
<span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: NL; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/sandbox/bladeRF/linux/lib$
make DEBUG=y<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/sandbox/bladeRF/linux/lib$
sudo apt-get install libtecla1 libtecla1-dev<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/sandbox/bladeRF/linux/apps$
make<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/sandbox/bladeRF/linux/lib$
sudo apt-get install libtecla1 libtecla1-dev<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/sandbox/bladeRF/linux/apps$
make<o:p></o:p></span></div>
<div class="MsoNoSpacing">
ecokees@ubuntu:~/sandbox/bladeRF/linux/apps$ sudo mkdir
-p /opt/bladeRF/fpga<o:p></o:p></div>
<div class="MsoNoSpacing">
ecokees@ubuntu:~/sandbox/bladeRF/linux/apps$ sudo mkdir
/opt/bladeRF/firmware<o:p></o:p></div>
<div class="MsoNoSpacing">
ecokees@ubuntu:~/sandbox/bladeRF/linux/apps$ sudo mkdir
/opt/bladeRF/bin<o:p></o:p></div>
<div class="MsoNoSpacing">
ecokees@ubuntu:~/sandbox/bladeRF/linux/apps$ <o:p></o:p></div>
<div class="MsoNoSpacing">
ecokees@ubuntu:~/sandbox/bladeRF/linux/apps$ sudo cp
bin/bladeRF-cli /opt/bladeRF/bin<o:p></o:p></div>
<div class="MsoNoSpacing">
ecokees@ubuntu:~/sandbox/bladeRF/linux/apps$<o:p></o:p></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">
</span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">WAUW!!!<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/sandbox/bladeRF/linux/apps/bin$
./bladeRF-cli --help<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Usage:
./bladeRF-cli [options]<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">bladeRF
command line interface and test utility (0.2.0)<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Options:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> -d, --device <device> Use the specified bladeRF device.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> -f, --flash-firmware <file> Flash specified firmware file.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> -l, --load-fpga <file> Load specified FPGA bitstream.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> -p, --probe Probe for devices, print
results, then exit.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> -s, --script <file> Run provided script.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> -b, --batch
Batch mode - do
not enter interactive mode.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> -L, --lib-version Print libbladeRF version and
exit.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> -V, --version Print CLI version and exit.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> -h, --help Show this help text.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Notes:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> If the -d parameter is not provided, the
first available device<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> will be used for the provided command, or
will be opened prior<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> to entering interactive mode.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> Batch mode is implicit for the following
options:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> -p, --probe -h, --help<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"> -L, --lib-version -V, --version<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
ecokees@ubuntu:~/sandbox/bladeRF/linux/apps/bin$
./bladeRF-cli --version<o:p></o:p></div>
<div class="MsoNoSpacing">
0.2.0<o:p></o:p></div>
<div class="MsoNoSpacing">
<span lang="EN-US">
</span></div>
<div class="MsoNoSpacing">
ecokees@ubuntu:~/sandbox/bladeRF/linux/apps/bin$<o:p></o:p></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
So, bladeRF-cli works and I should be able to control my BladeRF-board!!!!!!!</div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">bladeRF>
print<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Error:
No devices are currently opened<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">bladeRF>
open<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">open: No
device specified<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">bladeRF>
probe<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">bladeRF>
version<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">Inside
version<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">bladeRF>
quit<o:p></o:p></span></div>
<div class="MsoNoSpacing">
</div>
<div class="MsoNoSpacing">
<span lang="EN-US">ecokees@ubuntu:~/sandbox/bladeRF/linux/apps/bin$<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">About
power supply for the BladeRF. It seems to be completely run on the USB-power.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I found
a set of jumpers (J70) that are placed to have the USB-power feed the board. It
is also<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">possible
to use external power.<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">
</span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I can
imagine that the FX3-chip on the bladeRF needs to be inited first?<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">So, go
on with the installation from </span><a href="http://forums.nuand.com/forums/viewtopic.pphp?f=9&t=2804"><span lang="EN-US">http://forums.nuand.com/forums/viewtopic.pphp?f=9&t=2804</span></a><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">*******************************************************************************************<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US">****
THIS SETUP GUIDE Works with the kernel driver implementation only ****<o:p></o:p></span></div>
<div style="border-bottom: dotted windowtext 3.0pt; border: none; mso-element: para-border-div; padding: 0cm 0cm 1.0pt 0cm;">
<div class="MsoNoSpacing" style="border: none; mso-border-bottom-alt: dotted windowtext 3.0pt; mso-padding-alt: 0cm 0cm 1.0pt 0cm; padding: 0cm;">
<span lang="EN-US">**** LIBUSB implementation setup guide to come
soon. ****<o:p></o:p></span></div>
</div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I don’t
need to make the FX3 image, just download. Last command is:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span style="background: white; color: seagreen; font-family: "Courier New"; font-size: 9.0pt;">$ sudo cp bladeRF.img /opt/bladeRf/firmware/<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span lang="EN-US">I downloaded
bladeRF.img to my shared directory in Windows and then:<o:p></o:p></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
ecokees@ubuntu:~/sandbox/bladeRF/linux/apps/bin$ sudo cp
/mnt/hgfs/bladeRF/bladeRF.img /opt/bladeRF/firmware/<o:p></o:p></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
ecokees@ubuntu:/etc/udev/rules.d$ sudo gedit
10-bladeRF.rules<o:p></o:p></div>
<div class="MsoNoSpacing">
<span lang="EN-US">
</span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<o:p>Well, I still cannot use my BladeRF-board.</o:p></div>
<div class="MsoNoSpacing">
<o:p><br /></o:p></div>
<div class="MsoNoSpacing">
<o:p>I am afraid that windows is hiding the USB-device bladeRF for me.</o:p></div>
<div class="MsoNoSpacing">
<o:p><br /></o:p></div>
<div class="MsoNoSpacing">
<o:p>I don't know what to do now:</o:p></div>
<div class="MsoNoSpacing">
<o:p><br /></o:p></div>
<div class="MsoNoSpacing">
</div>
<ol>
<li>just go on and install gnuradio on Ubuntu in VMWare in Windows7 and hoping that I see the bladeRF as a source in gnuradio</li>
<li>install linux on a stick or CD, boot from it and do the whole installation again</li>
<li>trying to figure out where it is going wrong. I pasted almost everything I did in a word-diary, inclusive of all messages I got.</li>
<li>Ask for help on the forum</li>
<li>Go on with libusb and java in Windows, I have done something like this before with the EZUSB-software</li>
</ol>
<div>
I don't know yet. I am afraid that VMWare is causing some problems here with USB. </div>
<div>
I really love to learn and find out what is happening but I also want results finally. My goal is building a GPS-receiver using the FPGA on the BladeRF and Python on the PC. I do not want to become an expert in VMWare/Windows-problem-solving...</div>
<div>
<br /></div>
<div>
I hope some nice guy or girl from the BladeRF community will help me in some way. I am not stuck yet, there are some things to investigate so I don't yet have clear questions to put in the forum.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEGcZ5keAkSAp2SPW6G-jdd9BANcK5NKhlr1xqRi0fa_8EaDtDaguTTN6lYFu0b_6r6u8XGSOnz_J9piq_Dpdvr6a3I0KEfWFynWZv1eQZqdmqDbQOAnshT7eFh2O9B7Jzc84_fDLXyxI/s1600/nemo6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEGcZ5keAkSAp2SPW6G-jdd9BANcK5NKhlr1xqRi0fa_8EaDtDaguTTN6lYFu0b_6r6u8XGSOnz_J9piq_Dpdvr6a3I0KEfWFynWZv1eQZqdmqDbQOAnshT7eFh2O9B7Jzc84_fDLXyxI/s1600/nemo6.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Linux is daunting, but I will survive: YES I CAN!!</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div>
<br /></div>
<br />
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: NL; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></div>
<div class="MsoNoSpacing">
<span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; line-height: 115%; mso-ansi-language: NL; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><br /></span></div>
<div class="MsoNoSpacing">
<span lang="EN-US"><br /></span></div>
<div class="MsoNoSpacing" style="margin-left: 35.4pt;">
<br /></div>
Anonymoushttp://www.blogger.com/profile/11105029365495152717noreply@blogger.com0Wageningen, Nederland51.9691868 5.665394800000058251.8909248 5.5040333000000583 52.047448800000005 5.8267563000000582