From 9c5a02720e24002720ba9ec1f8168d1658187d13 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Sun, 6 Apr 2008 23:19:54 +0200 Subject: * digital/asserv: - divided input counter value by two. --- digital/asserv/src/asserv/init | 2 +- digital/asserv/src/asserv/models.host.c | 2 +- digital/asserv/src/hdlcounter/counter_top.v | 13 +++++++------ digital/asserv/src/hdlcounter/test_counter_top.v | 2 +- digital/asserv/src/hdlcounter/test_counter_top.wave | 6 +++--- 5 files changed, 13 insertions(+), 12 deletions(-) (limited to 'digital') diff --git a/digital/asserv/src/asserv/init b/digital/asserv/src/asserv/init index 3505e615..d3a282dd 100644 --- a/digital/asserv/src/asserv/init +++ b/digital/asserv/src/asserv/init @@ -1,4 +1,4 @@ -!p'f1ba2 +!p'f0dd1 !p'p01000100 !p'a01000100 !p's40201008 diff --git a/digital/asserv/src/asserv/models.host.c b/digital/asserv/src/asserv/models.host.c index e851551a..bab5b90b 100644 --- a/digital/asserv/src/asserv/models.host.c +++ b/digital/asserv/src/asserv/models.host.c @@ -162,7 +162,7 @@ static const struct robot_t giboulee_robot = /* Main motors. */ &amax32ghp_model, /* Number of steps on the main motors encoders. */ - 5000, + 2500, /* Wheel radius (m). */ 0.065 / 2, /* Distance between the wheels (m). */ diff --git a/digital/asserv/src/hdlcounter/counter_top.v b/digital/asserv/src/hdlcounter/counter_top.v index ebf9f332..d16800ad 100644 --- a/digital/asserv/src/hdlcounter/counter_top.v +++ b/digital/asserv/src/hdlcounter/counter_top.v @@ -36,17 +36,18 @@ module counter_top(clk, rst, q0, q1, q2, q3, ale, rd, wr, ad, i0, i1, ioa, input [3:0] ioa, ioc; wire [1:0] qf0, qf1, qf2, qf3; - wire [size-1:0] count0, count1, count2, count3; + wire [size:0] count0, count1; + wire [size-1:0] count2, count3; // Decode encoders outputs. noise_filter f0[1:0] (clk, rst, q0, qf0); - quad_decoder_div4 qd0 (clk, rst, qf0, count0); + quad_decoder_div4 #(9) qd0 (clk, rst, qf0, count0); noise_filter f1[1:0] (clk, rst, q1, qf1); - quad_decoder_div4 qd1 (clk, rst, qf1, count1); + quad_decoder_div4 #(9) qd1 (clk, rst, qf1, count1); input_latch f2[1:0] (clk, rst, q2, qf2); - quad_decoder_full qd2 (clk, rst, qf2, count2); + quad_decoder_div4 qd2 (clk, rst, qf2, count2); input_latch f3[1:0] (clk, rst, q3, qf3); quad_decoder_full qd3 (clk, rst, qf3, count3); @@ -58,8 +59,8 @@ module counter_top(clk, rst, q0, q1, q2, q3, ale, rd, wr, ad, i0, i1, ioa, if (!rst) lcount <= 0; else begin - lcount <= ad[1:0] == 0 ? count0 : - ad[1:0] == 1 ? count1 : + lcount <= ad[1:0] == 0 ? count0[8:1] : + ad[1:0] == 1 ? count1[8:1] : ad[1:0] == 2 ? count2 : count3; end diff --git a/digital/asserv/src/hdlcounter/test_counter_top.v b/digital/asserv/src/hdlcounter/test_counter_top.v index 14d67acf..bbcc48be 100644 --- a/digital/asserv/src/hdlcounter/test_counter_top.v +++ b/digital/asserv/src/hdlcounter/test_counter_top.v @@ -43,7 +43,7 @@ module test_counter_top(); always #5 clk <= !clk; // Counter top setup. - wire [0:nc-1] quad_full = 4'b0011; + wire [0:nc-1] quad_full = 4'b0001; reg [31:0] filter_size[0:nc-1]; parameter max_filter = 7; initial begin diff --git a/digital/asserv/src/hdlcounter/test_counter_top.wave b/digital/asserv/src/hdlcounter/test_counter_top.wave index 0cf65f3c..5e240d82 100644 --- a/digital/asserv/src/hdlcounter/test_counter_top.wave +++ b/digital/asserv/src/hdlcounter/test_counter_top.wave @@ -2,7 +2,7 @@ @28 test_counter_top.clk test_counter_top.rst -@420 +@22 test_counter_top.countdiv32_0[27:0] test_counter_top.countdiv32_1[27:0] test_counter_top.countdiv32_2[27:0] @@ -13,7 +13,7 @@ test_counter_top.rd test_counter_top.sel[1:0] @22 test_counter_top.ad[7:0] -test_counter_top.uut.count0[7:0] -test_counter_top.uut.count1[7:0] +test_counter_top.uut.count0[8:0] +test_counter_top.uut.count1[8:0] test_counter_top.uut.count2[7:0] test_counter_top.uut.count3[7:0] -- cgit v1.2.3