led显示(动态扫描方式)的vhdl实现 - arm-嵌入式系统设计 - cbqcgq - 和讯博客.htm

来自「vhdl 交通灯 发觉 发酒疯机关炮高风亮节」· HTM 代码 · 共 391 行 · 第 1/2 页

HTM
391
字号
	        }
	    }
	    else
	    {
	        if(wordpt < 36)
	        {
	            wordpt = wordpt + 2;
	        }
	    }
	    var temp = eval(wordpt);
	    temp = temp + "px";
	    document.getElementById('BlogArticleDetail').style.fontSize = temp ;
	}
</script>
	<div id="BlogPageRight" class="right_side_2_inner">
<!--  文章内容:开始  -->
			<div class="Article" id="ArticeTextID">
								
			<div class="ArticleTitle"><span class="ArticleTitleText">LED显示(动态扫描方式)的vhdl实现</span>
           [转贴 2007-03-28 00:36:58 ]
           发表者: cbqcgq
					 <a href='http://post.blog.hexun.com/cbqcgq/postarticle.aspx?articleid=8473102' title="编辑..."><img id="idIconEdit" src="http://blog.hexun.com/images/icon_edit.gif" border="0"></a>&nbsp;<a href='http://blog.hexun.com/cbqcgq/deletearticle.aspx?articleid=8473102' target="_blank" title="删除..." onclick="return isDel();"><img id="idIconDel" src="http://blog.hexun.com/images/icon_del.gif" border="0"></a>&nbsp;</div>
					 
           <div class="ArticleBlog">
				<div class="ArticleBlogText">
				<div align=right><img src="http://blog.hexun.com/img/xiao.gif" onclick="javascript:changeStyle(0);" alt="字体变小" style="cursor:hand;" />  <img src="http://blog.hexun.com/img/da.gif" onclick="javascript:changeStyle(1);" alt="字体变大" style="cursor:hand;" /></div>
				<div id="BlogArticleDetail" style="font-size:14px;"><P>----------------**********************程序段*************************----------------</P>
