2014/09/02_FPGAでFullAdderメモ
FPGA
以下ソース
filter_top.v
`timescale 1ns / 1ps
module filter_top(
input wire clk,
input wire [7:0] ssw,
output wire [3:0] led
);
wire [3:0] a,b;
wire [3:0] cout;
//4bit fullAdder
//FullAdder回路接続
assign a = ssw[7:4];
assign b = ssw[3:0];
FullAdder f0(.CIN(0),.A(a[0]),.B(b[0]),.Q(led[0]),.COUT(cout[0]));
FullAdder f1(.CIN(cout[0]),.A(a[1]),.B(b[1]),.Q(led[1]),.COUT(cout[1]));
FullAdder f2(.CIN(cout[1]),.A(a[2]),.B(b[2]),.Q(led[2]),.COUT(cout[2]));
FullAdder f3(.CIN(cout[2]),.A(a[3]),.B(b[3]),.Q(led[3]),.COUT(cout[3]));
endmodule
FullAdder.v
`timescale 1ns / 1ps
module FullAdder(
input wire CIN,
input wire A,
input wire B,
output wire Q,
output wire COUT
);
assign Q = A ^ B ^ CIN;
assign COUT = (A & B) | (B & CIN) | (CIN & A);
endmodule
filter_top.ucf
NET "clk" LOC = L15; NET "led(0)" LOC = U18; NET "led(1)" LOC = M14; NET "led(2)" LOC = N14; NET "led(3)" LOC = L14; NET "ssw(7)" LOC = E4; NET "ssw(6)" LOC = T5; NET "ssw(5)" LOC = R5; NET "ssw(4)" LOC = P12; NET "ssw(3)" LOC = P15; NET "ssw(2)" LOC = C14; NET "ssw(1)" LOC = D14; NET "ssw(0)" LOC = A10;