<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>ChatGPT 자꾸 거짓말 할래?</title>
    <link>https://asickr.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Thu, 9 Apr 2026 19:00:56 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>epro-asic</managingEditor>
    <image>
      <title>ChatGPT 자꾸 거짓말 할래?</title>
      <url>https://tistory1.daumcdn.net/tistory/800671/attach/18c8e6ca9b0a4e6589f8f22ca72fb77c</url>
      <link>https://asickr.tistory.com</link>
    </image>
    <item>
      <title>LTPO 디스플레이</title>
      <link>https://asickr.tistory.com/45</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=xm4-Ps1TwXg&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/watch?v=xm4-Ps1TwXg&lt;/a&gt;&lt;/p&gt;</description>
      <category>DDI</category>
      <author>epro-asic</author>
      <guid isPermaLink="true">https://asickr.tistory.com/45</guid>
      <comments>https://asickr.tistory.com/45#entry45comment</comments>
      <pubDate>Tue, 22 Oct 2024 22:55:42 +0900</pubDate>
    </item>
    <item>
      <title>2's complement 비교하기</title>
      <link>https://asickr.tistory.com/44</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;2의&amp;nbsp;보수&amp;nbsp;방식의&amp;nbsp;장점을&amp;nbsp;요약하면&amp;nbsp;다음과&amp;nbsp;같습니다&amp;nbsp;:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- MSB가 0이면 양수, 1이면 음수임을 확신할 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 음수를 더하는 방식으로 뺼셈 수행 가능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 음수의 비교연산에서 발생하는 모순 해결 (음수끼리 만)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 0이 단 한 가지 방식으로 표현 가능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 덧셈 및 뺄셈에서 캐리의 발생시 캐리를 처리하는 회로를 구성할 필요가 없음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;==================================================&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 4비트 이진수를 예로 들어 설명해 드릴게요.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;숫자 5&lt;/b&gt;를 4비트 이진수로 표현하면:&lt;br /&gt;5 = 0101&lt;/li&gt;
