FPGA|CPLD|ASIC论坛
登录
直播中
李猛
7年用户
1535经验值
私信
关注
[经验]
如何在FPGA中实现半加器(Veilog和VHDL)
FPGA
Verilog
本帖最后由 Nancyfans 于 2019-8-12 16:20 编辑
FPGA
周末培训课程推荐
课程名称:
FPGA周六班,快速入门FPGA
课程链接:
http://url.elecfans.com/u/97edd21e88
VHDL代码
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
en
ti
ty half_adder is
port (
i_bit1 : in std_logic;
i_bit2 : in std_logic;
--
o_sum : out std_logic;
o_carry : out std_logic
);
end half_adder;
architecture rtl of half_adder is
begin
o_sum <= i_bit1 xor i_bit2;
o_carry <= i_bit1 and i_bit2;
end rtl;
VHDL testbench代码
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity half_adder_tb is
end half_adder_tb;
architecture behave of half_adder_tb is
signal r_BIT1 : std_logic := '0';
signal r_BIT2 : std_logic := '0';
signal w_SUM : std_logic;
signal w_CARRY : std_logic;
begin
UUT : entity work.half_adder -- uses default binding
port map (
i_bit1 => r_BIT1,
i_bit2 => r_BIT2,
o_sum => w_SUM,
o_carry => w_CARRY
);
process is
begin
r_BIT1 <= '0';
r_BIT2 <= '0';
wait for 10 ns;
r_BIT1 <= '0';
r_BIT2 <= '1';
wait for 10 ns;
r_BIT1 <= '1';
r_BIT2 <= '0';
wait for 10 ns;
r_BIT1 <= '1';
r_BIT2 <= '1';
wait for 10 ns;
end process;
end behave;
Verilog代码
module half_adder
(
i_bit1,
i_bit2,
o_sum,
o_carry
);
input i_bit1;
input i_bit2;
output o_sum;
output o_carry;
assign o_sum = i_bit1 ^ i_bit2; // bitwise xor
assign o_carry = i_bit1 & i_bit2; // bitwise and
endmodule // half_adder
Verilog Testbench代码
module half_adder_tb;
reg r_BIT1 = 0;
reg r_BIT2 = 0;
wire w_SUM;
wire w_CARRY;
half_adder half_adder_inst
(
.i_bit1(r_BIT1),
.i_bit2(r_BIT2),
.o_sum(w_SUM),
.o_carry(w_CARRY)
);
initial
begin
r_BIT1 = 1'b0;
r_BIT2 = 1'b0;
#10;
r_BIT1 = 1'b0;
r_BIT2 = 1'b1;
#10;
r_BIT1 = 1'b1;
r_BIT2 = 1'b0;
#10;
r_BIT1 = 1'b1;
r_BIT2 = 1'b1;
#10;
end
endmodule // half_adder_tb
modelsim
仿真
结果
更多回帖
rotate(-90deg);
回复
相关帖子
FPGA
Verilog
vhdl
描述
半
加
器
0
基于
FPGA
的
半
加
器
设计
993
如
何在
VHDL
中
实现
一个简单的寄存
器
4535
如
何在
FPGA
中
实现
系统设计
1233
如
何在
FPGA
中
实现
按键消抖
1347
如
何在
FPGA
中
实现
RGB转HSV
1762
如
何在
FPGA
中
对SRL
实现
设计指导
4
如
何在
vhdl
中
实现
时钟倍频?
5882
如
何在
FPGA
中
实现
随机数发生
器
571
如
何在
VHDL
中
实现
简单优先级仲裁
器
1230
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分