三位2进制乘法器设计VHDL

该博客详细介绍了如何使用VHDL设计一个三位2进制乘法器,包括分频、乘法器核心、译码和元件例化的各个步骤,阐述了数字逻辑设计在硬件描述语言中的应用。
摘要由CSDN通过智能技术生成

分频部分

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity fenpin is
port(clk:in std_logic;
	  clk1hz:out std_logic;
	  clk10khz: out std_logic
	  );
end fenpin;
architecture behavior of fenpin is
signal count:std_logic_vector(24 downto 0);
signal count1:std_logic_vector(24 downto 0);
signal clk_temp:std_logic;
signal clk_temp1:std_logic;
begin
process(clk)
begin
if(clk'event and clk='1')then
				if count=(25E2) then --25x10^2  10KHZ  周期 秒=1/hz
				count<=(others=>'0');
				clk_temp<=not clk_temp;
else
count<=count+1;
end if;
end if;
end process;
process(clk)
begin
if(clk'event and clk='1')then
				if count1=(25E4) then    --25x10^4  100HZ
				count1<=(others=>'0');
				clk_tem p1<=not clk_temp1;
else
count1<=count1+1;
end if;
end if;
end process;
clk1hz<=clk_temp;
clk10khz<=clk_temp1;
end behavior;

乘法器部分

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity cfq is
port(a,b:in std_logic_vector(2 downto 0);
		y:out std_logic_vector(5 downto 0);
		c,d:out std_logic_vector(2 downto 0);  
		e,f:out std_logic_vector(2 downto 0)
);
end cfq;
architecture behavior of cfq is
begin
process(a,b)
variable sum,temp_a:std_logic_vector(5 downto 0);   --移位相加
begin
sum:=(others=>'0'); 
for i in 0 to 2 loop
temp_a:=(others=>'0');
temp_a(i+2 downto i):=a;
if b(i)='1' then
sum:=sum + temp_a;
end if;
e
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值