&lt;li&gt;&lt;b&gt;숫자 -3&lt;/b&gt;을 2의 보수로 표현하는 과정:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;3을 4비트 이진수로 표현하면:&lt;br /&gt;3 = 0011&lt;/li&gt;
&lt;li&gt;이 숫자의 1의 보수를 취하면:&lt;br /&gt;0011 &amp;rarr; 1100&lt;/li&gt;
&lt;li&gt;이 1의 보수에 1을 더하면 2의 보수가 됩니다:&lt;br /&gt;1100 + 1 = 1101&lt;br /&gt;그래서, -3은 4비트로 1101입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제, &lt;b&gt;5와 -3을 더해봅시다&lt;/b&gt;:&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;229&quot; data-origin-height=&quot;118&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Areoq/btsJDXRRpdu/s5CSqOQel1734u8WKwRSo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Areoq/btsJDXRRpdu/s5CSqOQel1734u8WKwRSo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Areoq/btsJDXRRpdu/s5CSqOQel1734u8WKwRSo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAreoq%2FbtsJDXRRpdu%2Fs5CSqOQel1734u8WKwRSo1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;229&quot; height=&quot;118&quot; data-origin-width=&quot;229&quot; data-origin-height=&quot;118&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4비트로 계산하기 때문에 결과에서 가장 왼쪽 비트(5번째 비트)는 무시합니다. 그래서 남는 값은 0010입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 값은 2진수로 2이므로, &lt;b&gt;5 + (-3) = 2&lt;/b&gt;가 맞다는 것을 확인할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 2의 보수를 사용하면 음수도 양수처럼 간단하게 더할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;==================================================&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;음수끼리 크기를 비교할 때도 2의 보수를 사용하여 비교할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, &lt;b&gt;-3&lt;/b&gt;과 &lt;b&gt;-5&lt;/b&gt;의 크기를 4비트 이진수로 비교해 볼게요.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;-3&lt;/b&gt;의 2의 보수를 구하는 과정:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;3을 4비트로 표현하면 0011입니다.&lt;/li&gt;
&lt;li&gt;1의 보수를 취하면 1100이 되고,&lt;/li&gt;
&lt;li&gt;여기에 1을 더하면 1101입니다. 그래서 &lt;b&gt;-3&lt;/b&gt;은 2의 보수로 1101입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;-5&lt;/b&gt;의 2의 보수를 구하는 과정:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;5를 4비트로 표현하면 0101입니다.&lt;/li&gt;
&lt;li&gt;1의 보수를 취하면 1010이 되고,&lt;/li&gt;
&lt;li&gt;여기에 1을 더하면 1011입니다. 그래서 &lt;b&gt;-5&lt;/b&gt;는 2의 보수로 1011입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 두 값을 비교해 보면:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;-3&lt;/b&gt;: 1101&lt;/li&gt;
&lt;li&gt;&lt;b&gt;-5&lt;/b&gt;: 1011&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이진수로 봤을 때, 더 큰 값은 **1101**이므로, &lt;b&gt;-3&lt;/b&gt;이 &lt;b&gt;-5&lt;/b&gt;보다 큽니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 &lt;b&gt;-3 &amp;gt; -5&lt;/b&gt;라는 결론이 나옵니다. 이처럼 2의 보수를 사용해 음수끼리도 간단히 크기를 비교할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;그러나, 이는 음수끼리의 비교(부호가 같을 때만, &amp;lt; 가 제대로 동작) 이지. 양수 음수를 섞어서 비교하면 당연히 안됨.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 코드는 입력 부호를 확인하고, 크기를 비교하는 코드이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;module&amp;nbsp;compare_two_numbers&amp;nbsp;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;input&amp;nbsp;signed&amp;nbsp;[3:0]&amp;nbsp;a,&amp;nbsp;&amp;nbsp;//&amp;nbsp;첫&amp;nbsp;번째&amp;nbsp;입력&amp;nbsp;값&amp;nbsp;(4비트&amp;nbsp;부호&amp;nbsp;있는&amp;nbsp;숫자)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;input&amp;nbsp;signed&amp;nbsp;[3:0]&amp;nbsp;b,&amp;nbsp;&amp;nbsp;//&amp;nbsp;두&amp;nbsp;번째&amp;nbsp;입력&amp;nbsp;값&amp;nbsp;(4비트&amp;nbsp;부호&amp;nbsp;있는&amp;nbsp;숫자)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output&amp;nbsp;signed&amp;nbsp;[3:0]&amp;nbsp;max_value,&amp;nbsp;//&amp;nbsp;더&amp;nbsp;큰&amp;nbsp;값&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output&amp;nbsp;signed&amp;nbsp;[3:0]&amp;nbsp;min_value&amp;nbsp;&amp;nbsp;//&amp;nbsp;더&amp;nbsp;작은&amp;nbsp;값&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wire&amp;nbsp;a_is_negative,&amp;nbsp;b_is_negative;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;MSB가&amp;nbsp;1이면&amp;nbsp;음수&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;assign&amp;nbsp;a_is_negative&amp;nbsp;=&amp;nbsp;a[3];&amp;nbsp;&amp;nbsp;//&amp;nbsp;a의&amp;nbsp;부호&amp;nbsp;비트&amp;nbsp;(MSB)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;assign&amp;nbsp;b_is_negative&amp;nbsp;=&amp;nbsp;b[3];&amp;nbsp;&amp;nbsp;//&amp;nbsp;b의&amp;nbsp;부호&amp;nbsp;비트&amp;nbsp;(MSB)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;두&amp;nbsp;수의&amp;nbsp;부호가&amp;nbsp;다를&amp;nbsp;때:&amp;nbsp;음수와&amp;nbsp;양수를&amp;nbsp;구분&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;assign&amp;nbsp;max_value&amp;nbsp;=&amp;nbsp;(a_is_negative&amp;nbsp;==&amp;nbsp;1'b0&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;b_is_negative&amp;nbsp;==&amp;nbsp;1'b1)&amp;nbsp;?&amp;nbsp;a&amp;nbsp;:&amp;nbsp;&amp;nbsp;//&amp;nbsp;a가&amp;nbsp;양수,&amp;nbsp;b가&amp;nbsp;음수일&amp;nbsp;때&amp;nbsp;a가&amp;nbsp;더&amp;nbsp;큼&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(a_is_negative&amp;nbsp;==&amp;nbsp;1'b1&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;b_is_negative&amp;nbsp;==&amp;nbsp;1'b0)&amp;nbsp;?&amp;nbsp;b&amp;nbsp;:&amp;nbsp;&amp;nbsp;//&amp;nbsp;a가&amp;nbsp;음수,&amp;nbsp;b가&amp;nbsp;양수일&amp;nbsp;때&amp;nbsp;b가&amp;nbsp;더&amp;nbsp;큼&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(a&amp;nbsp;&amp;gt;&amp;nbsp;b)&amp;nbsp;?&amp;nbsp;a&amp;nbsp;:&amp;nbsp;b;&amp;nbsp;&amp;nbsp;//&amp;nbsp;두&amp;nbsp;수의&amp;nbsp;부호가&amp;nbsp;같으면&amp;nbsp;일반&amp;nbsp;비교&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;assign&amp;nbsp;min_value&amp;nbsp;=&amp;nbsp;(a_is_negative&amp;nbsp;==&amp;nbsp;1'b0&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;b_is_negative&amp;nbsp;==&amp;nbsp;1'b1)&amp;nbsp;?&amp;nbsp;b&amp;nbsp;:&amp;nbsp;&amp;nbsp;//&amp;nbsp;a가&amp;nbsp;양수,&amp;nbsp;b가&amp;nbsp;음수일&amp;nbsp;때&amp;nbsp;b가&amp;nbsp;더&amp;nbsp;작음&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(a_is_negative&amp;nbsp;==&amp;nbsp;1'b1&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;b_is_negative&amp;nbsp;==&amp;nbsp;1'b0)&amp;nbsp;?&amp;nbsp;a&amp;nbsp;:&amp;nbsp;&amp;nbsp;//&amp;nbsp;a가&amp;nbsp;음수,&amp;nbsp;b가&amp;nbsp;양수일&amp;nbsp;때&amp;nbsp;a가&amp;nbsp;더&amp;nbsp;작음&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(a&amp;nbsp;&amp;lt;&amp;nbsp;b)&amp;nbsp;?&amp;nbsp;a&amp;nbsp;:&amp;nbsp;b;&amp;nbsp;&amp;nbsp;//&amp;nbsp;두&amp;nbsp;수의&amp;nbsp;부호가&amp;nbsp;같으면&amp;nbsp;일반&amp;nbsp;비교&lt;br /&gt;&lt;br /&gt;endmodule&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;수정 사항 설명:&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;부호 비트 확인&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;assign a_is_negative = a[3];에서 a[3]은 a의 MSB (최상위 비트)입니다. MSB가 1이면 음수, 0이면 양수임을 나타냅니다. 마찬가지로 b[3]은 b의 부호 비트입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;부호가 다른 경우 처리&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;assign max_value: 만약 a가 양수(a_is_negative == 1'b0)이고, b가 음수(b_is_negative == 1'b1)이면 무조건 a가 더 큽니다. 반대로 a가 음수이고 b가 양수라면 b가 더 큽니다.&lt;/li&gt;
&lt;li&gt;assign min_value: 반대로 a가 양수이고 b가 음수면 b가 더 작고, a가 음수이고 b가 양수면 a가 더 작습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;부호가 같은 경우 처리&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;두 수의 부호가 같다면(둘 다 양수 또는 둘 다 음수), 일반적인 비교 연산을 수행하여 큰 값과 작은 값을 결정합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 코드는 음수와 양수를 구분하여 비교하며, 부호가 다른 경우 올바르게 처리할 수 있도록 수정되었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;==========================&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;크기 비교는 부호가 같을 때만 적용되므로, 1차 부호로 크기를 판단하고 2차로 같은 부호일 경우에, 비교하는 것임.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3비트 부호 있는 숫자 범위 (2의 보수 표기):&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;십진수2진수 (3비트)&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;011&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;001&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-1&lt;/td&gt;
&lt;td&gt;111&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-2&lt;/td&gt;
&lt;td&gt;110&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-3&lt;/td&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-4&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <category>SystemVerilog</category>
      <author>epro-asic</author>
      <guid isPermaLink="true">https://asickr.tistory.com/44</guid>
      <comments>https://asickr.tistory.com/44#entry44comment</comments>
      <pubDate>Fri, 13 Sep 2024 19:21:36 +0900</pubDate>
    </item>
    <item>
      <title>저전력 IC 기술동향 분석; 경쟁력 높은 IC 구현을 위한 &amp;lsquo;IP 저전력&amp;rsquo; 설계</title>
      <link>https://asickr.tistory.com/43</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/dJY6Qm/btsCzp3MG8c/u5ieb3Ub8GVfeSJdT9Swv1/202110052.pdf?attach=1&amp;amp;knm=tfile.pdf&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;202110052.pdf&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.98MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.elec4.co.kr/article/articleView.asp?idx=28521&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.elec4.co.kr/article/articleView.asp?idx=28521&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1703571715932&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[연재 기고] 저전력 IC 기술동향 분석; 경쟁력 높은 IC 구현을 위한 &amp;lsquo;IP 저전력&amp;rsquo; 설계&quot; data-og-description=&quot;최근 모바일 기기뿐만 아니라 IT 모든 기기들의 고속화, 다기능화로 인하여 저전력 IC는 선택이 아니라 필수가 되었다고 할 수 있다.&quot; data-og-host=&quot;www.elec4.co.kr&quot; data-og-source-url=&quot;https://www.elec4.co.kr/article/articleView.asp?idx=28521&quot; data-og-url=&quot;https://www.elec4.co.kr/article/articleView.asp?idx=28521&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.elec4.co.kr/article/articleView.asp?idx=28521&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.elec4.co.kr/article/articleView.asp?idx=28521&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[연재 기고] 저전력 IC 기술동향 분석; 경쟁력 높은 IC 구현을 위한 &amp;lsquo;IP 저전력&amp;rsquo; 설계&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;최근 모바일 기기뿐만 아니라 IT 모든 기기들의 고속화, 다기능화로 인하여 저전력 IC는 선택이 아니라 필수가 되었다고 할 수 있다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.elec4.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;Multi-voltage&amp;nbsp;design&quot;과&amp;nbsp;&quot;multi-threshold&amp;nbsp;voltage&amp;nbsp;design&quot;은&amp;nbsp;두&amp;nbsp;가지&amp;nbsp;다른&amp;nbsp;개념이며,&amp;nbsp;ASIC&amp;nbsp;(Application-Specific&amp;nbsp;Integrated&amp;nbsp;Circuit)&amp;nbsp;또는&amp;nbsp;다른&amp;nbsp;집적&amp;nbsp;회로&amp;nbsp;디자인&amp;nbsp;분야에서&amp;nbsp;사용되는&amp;nbsp;중요한&amp;nbsp;개념입니다. &lt;br /&gt;&lt;br /&gt;1.&amp;nbsp;**Multi-Voltage&amp;nbsp;Design&amp;nbsp;(다중&amp;nbsp;전압&amp;nbsp;디자인):** &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;Multi-voltage&amp;nbsp;design은&amp;nbsp;디바이스&amp;nbsp;또는&amp;nbsp;회로&amp;nbsp;내에서&amp;nbsp;여러&amp;nbsp;개의&amp;nbsp;서로&amp;nbsp;다른&amp;nbsp;전압&amp;nbsp;레벨을&amp;nbsp;사용하는&amp;nbsp;디자인&amp;nbsp;방법을&amp;nbsp;나타냅니다. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;이는&amp;nbsp;전력&amp;nbsp;소모를&amp;nbsp;최적화하거나&amp;nbsp;다양한&amp;nbsp;기능&amp;nbsp;블록&amp;nbsp;간의&amp;nbsp;상호&amp;nbsp;독립성을&amp;nbsp;유지하는&amp;nbsp;데&amp;nbsp;도움이&amp;nbsp;됩니다. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;예를&amp;nbsp;들어,&amp;nbsp;하나의&amp;nbsp;ASIC&amp;nbsp;칩&amp;nbsp;내에서&amp;nbsp;코어&amp;nbsp;논리,&amp;nbsp;메모리,&amp;nbsp;통신&amp;nbsp;인터페이스&amp;nbsp;등의&amp;nbsp;다양한&amp;nbsp;기능&amp;nbsp;블록이&amp;nbsp;있을&amp;nbsp;때,&amp;nbsp;각&amp;nbsp;블록이&amp;nbsp;다른&amp;nbsp;전압&amp;nbsp;레벨에서&amp;nbsp;동작할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;이렇게&amp;nbsp;하면&amp;nbsp;전력&amp;nbsp;소모와&amp;nbsp;성능을&amp;nbsp;최적화하면서&amp;nbsp;전체&amp;nbsp;시스템의&amp;nbsp;기능을&amp;nbsp;유지할&amp;nbsp;수&amp;nbsp;있습니다. &lt;br /&gt;&lt;br /&gt;2.&amp;nbsp;**Multi-Threshold&amp;nbsp;Voltage&amp;nbsp;Design&amp;nbsp;(다중&amp;nbsp;스레시홀드&amp;nbsp;전압&amp;nbsp;디자인):** &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;Multi-threshold&amp;nbsp;voltage&amp;nbsp;design은&amp;nbsp;논리&amp;nbsp;게이트나&amp;nbsp;전자&amp;nbsp;소자의&amp;nbsp;스레시홀드&amp;nbsp;전압을&amp;nbsp;조절하여&amp;nbsp;디바이스&amp;nbsp;또는&amp;nbsp;회로의&amp;nbsp;동작&amp;nbsp;특성을&amp;nbsp;조절하는&amp;nbsp;디자인&amp;nbsp;방법을&amp;nbsp;나타냅니다. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;이는&amp;nbsp;논리&amp;nbsp;게이트의&amp;nbsp;속도,&amp;nbsp;전력&amp;nbsp;소모&amp;nbsp;및&amp;nbsp;신호&amp;nbsp;노이즈&amp;nbsp;특성을&amp;nbsp;조절할&amp;nbsp;수&amp;nbsp;있는데&amp;nbsp;사용됩니다. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;예를&amp;nbsp;들어,&amp;nbsp;낮은&amp;nbsp;스레시홀드&amp;nbsp;전압을&amp;nbsp;가진&amp;nbsp;논리&amp;nbsp;게이트는&amp;nbsp;높은&amp;nbsp;성능을&amp;nbsp;제공하지만&amp;nbsp;전력&amp;nbsp;소모가&amp;nbsp;높을&amp;nbsp;수&amp;nbsp;있으며,&amp;nbsp;높은&amp;nbsp;스레시홀드&amp;nbsp;전압을&amp;nbsp;가진&amp;nbsp;논리&amp;nbsp;게이트는&amp;nbsp;더&amp;nbsp;낮은&amp;nbsp;전력&amp;nbsp;소모를&amp;nbsp;가지지만&amp;nbsp;성능이&amp;nbsp;낮을&amp;nbsp;수&amp;nbsp;있습니다. &lt;br /&gt;&lt;br /&gt;요약하면,&amp;nbsp;multi-voltage&amp;nbsp;design은&amp;nbsp;다양한&amp;nbsp;전압&amp;nbsp;레벨을&amp;nbsp;사용하여&amp;nbsp;전력&amp;nbsp;및&amp;nbsp;기능&amp;nbsp;최적화를&amp;nbsp;달성하는&amp;nbsp;것을&amp;nbsp;의미하고,&amp;nbsp;multi-threshold&amp;nbsp;voltage&amp;nbsp;design은&amp;nbsp;스레시홀드&amp;nbsp;전압을&amp;nbsp;조절하여&amp;nbsp;논리&amp;nbsp;게이트나&amp;nbsp;전자&amp;nbsp;소자의&amp;nbsp;동작&amp;nbsp;특성을&amp;nbsp;제어하는&amp;nbsp;것을&amp;nbsp;의미합니다.&amp;nbsp;이러한&amp;nbsp;기술은&amp;nbsp;집적&amp;nbsp;회로&amp;nbsp;디자인에서&amp;nbsp;성능&amp;nbsp;및&amp;nbsp;전력&amp;nbsp;효율성을&amp;nbsp;극대화하는&amp;nbsp;데&amp;nbsp;중요합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&amp;nbsp; &lt;span style=&quot;color: #0f0f0f; text-align: start;&quot;&gt;하나의 칩을 만들때, HVT, LVT를 섞어서 사용할 수 있는가?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네,&amp;nbsp;하나의&amp;nbsp;칩을&amp;nbsp;만들&amp;nbsp;때&amp;nbsp;HVT&amp;nbsp;(High&amp;nbsp;Voltage&amp;nbsp;Threshold)와&amp;nbsp;LVT&amp;nbsp;(Low&amp;nbsp;Voltage&amp;nbsp;Threshold)&amp;nbsp;라이브러리를&amp;nbsp;혼합해서&amp;nbsp;사용하는&amp;nbsp;것은&amp;nbsp;가능합니다.&amp;nbsp;이러한&amp;nbsp;혼합&amp;nbsp;사용은&amp;nbsp;ASIC&amp;nbsp;설계에서&amp;nbsp;흔히&amp;nbsp;사용되는&amp;nbsp;방법&amp;nbsp;중&amp;nbsp;하나이며,&amp;nbsp;이를&amp;nbsp;통해&amp;nbsp;여러&amp;nbsp;이점을&amp;nbsp;얻을&amp;nbsp;수&amp;nbsp;있습니다. &lt;br /&gt;&lt;br /&gt;다음은&amp;nbsp;HVT와&amp;nbsp;LVT를&amp;nbsp;혼합해서&amp;nbsp;사용하는&amp;nbsp;이유와&amp;nbsp;이점입니다: &lt;br /&gt;&lt;br /&gt;1.&amp;nbsp;**전력&amp;nbsp;최적화**:&amp;nbsp;칩의&amp;nbsp;다양한&amp;nbsp;부분에&amp;nbsp;따라&amp;nbsp;전력&amp;nbsp;소모를&amp;nbsp;최적화하려면&amp;nbsp;HVT와&amp;nbsp;LVT&amp;nbsp;라이브러리를&amp;nbsp;혼합하여&amp;nbsp;사용할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;더&amp;nbsp;높은&amp;nbsp;성능이&amp;nbsp;필요한&amp;nbsp;부분에는&amp;nbsp;HVT를&amp;nbsp;사용하고,&amp;nbsp;전력&amp;nbsp;효율성이&amp;nbsp;중요한&amp;nbsp;부분에는&amp;nbsp;LVT를&amp;nbsp;사용하여&amp;nbsp;전체적으로&amp;nbsp;전력&amp;nbsp;소모를&amp;nbsp;줄일&amp;nbsp;수&amp;nbsp;있습니다. &lt;br /&gt;&lt;br /&gt;2.&amp;nbsp;**온도&amp;nbsp;및&amp;nbsp;환경&amp;nbsp;조건**:&amp;nbsp;칩이&amp;nbsp;동작하는&amp;nbsp;환경&amp;nbsp;및&amp;nbsp;온도&amp;nbsp;조건에&amp;nbsp;따라&amp;nbsp;라이브러리를&amp;nbsp;선택할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;일부&amp;nbsp;환경에서는&amp;nbsp;HVT가&amp;nbsp;더&amp;nbsp;안정적으로&amp;nbsp;동작할&amp;nbsp;수&amp;nbsp;있고,&amp;nbsp;다른&amp;nbsp;환경에서는&amp;nbsp;LVT가&amp;nbsp;더&amp;nbsp;효율적일&amp;nbsp;수&amp;nbsp;있습니다. &lt;br /&gt;&lt;br /&gt;3.&amp;nbsp;**편의성**:&amp;nbsp;라이브러리를&amp;nbsp;혼합하여&amp;nbsp;사용하면&amp;nbsp;설계자가&amp;nbsp;더&amp;nbsp;많은&amp;nbsp;유연성을&amp;nbsp;가질&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;설계의&amp;nbsp;특정&amp;nbsp;부분에&amp;nbsp;최적화된&amp;nbsp;라이브러리를&amp;nbsp;선택할&amp;nbsp;수&amp;nbsp;있으므로&amp;nbsp;설계의&amp;nbsp;요구&amp;nbsp;사항을&amp;nbsp;더&amp;nbsp;쉽게&amp;nbsp;충족시킬&amp;nbsp;수&amp;nbsp;있습니다. &lt;br /&gt;&lt;br /&gt;4.&amp;nbsp;**설계의&amp;nbsp;복잡성**:&amp;nbsp;큰&amp;nbsp;ASIC&amp;nbsp;디자인에서는&amp;nbsp;여러&amp;nbsp;부분으로&amp;nbsp;나눠져&amp;nbsp;있을&amp;nbsp;수&amp;nbsp;있으며,&amp;nbsp;각&amp;nbsp;부분마다&amp;nbsp;최적의&amp;nbsp;라이브러리를&amp;nbsp;사용함으로써&amp;nbsp;전체&amp;nbsp;설계의&amp;nbsp;복잡성을&amp;nbsp;줄일&amp;nbsp;수&amp;nbsp;있습니다. &lt;br /&gt;&lt;br /&gt;HVT와&amp;nbsp;LVT&amp;nbsp;라이브러리를&amp;nbsp;혼합해서&amp;nbsp;사용할&amp;nbsp;때는&amp;nbsp;주의해야&amp;nbsp;할&amp;nbsp;점도&amp;nbsp;있습니다.&amp;nbsp;두&amp;nbsp;라이브러리&amp;nbsp;간의&amp;nbsp;인터페이스와&amp;nbsp;전압&amp;nbsp;레벨을&amp;nbsp;적절하게&amp;nbsp;조절하여&amp;nbsp;시그널&amp;nbsp;레벨을&amp;nbsp;일치시켜야&amp;nbsp;합니다.&amp;nbsp;또한&amp;nbsp;이를&amp;nbsp;위해&amp;nbsp;추가적인&amp;nbsp;검증&amp;nbsp;및&amp;nbsp;테스트가&amp;nbsp;필요할&amp;nbsp;수&amp;nbsp;있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt;&amp;gt;&amp;gt; &lt;span style=&quot;color: #0f0f0f; text-align: start;&quot;&gt;그럼 가령, 90나노 칩 하나를 만드는데, register 와 mcu 는 LVT 로 합성하고, AnalogIF는 HVT 로 합성을 했을 때, 서로 시그널을 주고 받는 녀석들끼리만 서로 사용하는 voltage level에 맞춰서 전압레벨을 조절하기만 한다면 된다는 거지? &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네,&amp;nbsp;기본적으로&amp;nbsp;Register&amp;nbsp;및&amp;nbsp;MCU와&amp;nbsp;Analog&amp;nbsp;Interface&amp;nbsp;(AnalogIF)가&amp;nbsp;서로&amp;nbsp;다른&amp;nbsp;전압&amp;nbsp;레벨을&amp;nbsp;사용하더라도,&amp;nbsp;두&amp;nbsp;레벨&amp;nbsp;간의&amp;nbsp;시그널을&amp;nbsp;맞추기&amp;nbsp;위해&amp;nbsp;레벨&amp;nbsp;변환기(이를테면&amp;nbsp;레벨&amp;nbsp;시프터&amp;nbsp;또는&amp;nbsp;레벨&amp;nbsp;적응기)를&amp;nbsp;사용하여&amp;nbsp;시그널을&amp;nbsp;전달할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;이렇게&amp;nbsp;하면&amp;nbsp;Register&amp;nbsp;및&amp;nbsp;MCU와&amp;nbsp;AnalogIF&amp;nbsp;간의&amp;nbsp;인터페이스&amp;nbsp;문제를&amp;nbsp;해결할&amp;nbsp;수&amp;nbsp;있습니다. &lt;br /&gt;&lt;br /&gt;전압&amp;nbsp;레벨을&amp;nbsp;맞추기&amp;nbsp;위한&amp;nbsp;레벨&amp;nbsp;변환기는&amp;nbsp;특정&amp;nbsp;전압&amp;nbsp;레벨에서&amp;nbsp;시그널을&amp;nbsp;다른&amp;nbsp;전압&amp;nbsp;레벨로&amp;nbsp;변환할&amp;nbsp;수&amp;nbsp;있도록&amp;nbsp;설계됩니다.&amp;nbsp;따라서&amp;nbsp;Register&amp;nbsp;및&amp;nbsp;MCU에서&amp;nbsp;생성된&amp;nbsp;LVT&amp;nbsp;신호는&amp;nbsp;레벨&amp;nbsp;변환기를&amp;nbsp;통해&amp;nbsp;HVT&amp;nbsp;레벨로&amp;nbsp;변환되고,&amp;nbsp;AnalogIF에서&amp;nbsp;생성된&amp;nbsp;HVT&amp;nbsp;신호는&amp;nbsp;LVT&amp;nbsp;레벨로&amp;nbsp;변환됩니다.&amp;nbsp;이렇게&amp;nbsp;하면&amp;nbsp;서로&amp;nbsp;다른&amp;nbsp;전압&amp;nbsp;레벨&amp;nbsp;간의&amp;nbsp;시그널&amp;nbsp;통신이&amp;nbsp;가능해집니다. &lt;br /&gt;&lt;br /&gt;또한,&amp;nbsp;이러한&amp;nbsp;레벨&amp;nbsp;변환기를&amp;nbsp;사용할&amp;nbsp;때에는&amp;nbsp;시간&amp;nbsp;지연과&amp;nbsp;전력&amp;nbsp;소모에&amp;nbsp;주의해야&amp;nbsp;합니다.&amp;nbsp;레벨&amp;nbsp;변환기를&amp;nbsp;통과하는&amp;nbsp;시그널은&amp;nbsp;어떤&amp;nbsp;형태로든&amp;nbsp;변환되므로&amp;nbsp;신호의&amp;nbsp;시간&amp;nbsp;지연이&amp;nbsp;발생하고,&amp;nbsp;레벨&amp;nbsp;변환기&amp;nbsp;자체도&amp;nbsp;일정한&amp;nbsp;전력을&amp;nbsp;소비합니다.&amp;nbsp;이러한&amp;nbsp;특성을&amp;nbsp;고려하여&amp;nbsp;설계를&amp;nbsp;최적화해야&amp;nbsp;합니다. &lt;br /&gt;&lt;br /&gt;또한,&amp;nbsp;레벨&amp;nbsp;변환기의&amp;nbsp;정확한&amp;nbsp;동작과&amp;nbsp;안정성을&amp;nbsp;보장하기&amp;nbsp;위해&amp;nbsp;충분한&amp;nbsp;검증과&amp;nbsp;테스트가&amp;nbsp;필요합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt;&amp;gt;&amp;gt; &lt;span style=&quot;color: #0f0f0f; text-align: start;&quot;&gt;너는 앞에서 설명할때는 lvt 와 hvt 간에 전압레벨을 바꿔줘야 한다고 했느데, 이건 공급전압이 아니라. 서로 주고 받은 시그널의 threshold 관련 게이팅 전압을 바꿔야 한다는 거지? &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네,&amp;nbsp;맞습니다.&amp;nbsp;제&amp;nbsp;답변에서&amp;nbsp;미스포인트가&amp;nbsp;있었습니다.&amp;nbsp;LVT&amp;nbsp;(Low&amp;nbsp;Voltage&amp;nbsp;Threshold)와&amp;nbsp;HVT&amp;nbsp;(High&amp;nbsp;Voltage&amp;nbsp;Threshold)의&amp;nbsp;주요&amp;nbsp;차이점은&amp;nbsp;논리&amp;nbsp;게이트나&amp;nbsp;전자&amp;nbsp;소자의&amp;nbsp;스레시홀드&amp;nbsp;전압(threshold&amp;nbsp;voltage)&amp;nbsp;레벨에&amp;nbsp;있으며,&amp;nbsp;공급&amp;nbsp;전압(voltage&amp;nbsp;supply)&amp;nbsp;자체와&amp;nbsp;직접적인&amp;nbsp;관련이&amp;nbsp;없습니다. &lt;br /&gt;&lt;br /&gt;LVT와&amp;nbsp;HVT&amp;nbsp;라이브러리는&amp;nbsp;동일한&amp;nbsp;공급&amp;nbsp;전압&amp;nbsp;아래에서&amp;nbsp;동작하며,&amp;nbsp;그&amp;nbsp;차이는&amp;nbsp;스레시홀드&amp;nbsp;전압의&amp;nbsp;레벨에&amp;nbsp;있습니다.&amp;nbsp;이&amp;nbsp;스레시홀드&amp;nbsp;전압&amp;nbsp;차이는&amp;nbsp;게이트나&amp;nbsp;전자&amp;nbsp;소자의&amp;nbsp;동작&amp;nbsp;특성을&amp;nbsp;제어하는&amp;nbsp;데&amp;nbsp;사용됩니다. &lt;br /&gt;&lt;br /&gt;따라서&amp;nbsp;서로&amp;nbsp;다른&amp;nbsp;스레시홀드&amp;nbsp;전압&amp;nbsp;레벨을&amp;nbsp;가진&amp;nbsp;LVT와&amp;nbsp;HVT&amp;nbsp;논리&amp;nbsp;게이트&amp;nbsp;또는&amp;nbsp;전자&amp;nbsp;소자&amp;nbsp;사이에서는&amp;nbsp;스레시홀드&amp;nbsp;관련&amp;nbsp;게이팅&amp;nbsp;전압을&amp;nbsp;고려하여&amp;nbsp;시그널을&amp;nbsp;주고&amp;nbsp;받아야&amp;nbsp;합니다.&amp;nbsp;이를&amp;nbsp;통해&amp;nbsp;서로&amp;nbsp;다른&amp;nbsp;레벨의&amp;nbsp;스레시홀드를&amp;nbsp;가진&amp;nbsp;논리&amp;nbsp;게이트&amp;nbsp;간의&amp;nbsp;상호&amp;nbsp;작용을&amp;nbsp;관리하고,&amp;nbsp;시스템의&amp;nbsp;동작을&amp;nbsp;조절할&amp;nbsp;수&amp;nbsp;있습니다.&lt;/p&gt;</description>
      <category>ASIC</category>
      <author>epro-asic</author>
      <guid isPermaLink="true">https://asickr.tistory.com/43</guid>
      <comments>https://asickr.tistory.com/43#entry43comment</comments>
      <pubDate>Tue, 26 Dec 2023 15:03:41 +0900</pubDate>
    </item>
    <item>
      <title>Postsimulation 과 SDF</title>
      <link>https://asickr.tistory.com/42</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt;&amp;gt;&amp;gt; SDF (Standard Delay Format) 파일은 일반적으로 ASIC 설계 및 검증 과정에서 타이밍 정보를 제공하기 위해 사용됩니다. 이 파일은 주로 두 단계에서 생성됩니다: &lt;br /&gt;&lt;br /&gt;1.&amp;nbsp;**타이밍&amp;nbsp;분석&amp;nbsp;후**:&amp;nbsp;ASIC&amp;nbsp;설계&amp;nbsp;과정에서,&amp;nbsp;논리&amp;nbsp;설계&amp;nbsp;후의&amp;nbsp;타이밍&amp;nbsp;분석&amp;nbsp;단계에서&amp;nbsp;SDF&amp;nbsp;파일이&amp;nbsp;생성될&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;이때의&amp;nbsp;SDF는&amp;nbsp;논리&amp;nbsp;설계의&amp;nbsp;타이밍&amp;nbsp;정보를&amp;nbsp;포함하며,&amp;nbsp;주로&amp;nbsp;RTL&amp;nbsp;(Register-Transfer&amp;nbsp;Level)&amp;nbsp;설계&amp;nbsp;단계나&amp;nbsp;게이트&amp;nbsp;수준의&amp;nbsp;타이밍&amp;nbsp;검증에&amp;nbsp;사용됩니다. &lt;br /&gt;&lt;br /&gt;2.&amp;nbsp;**물리적&amp;nbsp;설계&amp;nbsp;후**:&amp;nbsp;보다&amp;nbsp;정확한&amp;nbsp;타이밍&amp;nbsp;정보를&amp;nbsp;위해,&amp;nbsp;물리적&amp;nbsp;설계&amp;nbsp;단계(레이아웃&amp;nbsp;및&amp;nbsp;배치와&amp;nbsp;배선)가&amp;nbsp;완료된&amp;nbsp;후에도&amp;nbsp;SDF&amp;nbsp;파일이&amp;nbsp;생성됩니다.&amp;nbsp;이&amp;nbsp;단계에서의&amp;nbsp;SDF&amp;nbsp;파일은&amp;nbsp;실제&amp;nbsp;칩&amp;nbsp;제조&amp;nbsp;과정에서&amp;nbsp;고려해야&amp;nbsp;할&amp;nbsp;각종&amp;nbsp;물리적&amp;nbsp;요소들(예:&amp;nbsp;와이어&amp;nbsp;길이,&amp;nbsp;층간의&amp;nbsp;접촉&amp;nbsp;저항&amp;nbsp;등)에&amp;nbsp;기반한&amp;nbsp;더욱&amp;nbsp;정밀한&amp;nbsp;타이밍&amp;nbsp;정보를&amp;nbsp;제공합니다. &lt;br /&gt;&lt;br /&gt;이러한&amp;nbsp;SDF&amp;nbsp;파일은&amp;nbsp;포스트&amp;nbsp;시뮬레이션(Post-Simulation)&amp;nbsp;과정에서&amp;nbsp;중요한&amp;nbsp;역할을&amp;nbsp;합니다.&amp;nbsp;포스트&amp;nbsp;시뮬레이션은&amp;nbsp;실제&amp;nbsp;칩의&amp;nbsp;제조&amp;nbsp;공정과&amp;nbsp;환경을&amp;nbsp;고려하여&amp;nbsp;설계된&amp;nbsp;회로의&amp;nbsp;동작을&amp;nbsp;모의&amp;nbsp;실험하는&amp;nbsp;과정입니다.&amp;nbsp;여기서&amp;nbsp;SDF&amp;nbsp;파일은&amp;nbsp;넷리스트(netlist)와&amp;nbsp;함께&amp;nbsp;사용되어,&amp;nbsp;실제&amp;nbsp;제조&amp;nbsp;공정에서&amp;nbsp;예상되는&amp;nbsp;타이밍&amp;nbsp;지연과&amp;nbsp;다른&amp;nbsp;타이밍&amp;nbsp;관련&amp;nbsp;문제들을&amp;nbsp;정확히&amp;nbsp;모델링하고&amp;nbsp;검증하는&amp;nbsp;데&amp;nbsp;도움을&amp;nbsp;줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt;&amp;gt;&amp;gt; STA&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ASIC&amp;nbsp;설계&amp;nbsp;및&amp;nbsp;검증&amp;nbsp;과정에서&amp;nbsp;SDF&amp;nbsp;(Standard&amp;nbsp;Delay&amp;nbsp;Format)&amp;nbsp;파일을&amp;nbsp;생성하는&amp;nbsp;데&amp;nbsp;사용되는&amp;nbsp;도구는&amp;nbsp;두&amp;nbsp;단계에서&amp;nbsp;각기&amp;nbsp;다릅니다.&amp;nbsp;이&amp;nbsp;두&amp;nbsp;단계는&amp;nbsp;각각&amp;nbsp;논리&amp;nbsp;설계&amp;nbsp;단계와&amp;nbsp;물리적&amp;nbsp;설계&amp;nbsp;단계에&amp;nbsp;해당합니다. &lt;br /&gt;&lt;br /&gt;###&amp;nbsp;1.&amp;nbsp;논리&amp;nbsp;설계&amp;nbsp;단계에서의&amp;nbsp;SDF&amp;nbsp;생성 &lt;br /&gt;-&amp;nbsp;**단계&amp;nbsp;설명**:&amp;nbsp;이&amp;nbsp;단계에서는&amp;nbsp;RTL&amp;nbsp;(Register-Transfer&amp;nbsp;Level)&amp;nbsp;설계가&amp;nbsp;주로&amp;nbsp;이루어지며,&amp;nbsp;게이트&amp;nbsp;수준의&amp;nbsp;타이밍&amp;nbsp;분석이&amp;nbsp;진행됩니다. &lt;br /&gt;-&amp;nbsp;**사용되는&amp;nbsp;도구**: &lt;br /&gt;&amp;nbsp;&amp;nbsp;-&amp;nbsp;**Synthesis&amp;nbsp;Tools**:&amp;nbsp;Synopsys의&amp;nbsp;Design&amp;nbsp;Compiler,&amp;nbsp;Cadence의&amp;nbsp;Genus&amp;nbsp;등과&amp;nbsp;같은&amp;nbsp;합성&amp;nbsp;도구는&amp;nbsp;RTL&amp;nbsp;코드를&amp;nbsp;게이트&amp;nbsp;수준의&amp;nbsp;넷리스트로&amp;nbsp;변환하고,&amp;nbsp;초기&amp;nbsp;타이밍&amp;nbsp;분석을&amp;nbsp;수행합니다. &lt;br /&gt;&amp;nbsp;&amp;nbsp;-&amp;nbsp;**Static&amp;nbsp;Timing&amp;nbsp;Analysis&amp;nbsp;(STA)&amp;nbsp;Tools**:&amp;nbsp;STA&amp;nbsp;도구,&amp;nbsp;예를&amp;nbsp;들어&amp;nbsp;Synopsys의&amp;nbsp;PrimeTime,&amp;nbsp;Cadence의&amp;nbsp;Tempus&amp;nbsp;등은&amp;nbsp;넷리스트와&amp;nbsp;기술&amp;nbsp;라이브러리를&amp;nbsp;사용하여&amp;nbsp;타이밍&amp;nbsp;분석을&amp;nbsp;수행하고,&amp;nbsp;초기&amp;nbsp;SDF&amp;nbsp;파일을&amp;nbsp;생성합니다. &lt;br /&gt;&lt;br /&gt;###&amp;nbsp;2.&amp;nbsp;물리적&amp;nbsp;설계&amp;nbsp;단계에서의&amp;nbsp;SDF&amp;nbsp;생성 &lt;br /&gt;-&amp;nbsp;**단계&amp;nbsp;설명**:&amp;nbsp;물리적&amp;nbsp;설계&amp;nbsp;단계에서는&amp;nbsp;칩의&amp;nbsp;레이아웃,&amp;nbsp;배치&amp;nbsp;및&amp;nbsp;배선이&amp;nbsp;이루어집니다.&amp;nbsp;이&amp;nbsp;과정에서&amp;nbsp;생성되는&amp;nbsp;SDF&amp;nbsp;파일은&amp;nbsp;더&amp;nbsp;상세하고&amp;nbsp;정확한&amp;nbsp;타이밍&amp;nbsp;정보를&amp;nbsp;제공합니다. &lt;br /&gt;-&amp;nbsp;**사용되는&amp;nbsp;도구**: &lt;br /&gt;&amp;nbsp;&amp;nbsp;-&amp;nbsp;**Place&amp;nbsp;and&amp;nbsp;Route&amp;nbsp;Tools**:&amp;nbsp;Cadence의&amp;nbsp;Innovus,&amp;nbsp;Synopsys의&amp;nbsp;IC&amp;nbsp;Compiler&amp;nbsp;등과&amp;nbsp;같은&amp;nbsp;배치&amp;nbsp;및&amp;nbsp;배선&amp;nbsp;도구는&amp;nbsp;실제&amp;nbsp;칩&amp;nbsp;레이아웃에&amp;nbsp;기반한&amp;nbsp;타이밍&amp;nbsp;정보를&amp;nbsp;제공합니다. &lt;br /&gt;&amp;nbsp;&amp;nbsp;-&amp;nbsp;**Post-Layout&amp;nbsp;STA&amp;nbsp;Tools**:&amp;nbsp;레이아웃&amp;nbsp;데이터를&amp;nbsp;기반으로&amp;nbsp;한&amp;nbsp;STA&amp;nbsp;도구는&amp;nbsp;물리적&amp;nbsp;설계&amp;nbsp;데이터를&amp;nbsp;반영하여&amp;nbsp;더&amp;nbsp;정밀한&amp;nbsp;SDF&amp;nbsp;파일을&amp;nbsp;생성합니다.&amp;nbsp;이&amp;nbsp;파일은&amp;nbsp;포스트&amp;nbsp;레이아웃&amp;nbsp;시뮬레이션에&amp;nbsp;사용됩니다. &lt;br /&gt;&lt;br /&gt;각&amp;nbsp;단계에서&amp;nbsp;생성된&amp;nbsp;SDF&amp;nbsp;파일은&amp;nbsp;설계의&amp;nbsp;다른&amp;nbsp;단계에&amp;nbsp;비해&amp;nbsp;상세함과&amp;nbsp;정확성이&amp;nbsp;증가합니다.&amp;nbsp;논리&amp;nbsp;설계&amp;nbsp;단계에서의&amp;nbsp;SDF는&amp;nbsp;초기&amp;nbsp;타이밍&amp;nbsp;정보를&amp;nbsp;제공하는&amp;nbsp;반면,&amp;nbsp;물리적&amp;nbsp;설계&amp;nbsp;단계에서의&amp;nbsp;SDF는&amp;nbsp;실제&amp;nbsp;칩&amp;nbsp;제조&amp;nbsp;과정에서의&amp;nbsp;타이밍을&amp;nbsp;더&amp;nbsp;정확하게&amp;nbsp;반영합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&amp;nbsp; Post-Layout&amp;nbsp;Static&amp;nbsp;Timing&amp;nbsp;Analysis&amp;nbsp;(STA)&amp;nbsp;단계에서도&amp;nbsp;PrimeTime&amp;nbsp;(Synopsys에서&amp;nbsp;개발)과&amp;nbsp;Tempus&amp;nbsp;(Cadence에서&amp;nbsp;개발)와&amp;nbsp;같은&amp;nbsp;도구들이&amp;nbsp;사용됩니다.&amp;nbsp;이&amp;nbsp;단계에서의&amp;nbsp;주요&amp;nbsp;차이점은&amp;nbsp;STA&amp;nbsp;도구들이&amp;nbsp;물리적&amp;nbsp;레이아웃&amp;nbsp;데이터를&amp;nbsp;기반으로&amp;nbsp;한&amp;nbsp;타이밍&amp;nbsp;분석을&amp;nbsp;수행한다는&amp;nbsp;것입니다. &lt;br /&gt;&lt;br /&gt;Post-Layout&amp;nbsp;STA&amp;nbsp;단계에서의&amp;nbsp;작업은&amp;nbsp;다음과&amp;nbsp;같습니다: &lt;br /&gt;&lt;br /&gt;1.&amp;nbsp;**물리적&amp;nbsp;레이아웃&amp;nbsp;정보의&amp;nbsp;통합**:&amp;nbsp;배치&amp;nbsp;및&amp;nbsp;배선이&amp;nbsp;완료된&amp;nbsp;후의&amp;nbsp;레이아웃&amp;nbsp;데이터가&amp;nbsp;STA&amp;nbsp;도구에&amp;nbsp;통합됩니다.&amp;nbsp;이&amp;nbsp;데이터에는&amp;nbsp;와이어&amp;nbsp;길이,&amp;nbsp;층간&amp;nbsp;저항,&amp;nbsp;캐패시턴스&amp;nbsp;등의&amp;nbsp;물리적&amp;nbsp;특성이&amp;nbsp;포함됩니다. &lt;br /&gt;&lt;br /&gt;2.&amp;nbsp;**보다&amp;nbsp;정밀한&amp;nbsp;타이밍&amp;nbsp;분석**:&amp;nbsp;PrimeTime,&amp;nbsp;Tempus와&amp;nbsp;같은&amp;nbsp;도구들은&amp;nbsp;이제&amp;nbsp;물리적&amp;nbsp;레이아웃&amp;nbsp;정보를&amp;nbsp;반영하여&amp;nbsp;보다&amp;nbsp;정밀한&amp;nbsp;타이밍&amp;nbsp;분석을&amp;nbsp;수행합니다.&amp;nbsp;이&amp;nbsp;과정은&amp;nbsp;실제&amp;nbsp;칩&amp;nbsp;제조&amp;nbsp;과정에서&amp;nbsp;예상되는&amp;nbsp;타이밍&amp;nbsp;지연과&amp;nbsp;다른&amp;nbsp;타이밍&amp;nbsp;관련&amp;nbsp;문제들을&amp;nbsp;정확히&amp;nbsp;모델링하고&amp;nbsp;검증하는&amp;nbsp;데&amp;nbsp;중요합니다. &lt;br /&gt;&lt;br /&gt;3.&amp;nbsp;**SDF&amp;nbsp;파일&amp;nbsp;생성**:&amp;nbsp;이러한&amp;nbsp;정밀한&amp;nbsp;타이밍&amp;nbsp;분석의&amp;nbsp;결과는&amp;nbsp;SDF&amp;nbsp;파일&amp;nbsp;형태로&amp;nbsp;출력됩니다.&amp;nbsp;이&amp;nbsp;SDF&amp;nbsp;파일은&amp;nbsp;시뮬레이션&amp;nbsp;과정에서&amp;nbsp;실제&amp;nbsp;제조&amp;nbsp;공정의&amp;nbsp;조건을&amp;nbsp;반영한&amp;nbsp;타이밍&amp;nbsp;정보를&amp;nbsp;제공하며,&amp;nbsp;설계의&amp;nbsp;타이밍&amp;nbsp;정확성을&amp;nbsp;검증하는&amp;nbsp;데&amp;nbsp;사용됩니다. &lt;br /&gt;&lt;br /&gt;따라서,&amp;nbsp;PrimeTime과&amp;nbsp;Tempus와&amp;nbsp;같은&amp;nbsp;STA&amp;nbsp;도구들은&amp;nbsp;ASIC&amp;nbsp;설계&amp;nbsp;과정의&amp;nbsp;여러&amp;nbsp;단계에서&amp;nbsp;중요한&amp;nbsp;역할을&amp;nbsp;하며,&amp;nbsp;각&amp;nbsp;단계에서의&amp;nbsp;타이밍&amp;nbsp;요구사항에&amp;nbsp;따라&amp;nbsp;다양한&amp;nbsp;방식으로&amp;nbsp;활용됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;gt;&amp;gt;&amp;gt; GDS(Graphic&amp;nbsp;Data&amp;nbsp;System)&amp;nbsp;파일은&amp;nbsp;레이아웃의&amp;nbsp;최종&amp;nbsp;결과물로,&amp;nbsp;칩의&amp;nbsp;물리적&amp;nbsp;구조를&amp;nbsp;나타내는&amp;nbsp;데&amp;nbsp;사용됩니다.&amp;nbsp;그러나&amp;nbsp;GDS&amp;nbsp;파일&amp;nbsp;자체를&amp;nbsp;직접적으로&amp;nbsp;시뮬레이션에&amp;nbsp;사용하는&amp;nbsp;것은&amp;nbsp;일반적인&amp;nbsp;관행이&amp;nbsp;아닙니다.&amp;nbsp;대신,&amp;nbsp;GDS&amp;nbsp;파일에서&amp;nbsp;추출된&amp;nbsp;또는&amp;nbsp;이와&amp;nbsp;관련된&amp;nbsp;데이터를&amp;nbsp;사용하여&amp;nbsp;간접적으로&amp;nbsp;시뮬레이션&amp;nbsp;및&amp;nbsp;검증&amp;nbsp;과정이&amp;nbsp;진행됩니다. &lt;br /&gt;&lt;br /&gt;1.&amp;nbsp;**Post-Simulation**:&amp;nbsp;일반적으로&amp;nbsp;포스트&amp;nbsp;시뮬레이션(Post-Simulation)은&amp;nbsp;물리적&amp;nbsp;설계&amp;nbsp;데이터(예:&amp;nbsp;SDF&amp;nbsp;파일)와&amp;nbsp;논리적&amp;nbsp;설계&amp;nbsp;데이터(예:&amp;nbsp;넷리스트)를&amp;nbsp;기반으로&amp;nbsp;수행됩니다.&amp;nbsp;GDS&amp;nbsp;파일에서&amp;nbsp;직접적으로&amp;nbsp;시뮬레이션을&amp;nbsp;실행하는&amp;nbsp;것은&amp;nbsp;일반적이지&amp;nbsp;않습니다. &lt;br /&gt;&lt;br /&gt;2.&amp;nbsp;**Static&amp;nbsp;Timing&amp;nbsp;Analysis&amp;nbsp;(STA)**:&amp;nbsp;STA&amp;nbsp;과정에서&amp;nbsp;사용되는&amp;nbsp;SDF&amp;nbsp;파일은&amp;nbsp;물리적&amp;nbsp;레이아웃&amp;nbsp;정보(예:&amp;nbsp;배치&amp;nbsp;및&amp;nbsp;배선&amp;nbsp;결과)를&amp;nbsp;기반으로&amp;nbsp;생성됩니다.&amp;nbsp;이&amp;nbsp;정보는&amp;nbsp;GDS&amp;nbsp;파일에&amp;nbsp;포함된&amp;nbsp;데이터를&amp;nbsp;반영하지만,&amp;nbsp;&lt;b&gt;STA는&amp;nbsp;GDS&amp;nbsp;파일&amp;nbsp;자체를&amp;nbsp;사용하지&amp;nbsp;않고,&amp;nbsp;레이아웃&amp;nbsp;과정에서&amp;nbsp;생성된&amp;nbsp;타이밍&amp;nbsp;데이터를&amp;nbsp;사용&lt;/b&gt;합니다. &lt;br /&gt;&lt;br /&gt;3.&amp;nbsp;**GDS&amp;nbsp;기반&amp;nbsp;검증**:&amp;nbsp;GDS&amp;nbsp;파일은&amp;nbsp;주로&amp;nbsp;제조&amp;nbsp;공정을&amp;nbsp;위한&amp;nbsp;데이터로&amp;nbsp;사용됩니다.&amp;nbsp;제조&amp;nbsp;전&amp;nbsp;검증&amp;nbsp;과정에서&amp;nbsp;GDS&amp;nbsp;데이터를&amp;nbsp;기반으로&amp;nbsp;한&amp;nbsp;검증이&amp;nbsp;수행되기는&amp;nbsp;하지만,&amp;nbsp;이는&amp;nbsp;주로&amp;nbsp;물리적&amp;nbsp;검증(DRC,&amp;nbsp;LVS&amp;nbsp;등)에&amp;nbsp;초점을&amp;nbsp;맞추며,&amp;nbsp;전기적&amp;nbsp;성능이나&amp;nbsp;기능적&amp;nbsp;검증에는&amp;nbsp;직접적으로&amp;nbsp;사용되지&amp;nbsp;않습니다. &lt;br /&gt;&lt;br /&gt;결론적으로,&amp;nbsp;GDS&amp;nbsp;파일은&amp;nbsp;시뮬레이션에&amp;nbsp;직접적으로&amp;nbsp;사용되지는&amp;nbsp;않지만,&amp;nbsp;시뮬레이션&amp;nbsp;및&amp;nbsp;STA에서&amp;nbsp;사용되는&amp;nbsp;데이터의&amp;nbsp;생성에&amp;nbsp;간접적으로&amp;nbsp;영향을&amp;nbsp;미칩니다.&amp;nbsp;GDS&amp;nbsp;파일은&amp;nbsp;주로&amp;nbsp;제조&amp;nbsp;공정&amp;nbsp;및&amp;nbsp;물리적&amp;nbsp;레이아웃&amp;nbsp;검증에&amp;nbsp;중요한&amp;nbsp;역할을&amp;nbsp;합니다.&lt;/p&gt;</description>
      <category>ASIC</category>
      <author>epro-asic</author>
      <guid isPermaLink="true">https://asickr.tistory.com/42</guid>
      <comments>https://asickr.tistory.com/42#entry42comment</comments>
      <pubDate>Thu, 21 Dec 2023 12:07:55 +0900</pubDate>
    </item>
    <item>
      <title>Layout 과 GDS</title>
      <link>https://asickr.tistory.com/41</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;ASIC&amp;nbsp;(Application-Specific&amp;nbsp;Integrated&amp;nbsp;Circuit)&amp;nbsp;설계&amp;nbsp;과정에서&amp;nbsp;&quot;Layout&quot;과&amp;nbsp;&quot;GDS&quot;는&amp;nbsp;매우&amp;nbsp;중요한&amp;nbsp;단계&amp;nbsp;및&amp;nbsp;파일&amp;nbsp;형식을&amp;nbsp;나타냅니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;###&amp;nbsp;Layout &lt;br /&gt;-&amp;nbsp;**정의**:&amp;nbsp;ASIC&amp;nbsp;설계에서&amp;nbsp;Layout은&amp;nbsp;실리콘&amp;nbsp;칩&amp;nbsp;상에&amp;nbsp;전자&amp;nbsp;회로의&amp;nbsp;물리적&amp;nbsp;배치를&amp;nbsp;나타냅니다.&amp;nbsp;이것은&amp;nbsp;트랜지스터,&amp;nbsp;저항,&amp;nbsp;전선,&amp;nbsp;그리고&amp;nbsp;기타&amp;nbsp;전자&amp;nbsp;부품들이&amp;nbsp;칩&amp;nbsp;상에서&amp;nbsp;어떻게&amp;nbsp;배치되고&amp;nbsp;연결되는지를&amp;nbsp;상세하게&amp;nbsp;보여줍니다. &lt;br /&gt;-&amp;nbsp;**목적**:&amp;nbsp;Layout은&amp;nbsp;실제&amp;nbsp;제조&amp;nbsp;과정에서&amp;nbsp;칩이&amp;nbsp;어떻게&amp;nbsp;생겨야&amp;nbsp;하는지를&amp;nbsp;결정합니다.&amp;nbsp;이&amp;nbsp;단계에서&amp;nbsp;성능,&amp;nbsp;면적,&amp;nbsp;전력&amp;nbsp;소모,&amp;nbsp;그리고&amp;nbsp;신호&amp;nbsp;무결성&amp;nbsp;등이&amp;nbsp;고려됩니다. &lt;br /&gt;-&amp;nbsp;**도구**:&amp;nbsp;이러한&amp;nbsp;레이아웃은&amp;nbsp;EDA&amp;nbsp;(Electronic&amp;nbsp;Design&amp;nbsp;Automation)&amp;nbsp;도구를&amp;nbsp;사용하여&amp;nbsp;설계되며,&amp;nbsp;매우&amp;nbsp;정밀하고&amp;nbsp;복잡한&amp;nbsp;과정을&amp;nbsp;포함합니다. &lt;br /&gt;&lt;br /&gt;###&amp;nbsp;GDS&amp;nbsp;(Graphic&amp;nbsp;Data&amp;nbsp;System) &lt;br /&gt;-&amp;nbsp;**정의**:&amp;nbsp;GDS는&amp;nbsp;일반적으로&amp;nbsp;&quot;GDSII&quot;라고&amp;nbsp;불리며,&amp;nbsp;반도체&amp;nbsp;업계에서&amp;nbsp;널리&amp;nbsp;사용되는&amp;nbsp;표준&amp;nbsp;CAD&amp;nbsp;파일&amp;nbsp;형식입니다.&amp;nbsp; &lt;br /&gt;-&amp;nbsp;**용도**:&amp;nbsp;이&amp;nbsp;파일&amp;nbsp;형식은&amp;nbsp;반도체&amp;nbsp;또는&amp;nbsp;마이크로일렉트로닉스&amp;nbsp;회로의&amp;nbsp;레이아웃&amp;nbsp;데이터를&amp;nbsp;저장하는&amp;nbsp;데&amp;nbsp;사용됩니다.&amp;nbsp;이것은&amp;nbsp;최종적으로&amp;nbsp;반도체&amp;nbsp;제조&amp;nbsp;공정에&amp;nbsp;사용되는&amp;nbsp;설계의&amp;nbsp;&quot;청사진&quot;&amp;nbsp;역할을&amp;nbsp;합니다. &lt;br /&gt;-&amp;nbsp;**중요성**:&amp;nbsp;GDS&amp;nbsp;파일은&amp;nbsp;설계가&amp;nbsp;제조&amp;nbsp;공정으로&amp;nbsp;넘어갈&amp;nbsp;때&amp;nbsp;필요합니다.&amp;nbsp;이&amp;nbsp;파일은&amp;nbsp;반도체&amp;nbsp;공장에서&amp;nbsp;사용되어&amp;nbsp;실리콘&amp;nbsp;웨이퍼에&amp;nbsp;회로를&amp;nbsp;만드는&amp;nbsp;데&amp;nbsp;사용되는&amp;nbsp;마스크&amp;nbsp;또는&amp;nbsp;포토마스크를&amp;nbsp;생성하는&amp;nbsp;데&amp;nbsp;필요한&amp;nbsp;모든&amp;nbsp;정보를&amp;nbsp;포함하고&amp;nbsp;있습니다. &lt;br /&gt;&lt;br /&gt;이&amp;nbsp;두&amp;nbsp;단계는&amp;nbsp;ASIC&amp;nbsp;설계와&amp;nbsp;제조&amp;nbsp;과정에서&amp;nbsp;핵심적인&amp;nbsp;역할을&amp;nbsp;하며,&amp;nbsp;칩의&amp;nbsp;성능,&amp;nbsp;크기,&amp;nbsp;그리고&amp;nbsp;최종&amp;nbsp;제품의&amp;nbsp;품질에&amp;nbsp;직접적인&amp;nbsp;영향을&amp;nbsp;미칩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;# &lt;span style=&quot;color: #374151; text-align: start;&quot;&gt;ASIC 설계 과정에서 Layout 단계의 최종 결과물 중 하나가 GDSII 파일입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;맞습니다.&amp;nbsp;ASIC&amp;nbsp;설계&amp;nbsp;과정에서&amp;nbsp;Layout&amp;nbsp;단계의&amp;nbsp;최종&amp;nbsp;결과물&amp;nbsp;중&amp;nbsp;하나가&amp;nbsp;GDSII&amp;nbsp;파일입니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;1.&amp;nbsp;**Layout&amp;nbsp;단계**:&amp;nbsp;이&amp;nbsp;단계에서&amp;nbsp;설계자는&amp;nbsp;전자&amp;nbsp;회로의&amp;nbsp;물리적&amp;nbsp;배치를&amp;nbsp;결정합니다.&amp;nbsp;이는&amp;nbsp;트랜지스터,&amp;nbsp;전선,&amp;nbsp;저항&amp;nbsp;등의&amp;nbsp;구성&amp;nbsp;요소가&amp;nbsp;실리콘&amp;nbsp;칩&amp;nbsp;상에&amp;nbsp;어떻게&amp;nbsp;배치되고&amp;nbsp;연결되는지를&amp;nbsp;정의합니다.&amp;nbsp;이&amp;nbsp;과정은&amp;nbsp;성능&amp;nbsp;최적화,&amp;nbsp;면적&amp;nbsp;효율성,&amp;nbsp;전력&amp;nbsp;소비,&amp;nbsp;신호&amp;nbsp;무결성&amp;nbsp;등&amp;nbsp;여러&amp;nbsp;요소를&amp;nbsp;고려하여&amp;nbsp;진행됩니다. &lt;br /&gt;&lt;br /&gt;2.&amp;nbsp;**GDSII&amp;nbsp;파일&amp;nbsp;생성**:&amp;nbsp;Layout&amp;nbsp;과정이&amp;nbsp;완료되면,&amp;nbsp;그&amp;nbsp;결과는&amp;nbsp;GDSII&amp;nbsp;형식의&amp;nbsp;파일로&amp;nbsp;변환됩니다.&amp;nbsp;GDSII는&amp;nbsp;반도체&amp;nbsp;업계에서&amp;nbsp;널리&amp;nbsp;사용되는&amp;nbsp;표준&amp;nbsp;파일&amp;nbsp;형식으로,&amp;nbsp;반도체&amp;nbsp;또는&amp;nbsp;마이크로일렉트로닉스&amp;nbsp;회로의&amp;nbsp;물리적&amp;nbsp;레이아웃&amp;nbsp;데이터를&amp;nbsp;저장하는&amp;nbsp;데&amp;nbsp;사용됩니다. &lt;br /&gt;&lt;br /&gt;3.&amp;nbsp;**제조&amp;nbsp;공정으로의&amp;nbsp;전환**:&amp;nbsp;GDSII&amp;nbsp;파일은&amp;nbsp;반도체&amp;nbsp;제조&amp;nbsp;공정에서&amp;nbsp;사용됩니다.&amp;nbsp;이&amp;nbsp;파일은&amp;nbsp;포토리소그래피&amp;nbsp;과정에서&amp;nbsp;필요한&amp;nbsp;마스크&amp;nbsp;또는&amp;nbsp;포토마스크를&amp;nbsp;생성하는&amp;nbsp;데&amp;nbsp;필요한&amp;nbsp;모든&amp;nbsp;정보를&amp;nbsp;포함하고&amp;nbsp;있으며,&amp;nbsp;이&amp;nbsp;마스크를&amp;nbsp;사용하여&amp;nbsp;실리콘&amp;nbsp;웨이퍼&amp;nbsp;위에&amp;nbsp;미세한&amp;nbsp;회로&amp;nbsp;패턴을&amp;nbsp;만듭니다. &lt;br /&gt;&lt;br /&gt;따라서,&amp;nbsp;GDSII&amp;nbsp;파일은&amp;nbsp;ASIC&amp;nbsp;설계&amp;nbsp;과정에서&amp;nbsp;매우&amp;nbsp;중요한&amp;nbsp;부분으로,&amp;nbsp;설계된&amp;nbsp;회로가&amp;nbsp;실제로&amp;nbsp;제조될&amp;nbsp;수&amp;nbsp;있도록&amp;nbsp;하는&amp;nbsp;중간&amp;nbsp;매개체&amp;nbsp;역할을&amp;nbsp;합니다.&lt;/p&gt;</description>
      <category>ASIC</category>
      <author>epro-asic</author>
      <guid isPermaLink="true">https://asickr.tistory.com/41</guid>
      <comments>https://asickr.tistory.com/41#entry41comment</comments>
      <pubDate>Thu, 21 Dec 2023 12:05:38 +0900</pubDate>
    </item>
    <item>
      <title>ECC 와 CRC</title>
      <link>https://asickr.tistory.com/40</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;ECC&amp;nbsp;(Error-Correcting&amp;nbsp;Code)와&amp;nbsp;CRC&amp;nbsp;(Cyclic&amp;nbsp;Redundancy&amp;nbsp;Check)는&amp;nbsp;데이터의&amp;nbsp;무결성과&amp;nbsp;정확성을&amp;nbsp;보장하는&amp;nbsp;데&amp;nbsp;사용되지만,&amp;nbsp;그들의&amp;nbsp;구현&amp;nbsp;방식에는&amp;nbsp;중요한&amp;nbsp;차이가&amp;nbsp;있습니다: &lt;br /&gt;&lt;br /&gt;1.&amp;nbsp;**ECC의&amp;nbsp;추가&amp;nbsp;비트:** &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;ECC는&amp;nbsp;오류를&amp;nbsp;감지하고&amp;nbsp;정정하기&amp;nbsp;위해&amp;nbsp;&lt;span style=&quot;color: #ee2323;&quot;&gt;추가&amp;nbsp;비트를&amp;nbsp;사용&lt;/span&gt;합니다.&amp;nbsp;이러한&amp;nbsp;비트는&amp;nbsp;원래&amp;nbsp;데이터에&amp;nbsp;첨가되어&amp;nbsp;오류&amp;nbsp;정정&amp;nbsp;코드를&amp;nbsp;형성합니다. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;예를&amp;nbsp;들어,&amp;nbsp;Hamming&amp;nbsp;코드와&amp;nbsp;같은&amp;nbsp;ECC&amp;nbsp;방식은&amp;nbsp;각&amp;nbsp;데이터&amp;nbsp;블록에&amp;nbsp;대해&amp;nbsp;여러&amp;nbsp;오류&amp;nbsp;정정&amp;nbsp;비트를&amp;nbsp;추가합니다.&amp;nbsp;이러한&amp;nbsp;추가&amp;nbsp;비트의&amp;nbsp;수는&amp;nbsp;정정할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;오류의&amp;nbsp;종류와&amp;nbsp;수에&amp;nbsp;따라&amp;nbsp;달라집니다. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;이&amp;nbsp;추가&amp;nbsp;비트는&amp;nbsp;데이터&amp;nbsp;저장&amp;nbsp;공간의&amp;nbsp;효율성을&amp;nbsp;약간&amp;nbsp;감소시킬&amp;nbsp;수&amp;nbsp;있으며,&amp;nbsp;데이터&amp;nbsp;처리에&amp;nbsp;추가적인&amp;nbsp;계산을&amp;nbsp;요구합니다. &lt;br /&gt;&lt;br /&gt;2.&amp;nbsp;**CRC의&amp;nbsp;다항식:** &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;CRC는&amp;nbsp;오류&amp;nbsp;감지를&amp;nbsp;위해&amp;nbsp;데이터에&amp;nbsp;대한&amp;nbsp;다항식&amp;nbsp;연산을&amp;nbsp;수행합니다.&amp;nbsp;이&amp;nbsp;과정에서&amp;nbsp;원본&amp;nbsp;데이터에&amp;nbsp;직접적인&amp;nbsp;추가&amp;nbsp;비트가&amp;nbsp;필요하지&amp;nbsp;않습니다. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;CRC&amp;nbsp;계산은&amp;nbsp;전송하거나&amp;nbsp;저장할&amp;nbsp;데이터&amp;nbsp;블록에&amp;nbsp;대해&amp;nbsp;수행되며,&amp;nbsp;결과값인&amp;nbsp;CRC&amp;nbsp;체크섬은&amp;nbsp;전송되거나&amp;nbsp;저장됩니다. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;CRC&amp;nbsp;체크섬은&amp;nbsp;데이터의&amp;nbsp;무결성을&amp;nbsp;검증하는&amp;nbsp;데&amp;nbsp;사용되지만,&amp;nbsp;데이터&amp;nbsp;자체에는&amp;nbsp;추가&amp;nbsp;비트를&amp;nbsp;삽입하지&amp;nbsp;않습니다.&amp;nbsp;대신,&amp;nbsp;CRC&amp;nbsp;체크섬이&amp;nbsp;별도로&amp;nbsp;저장되거나&amp;nbsp;전송되어야&amp;nbsp;합니다. &lt;br /&gt;&lt;br /&gt;결과적으로,&amp;nbsp;ECC는&amp;nbsp;데이터의&amp;nbsp;정확성과&amp;nbsp;무결성을&amp;nbsp;보장하기&amp;nbsp;위해&amp;nbsp;데이터&amp;nbsp;자체에&amp;nbsp;추가&amp;nbsp;비트를&amp;nbsp;요구하는&amp;nbsp;반면,&amp;nbsp;CRC는&amp;nbsp;데이터에&amp;nbsp;추가&amp;nbsp;비트를&amp;nbsp;삽입하지&amp;nbsp;않고&amp;nbsp;오류&amp;nbsp;감지를&amp;nbsp;위한&amp;nbsp;체크섬을&amp;nbsp;생성합니다.&amp;nbsp;ECC는&amp;nbsp;오류&amp;nbsp;정정&amp;nbsp;능력을&amp;nbsp;제공하지만&amp;nbsp;추가&amp;nbsp;저장&amp;nbsp;공간을&amp;nbsp;필요로&amp;nbsp;하며,&amp;nbsp;CRC는&amp;nbsp;더&amp;nbsp;적은&amp;nbsp;리소스를&amp;nbsp;사용하여&amp;nbsp;오류를&amp;nbsp;감지하지만&amp;nbsp;정정은&amp;nbsp;할&amp;nbsp;수&amp;nbsp;없습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #0f0f0f; text-align: start;&quot;&gt;#Q. 64bit 512depth 의 SRAM 에 대해서 ECC 와 CRC를 모두 적용한다는 것은, 결국 64비트를 읽고 쓸때는 ECC 로 체크하고, 최종 모든 데이터 64x512 bit 의 전송이 끝나면, 전체 데이터의 무결성을 CRC 로 체크한다고 보면 되는거지?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네,&amp;nbsp;맞습니다.&amp;nbsp;64비트&amp;nbsp;데이터&amp;nbsp;폭과&amp;nbsp;512&amp;nbsp;깊이(depth)를&amp;nbsp;가진&amp;nbsp;SRAM에&amp;nbsp;ECC와&amp;nbsp;CRC를&amp;nbsp;모두&amp;nbsp;적용하는&amp;nbsp;경우,&amp;nbsp;각각의&amp;nbsp;기술은&amp;nbsp;다음과&amp;nbsp;같은&amp;nbsp;역할을&amp;nbsp;합니다: &lt;br /&gt;&lt;br /&gt;1.&amp;nbsp;**ECC&amp;nbsp;(Error-Correcting&amp;nbsp;Code)&amp;nbsp;적용:** &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;64비트&amp;nbsp;데이터를&amp;nbsp;읽거나&amp;nbsp;쓸&amp;nbsp;때마다&amp;nbsp;ECC를&amp;nbsp;사용하여&amp;nbsp;오류를&amp;nbsp;감지하고&amp;nbsp;정정합니다. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;각&amp;nbsp;64비트&amp;nbsp;데이터&amp;nbsp;블록에&amp;nbsp;대해,&amp;nbsp;ECC는&amp;nbsp;메모리&amp;nbsp;내에서&amp;nbsp;발생할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;단일&amp;nbsp;비트&amp;nbsp;오류&amp;nbsp;또는&amp;nbsp;이중&amp;nbsp;비트&amp;nbsp;오류를&amp;nbsp;감지하고,&amp;nbsp;가능한&amp;nbsp;경우에는&amp;nbsp;이를&amp;nbsp;정정합니다. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;ECC는&amp;nbsp;실시간으로&amp;nbsp;작동하며,&amp;nbsp;데이터가&amp;nbsp;메모리에서&amp;nbsp;읽히거나&amp;nbsp;쓰여질&amp;nbsp;때마다&amp;nbsp;활성화됩니다. &lt;br /&gt;&lt;br /&gt;2.&amp;nbsp;**CRC&amp;nbsp;(Cyclic&amp;nbsp;Redundancy&amp;nbsp;Check)&amp;nbsp;적용:** &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;전체&amp;nbsp;메모리&amp;nbsp;블록(이&amp;nbsp;경우&amp;nbsp;64x512비트)의&amp;nbsp;데이터에&amp;nbsp;대한&amp;nbsp;CRC&amp;nbsp;계산을&amp;nbsp;수행하여,&amp;nbsp;데이터&amp;nbsp;블록의&amp;nbsp;무결성을&amp;nbsp;검증합니다. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;메모리&amp;nbsp;블록의&amp;nbsp;전체&amp;nbsp;데이터가&amp;nbsp;전송되거나&amp;nbsp;저장된&amp;nbsp;후,&amp;nbsp;CRC를&amp;nbsp;사용하여&amp;nbsp;전체&amp;nbsp;데이터가&amp;nbsp;올바르게&amp;nbsp;전송되었거나&amp;nbsp;저장되었는지&amp;nbsp;확인합니다. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;-&amp;nbsp;CRC는&amp;nbsp;오류를&amp;nbsp;감지하지만,&amp;nbsp;오류를&amp;nbsp;정정할&amp;nbsp;수는&amp;nbsp;없습니다.&amp;nbsp;오류가&amp;nbsp;감지되면,&amp;nbsp;시스템은&amp;nbsp;데이터를&amp;nbsp;다시&amp;nbsp;전송하거나&amp;nbsp;복구하는&amp;nbsp;외부&amp;nbsp;메커니즘에&amp;nbsp;의존해야&amp;nbsp;합니다. &lt;br /&gt;&lt;br /&gt;따라서,&amp;nbsp;SRAM에서&amp;nbsp;ECC는&amp;nbsp;각&amp;nbsp;64비트&amp;nbsp;데이터&amp;nbsp;읽기/쓰기&amp;nbsp;동작에&amp;nbsp;대한&amp;nbsp;실시간&amp;nbsp;오류&amp;nbsp;감지&amp;nbsp;및&amp;nbsp;정정에&amp;nbsp;사용되며,&amp;nbsp;CRC는&amp;nbsp;전체&amp;nbsp;메모리&amp;nbsp;블록의&amp;nbsp;무결성을&amp;nbsp;확보하는&amp;nbsp;데&amp;nbsp;사용됩니다.&amp;nbsp;이렇게&amp;nbsp;함으로써&amp;nbsp;데이터의&amp;nbsp;정확성과&amp;nbsp;무결성이&amp;nbsp;모두&amp;nbsp;보장됩니다.&amp;nbsp;이러한&amp;nbsp;접근&amp;nbsp;방식은&amp;nbsp;특히&amp;nbsp;신뢰성이&amp;nbsp;중요한&amp;nbsp;시스템에서&amp;nbsp;중요할&amp;nbsp;수&amp;nbsp;있습니다.&lt;/p&gt;</description>
      <category>Memory</category>
      <author>epro-asic</author>
      <guid isPermaLink="true">https://asickr.tistory.com/40</guid>
      <comments>https://asickr.tistory.com/40#entry40comment</comments>
      <pubDate>Thu, 14 Dec 2023 14:15:07 +0900</pubDate>
    </item>
    <item>
      <title>systemverilog 인자의 갯수를 variable 하게 넣는 방법.</title>
      <link>https://asickr.tistory.com/39</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;write(addr,wcnt,wdata0,wdata1,wdata2);&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처럼 write 할때, 주소와 wcnt 를 뒤에 따라오는 wdata0,w,data1 등의 갯수만큼 넣어 준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단, 아래처럼 최대로 wcnt 할 수 있는 갯수의 데이타를 초기값을 할당한 상태로 지정해 준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;task write(input addr, input [7:0] wcnt, input [31:0] wdata0 = 0 , wdata1 = 0, wdata2 = 0, wdata3 = 0, ..., wdata255 = 0);&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;logic [8*256-1:0] wdata_all;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;wdata_all = {wdata255, .... , wdata1, wdata0 };&amp;nbsp; // 일단, 데이터들을 모두 모으고,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8bit 씩 write 하는 task를 따로 만들어 두고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;for(int i =0; i&amp;lt;wcnt+1); i++) begin&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; byte_wrtie( &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;wdata_all&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; &amp;gt;&amp;gt;(i*8) &amp;amp; 8'hFF);&amp;nbsp; // 이렇게 wcnt 만큼 회전하면서, byte_write를 진행한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;end&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 외부에서 사용하는 task 자체는 wcnt, wdata 갯수만 필요한 만큼 지정해서 사용하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;--------&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #374151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;SystemVerilog에서는 C 언어의 stdarg.h에 해당하는 가변 인자 리스트를 직접 지원하지 않습니다. 즉, C 언어에서처럼 va_list, va_start, va_arg, va_end 같은 매크로를 사용하여 가변 인자를 처리하는 기능은 SystemVerilog에 내장되어 있지 않습니다.&lt;/p&gt;
