aboutsummaryrefslogtreecommitdiffstats
path: root/picosoc/hx8kdemo.v
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2017-08-08 12:07:17 +0200
committerClifford Wolf <clifford@clifford.at>2017-08-08 12:07:17 +0200
commit89ad9fc85a4e89a8ae1ac977412d54de274ed02d (patch)
tree9713da0ad46bd983c4187e5f4b0fc9f056606ccb /picosoc/hx8kdemo.v
parent8821696748afe0dab113c845910be9db9d772438 (diff)
downloadpicorv32-89ad9fc85a4e89a8ae1ac977412d54de274ed02d.tar.gz
picorv32-89ad9fc85a4e89a8ae1ac977412d54de274ed02d.zip
Fix bug in picosoc spimemio and some cleanups in hx8kdemo
Diffstat (limited to 'picosoc/hx8kdemo.v')
-rw-r--r--picosoc/hx8kdemo.v29
1 files changed, 19 insertions, 10 deletions
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 ),