<P>&nbsp;</P>
<P>library IEEE;<BR>use IEEE.STD_LOGIC_1164.ALL;<BR>use IEEE.STD_LOGIC_ARITH.ALL;<BR>use IEEE.STD_LOGIC_UNSIGNED.ALL;</P>
<P>---- Uncomment the following library declaration if instantiating<BR>---- any Xilinx primitives in this code.<BR>---- library UNISIM;<BR>---- use UNISIM.VComponents.all;</P>
<P>entity dynamic is <BR>&nbsp;Port ( clk,reset: in std_logic;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; din1 : in std_logic_vector(6 downto 0);--译码后的数据信号1&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; din2 : in std_logic_vector(6 downto 0); --译码后的数据信号2<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; din3 : in std_logic_vector(6 downto 0); --译码后的数据信号3<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; din4 : in std_logic_vector(6 downto 0); --译码后的数据信号4<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; shift: out std_logic_vector(3 downto 0);&nbsp;--位选信号<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bus4 : out std_logic_vector(6 downto 0)); --数据信号<BR>end dynamic;</P>
<P>architecture Behavioral of dynamic is<BR>signal scan_clk:std_logic_vector(1 downto 0);<BR>begin<BR>&nbsp;process(clk,scan_clk,reset)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --分频进程<BR>&nbsp;variable scan:std_logic_vector(17 downto 0);<BR>&nbsp;begin<BR>&nbsp;&nbsp;&nbsp;if reset='1' then scan:="000000000000000000";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;scan_clk&lt;="00";<BR>&nbsp;&nbsp;&nbsp;elsif clk'event and clk='1'then scan:=scan+1;<BR>&nbsp;&nbsp;&nbsp;end if;<BR>-- scan_clk&lt;=scan(1 downto 0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --this line for simulation<BR>&nbsp;&nbsp;&nbsp;scan_clk&lt;=scan(17 downto 16)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --work on 100MHz CLOCK<BR>&nbsp;end process; </P>
<P>&nbsp;process(scan_clk,din1,din2,din3,din4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --扫描进程<BR>&nbsp;begin<BR>&nbsp;&nbsp; &nbsp;&nbsp;case scan_clk is<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;when "00"=&gt; bus4&lt;=din1;shift&lt;="0001";<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;when "01"=&gt;bus4&lt;=din2;shift&lt;="0010";<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;when "10"=&gt;bus4&lt;=din3;shift&lt;="0100";<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;when "11"=&gt;bus4&lt;=din4;shift&lt;="1000";<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;when others=&gt; bus4&lt;="0000000";shift&lt;="0000";<BR>&nbsp; &nbsp;&nbsp;end case;<BR>&nbsp;end process;&nbsp; <BR>end Behavioral;&nbsp; </P>
<P>----------------********************************************************--------------------</P>
<P>----------------************testbanch.vhd*******************************--------------------</P>
<P>LIBRARY ieee;<BR>USE ieee.std_logic_1164.ALL;<BR>USE ieee.std_logic_unsigned.all;<BR>USE ieee.numeric_std.ALL;</P>
<P>ENTITY LED_dynamic_show_tb_vhd IS<BR>END LED_dynamic_show_tb_vhd;</P>
<P>ARCHITECTURE behavior OF LED_dynamic_show_tb_vhd IS </P>
<P>&nbsp;-- Component Declaration for the Unit Under Test (UUT)<BR>&nbsp;COMPONENT dynamic<BR>&nbsp;PORT(clk : IN std_logic;<BR>&nbsp; &nbsp;&nbsp;reset : IN std_logic;<BR>&nbsp; &nbsp;&nbsp;din1 : IN std_logic_vector(6 downto 0);<BR>&nbsp; &nbsp;&nbsp;din2 : IN std_logic_vector(6 downto 0);<BR>&nbsp; &nbsp;&nbsp;din3 : IN std_logic_vector(6 downto 0);<BR>&nbsp; &nbsp;&nbsp;din4 : IN std_logic_vector(6 downto 0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp; &nbsp;&nbsp;shift : OUT std_logic_vector(3 downto 0);<BR>&nbsp; &nbsp;&nbsp;bus4 : OUT std_logic_vector(6 downto 0));<BR>&nbsp;&nbsp;END COMPONENT;</P>
<P>&nbsp;--Inputs<BR>&nbsp;&nbsp;SIGNAL clk :&nbsp; std_logic := '0';<BR>&nbsp;&nbsp;SIGNAL reset :&nbsp; std_logic := '0';<BR>&nbsp;&nbsp;SIGNAL din1 :&nbsp; std_logic_vector(6 downto 0) := (others=&gt;'0');<BR>&nbsp;&nbsp;SIGNAL din2 :&nbsp; std_logic_vector(6 downto 0) := (others=&gt;'0');<BR>&nbsp;&nbsp;SIGNAL din3 :&nbsp; std_logic_vector(6 downto 0) := (others=&gt;'0');<BR>&nbsp;&nbsp;SIGNAL din4 :&nbsp; std_logic_vector(6 downto 0) := (others=&gt;'0');</P>
<P>&nbsp;--Outputs<BR>&nbsp;&nbsp;SIGNAL shift :&nbsp; std_logic_vector(3 downto 0);<BR>&nbsp;&nbsp;SIGNAL bus4 :&nbsp; std_logic_vector(6 downto 0);<BR>&nbsp;&nbsp;constant PERIOD : time := 10 ns;</P>
<P>BEGIN</P>
<P>&nbsp;-- Instantiate the Unit Under Test (UUT)<BR>&nbsp;uut: dynamic <BR>&nbsp;&nbsp;PORT MAP(clk =&gt; clk,<BR>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;reset =&gt; reset,<BR>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;din1 =&gt; din1,<BR>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;din2 =&gt; din2,<BR>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;din3 =&gt; din3,<BR>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;din4 =&gt; din4,<BR>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;shift =&gt; shift,<BR>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;bus4 =&gt; bus4);<BR>&nbsp;&nbsp; &nbsp;<BR>&nbsp;clk100MHz : PROCESS (clk)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BEGIN<BR>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clk &lt;= not clk after PERIOD/2;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;END PROCESS;</P>
<P>&nbsp;<BR>&nbsp;&nbsp;tb : &nbsp;&nbsp;PROCESS<BR>&nbsp;&nbsp;&nbsp;&nbsp;BEGIN<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;wait for 100 ns;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;reset &lt;= '1' ;<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait for 100 ns;<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reset &lt;= '0';<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;wait for 5.5*PERIOD;<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;if (reset = '0') then<BR>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;report "Reset is deasserted...";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;end if;</P>
<P>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (reset = '0') then<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;din1&lt;="0000001";<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;din2&lt;="0000010";<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;din3&lt;="0000100";<BR>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;din4&lt;="0001000";<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;end if;<BR>&nbsp;&nbsp; <BR>&nbsp; -- Wait 100 ns for global reset to finish<BR>&nbsp; -- Place stimulus here<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait; -- will wait forever<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;END PROCESS;</P>
<P>END;</P>
<P>----------------********************************************************--------------------</P></div>
				</div>
				
				<div class="ArticleTag">
				标签:
				
						<a href="http://blog.hexun.com/group/commontag.aspx?tagid=430548" target="_blank">VHDL</A>&nbsp;<a href="http://bar.hexun.com/t/430548.html" target="_blank"><img src="http://bar.hexun.com/img/tb_t.gif" alt="进入VHDL吧" border="0" /></a>&nbsp;&nbsp;
					
						<a href="http://blog.hexun.com/group/commontag.aspx?tagid=287080" target="_blank">EDA</A>&nbsp;<a href="http://bar.hexun.com/t/287080.html" target="_blank"><img src="http://bar.hexun.com/img/tb_t.gif" alt="进入EDA吧" border="0" /></a>&nbsp;&nbsp;
					
						<a href="http://blog.hexun.com/group/commontag.aspx?tagid=502134" target="_blank">显示屏</A>&nbsp;<a href="http://bar.hexun.com/t/502134.html" target="_blank"><img src="http://bar.hexun.com/img/tb_t.gif" alt="进入显示屏吧" border="0" /></a>&nbsp;&nbsp;
					
						<a href="http://blog.hexun.com/group/commontag.aspx?tagid=330" target="_blank">软件</A>&nbsp;<a href="http://bar.hexun.com/t/330.html" target="_blank"><img src="http://bar.hexun.com/img/tb_t.gif" alt="进入软件吧" border="0" /></a>&nbsp;&nbsp;
					
				</div>
				
	    <div class="ArticleDing">
			<div class="ArticleDing_1">票数:<span id="articleVoteCount"></span></div>
			<div class="ArticleDing_2"><A href="http://cache-sidebar.blog.hexun.com/voteArticle.aspx?articleID=8473102&blogname=cbqcgq" onclick="return isVote()">我顶</a></div>
			<div class="ArticleDing_3"><a href="http://hexuncom.blog.hexun.com/2580729_d.html" target="_blank"><img src="http://blog.hexun.com/single/templete/module18/img/h01_14.gif" border="0" alt="什么是“我顶”?"  /></a></div>
		<div class="ArticleDing_4">	
			<font id="argue_post" ></font>&nbsp;        
			<a href="http://reg.hexun.com/ordermblog.aspx" target=_blank>[手机订阅]</a>
            <a href="javascript:bookmarkThis()">[收藏到我的网摘]</a></div>
            
            <div class="ArticleDing_5">
            <a href='http://post.blog.hexun.com/cbqcgq/RecommendArticle.aspx?articleid=8473102' target='_blank'>[推荐]</a> | 
            <A href="#comment">[评论]</A> | 
            <a href='http://post.blog.hexun.com/cbqcgq/complain.aspx?comparticle=8473102&compurl=http%3a%2f%2fblog.hexun.com%2f8473102_d.html' target='_blank'>[投诉]</a> | 
            <A href="javascript:window.print();">[打印]</A></div>
            
            <div class="ArticleDing_6">
            <span id="articleRecommendCount"></span>
            </div>
			<div class="ArticleDing_7">点击数: <span id="articleClickCount"></span>
          &nbsp;&nbsp;
			评论数:
			<span id="articleCommentCount"></span></div>
	</div>
		
			
		<div class="ArticleTrack">	
本文章引用通告地址(TrackBack Ping URL)为: <img src="http://blog.hexun.com/single/templete/module18/img/gb2312.png"  align="absmiddle"></div>
		<div id="TrackbackPingUrl" class="ArticleUrl"></div>
			<div class="ArticleNoTrack"><span class='comment-text'>本文章尚未被引用。</span></div>
       </div>
</div>
<!--  文章内容:结束  -->
<!--  上一篇下一篇:开始  -->								  
      
		<div class="NextBlog">
						
					<div>下一篇: <a href="http://cbqcgq.blog.hexun.com/8474904_d.html">VHDL的数据类型</a></div>
							
					<div>上一篇: <a href="http://cbqcgq.blog.hexun.com/8472981_d.html">VHDL中包集合的使用</a></div>
					
				</div>
	
<!--  上一篇下一篇:结束  -->


<span id="argue_show"></span>


<!--  博客链:开始  -->
<span id="articleLinkDisplay"></span>
<!--  博客链:结束  -->
<!--  回复:开始  -->
<span id="articleCommentDisplay"></span>
<!--  回复:结束  -->
<!--  发表评论:开始  -->
<div id="ViewArticleContainer1_ArticleWithComments_SubmitCommentPanel">
	
	<A name="#comment"></A>
	
<script language="javascript" src="/js/PostComment.js"></script>
<div class="PublishComment">
	<div class="PublishTitle">发表评论</div>
	<div class="PublishForm">
		<form name="postComment" onsubmit="return CheckNoHtmlCommentContent();" method = "post" action = "http://comment.blog.hexun.com/cbqcgq/postComment.aspx?ArticleID=8473102">
			<div><span id="commenttag" style="font-color:ff0000"></span></div>
			<div>大 名:<span id="LoginLink" style="display:none;">&nbsp;&nbsp;[<a href="http://reg.hexun.com/login.aspx?gourl=http://cbqcgq.blog.hexun.com/8473102_d.html">登录</a>]&nbsp;&nbsp;[<a href="http://reg.hexun.com/Register.aspx?fromhost=HX_BLOG&backurl=http://post.blog.hexun.com/registerblog.aspx" target="_blank">注册成为和讯用户</a>]</span></div>
			<div><INPUT type="text"  name="UserNameTextbox" id="UserNameTextbox" value="" />(不填写则显示为匿名者)</div>
			<div>网 址:</div>
			<div><INPUT type="text"  name="UserUrlTextbox" id="UserUrlTextbox" value="" />(您的网址,可以不填)</div>
			<div>标 题:</div>
			<div><INPUT type="text"  name="CommentTitle" id="CommentTitle" value="Re: LED显示(动态扫描方式)的vhdl实现" /><input type="hidden" name="CommentIDTxt" id="CommentIDTxt" value="0" /><input type="hidden" name="ReplyType" id="ReplyType" /></div>
			<div>内 容:</div>
			<div><TEXTAREA name="NoHtmlCommentContent" id="NoHtmlCommentContent" rows="8" cols="80" onFocus="if(this.value=='字数上限为2000字'){this.value=''}this.select()">字数上限为2000字</TEXTAREA></div>
			<div id="EmotionsDiv" style="width:500px;font-family:verdana;font-size:12px;"></div>
            <div id="VerificationDiv">
			<div>请根据下图中的字符输入验证码:</div>
			<script type="text/javascript" src="http://comment.blog.hexun.com/js/vcode.js"></script>
			<div><img id="VerificationPic" src="http://comment.blog.hexun.com/inc/vcodepic.aspx?articleid=8473102" alt="验证码" border="0" align="absmiddle" /><a href="javascript:refreshCode(8473102);"> 看不清楚?换一张吧。</a></div>
			<div><input name="VerificationInput" id="VerificationInput" type="text" value="" style="width: 60px; height: 26px; font-family: Verdana; font-size: 15pt;" /></div>
			<script>refreshCode(8473102);</script>
			</div>
			<div class="PublishSubmit"><INPUT type="submit" value="  提 交  " name="PostCommentButton" id="PostCommentButton" onclick="return CheckTitle(this.form);" /></div>
			<div>(您的评论将有可能审核后才能发表)</div>
		</form>
	</div>
</div>

</div>
<!--  发表评论:结束  -->
</div>	
		</div>
	</div>
 </div>
<!--  主体:结束  -->
<!--  底部:开始  -->
<!--  底部:结束  -->
<div id="bottom"><a href="http://home.hexun.com" target="_blank">和讯个人门户</a> v1.0 | <a href="http://tribe.hexun.com" target="_blank">和讯部落</a> | <a href="http://bar.hexun.com/t/1448840.html" target="_blank">客服中心</a></div>
</div>
<!--  页面:结束  -->
<script type="text/javascript" src='http://comment.blog.hexun.com/single/templete/module18/CommentDisplay.aspx?articleid=8473102&blogname=cbqcgq&blogID=1810663'></script>
<script type="text/javascript" src='http://comment.blog.hexun.com/single/templete/module18/ArticleLinkDisplay.aspx?articleid=8473102&OrderByLastUpdateTime=0'></script>
<script type="text/javascript" src="http://cache-sidebar.blog.hexun.com/articlestatusnew.aspx?blogname=cbqcgq&articleid=8473102"></script>
<script type="text/javascript" src="http://click.tool.hexun.com/click.aspx?articleid=8473102&blogid=1810663"></script>
<script language="javascript" src="http://cache-sidebar.blog.hexun.com/single/templete/module18/controls/GetArticleSide.aspx?blogid=1810663&UserID=4909740&blogName=cbqcgq&UserName=cbqcgq"></script>
<script type="text/javascript" src="http://argue.hexun.com/scriptinblog.aspx?articleid=8473102&position=1&linkurl=http://blog.hexun.com/cbqcgq/8473102_d.html"></script>
<script type="text/javascript" src="http://argue.hexun.com/scriptinblog.aspx?articleid=8473102&position=2"></script>
<script language=javascript src="http://comment.blog.hexun.com/inc/emotions.aspx"></script>
<script language='javascript' src='http://utility.tool.hexun.com/menu.aspx?gourl=http%3a%2f%2fcbqcgq.blog.hexun.com%2f8473102_d.html'></script>
<script src="http://utrack.hexun.com/track/track.js"></script>

<script language=javascript src="http://im.hexun.com/bevent.aspx?cururl=http://blog.hexun.com%2f8473102_d.html"></script>

<div id="SelfHtmlPrepare" style="display:none;">

</div>
<script type="text/javascript">
var dom1;
dom1 = document.getElementById("SelfHtmlPrepare").innerHTML;
document.getElementById("SelfHtml").innerHTML = dom1;
document.getElementById("SelfHtmlPrepare").innerHTML="";


document.getElementById("SelfHtml").style.display="none";

</script>
</body>
</html>





⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?