中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 循環(huán)格雷碼VHDL源程序

        循環(huán)格雷碼VHDL源程序

        作者: 時(shí)間:2011-11-24 來源:網(wǎng)絡(luò) 收藏

          我們知道格雷碼計(jì)數(shù)的特點(diǎn)就是相鄰的碼字只有一個(gè)比特不同,那么我們?cè)谠O(shè)計(jì)格雷碼計(jì)數(shù)時(shí)找到這個(gè)比特取反就是了。找到這個(gè)比特的思路: 先將格雷碼換算成二進(jìn)制碼,此二進(jìn)制碼中從LSB到MSB第一個(gè)為''0''的比特對(duì)應(yīng)的格雷碼位置即為所需位置,如果全''1''則MSB的位置為所需位置。

          下面以為例,給出一個(gè)VHDL程序。

          Library Ieee;

          Use Ieee.Std_logic_1164.All;

          Entity Demo Is Port(

          Clock :In Std_logic;

          Q : Out Std_logic_vector(3 Downto 0)); --Vector的長度隨用戶而定,這里只是一個(gè)示例。

          End Demo;

          Architecture MyFavor Of Demo Is

          Function NxG(Argv :Std_logic_vector) Return Std_logic_vector Is --此函數(shù)完成輸入一個(gè)格雷碼返回下一個(gè)數(shù)的格雷碼

          Alias GV :Std_logic_vector(1 To Argv''Length) Is Argv;

          Variable BV,GC :Std_logic_vector(1 To Argv''Length);

          Begin

          BV(1) := GV(1);

          For I In 2 To Argv''Length Loop

          BV(I) := GV(I) Xor BV(I - 1);

          End Loop;

          GC := GV;

          For I In Argv''Length Downto 1 Loop

          If BV(I) = ''0'' Or I = 1 Then

          GC(I) := Not GC(I);

          Exit;

          End If;

          End Loop;

          Return GC;

          End NxG;

          Signal GC :Std_logic_vector(3 Downto 0);

          Begin

          Process(Clock) Begin

          If Rising_edge(Clock) Then

          GC = NxG(GC);

          End If;

          End Process;

          Q = GC;

          End MyFavor;



        評(píng)論


        技術(shù)專區(qū)

        關(guān)閉