999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

N位二進制-BCD轉換電路VHDL設計

2020-07-28 02:31:36廖超平
科技資訊 2020年16期

廖超平

摘? 要:該文以16位二進制數為例,分析了N位二進制-BCD轉換算法,并以此算法為根據,應用VHDL語言設計了一種實現N位二進制-BCD轉換的電路。該設計的基本循環是將二進制碼表示中各個數碼往左邊移動一位,最高一位二進制位的數碼移出二進制表示進入最低一位十進制位的8421表示中,而每個十進制位的8421表示中權為8的位的數碼都移到高1位十進制位的8421表示中重新組合成新的8421表示。

關鍵詞:二進制-BCD轉換? VHDL? 移位

中圖分類號:TP303 ? ?文獻標識碼:A 文章編號:1672-3791(2020)06(a)-0065-03

在非常多的數字系統的設計中,存在數據輸入,用戶習慣使用十進制(BCD)碼形式,而數字系統內部則使用二進制。所以,在使用VHDL設計數字系統時多位二進制-BCD轉換電路是經常使用的。多位二進制-BCD轉換電路在各種智能儀表、電子秤和數控機床等數字系統的設計中廣泛使用。

1? N位二進制-BCD轉換算法分析

下面以十六位二進制數字的二進制- BCD 轉換為例分析多位二進制- BCD轉換算法。十六位二進制數字的二進制碼表示的一般表達式如下:

下面算式中,最右邊的2的冪每降一次表示移動一次數字。

上面分兩種情況,原因是為了保證下一次移位后,符合十進制數進位和十進制數的表達形式,即:每位十進制數碼應該只能是0~9這10個數碼。

在X03=0時,(A03,A02,A01,A00)是(0,0,0,0)~(0,1,0,0)這幾個值,向左邊移動一位后,沒有對高一位的進位,而且本位最大變成(1,0,0,A-4),符合十進制的表達形式。

在X03=1時,(A03,A02,A01,A00)是(0,1,0,1)~(1,0,0,1)向左邊移動一位后,最少也是(1,0,1,A-4),存在對高一位的進位,進位是逢十進一,所以要進行修正。修正的方法就是A0加三變成X0后再移位。

以后每次移位都遵守同樣的規律,移動16次后,即完成轉換過程。

2? N位二進制-BCD轉換電路原理框圖

以16位二進制數字為例,N位二進制-BCD轉換電路原理框圖如圖1所示。

bit[15..0]是16位二進制的bit輸入,clk1是移位時鐘,ret為復位,共有5個bit-BCD單元。每個單元負責一位BCD數碼的移位和加3或加0操作。轉換過程是先復位,并行輸入16位二進制數的bit碼。然后,奇次時鐘到來時5個單元各自進行加3或加0,偶次時鐘到來時移位。經過了32個時鐘、16次移位完成整個轉換過程。

3? bit-bcd單元VHDL代碼

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

ENTITY bit_bcd IS

PORT ( ck : IN? STD_LOGIC;

ret? : IN? STD_LOGIC;

c? : IN STD_LOGIC;

a? : OUT? STD_LOGIC_VECTOR(3 DOWNTO 0);

b? : OUT? STD_LOGIC ) ;

END bit_bcd;

ARCHITECTURE one OF bit_bcd IS

signal t : std_logic;

signal q ,c1,c2: std_logic_vector(3 downto 0);

BEGIN

b <= c1(3); a <= c1;

PROCESS( ck,ret )

BEGIN

if ret = '0' then

t <= '0';

elsif ck'event and ck = '1' then

t <= not t;

end if;

END PROCESS ;

PROCESS( ck,ret,c )

BEGIN

if ret = '0' then

c1<= "0000";

elsif ck'event and ck = '1' then

if t='1' then

c1(0)<=c;c1(1)<=c1(0);c1(2)<=c1(1);c1(3)<=c1(2);

else c1<=c2;

end if;

end if;

END PROCESS ;

PROCESS( c1 )

BEGIN

CASE? c1? IS

WHEN"0000"=>? c2<="0000";--0011

WHEN"0001"=>? c2<="0001";--0100

