<?xml version="1.0" encoding="UTF-8" ?>
<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 and IC Industry]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[FPGA Notes]]></copyright>
<item>
<link>http://www.fpganotes.com/post/30/</link>
<title><![CDATA[对FPGA进行系统设计的Xilinx软件使用方法]]></title> 
<author>RickySu &lt;sutongqi+blog@gmail.com&gt;</author>
<category><![CDATA[技术经验]]></category>
<pubDate>Sat, 26 Aug 2006 01:00:53 +0000</pubDate> 
<guid>http://www.fpganotes.com/post/30/</guid> 
<description>
<![CDATA[ 
	Situation: 在对FPGA设计进行最初步的系统规划的时候，需要进行模块划分，模块接口定义等工作。通常，我们只能在纸上进行设计。虽然在纸上我们可以很随意地书写，而用纸画的不方便就在于，如果对某一个模块进行较大改动，那么常常因为留出的空余纸张不够，而导致拿一张新的白纸重新画一遍。<br/><br/>Question: 我们能不能使用软件进行系统规划呢？<br/><br/>Solution: 答案是可以的。下面以ISE 7.1为例作说明：<br/><br/>1) 画一个空模块，仅定义端口 - 新建Schematic，选择Tools -> Symbol Wizard，里面可以定义Symbol名和端口属性。完成后生成sym格式的Symbol。<br/><a href="http://www.fpganotes.com/attachment/symbol_wizard.jpg" target="_blank"><img src="http://www.fpganotes.com/attachment/symbol_wizard.jpg" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>2) 将Symbol添加到原理图 - 在Schematic的Symbol页面，选择Categories为工程文件夹，在Symbols列表中就可以看到刚刚新建的Symbol。将它添加到原理图中。<br/><br/>3) 重复1-2步骤，建立所有Symbol，并连接端口。<br/><br/>4) 如需修改Symbol，可以直接在sym文件中修改 - 可以按右键-> Add -> Pin等等添加，也可以Copy已存在的Pin，然后改变PinName。但是在ISE7.1中改变Copy过来的PinName会连带将原始PinName也改变。解决方法是用TextEditor比如UltraEditor打开这个sym文件，在里面修改。sym文件格式很易懂。改变Symbol端口后需要Update Schematic。在点到Schematic后会自动弹出Update对话框。<br/><br/>5) 生成原理图对应的HDL文件 - 点击"Sources in Project"列表中的sch文件，在"Process"窗口选择"View HDL Functional Model"。这样会自动生成Schematic对应的HDL文件，其中例化了上面的各个模块。要改变HDL文件类型，可以改变Project属性中的"Generated Simulation Language"属性。<br/><br/>6) 生成Symbol对应的HDL文件 - 在打开一个sym文件时，选择Tools -> Generate HDL Template from Symbol。此时可以选择生成VHDL还是Verilog的文件。<br/><br/>7) 对每个模块的内容进行编写。<br/><br/>Summary: 虽然我个人偏好使用HDL进行设计，但是在设计初期使用这种Schematic方法进行自顶向下的设计真的十分方便。首先它增强了设计的可维护性和可读性，使修改和传播都更为方便；其次由于它可以自动生成HDL代码，这样对下一步的设计也起到了简化操作的作用。<br/><br/>Advice:在使用过程中碰到的几个问题希望以后Xilinx能解决<br/>1) 在编辑Symbol时改变复制后的PinName会同时改变原始PinName<br/>2) Symbol Wizard只能添加Pin，不能添加Bus [<span style="color: #FF0000;">update1</span>]<br/>3) 只能在Pereference里改颜色，而不能改变某一特定连线的颜色，以起到区分控制线/数据通路的作用<br/><br/>update1:<br/>Symbol Wizard可以添加bus，只要给Pin命名A(4:0)就可以<br/>Tags - <a href="http://www.fpganotes.com/tags/xilinx/" rel="tag">xilinx</a> , <a href="http://www.fpganotes.com/tags/fpga/" rel="tag">fpga</a>
]]>
</description>
</item><item>
<link>http://www.fpganotes.com/post/30/#blogcomment21</link>
<title><![CDATA[[评论] 对FPGA进行系统设计的Xilinx软件使用方法]]></title> 
<author>nc &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Fri, 13 Oct 2006 07:56:32 +0000</pubDate> 
<guid>http://www.fpganotes.com/post/30/#blogcomment21</guid> 
<description>
<![CDATA[ 
	俺的经验是，如果经验不足够丰富，方案没有最终敲定，千万别碰原理图。因为俺是一路从ActivHdl原理图作系统设计，到模块编写，再顶层连线。每次连的特别漂亮了，某个模块接口一改，就全局皆动。而且还没找到工具有双向更新功能，于是图形生成的代码如果改了，没法更新回顶层的sch/sym文件，最后一团糟。尤其是想方法把顶层各模块位置排好，往往要不断更改pin的位置，很费时费力，最后算来不如敲代码快呢。另外原理图设计也没法使用自定义的record作模块接口，甚至ise产生hdl实例模板时，居然也愚蠢的将自定义总线接口（比如一个array数组）变成vector。。<br/><br/>当然对于大公司，有很多成熟模块或规划的非常好的系统设计，用原理图联连线还是满有趣的。<br/><br/>ps.这里不能注册了？
]]>
</description>
</item>
</channel>
</rss>