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

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

2018-10-26 11:32:38廖超平
科技資訊 2018年13期

廖超平

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

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

中圖分類號:TP303 文獻標識碼:A 文章編號:1672-3791(2018)05(a)-0003-03

相當大一類的數字系統的人機交互存在數據輸入,使用者習慣數據表達為十進制(BCD)碼形式,而數字系統內部則以二進制為方便。所以,在使用VHDL設計數字系統時多位BCD-二進制轉換電路是必需的。多位BCD-二進制轉換電路在各種有人工數據輸入的系統,比如:智能儀表、電子秤和數控機床等數字系統的設計中廣泛使用。

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

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

M:A33A32 A31A30 A23A22 A21A20 A13A12 A11A10 A03A02 A01A00

(其中Aij=0或1,i=0,1,2,3;j=0,1,2,3)

它表示數字大小為:

M=(A33·23+A32·22+A31·21+A30)·103+(A23·23+A22·22+A21·21+A20)·102+(A13·23+A12·22+A11·21+A10)·101+(A03·23+A02·22+A01·21+A00)

先討論后面兩項之間的變換:

(A13·23+A12·22+A11·21+A10)·101+(A03·23+A02·22+A01·21+A00)

=(A13·23 +A12·22 + A11·21)·101+(A10·101+ A03·23 +A02·22 + A01·21) + A00

=(A13·22 +A12·21 + A11)·101·2 +(A10·23 + A03·22 +A02·21 + A01- A10·3)·2 + A00

以上變換是把十進制個位的BCD碼8421表示中的權為1的這位右移出十進制個位的BCD碼8421表示,而將十進制十位的BCD碼8421表示中的權為1的這位右移出十進制十位的BCD碼8421表示,進入個位的BCD碼8421表示中重新組成新的個位的BCD碼8421表示:

(B03·23+B02·22+B01·21+B00)=(A10·23+A03·22+A02·21+A01-A10·3)

其中項-A10·3表示:在A10=1時需要減去3(用二進制表示是11),在A10=0時則需要減去0,并且這種運算只在個位的BCD碼8421表示內部進行。

對更高位做同樣的變換得到表達式如下:

M=[(B33·23+B32·22+B31·21+B30)·103+(B23·23+B22·22+B21·21+B20)·102+(B13·23+B12·22+B11·21+B10)·101+(B03·23+B02·22+B01·21+B00)+B-1·2-1]·2

這里:B-1= A00,

B03·23+B02·22+B01·21+B00=A10·23+A03·22+A02·21+ A01-A10·3

B13·23+B12·22+B11·21+B10=A20·23+A13·22 + A12·21+A11-A20·3

B23·23+B22·22+B21·21+B20=A30·23+A23·22+A22·21+ A21-A30·3

B33·23+B32·22+B31·21+B30=0·23+A33·22+A32·21+ A31-0·3

其中B33=0。這樣一輪變換表示M的BCD碼表示中各個數碼往右邊移動一位,每個十進制位的8421表示中權為1的位的數碼都移到低1位十進制位的8421表示中重新組合成新的8421表示,新的一輪8421表示與原來一輪8421表示的關系如上。

如果右移1位數碼表示除以2的話,B-1= A00成為M的最低的1位二進制表示數碼。

重復一次以上一輪變換得到M的最低2位二進制表示數碼:C-1= B00,C-2=B-1= A00。

這樣重復16輪變換,依次用Aij,Bij,B-k,Cij,C-k,…,Gij,G-k(i,j=0,1,2,3)來表示各輪變換的二進制數碼,就得到M的二進制表示所有的數碼。因Gij=0(i,j=0,1,2,3),所以,

M=[G-1·2-1+ G-2·2-2+ G-3·2-3+…+ G-16·2-16] ·216

= G-1·215+ G-2·214+ G-3·213+…+ G-16。

G-16= A00,G-15= B00,…,G-1= F00。

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

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

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

3 BCD-bit單元VHDL代碼

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

ENTITY bcd_bit IS

PORT ( ck : IN STD_LOGIC;

a : IN STD_LOGIC_VECTOR(3 DOWNTO 0);

b : IN STD_LOGIC;

ret : IN STD_LOGIC;

c : OUT STD_LOGIC;

c3 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ) ;

END bcd_bit;

