⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chengfa_8.vhd

📁 异步FIFO设计的说明文档
💻 VHD
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;

ENTITY CHENGFA_8 IS
PORT(CLK:IN STD_LOGIC;
     A:IN INTEGER RANGE -128 TO 127;  --被乘数
     B:IN STD_LOGIC_VECTOR(7 DOWNTO 0);--乘数
     Y:OUT INTEGER RANGE -32768 TO 32767);   --最后的乘积结果
END CHENGFA_8;

ARCHITECTURE CHENGFA_8_2 OF CHENGFA_8 IS
TYPE STATE_TYPE IS(S0,S1,S2);--定义三种状态
SIGNAL STATE :STATE_TYPE;
BEGIN
PROCESS(CLK)
variable p,t:integer range -32768 TO 32767;--p为累加结果T=2^k
variable count:INTEGER RANGE 0 TO 7;--计数
begin
if clk'event and clk='1' then
case state is
WHEN S0=>                --初始化
  COUNT:=0;
  P:=0;
  T:=A;
 STATE<=S1;
WHEN S1=>                --按位进行相乘累加
  IF COUNT=7 THEN        --判断八位乘法是否结束
  STATE<=S2;
  ELSE
  IF B(COUNT)='1' THEN   --如果没有结束,且B的这一位是一累加
  P:=P+T;
  END IF;
  T:=T*2;                --T指向前一位
  COUNT:=COUNT+1;
  STATE<=S1;
END IF;
WHEN S2=>                --将结果输出
Y<=P;
STATE<=S0;               --进行下一次的乘法运算
END CASE;
END IF;
END PROCESS;

END CHENGFA_8_2; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -