<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss version="2.0">
<channel>
<title><![CDATA[FPGA Notes]]></title> 
<link>http://www.fpganotes.com/index.php</link> 
<description><![CDATA[Learning notes about Xilinx FPGA, ISE, EDK, Embedded System and IC industry]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[FPGA Notes]]></copyright>
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/ET" type="application/rss+xml" /><item>
<link>http://www.fpganotes.com/ISE_INSTALL_IN_RHEL5_LINUX/</link>
<title><![CDATA[ISE 11.1 在 RHEL5 Linux 下的安装]]></title> 
<author>RickySu &lt;sutongqi+blog@gmail.com&gt;</author>
<category><![CDATA[技术经验]]></category>
<pubDate>Tue, 16 Jun 2009 01:49:55 +0000</pubDate> 
<guid>http://www.fpganotes.com/ISE_INSTALL_IN_RHEL5_LINUX/</guid> 
<description>
<![CDATA[ 
	<a href="http://pic.fpganotes.com/images/ricky/ise11splash.jpg" target="_blank"><img src="http://pic.fpganotes.com/images/ricky/ise11splash.jpg" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="450"/></a><br/><br/>1. 安装RHEL5. 由于害怕缺少某些库到时候再找很麻烦，于是求省事把RHEL5完全安装了。64位CPU, 16G内存, 设置了32G的SWAP。其他缺省。<br/>2. 放入ISE 11.1 DVD，RHEL5 自动 mount 到 /media/Xilinx_ISE11_DS<br/>3. 尝试了在光盘中执行 ./xsetup，发现Permission Denied。<br/>4. 无奈把光盘拷贝到本地硬盘然后执行<br/><div class="code">cp -R /media/Xilinx_ISE11_DS ~/ --拷贝到用户目录<br/>chmod -R 777 ~/Xilinx_ISE11_DS/&nbsp;&nbsp;--添加执行权限和写权限<br/>~/Xilinx_ISE11_DS/xsetup --开始安装</div><br/>5. 安装很快，ISE套装不含EDK版本只装了10分钟不到。<br/>6. 配置License。在Copy License那里选择Choose，然后选中申请好的xilinx.lic文件，然后OK，就会自动把License复制到相应的地方，并显示出有哪些功能可用。<br/>7. 打开一个Shell，运行ISE<br/><div class="code">source /opt/Xilinx/11.1/settings64.csh&nbsp;&nbsp;--这是我的安装目录<br/>ise &amp;</div><br/>8. 在安装目录中可以发现settings32.csh和settings64.csh，说明如果CPU是64位的，ISE会把32位和64位软件全部安装上的。只要source相应的settings，就可以执行32位或64位版本。<br/>9. settings脚本有csh和sh之分。其中csh是给CShell用的，sh是给Bash用的。如果要更改用户使用的shell，可以让root修改/etc/passwd文件。<br/>10. 如果觉得每次运行都要打命令行比较麻烦，可以在桌面上做一个快捷方式。<br/>- 把以下内容存成一个文件(我叫ise.csh)：<br/><div class="code">#!/bin/csh<br/>source /opt/Xilinx/11.1/settings64.csh&nbsp;&nbsp;--这是我的安装目录<br/>ise &amp;</div><br/>- 给这个文件添加执行权限：<br/><div class="code">chmod +x ise.csh</div><br/>- 然后把这个ise.csh移动到桌面，在双击弹出窗口中按RUN就可以运行ISE了。<br/><br/>------------以下为2006.09.28发布的旧版本---------------<br/><br/>Xilinx有7.1的installation guide，可惜我没有找到8.1的，就先拿7.1凑合<br/><a href="http://toolbox.xilinx.com/docsan/xilinx7/books/data/docs/irn/irn0018_5.html" target="_blank">http://toolbox.xilinx.com/docsan/xilinx7/books/data/docs/irn/irn0018_5.html</a><br/><a href="http://toolbox.xilinx.com/docsan/xilinx7/books/docs/irn/irn.pdf" target="_blank">http://toolbox.xilinx.com/docsan/xilinx7/books/docs/irn/irn.pdf</a><br/><br/>安装：<br/><br/>Click the setup file in your file manager or at the Solaris prompt, type cd /mnt/cdrom. Then type ./setup.<br/><br/>Note: Mozilla browser users may need a JRE plug-in to access the Xilinx download pages.<br/>To Set Environment Variables<br/><br/>添加环境变量：<br/><br/>At the completion of the installation process, the installation program creates an environment variables file for you. Go to your XILINX installation directory and type source settings.csh or source settings.sh appropriate to your shell.<br/><br/>To set your environment variables manually or from within your own setup script, it is recommended that you copy the settings in the settings.sh (or settings.csh) file. Xilinx environment variables settings are specific to each OS platform. <br/><br/>另：<br/>如果要在启动时自动添加环境变量，可以再自己home下的.bashrc或者.cshrc中添加：<br/>source /opt/Xilinx/settings.sh<br/>Tags - <a href="http://www.fpganotes.com/tags/ise/" rel="tag">ise</a> , <a href="http://www.fpganotes.com/tags/install/" rel="tag">install</a>
]]>
</description>
</item><item>
<link>http://www.fpganotes.com/post/309/</link>
<title><![CDATA[ISE工程如何与MicroBlaze交互数据]]></title> 
<author>RickySu &lt;sutongqi+blog@gmail.com&gt;</author>
<category><![CDATA[技术经验]]></category>
<pubDate>Fri, 12 Jun 2009 03:33:57 +0000</pubDate> 
<guid>http://www.fpganotes.com/post/309/</guid> 
<description>
<![CDATA[ 
	微处理器经常要与外部逻辑交互数据 - 可能是ISE里面自己写的逻辑，也可能是Sysgen中的逻辑，当然还可能是片外的逻辑。<br/><br/>交互数据有哪些方法？通常万变不离其宗<br/>- Shared Memory： 双向给地址给数据/取数据<br/>- FIFO：单向顺序给/取数据<br/>- Register：单向选中后给/取数据<br/><br/>最常用的是Shared Memory。<br/>FPGA内部有双口BRAM，两边都可以进行数据的读写，数据交互是双向的。<br/><br/>FIFO在一个模块往另一个模块灌数据时比较有用，优点是不用在意地址的产生。<br/><br/>因为Register无法缓存数据，必须一边给了数据后一边直接取走，所以交换数据时不常用。应用场合更适合控制寄存器。<br/><br/>-----------<方法与操作的分割线>---------<br/><br/>EDK中的操作方法：<br/><br/><span style="color: #FF0000;">Shared Memory</span>使用 XPS_BRAM_IF_CNTLR + BRAM_BLOCK。<br/>XPS_BRAM_IF_CNTLR 接在 PLBv46 Bus 上，在Address页面分配相应的Size和Address。这里设的Size就是使用到的BRAM的大小。<br/>BRAM_BLOCK 的 PORTA 接在 XPS_BRAM_IF_CNTLR 上，PortB Bus 设成 Not Connected，在Port页面将 PortB 所有的IO都 Make External。<br/><br/><span style="color: #FF0000;">FIFO</span> 可以直接使用 FSL Core。<br/>FSL 可以指定使用 BRAM 作为 FIFO，也可以指定使用 Slice 作为 FIFO。根据需求来选择。<br/><br/><span style="color: #FF0000;">Register</span> 可以使用 GPIO Core。<br/>C代码直接寻址然后做数据操作速度会比较快。用Driver中的函数来操作就会比较慢。<br/>Tags - <a href="http://www.fpganotes.com/tags/edk/" rel="tag">edk</a>
]]>
</description>
</item><item>
<link>http://www.fpganotes.com/xmd_verify_elf/</link>
<title><![CDATA[XMD - Verify ELF]]></title> 
<author>RickySu &lt;sutongqi+blog@gmail.com&gt;</author>
<category><![CDATA[技术经验]]></category>
<pubDate>Thu, 11 Jun 2009 08:31:07 +0000</pubDate> 
<guid>http://www.fpganotes.com/xmd_verify_elf/</guid> 
<description>
<![CDATA[ 
	XMD的Verify ELF功能在一次调试中帮了大忙。<br/><br/>出问题的情况很奇怪：<br/>- 把Application Initialize to BRAM的时候程序工作不正常<br/>- 用XMD再把程序dow一次，又正常了。<br/><br/>怀疑data2mem出问题，可以BRAM里面又是有值的。<br/><br/>于是怀疑这些值的正确性。用XMD的Verify ELF功能比较BRAM的内容和ELF的内容，结果发现的确有不相符的地方。那就确认是DATA2MEM的过程中出问题了。<br/><br/>此外，Verify ELF还可以用在Flash Writer烧写Flash后检查烧写是否正确：<br/>- 在Bootloader完成，要进行PC指针跳转的最后一步设断点把程序停住，此时Flash中的SREC已经被Bootloader放到了DDR中<br/>- 在XMD中运行Verify ELF检查DDR中的内容是否正确。<br/>Tags - <a href="http://www.fpganotes.com/tags/xmd/" rel="tag">xmd</a> , <a href="http://www.fpganotes.com/tags/edk/" rel="tag">edk</a> , <a href="http://www.fpganotes.com/tags/edk_utilities/" rel="tag">edk utilities</a>
]]>
</description>
</item><item>
<link>http://www.fpganotes.com/post/306/</link>
<title><![CDATA[SDK中的快捷键]]></title> 
<author>RickySu &lt;sutongqi+blog@gmail.com&gt;</author>
<category><![CDATA[技术经验]]></category>
<pubDate>Sun, 07 Jun 2009 03:30:34 +0000</pubDate> 
<guid>http://www.fpganotes.com/post/306/</guid> 
<description>
<![CDATA[ 
	1. SDK其实就是Eclipse。所有Eclipse的技巧都能用在SDK上。<br/><br/>2. SDK的快捷键在这里定义: Window --> Preferences --> General --> Keys<br/><br/>3. 在代码编辑窗口中按Ctrl + Shift + L 可以显示快捷键列表；再按一次可以编辑快捷键定义<br/><br/>4. 自定义的快捷键Export保存，以后换电脑的时候更改比较方便。<br/>Tags - <a href="http://www.fpganotes.com/tags/sdk/" rel="tag">sdk</a>
]]>
</description>
</item><item>
<link>http://www.fpganotes.com/post/302/</link>
<title><![CDATA[SDK halt when debugging]]></title> 
<author>RickySu &lt;sutongqi+blog@gmail.com&gt;</author>
<category><![CDATA[技术经验]]></category>
<pubDate>Thu, 04 Jun 2009 04:09:55 +0000</pubDate> 
<guid>http://www.fpganotes.com/post/302/</guid> 
<description>
<![CDATA[ 
	今天碰到一个奇怪问题：<br/><br/>在SDK中进行debug的时候，点了debug按钮，elf文件下载完毕，debug视图开启，然后Process就停在60%的地方，左上角也显示Pending，然后就Not Responding了。<br/><br/>试验结果发现如果去掉已经设置的breakpoint，就没问题了。<br/>相信是Eclipse的Bug。<br/>Tags - <a href="http://www.fpganotes.com/tags/sdk/" rel="tag">sdk</a>
]]>
</description>
</item><item>
<link>http://www.fpganotes.com/post/301/</link>
<title><![CDATA[SDK的Index功能]]></title> 
<author>RickySu &lt;sutongqi+blog@gmail.com&gt;</author>
<category><![CDATA[技术经验]]></category>
<pubDate>Wed, 03 Jun 2009 12:19:37 +0000</pubDate> 
<guid>http://www.fpganotes.com/post/301/</guid> 
<description>
<![CDATA[ 
	SDK使用的Eclipse能够对工程的代码进行索引。索引后就能很方便地使用跳转到函数的defination等功能。<br/><br/>SDK的index功能支持Full和CTags。<br/><br/>CTags这个工具并不是自带的，需要到<a href="http://ctags.sourceforge.net/" target="_blank">http://ctags.sourceforge.net/</a>下载后，存放到PATH环境变量指向的目录中。<br/><br/>要使用ctags，只需要在SDK工程属性中把Indexer选择为ctags就可以了。<br/>Tags - <a href="http://www.fpganotes.com/tags/sdk/" rel="tag">sdk</a>
]]>
</description>
</item><item>
<link>http://www.fpganotes.com/post/299/</link>
<title><![CDATA[External Memory Controller (EMC) 的地址线计算]]></title> 
<author>RickySu &lt;sutongqi+blog@gmail.com&gt;</author>
<category><![CDATA[技术经验]]></category>
<pubDate>Thu, 14 May 2009 09:41:25 +0000</pubDate> 
<guid>http://www.fpganotes.com/post/299/</guid> 
<description>
<![CDATA[ 
	Situation: 用 EDK BSB Wizard 建 Spartan3A 的工程， NOR Flash 控制器的地址线接到了一个 Bus Split Utility 上。乍一眼看很正常，因为 Flash 的地址线就二十多根，而 XPS_MCH_EMC 的地址线定死了是32位，由于 MHS 的语法不支持分片功能，所以就要加个 Bus Split。但后来又发现不对劲了：一共32位地址线，为啥选出来第10到第30位呢？<br/><br/>Answer: 仔细看了 XPS_MCH_EMC 的 Datasheet，才发现关于地址、数据线的接法在 Datasheet 的17页到22页有详细讲解。<br/><br/>下面做个简单的解释：<br/><br/>1. EDK使用Big Endian，而Memory是Little Endian，所以连接时的映射顺序需要颠倒一下，所以你会看到MEM_A[10:30] = Flash_A[21:1]<br/><br/>2. 因为NorFlash可以是x8模式也可以是x16模式，这里使用了x16模式，因此Flash_A的最地位就不需要了，它此时用作了DQ[15]<br/><br/>3. EMC Core Datasheet的第18页上面的连接表格显示，我们连接Address总线时，应该把EMC的MEM_A(HAW-MAW-AS:HAW-AS-1) 连接到Flash的A(MAW-1 : 0)<br/><br/>4. Datasheet 第17页有对上面HAW MAW等数字的说明<br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">BN = bank number 我们的设计中只有一个bank<br/>DN = device number within a bank.&nbsp;&nbsp;我们一共只使用了一片Flash，所以 DN = 1<br/>MW = Memory Subsystem Width。因为我们只用了一片Flash并没有拼宽度，所以MW和DW一样都是16<br/>DW = Data Width。 Flash数据宽度16 <br/>MAW = Memory Address Width. Flash使用21位地址线<br/>AU = Address Unit. 给一个地址得到的数据就是16位<br/>AS = Address Shift =&nbsp;&nbsp;log2((MW*AU/DW)/8) = log2(16*16/16/8)= 1<br/>HAW = IP Address Width = 32</div></div><br/><br/>5. 根据以上数字，在第3点提到的地址线映射就应该是<br/>MEM_A(HAW-MAW-AS:HAW-AS-1) = MEM_A((32 - 21 - 1):(32 - 1 - 1)) = MEM_A(20:30)<br/>A(MAW-1 : 0) = A((21 - 1):0) = A(20:0)<br/>
]]>
</description>
</item><item>
<link>http://www.fpganotes.com/post/293/</link>
<title><![CDATA[域名回归，同时启用新域名]]></title> 
<author>RickySu &lt;sutongqi+blog@gmail.com&gt;</author>
<category><![CDATA[无法归类]]></category>
<pubDate>Tue, 05 May 2009 06:17:34 +0000</pubDate> 
<guid>http://www.fpganotes.com/post/293/</guid> 
<description>
<![CDATA[ 
	感谢大家的关心，从5月1日起<a href="http://www.rickysu.com" target="_blank">www.rickysu.com</a>域名解析发生问题，对大家访问发生不便非常抱歉。5月7日域名已经可以正常解析。<br/><br/>前阵子申请了<span style="color: #FF0000;">www.fpganotes.com</span>，调试已经完成，网站将逐步转向使用fpganotes.com这个域名，同时保证所有原来指向rickysu.com/bo的链接均可正常使用，但在将来的某个时间我可能会改版rickysu.com的内容。<br/><br/>----------声明和事件记录的分割线----------------<br/><br/>2009年4月23日<br/>&nbsp;&nbsp;&nbsp;&nbsp;提交空间代理帮忙进行域名续费<br/>2009年5月1日<br/>&nbsp;&nbsp;&nbsp;&nbsp;域名无法正常解析，发现域名续费不成功<br/>2009年5月2日<br/>&nbsp;&nbsp;&nbsp;&nbsp;开始与代理沟通协助续费<br/>2009年5月3日到6日<br/>&nbsp;&nbsp;&nbsp;&nbsp;每天催促与等待<br/>2009年5月7日<br/>&nbsp;&nbsp;&nbsp;&nbsp;域名终于又能正常解析了<br/><br/>----------记录和思考的分割线-----------<br/><br/>这次的域名事件，提醒了我一下几点：<br/>1. 4月23日到5月1日之间我没有检查续费结果，是我的错，防患于未然最最最重要<br/>2. 花了六天才续费成功，效率真是低下。期间遇到代理的客服，有态度好的，也有不理人的。态度好，及时反馈状态，即使事情一时没办好，我作为客户来讲也还能理解一下。<br/>3. 如果能在网上自助续费，我的感觉会更好，办事会更快。虽然标称自己有金牌客服好像很体面，但花力气改进产品和流程让用户少碰到问题岂不是更好？<br/>4. 5月3日到6日，明显我很焦急，做事效率低下，对自己心情的控制还是达不到境界。<br/>5. 只通过一种方法与读者沟通是不够的，应该开发更多的联系途径，就像在路由时某一个节点坏了数据包仍然能正确到达目的地。<br/>Tags - <a href="http://www.fpganotes.com/tags/blog%25E7%25AE%25A1%25E7%2590%2586/" rel="tag">blog管理</a>
]]>
</description>
</item><item>
<link>http://www.fpganotes.com/post/291/</link>
<title><![CDATA[ISE Design Suite 11.1 发布]]></title> 
<author>RickySu &lt;sutongqi+blog@gmail.com&gt;</author>
<category><![CDATA[新闻评论]]></category>
<pubDate>Mon, 27 Apr 2009 13:41:32 +0000</pubDate> 
<guid>http://www.fpganotes.com/post/291/</guid> 
<description>
<![CDATA[ 
	<a href="http://www.xilinx.com/tools/designtools.htm" target="_blank"><img src="http://www.xilinx.com/images/tools/logicedition.gif" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>2009年4月27日，ISE Design Suite 11.1 准时发布。<br/>Design Suite中包括了ISE, ChipScope Pro, EDK, Sysgen, AccelDSP 和 PlanAhead。以上软件组合为Logic, Embedded, DSP, System套件销售。<br/><br/>同时上线的，还有这些<a href="http://www.xilinx.com/products/design_resources/design_tool/resources/index.htm" target="_blank"><span style="color: #FF0000;">视频教程</span></a><br/><br/>看看我所关注的成员们都有什么进步：<br/><a href="http://www.xilinx.com/tools/logic.htm#ui-tabs-26" target="_blank"><span style="color: #FF0000;"><strong>ISE</strong></span></a><br/>- 更快的布局综合结果、仿真速度、布线速度<br/>- 占用更少的内存<br/>- 在PlanAhead中添加ChipScope核的过程大大简化<br/><br/><a href="http://www.xilinx.com/tools/logic.htm#ui-tabs-26" target="_blank"><span style="color: #FF0000;"><strong>EDK</strong></span></a><br/>- 可以给软件开发人员单独安装的SDK，完全不依赖ISE<br/>- BSB Wizard可以很方便地生成一个双CPU的设计<br/>- 各种IP Core的更新，包括MPMC等等<br/><br/><br/>Tags - <a href="http://www.fpganotes.com/tags/ise/" rel="tag">ise</a>
]]>
</description>
</item><item>
<link>http://www.fpganotes.com/post/289/</link>
<title><![CDATA[FPGA开发全攻略——欢迎反馈]]></title> 
<author>RickySu &lt;sutongqi+blog@gmail.com&gt;</author>
<category><![CDATA[无法归类]]></category>
<pubDate>Tue, 21 Apr 2009 15:24:54 +0000</pubDate> 
<guid>http://www.fpganotes.com/post/289/</guid> 
<description>
<![CDATA[ 
	前一段时间协助 <a href="http://www.eetrend.com" target="_blank">EETrend.com</a> CEO <a href="http://www.eetrend.com/about" target="_blank"><u>张国斌</u></a> 编撰了<a href="http://www.eefocus.com/html/09-04/5922710040440hv4n.shtml" target="_blank"><span style="color: #FF0000;">《FPGA开发全攻略》</span></a>，授权引用本Blog的一些内容，并提供了一些意见。<br/><br/><a href="http://www.eefocus.com/html/09-04/5922710040440hv4n.shtml" target="_blank"><img src="http://www.eetrend.com/sites/default/files/part-1-cover.jpg" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>也很高兴有朋友说看到了《FPGA开发全攻略》中有文字和这里一模一样。一来说明《FPGA开发全攻略》已经有了一定的读者，二来也感谢大家对我的关注。 <br/><br/>虽然我不是这本电子书的作者，但是如果朋友们对这份电子书有任何意见和建议，或者发现错误之处，我都很愿意倾听并且帮助反馈给作者，并鼓励他们继续改进。有机会的话，努力做出更好更实用的第二期。<br/><br/>2009.05.07<br/>EETrend.com 现在正在开展“<a href="http://www.eetrend.com/node/100019636" target="_blank">写书评赢FPGA设计好书</a>”的活动，有兴趣的朋友可以<a href="http://www.eetrend.com/node/100019636" target="_blank"><span style="color: #FF0000;">跳转了解详情</span></a><br/>Tags - <a href="http://www.fpganotes.com/tags/myproject/" rel="tag">myproject</a>
]]>
</description>
</item>
</channel>
</rss>
