找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5888|回復: 0
打印 上一主題 下一主題
收起左側

關于FPGA的VHDL算數(shù)運算

[復制鏈接]
跳轉到指定樓層
樓主
ID:51269 發(fā)表于 2014-11-10 15:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
    算數(shù)運算時FPGA編程設計中常會用到的功能,其規(guī)則直接影響變成效果,調用use  ieee.std_logic_unsigned.all;此程序包對不同的數(shù)據(jù)類型可以進行適當?shù)乃銛?shù)運算:
   1.std_logic_vector()可進行相同位數(shù)的加減運算(被加數(shù)必須和輸出位數(shù)相同);
   2.std_logic_vector()可進行相乘法運算(積的位數(shù)等于倆乘數(shù)位數(shù)之和);
   
Library ieee;
Use ieee.std_logic_1164.all;
Use ieee.std_logic_unsigned.all;
entity adder_n is
port(a,b:in std_logic_vector(4 downto 0);     
     c:in std_logic_vector(2 downto 0);
     Sum1,sum2:out std_logic_vector(9 downto 0);
     sum4,sum3 :out std_logic_vector(4 downto 0) );
end;
Architecture add of adder_n is
begin
Sum1<="00000"&a + b;
Sum2<=a * b;
sum3<=a - b;
sum4<=a + b;
end;
3.Integer(整數(shù))可以進行加、減、乘、除和取余運算;
Library ieee;
Useieee.std_logic_1164.all;
Useieee.std_logic_unsigned.all;
entity adder_n is
generic(n:integer:=4);----改變w的值可以改變運算寬度
port(a:in integerrange 0 to 4095;
     dd,b:in integer range 0 to 255;
     cin:in integer range 0 to 64;
     Sum1,sum2:out integer range 0 to 4095;
     ddd:out integer range 0 to 1023;
     co1,co2:out integer range 0 to 1023);
end;
Architecture add of adder_n is  
begin
Sum1<=a * b;---a,b一個可以是常數(shù),如 Sum1<=2 * b
sum2<=a + b;
ddd<=a / b;---- 雖然是除,但實際為商 取整運算
co1<=a - dd;  
co2<= a REM cin;  ---  取余
  end;
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表