&lt;p style=&quot;color: #374151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;SystemVerilog는 하드웨어 설계와 검증을 위한 언어로, 그 특성상 하드웨어의 신호나 행동을 모델링하는 데 초점을 맞추고 있습니다. 이 때문에, C 언어의 일부 고급 프로그래밍 기능들, 특히 메모리 관리나 가변 인자 리스트와 같은 기능들은 SystemVerilog에서 직접적으로 지원되지 않습니다.&lt;/p&gt;
&lt;p style=&quot;color: #374151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;만약 SystemVerilog에서 여러 개의 다른 인자를 처리해야 하는 상황이 있다면, 일반적으로 배열, 구조체(struct), 또는 클래스를 사용하여 이를 구현합니다. 예를 들어, 여러 개의 값을 처리해야 하는 경우, 이 값들을 배열로 전달하고, 배열의 크기를 인자로 함께 전달하는 방법이 사용될 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;color: #374151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #374151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;task&amp;nbsp;process_values(input&amp;nbsp;int&amp;nbsp;values[],&amp;nbsp;input&amp;nbsp;int&amp;nbsp;size); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;배열&amp;nbsp;values[]에&amp;nbsp;대한&amp;nbsp;처리&amp;nbsp;로직 &lt;br /&gt;endtask&lt;/p&gt;
&lt;p style=&quot;color: #374151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #374151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이 방법은 C 언어의 가변 인자 리스트와 같은 유연성은 제공하지 않지만, SystemVerilog의 사용 목적과 맥락에 적합한 대안을 제공합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>SystemVerilog</category>
      <author>epro-asic</author>
      <guid isPermaLink="true">https://asickr.tistory.com/39</guid>
      <comments>https://asickr.tistory.com/39#entry39comment</comments>
      <pubDate>Thu, 14 Dec 2023 08:21:15 +0900</pubDate>
    </item>
    <item>
      <title>Scan(LBIST)란 무엇일까? (what is scan in vlsi, occ, atpg, SA, TD, PLL, At-speed)</title>
      <link>https://asickr.tistory.com/38</link>
      <description>&lt;h3 style=&quot;background-color: #fafafa; color: #333333; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;- SCAN -&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- LBIST라고도 하며 MBIST가 memory test를 위한 logic 이였다면 sacn은 logic test를 위한 logic입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- Logic test는 Stuck-at Faults와 Transition Delay를 test 하기 위한 방법입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;rarr; Test pattern을 사용하여 나오는 결괏값을 golden output이랑 비교하며 진행합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;SCAN의 구성요소&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;Scan Flip-Flop&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- Flip-Flop 앞에 MUX를 연결하여 scan enable 신호를 control 할 수 있게 만든 Flip-Flop&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;Scan chain&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- Scan Flip-Flop를 shift register처럼 serial로 묶어 놓은 것&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;Scan compressor&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- Scan chain을 짧게 병렬로 연결한 것&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;rarr; Scan chain에 비해 cell을 짧게 연결하여 test에 필요한 pattern을 줄일 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;rarr;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;Scan chain에 비해 cell을 많이 연결할 수 있습니다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;SCAN 진행&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;PLL&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- Input과 output의 주파수의 위상을 동일하게 유지시키고 주파수 증폭시켜주는 역할을 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;OCC&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- OCC란 ATE에서 clock을 제어하기 위해 삽입된 logic입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;* ATE : 외부 테스트 장치&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;ATPG&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- Logic을 test 할 때 사용 되는 pattern을 자동으로 만들어 주는 것&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;rarr; Logic을 test 할 때 input을 넣어 결괏값을 비교합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;rarr; 이때 test pattern 또는 test vector를 input으로 사용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;rarr; 이 test vector를 자동으로 만드는 것이 ATPG입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;At speed test&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 실제 logic의 동작 속도와 같은 clock으로 test 하는 것을 의미합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;rarr; Test를 할 때 느린 clock으로 test를 하기 때문에&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; combinational logic을 테스트하는 순간에만(capture) at speed clock을 넣어줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; (Transition Delay를 test 할 때 사용)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;느린 clock으로 test 하는 이유&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 고성능 ATE는 비용이 많이 들기 때문에 느린 ATE를 사용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;SA &amp;amp; TD&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;Stuck-at Faults&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- Input이 output에 영향을 미치지 못하고 출력이 고정되는 오류입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;Transition Delay&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 전환 지연 오류, 즉 clock이 밀려서(필요보다 늦게) 뜨는 경우입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;Transition delay test&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 전환 지연 오류 테스트 방법&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;rarr; Scan enable의 값에 1을 넣어 test pattern을 넣어줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;rarr; Pattern이 모두 들어가면 scan enable에 0을 넣어 at-speed로 만들어 줍니다. (capture)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;rarr; Capture를 하게 되면 scan F/F에 쌓이던 pattern이 combination logic으로 들어가게 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;rarr; 이 후 다시 scan enable에1을 넣어 combination logic에 있던 결과 값을 output으로 얻어냅니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;</description>
      <category>ASIC</category>
      <author>epro-asic</author>
      <guid isPermaLink="true">https://asickr.tistory.com/38</guid>
      <comments>https://asickr.tistory.com/38#entry38comment</comments>
      <pubDate>Wed, 22 Nov 2023 08:23:34 +0900</pubDate>
    </item>
    <item>
      <title>메모리 반도체의 종류 (What is semiconductor memory?)</title>
      <link>https://asickr.tistory.com/37</link>
      <description>&lt;h3 style=&quot;background-color: #fafafa; color: #333333; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;a href=&quot;https://asjoon.tistory.com/25&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://asjoon.tistory.com/25&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h3 style=&quot;background-color: #fafafa; color: #333333; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;- 메모리 반도체란? -&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;전기적으로 반도체 회로를 제어하여 데이터를 저장하는 반도체&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;ROM(Read Only Memory)&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;b&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;: 비휘발성 메모리. 전원이 꺼져도 저장된 데이터가 사라지지 않는 메모리&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Mask ROM&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;: 메모리를 제조하는 과정에서 데이터를 미리 저장시켜 사용자가 내용을 변경할 수 없는 ROM&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 저장된 내용을 조금이라도 바꾸려면 다시 제작해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 대량생산을 하게 되면 비교적 가격이 저렴합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 따라서 내용을 바꿀 일이 없고 대량생산이 필요한 곳에 사용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;-&amp;gt; 비디오카드, 프린터의 폰트, 키보드 바이어스 등&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;OTPROM(One time Programmable ROM)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;: 1번만 프로그래밍이 가능한 ROM&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 데이터가 없는 상태로 제작되어 사용자가 내용을 써넣을 수 있도록 만들었습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 한 번만 수정이 가능하기 때문에 내용을 잘못 썼다면 chip 자체를 버려야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 센서, 암호화 키 등에 사용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;EPROM(Erasable PROM)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;: 저장된 데이터를 지우고, 다시 쓸 수 있는 ROM&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;-&amp;gt; 데이터를 지우는 방식에 따라 EEPROM과 UVEPROM으로 나뉘게 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;UVEPROM(Ultra-Violet EPROM)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;: 자외선을 이용하여 데이터를 지울 수 있는 EPROM&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- EEPROM에 비해 가격이 저렴하고 쓰기/지우기 속도가 빠릅니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 자외선을 이용하는 방법의 번거로움 때문에 현재는 거의 사용하지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;EEPROM(Electrically Erasable PROM)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;: 고전압을 이용하여 데이터를 지울 수 있는 EPROM&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 한 번에 1byte씩만 지울 수 있기 때문에 비교적 느립니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;-&amp;gt; 메인 메모리로 사용되는 것이 아닌 데이터를 백업하는 데 사용하는 것이 효율적입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 데이터 재기록을 반복하다 보면 절연층이 손상될 수 있기 때문에 영구적으로 가능하지는 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- UVEPROM에 비해 가격이 비싸고 쓰기/지우기 속도가 느립니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;RAM(Random Access Memory)&lt;/span&gt;&lt;/b&gt;&lt;/u&gt;&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;: 휘발성 메모리. 전원이 꺼지면 저장된 데이터가 사라지는 메모리&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;SRAM(Static RAM)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;: 정적 메모리. flip flop 방식을 사용하는 RAM&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- flip flop을 사용하기 때문에 전원이 공급되는 한 저장된 데이터가 사라지지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 쓰기/지우기 속도가 빠릅니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 회로가 복잡하고 가격이 비쌉니다&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 메모리 용량이 작습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 속도는 빠르지만 용량이 작기 때문에 CPU의 캐시메모리와 같이 속도가 중요한 곳에 사용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;DRAM(Dtnamic RAM)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;: 동적 메모리. capacitor를 사용하는 RAM&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- capacitor는 시간이 지남에 따라 스스로 방전되기 때문에 전력이 계속 공급되더라도 시간이 지나면 저장된 데이터가 사라집니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;-&amp;gt; 저장된 데이터를 유지하기 위해 일정 시간마다 refresh 회로에 refresh 신호를 줘야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (빠져나간 전하를 채우는 과정)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 회로가 단순하고 가격이 저렴합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 메모리 용량이 큽니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 속도는 느리지만 용량이 크기 때문에 컴퓨터, 핸드폰의 메모리와 같이 일반적인 데이터를 저장하는 곳에 사용됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;SDRAM(Synchronous DRAM)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;: DRAM에 clock pulse를 동기화 시킨 RAM&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 시스템 clock에 맞게 메모리를 동작 시킬 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 1 clock 당 1개의 데이터를 쓰거나 지우는 구조로 되어있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;DDR SDRAM(Double Data Rate SDRAM)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;: SDRAM보다 2배 빠르게 동작하는 RAM&lt;/span&gt;&lt;/p&gt;</description>
      <category>Memory</category>
      <author>epro-asic</author>
      <guid isPermaLink="true">https://asickr.tistory.com/37</guid>
      <comments>https://asickr.tistory.com/37#entry37comment</comments>
      <pubDate>Wed, 22 Nov 2023 08:12:21 +0900</pubDate>
    </item>
    <item>
      <title>BIST, BIRA, BISR란? (MBIST,DFT, what is BIST in vlsi?)</title>
      <link>https://asickr.tistory.com/36</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://asjoon.tistory.com/14&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://asjoon.tistory.com/14&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1700608197527&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;BIST, BIRA, BISR란? (MBIST,DFT, what is BIST in vlsi?)&quot; data-og-description=&quot;- MBIST - - 반도체 기술이 발전할수록 chip의 memory와 logic의 수가 증가하고 있습니다. &amp;rarr; 이로 인해 memory test를 진행하는 데 있어서 많은 시간과 비용이 들어가게 됩니다. &amp;rarr; 이러한 문제를 해결하기&quot; data-og-host=&quot;asjoon.tistory.com&quot; data-og-source-url=&quot;https://asjoon.tistory.com/14&quot; data-og-url=&quot;https://asjoon.tistory.com/14&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cALDKy/hyUB9UBQLq/SVcGFBlgrKakQtqDfNGF70/img.png?width=677&amp;amp;height=450&amp;amp;face=0_0_677_450,https://scrap.kakaocdn.net/dn/Ikws2/hyUyro55fd/bVErGkKekkAK0C4BPf7Um0/img.png?width=677&amp;amp;height=450&amp;amp;face=0_0_677_450,https://scrap.kakaocdn.net/dn/p9nua/hyUyrCDcic/gt7Ie12WufFuW6ThQLg521/img.png?width=736&amp;amp;height=378&amp;amp;face=0_0_736_378&quot;&gt;&lt;a href=&quot;https://asjoon.tistory.com/14&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://asjoon.tistory.com/14&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cALDKy/hyUB9UBQLq/SVcGFBlgrKakQtqDfNGF70/img.png?width=677&amp;amp;height=450&amp;amp;face=0_0_677_450,https://scrap.kakaocdn.net/dn/Ikws2/hyUyro55fd/bVErGkKekkAK0C4BPf7Um0/img.png?width=677&amp;amp;height=450&amp;amp;face=0_0_677_450,https://scrap.kakaocdn.net/dn/p9nua/hyUyrCDcic/gt7Ie12WufFuW6ThQLg521/img.png?width=736&amp;amp;height=378&amp;amp;face=0_0_736_378');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;BIST, BIRA, BISR란? (MBIST,DFT, what is BIST in vlsi?)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;- MBIST - - 반도체 기술이 발전할수록 chip의 memory와 logic의 수가 증가하고 있습니다. &amp;rarr; 이로 인해 memory test를 진행하는 데 있어서 많은 시간과 비용이 들어가게 됩니다. &amp;rarr; 이러한 문제를 해결하기&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;asjoon.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h3 style=&quot;background-color: #fafafa; color: #333333; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;MBIST -&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 반도체 기술이 발전할수록 chip의 memory와 logic의 수가 증가하고 있습니다.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;rarr; 이로 인해 memory test를 진행하는 데 있어서 많은 시간과 비용이 들어가게 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;rarr; 이러한 문제를 해결하기 위해 내장 test 방법인 BIST를 사용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;rarr; 그중 memory를 test 하는 것이 MBIST입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;MBIST(Memory Built-In Self-Test)?&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- Built-in이라는 단어를 보면 유추할 수 있듯 chip 내부에 memory를 test 하기 위한 test logic을 삽입하는 방법으로&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;현재 할 수 있는 memory test 방법 중 가장 효율이 높은 방법입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;MBIST 장점&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 실제 동작 속도와 같은 속도의 clock으로 test 할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 외부 장치를 이용한 test 보다 비용이 저렴합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- Test 시간을 줄일 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- Memory를 병렬로 test 할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 필드 (실제 chip을 사용하는 곳)에서도 사용이 가능합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;MBIST logic 구성 요소&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- Test pattern을 생성할 수 있는 logic&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- Test pattern의 input에 대한 결과와 결함이 없을 경우 나와야 하는 결과가 일치하는지 판단하는 logic&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;rarr; 즉, memory의 결함 여부를 스스로 판단할 수 있는 기능이 있어야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;378&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GIfyJ/btsAJeBXmFn/TAaUAnmkL7aclEI5HGGM91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GIfyJ/btsAJeBXmFn/TAaUAnmkL7aclEI5HGGM91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GIfyJ/btsAJeBXmFn/TAaUAnmkL7aclEI5HGGM91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGIfyJ%2FbtsAJeBXmFn%2FTAaUAnmkL7aclEI5HGGM91%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;569&quot; height=&quot;378&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;378&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span data-alt=&quot;MBIST logic&quot; data-lightbox=&quot;lightbox&quot; data-url=&quot;https://blog.kakaocdn.net/dn/ZSGgc/btrywxxx1dO/gAGcXqrRgB6lTiqdItCBA0/img.png&quot;&gt;&lt;/span&gt;MBIST logic&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;Test Controller&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- MBIST 검사를 제어하는 logic&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;Pattern Generator&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- Test 모드일 때, MBIST 검사에 사용할 test pattern&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;Comparator&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- Test를 위해 나온 output(read data)과 결함이 없을 경우 나오는 output(golden data)이 같은 지 확인하는 logic&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;CUT (Circuit under test)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- Test 중인 memory&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;Generator&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;-&amp;nbsp; pattern generator는 두 가지로 구성됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Address generator : Test 할 memory의 address를 지정해 줍니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Data generator : 0과 1로 이루어진 test pattern을 만들어 줍니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;662&quot; data-origin-height=&quot;371&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cHdqi8/btsAJB4LcZA/PBi4xMhfzRciiFHItlh1b0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cHdqi8/btsAJB4LcZA/PBi4xMhfzRciiFHItlh1b0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cHdqi8/btsAJB4LcZA/PBi4xMhfzRciiFHItlh1b0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHdqi8%2FbtsAJB4LcZA%2FPBi4xMhfzRciiFHItlh1b0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;510&quot; height=&quot;286&quot; data-origin-width=&quot;662&quot; data-origin-height=&quot;371&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span data-alt=&quot;pattern generator&quot; data-lightbox=&quot;lightbox&quot; data-url=&quot;https://blog.kakaocdn.net/dn/DbvrF/btryxrDB0W0/WP1LVyUmIGu0KyqkAfVQrk/img.png&quot;&gt;&lt;/span&gt;pattern generator&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #fafafa; color: #333333; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;- BIRA &amp;amp; BISR -&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- BIST가 결함 여부만을 알려주었다면 결함을 고칠 수 있는지에 대한 여부와&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; 실제로 해당 cell을 고쳐주는 BIRA, BISR가 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;Memory를 고쳐서 사용하는 이유?&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- 몇 개의 cell 때문에 memory를 버리게 되면 비용적인 문제가 발생하기 때문입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;BIRA(Built-In Redundancy Analysis)?&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;BIST에서 얻은 결함 정보를 통해 다음을 판단합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;rarr; Redundancy cell로 교체가 가능한지&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;rarr; 고장 난 cell의 address가 어딘지&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;rarr; 교체가 가능하다면 어떻게 Redundancy cell을 배치할 것인지&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Redundancy cell : 직역하면 여분 cell로, memory를 고칠 수 있게 내장되어 있는 여분의 cell&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;BISR(Built-In Self-Repair)?&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;- BIRA를 통해 얻은 재배치 정보를 이용하여 고장 난 cell을 Redundancy cell로 대체 하는 것.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;rarr; Built-In Self-Repair결함 정보를 OTP(One Time Programing)에 저장한 후&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 전원이 켜지면 OTP가 고장 난 cell을 수리합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>ASIC</category>
      <author>epro-asic</author>
      <guid isPermaLink="true">https://asickr.tistory.com/36</guid>
      <comments>https://asickr.tistory.com/36#entry36comment</comments>
      <pubDate>Wed, 22 Nov 2023 08:11:00 +0900</pubDate>
    </item>
  </channel>
</rss>