ARCHITECTURE one OF bcd_bit IS

signal t : std_logic;

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

BEGIN

c <= c1(0); c3 <= 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,a ) --移位

BEGIN

if ret = '0' then

c1 <= a;

elsif ck'event and ck = '1' then

if t='0' then

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

else c1<=c2;

end if;

end if;

END PROCESS ;

PROCESS( c1 ) --減3或0

BEGIN

CASE c1 IS

WHEN "0000" => c2 <= "0000" ;

WHEN "0001" => c2 <= "0001" ;

WHEN "0010" => c2 <= "0010" ;

WHEN "0011" => c2 <= "0011" ;

WHEN "0100" => c2 <= "0100" ;

WHEN "0101" => c2 <= "0101" ;

WHEN "0110" => c2 <= "0110" ;

WHEN "0111" => c2 <= "0111" ;

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

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

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

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

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

WHEN "1101" => c2 <= "1010" ;

WHEN "1110" => c2 <= "1011" ;

WHEN "1111" => c2 <= "1100" ;

WHEN OTHERS => c2 <= "0000" ;

END CASE ;

END PROCESS ;

END ;

4 仿真結果

本設計用Quartus II仿真,功能正確。典型仿真結果如圖2~圖4所示。

在圖2中,復位后,經過了32個時鐘,16次移位完成整個轉換過程。

在圖3中,7896轉換成0001111011011000。

在圖4中,6797轉換成0001101010001101。

在圖5中,7657轉換成0001110111101001。

參考文獻

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

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

[3] 潘松.EDA技術與VHDL[M].北京:清華大學出版社,2005.

主站蜘蛛池模板: 精品伊人久久久大香线蕉欧美| 永久成人无码激情视频免费| 亚洲无限乱码一二三四区| 国产主播一区二区三区| 热久久国产| 国产乱视频网站| 尤物特级无码毛片免费| 91色爱欧美精品www| 熟妇丰满人妻| 亚洲精品国偷自产在线91正片| 成人免费网站久久久| 国产成人精品亚洲77美色| 日韩精品成人网页视频在线| 亚洲妓女综合网995久久 | 婷婷五月在线| 亚洲性影院| 毛片大全免费观看| 国产区免费精品视频| 久久综合亚洲色一区二区三区| 国产va在线观看免费| 天天摸夜夜操| 久久黄色免费电影| 中文字幕 欧美日韩| 日日噜噜夜夜狠狠视频| 欧美日韩免费观看| 亚洲欧美日本国产综合在线| 91啪在线| 欧美国产日韩在线播放| 国模视频一区二区| 91精品伊人久久大香线蕉| 亚洲欧洲国产成人综合不卡| 九九免费观看全部免费视频| 午夜日韩久久影院| 97国产在线观看| 亚洲欧美不卡| 国产夜色视频| 波多野结衣无码视频在线观看| 亚洲一区二区视频在线观看| 欧美伊人色综合久久天天| 国产人在线成免费视频| 性欧美久久| 国产精品女主播| 亚洲成人福利网站| 亚洲另类国产欧美一区二区| 色噜噜久久| 中文字幕人妻无码系列第三区| 亚洲国产日韩一区| 成人小视频网| 亚洲国产成人精品一二区| 重口调教一区二区视频| 在线观看欧美国产| 亚洲视频免费播放| 国产精品人人做人人爽人人添| 婷婷色狠狠干| 午夜人性色福利无码视频在线观看| 午夜视频日本| 色婷婷成人网| 午夜国产理论| 波多野结衣在线se| 亚洲欧州色色免费AV| 美女无遮挡拍拍拍免费视频| 91精品日韩人妻无码久久| 在线中文字幕日韩| 97视频在线观看免费视频| 欧美日韩资源| 亚洲国产综合自在线另类| 精品午夜国产福利观看| 欧美精品不卡| 综合五月天网| 亚洲人人视频| 素人激情视频福利| 幺女国产一级毛片| 亚洲91精品视频| 人妻无码一区二区视频| 在线国产毛片手机小视频| av一区二区三区高清久久| 日本精品一在线观看视频| 少妇极品熟妇人妻专区视频| 天天躁夜夜躁狠狠躁躁88| 久久公开视频| 久久青草免费91线频观看不卡| 91偷拍一区|