WHEN"0010"=>? c2<="0010";--0101

WHEN"0011"=>? c2<="0011";--0110

WHEN "0100" =>? c2 <= "0100" ;--0111

WHEN "0101" =>? c2 <= "1000" ;--1000

WHEN "0110" =>? c2 <= "1001" ;--1001

WHEN "0111" =>? c2 <= "1010" ;--1010

WHEN "1000" =>? c2 <= "1011" ;--1011

WHEN "1001" =>? c2 <= "1100" ;--1100

WHEN OTHERS =>? c2 <= "0000" ;--0000

END CASE ;

END PROCESS ;

END ;

4? 仿真結果

該設計用Quartus II仿真,功能正確。典型仿真結果見圖2~圖4。

在圖2中,00010001101000/00轉換成4512。

在圖3中,0001111010101100轉換成7852。

在圖4中,0010001111000001轉換成9513。

參考文獻

[1] 王迎春,吉利久.一種基于簡單移位的二—十進制相互轉換算法[J].電子學報,2003(2):221-224.

[2] 潘吳,鐘珞,陳杰.單片機十六進制數與BCD碼轉換新探討[J].微機發展,1997(6):35-36.

[3] 高皚瓊.基于EDA技術的數字頻率計[J].計算機產品與流通,2018(8):58.

主站蜘蛛池模板: 久久99热这里只有精品免费看| 久久国产精品麻豆系列| 亚洲精品无码专区在线观看| 91在线播放免费不卡无毒| 欧美人与牲动交a欧美精品 | 欧美色综合网站| 国产毛片高清一级国语 | 久久亚洲高清国产| 亚洲成人动漫在线观看| 亚洲第一在线播放| 亚洲va欧美va国产综合下载| 91亚瑟视频| 欧美五月婷婷| 亚洲视频影院| 国产成人精品日本亚洲77美色| 亚洲综合色婷婷中文字幕| 亚洲精品波多野结衣| 久久99这里精品8国产| 亚洲天堂久久新| 97人妻精品专区久久久久| 亚洲天堂精品在线观看| 丰满人妻一区二区三区视频| 91毛片网| 欧美国产中文| 色网站在线视频| 91区国产福利在线观看午夜| 国产精品三区四区| 国产一区三区二区中文在线| 婷婷亚洲最大| 91无码国产视频| 成人一区在线| 高清不卡一区二区三区香蕉| 国产大片喷水在线在线视频| 国产成人盗摄精品| 久视频免费精品6| 久久精品66| 99久久99视频| 激情无码字幕综合| 99久久人妻精品免费二区| 亚洲欧美日韩另类在线一| 精品无码一区二区三区电影| 亚洲精品大秀视频| 制服丝袜一区二区三区在线| 青青草原国产av福利网站| 久久影院一区二区h| 久久久久久国产精品mv| 99re热精品视频中文字幕不卡| 91麻豆精品国产高清在线| 91蜜芽尤物福利在线观看| 欧洲在线免费视频| av在线人妻熟妇| 波多野衣结在线精品二区| 亚洲热线99精品视频| 好吊色国产欧美日韩免费观看| 欧美福利在线播放| 国产在线无码av完整版在线观看| 一级毛片a女人刺激视频免费| 国内精品伊人久久久久7777人 | 91年精品国产福利线观看久久| 亚洲视频免费在线看| 综合社区亚洲熟妇p| 无码国产偷倩在线播放老年人 | 午夜毛片免费观看视频 | 激情亚洲天堂| 国国产a国产片免费麻豆| 久久香蕉国产线看观看精品蕉| 人与鲁专区| 亚洲国产精品无码AV| 女人av社区男人的天堂| 日韩中文精品亚洲第三区| 中文字幕在线看视频一区二区三区| 久久五月视频| 在线观看精品国产入口| 天天色天天操综合网| 亚洲视屏在线观看| 国产无码精品在线播放| 久久久久夜色精品波多野结衣| 一区二区三区国产精品视频| 伊伊人成亚洲综合人网7777| 91精品国产自产91精品资源| 亚洲欧美人成电影在线观看| 国产综合另类小说色区色噜噜|