From 3410f6e649992bcac7674fdc8e282927fa09e3de Mon Sep 17 00:00:00 2001 From: schodet Date: Sun, 24 Jul 2005 09:17:11 +0000 Subject: Ajout des cartes asserv et du verilog pour le compteur. --- n/asserv/src/counter/quad_decoder.v | 42 +++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 n/asserv/src/counter/quad_decoder.v (limited to 'n/asserv/src/counter/quad_decoder.v') diff --git a/n/asserv/src/counter/quad_decoder.v b/n/asserv/src/counter/quad_decoder.v new file mode 100644 index 0000000..1bd3f99 --- /dev/null +++ b/n/asserv/src/counter/quad_decoder.v @@ -0,0 +1,42 @@ +`timescale 1ns / 1ps + +module quad_decoder(clk, rst, q, counter); + parameter bits = 8; + input clk; + input rst; + input [1:0] q; + output [bits-1:0] counter; + + reg [1:0] ql; + reg [bits-1:0] counter; + + always @(posedge clk or negedge rst) begin + if (!rst) begin + ql <= 2'b00; + counter <= 0; + end + else begin + case ({ ql, q }) + 4'b0001: + counter <= counter + 1; + 4'b0010: + counter <= counter - 1; + 4'b0111: + counter <= counter + 1; + 4'b0100: + counter <= counter - 1; + 4'b1110: + counter <= counter + 1; + 4'b1101: + counter <= counter - 1; + 4'b1000: + counter <= counter + 1; + 4'b1011: + counter <= counter - 1; + default: + counter <= counter; + endcase + ql <= q; + end + end +endmodule -- cgit v1.2.3