From 89ad9fc85a4e89a8ae1ac977412d54de274ed02d Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Tue, 8 Aug 2017 12:07:17 +0200 Subject: Fix bug in picosoc spimemio and some cleanups in hx8kdemo --- picosoc/hx8kdemo.v | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) (limited to 'picosoc/hx8kdemo.v') diff --git a/picosoc/hx8kdemo.v b/picosoc/hx8kdemo.v index 42adcc5..db4d9a8 100644 --- a/picosoc/hx8kdemo.v +++ b/picosoc/hx8kdemo.v @@ -62,22 +62,31 @@ module hx8kdemo ( reg [31:0] iomem_rdata; reg [31:0] gpio; + reg [4:0] gpio_shr; - assign leds = gpio >> 12; + assign leds = gpio >> gpio_shr; always @(posedge clk) begin - iomem_ready <= 0; - if (iomem_valid && !iomem_ready && iomem_addr[31:24] == 8'h 02) begin - iomem_ready <= 1; - iomem_rdata <= gpio; - if (iomem_wstrb[0]) gpio[ 7: 0] <= iomem_wdata[ 7: 0]; - if (iomem_wstrb[1]) gpio[15: 8] <= iomem_wdata[15: 8]; - if (iomem_wstrb[2]) gpio[23:16] <= iomem_wdata[23:16]; - if (iomem_wstrb[3]) gpio[31:24] <= iomem_wdata[31:24]; + if (!resetn) begin + gpio <= 0; + gpio_shr <= 0; + end else begin + iomem_ready <= 0; + if (iomem_valid && !iomem_ready && iomem_addr[31:24] == 8'h 02) begin + iomem_ready <= 1; + iomem_rdata <= gpio; + if (iomem_wstrb[0]) gpio[ 7: 0] <= iomem_wdata[ 7: 0]; + if (iomem_wstrb[1]) gpio[15: 8] <= iomem_wdata[15: 8]; + if (iomem_wstrb[2]) gpio[23:16] <= iomem_wdata[23:16]; + if (iomem_wstrb[3]) gpio[31:24] <= iomem_wdata[31:24]; + end + if (&leds && gpio_shr < 10) begin + gpio_shr <= gpio_shr + 1; + end end end - picosoc uut ( + picosoc soc ( .clk (clk ), .resetn (resetn ), -- cgit