<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/1.5.1-alpha" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
>

<channel>
	<title>Footprint Collector</title>
	<link>http://jimxia.blogsome.com</link>
	<description>Life is a short journey; I am just on the road.</description>
	<pubDate>Thu, 19 Nov 2009 03:39:58 +0000</pubDate>
	<generator>http://wordpress.org/?v=1.5.1-alpha</generator>
	<language>en</language>

		<item>
		<title>Linux文件查看命令</title>
		<link>http://jimxia.blogsome.com/2009/11/19/p285/</link>
		<comments>http://jimxia.blogsome.com/2009/11/19/p285/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 03:39:58 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Linux</category>
		<guid>http://jimxia.blogsome.com/2009/11/19/p285/</guid>
		<description><![CDATA[	head 查看文件前几行：head -100 /etc/passwd
	tail 查看文件末尾几行：tail -100 /etc/passwd
	sed 命令可以用来查看文件中间部分：sed -n &quot;100,200p&quot; /etc/passwd
]]></description>
			<content:encoded><![CDATA[	<p>head 查看文件前几行：head -100 /etc/passwd</p>
	<p>tail 查看文件末尾几行：tail -100 /etc/passwd</p>
	<p>sed 命令可以用来查看文件中间部分：sed -n &quot;100,200p&quot; /etc/passwd</p>
]]></content:encoded>
			<wfw:commentRss>http://jimxia.blogsome.com/2009/11/19/p285/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Modeling Complex Multifrequency Clocks</title>
		<link>http://jimxia.blogsome.com/2009/11/16/modeling-complex-multifrequency-clocks/</link>
		<comments>http://jimxia.blogsome.com/2009/11/16/modeling-complex-multifrequency-clocks/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 08:06:27 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>PrimeTime</category>
		<guid>http://jimxia.blogsome.com/2009/11/16/modeling-complex-multifrequency-clocks/</guid>
		<description><![CDATA[	Question: 
	I have a complex clocking scheme in which my two clocks have a frequency ratio of 3:2 and only certain edges can be used for launching or capturing data on cross-domain paths. Using the set_multicycle_path command is not adequate to model the launching and capturing edges in my case.  
	Specifically, I have a [...]]]></description>
			<content:encoded><![CDATA[	<p><strong>Question: </strong></p>
	<p>I have a complex clocking scheme in which my two clocks have a frequency ratio of 3:2 and only certain edges can be used for launching or capturing data on cross-domain paths. Using the set_multicycle_path command is not adequate to model the launching and capturing edges in my case.  </p>
	<p>Specifically, I have a 333 MHz clock called clk_333 and a 222 MHz clock called clk_222. These clocks are synchronous to each other, and all data transfers between the two domains occur on the rising edges of each clock (that is, a rising launch edge and a rising capture edge). Data is transferred from the clk_333 domain to the clk_222 domain as well as from the clk_222 domain to the clk_333 domain.  </p>
	<p>Clock clk_222 launches data and captures data on every cycle, while clock clk_333 skips one launch edge (M2) and one capture edge (M4) every three cycles to match the clk_222 data rate, as shown in the waveform diagram below. Therefore, data transfers occur from M0 to B2 (green arrow), M4 to B0 (purple arrow), B0 to M2 (orange arrow), and B2 to M0 (blue arrow).  No data transfers occur from M2 to B2 or from B2 to M4 (red arrows). </p>
	<p> How do I model such a complex clocking scheme?</p>
	<p><img src="http://jimxia.blogsome.com/wp-admin/images/ScreenHunter_19_Aug._24_13.55.gif" width="618" height="233" alt="" title="" border="0" />&nbsp;</p>
	<p><strong>Answer:  </strong></p>
	<p>The set_multicycle_path command cannot be used to model the clock relationships described above. Instead, generated clocks must be used to implement separate launch and capture edges for each clock domain, and transfers which cannot occur must be treated as false paths.  The following set of constraints will model the arrangement described in the waveform diagram above.  </p>
	<p>create_clock [get_ports CLK1]  -name clk_333  -period 3  -waveform {0 1.5}</p>
	<p>create_clock [get_ports CLK2]  -name clk_222  -period 4.5  -waveform {0 2.25}</p>
	<p>create_generated_clock [get_ports CLK1]  -name clk_333_launch  -source [get_ports CLK1]  -edges {1 2 5 6 7}  -add </p>
	<p>create_generated_clock [get_ports CLK1]  -name clk_333_capture  -source [get_ports CLK1]  -edges {1 2 3 4 7}  -add </p>
	<p> set_false_path   -from [get_clocks clk_333]  -to [get_clocks clk_222] </p>
	<p>set_false_path   -from [get_clocks clk_222]  -to [get_clocks clk_333] </p>
	<p> set_false_path   -to [get_clocks clk_333_launch] </p>
	<p>set_false_path   -from [get_clocks clk_333_capture] </p>
]]></content:encoded>
			<wfw:commentRss>http://jimxia.blogsome.com/2009/11/16/modeling-complex-multifrequency-clocks/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Linux Command Line Tips</title>
		<link>http://jimxia.blogsome.com/2009/11/16/linux-command-line-tips/</link>
		<comments>http://jimxia.blogsome.com/2009/11/16/linux-command-line-tips/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 08:04:21 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Linux</category>
		<guid>http://jimxia.blogsome.com/2009/11/16/linux-command-line-tips/</guid>
		<description><![CDATA[	Moving aroundObviously, you can use the arrow keys to move around on the command line, but there are several other shortcuts:

CTRL+A = move cursor to beginning of line
	CTRL+E = move cursor to end of line
	CTRL+U = deletes everything before the cursor
	CTRL+K = deletes everything after the cursor
	CTRL+W = deletes the &ldquo;word&rdquo; before the cursor (all [...]]]></description>
			<content:encoded><![CDATA[	<p><span class="Apple-style-span"><strong>Moving around</strong><br />Obviously, you can use the arrow keys to move around on the command line, but there are several other shortcuts:
<ul>
<li>CTRL+A = move cursor to beginning of line</li>
	<li>CTRL+E = move cursor to end of line</li>
	<li>CTRL+U = deletes everything before the cursor</li>
	<li>CTRL+K = deletes everything after the cursor</li>
	<li>CTRL+W = deletes the &ldquo;word&rdquo; before the cursor (all text up to the previous space)</li>
	<li>CTRL+Y = paste previously deleted text (similar to undo and can be repeated)</li>
	<li>CTRL+I = similar to tab but for whatever text your cursor is on</li>
	<li>CTRL+L = similar to the &ldquo;clear&rdquo; command</li>
</ul>
</span>
</p>
]]></content:encoded>
			<wfw:commentRss>http://jimxia.blogsome.com/2009/11/16/linux-command-line-tips/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Rename designs</title>
		<link>http://jimxia.blogsome.com/2009/08/12/rename-designs/</link>
		<comments>http://jimxia.blogsome.com/2009/08/12/rename-designs/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 05:34:22 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Synthesis</category>
		<guid>http://jimxia.blogsome.com/2009/08/12/rename-designs/</guid>
		<description><![CDATA[	foreach_in_collection this_design [get_designs *] {
    set this_design_name [get_object_name $this_design]
    if { ![regexp {foo_} $this_design_name] } {
        rename_design $this_design -prefix &#8220;foo_&#8221; -update_links
    }
}

]]></description>
			<content:encoded><![CDATA[	<p>foreach_in_collection this_design [get_designs *] {<br />
    set this_design_name [get_object_name $this_design]<br />
    if { ![regexp {foo_} $this_design_name] } {<br />
        rename_design $this_design -prefix &#8220;foo_&#8221; -update_links<br />
    }<br />
}
</p>
]]></content:encoded>
			<wfw:commentRss>http://jimxia.blogsome.com/2009/08/12/rename-designs/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Recent Accomplishments</title>
		<link>http://jimxia.blogsome.com/2009/07/24/recent-accomplishments/</link>
		<comments>http://jimxia.blogsome.com/2009/07/24/recent-accomplishments/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 04:09:47 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
	<category>Worklog</category>
		<guid>http://jimxia.blogsome.com/2009/07/24/recent-accomplishments/</guid>
		<description><![CDATA[	 1. Investigate the PTK STAflow. 2. Setup STA environment for wbcdma and run Primetime. 3. Help GC synthesize and formal checking. 4. Check the SD IO pads timing in Z0.

]]></description>
			<content:encoded><![CDATA[	<p> 1. Investigate the PTK STAflow.<br /> 2. Setup STA environment for wbcdma and run Primetime.<br /> 3. Help GC synthesize and formal checking.<br /> 4. Check the SD IO pads timing in Z0.
</p>
]]></content:encoded>
			<wfw:commentRss>http://jimxia.blogsome.com/2009/07/24/recent-accomplishments/feed/</wfw:commentRss>
	</item>
	</channel>
</rss>
