vhdl变量除法_一个经典除法 (VHDL)

一個經典除法

--如果想改除數與被除數位數,只要改BIT_B和BIT即可

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY CHUFA_1 IS

GENERIC(bit_b:integer:=21;bit:integer:=12);

PORT(CLK:IN STD_LOGIC;

BEICHUSHU:IN STD_LOGIC_VECTOR(BIT_B-1 DOWNTO 0);--BIT_B-1

CHUSHU:IN STD_LOGIC_VECTOR(BIT-1 DOWNTO 0);--BIT-1

SHANG:OUT STD_LOGIC_VECTOR(BIT_B-1 DOWNTO 0));--BIT_B-1

END CHUFA_1;

ARCHITECTURE LZM OF CHUFA_1 IS

SIGNAL DIV:STD_LOGIC_VECTOR(BIT DOWNTO 0);--CHUSHU'LENGTH+1==BIT

BEGIN

DIV<='0' & CHUSHU;

PROCESS(CLK)

VARIABLE BEI_DIV:STD_LOGIC_VECTOR(BIT_B-1 DOWNTO 0);--BIT_B-1

VARIABLE BEI_SUB:STD_LOGIC_VECTOR(CHUSHU'LENGTH DOWNTO 0);--4

BEGIN

IF CLK='1' AND CLK'EVENT THEN

BEI_DIV:=BEICHUSHU;

FOR I IN BIT_B-1 DOWNTO 0 LOOP--7=BEI_DIV'LENGTH=BIT_B-1

BEI_SUB(CHUSHU'LENGTH DOWNTO 1) :=BEI_SUB(CHUSHU'LENGTH-1 DOWNTO 0);

BEI_SUB(0):=BEI_DIV(I);

IF BEI_SUB>=DIV THEN

SHANG(I)<='1';

BEI_SUB:=BEI_SUB-DIV;

ELSE SHANG(I)<='0';

END IF;

END LOOP;

END IF;

BEI_SUB:=(OTHERS=>'0');

END PROCESS;

END LZM;

第 1 頁

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值