2014/09/01_FPGAで3to8decorder改
FPGA
先日に引き続き、デコーダ回路を作成。(先日と同じやつですが)
今回は、トップモジュール、下位モジュールで分けてみました。動作例は先日の記事に記載しているので割愛します。
以下ソース
decorder_top.v
`timescale 1ns / 1ps module decorder_top( input clk, input [2:0] ssw, output [7:0] led ); decorder3to8 dec(.ssw(ssw),.led(led)); endmodule
decorder3to8.v
`timescale 1ns / 1ps module decorder3to8( input wire [2:0] ssw, output reg [7:0] led ); always@(ssw)begin case(ssw) 3'b000:led <= 8'b00000001; 3'b001:led <= 8'b00000010; 3'b010:led <= 8'b00000100; 3'b011:led <= 8'b00001000; 3'b100:led <= 8'b00010000; 3'b101:led <= 8'b00100000; 3'b110:led <= 8'b01000000; 3'b111:led <= 8'b10000000; default: led<=8'bxxxxxxxx; endcase end endmodule
decorder3to8.ucf
NET "clk" LOC = L15; NET "led(7)" LOC =N12; NET "led(6)" LOC =P16; NET "led(5)" LOC =D4; NET "led(4)" LOC =M13; NET "led(3)" LOC =L14; NET "led(2)" LOC =N14; NET "led(1)" LOC =M14; NET "led(0)" LOC =U18; NET "ssw(2)" LOC =C14; NET "ssw(1)" LOC =D14; NET "ssw(0)" LOC =A10;
このような感じです。
次は単一な回路でなく組み合わせ回路をつくりたいと思います。