aboutsummaryrefslogtreecommitdiffstats
path: root/tests/arch/ice40/dpram.v
diff options
context:
space:
mode:
authorMiodrag Milanović <mmicko@gmail.com>2019-10-18 14:29:44 +0200
committerGitHub <noreply@github.com>2019-10-18 14:29:44 +0200
commite8ef3fcdfcacbc711a4722deee95f0707634bed0 (patch)
tree971fae1a1b7d3204827759454fa55accdc9bc01f /tests/arch/ice40/dpram.v
parent3c41599ee1f62e4d77ba630fa1a245ef3fe236fa (diff)
parent190b40341abd73ab5edf0e6740b6526e9575253b (diff)
downloadyosys-e8ef3fcdfcacbc711a4722deee95f0707634bed0.tar.gz
yosys-e8ef3fcdfcacbc711a4722deee95f0707634bed0.tar.bz2
yosys-e8ef3fcdfcacbc711a4722deee95f0707634bed0.zip
Merge pull request #1454 from YosysHQ/mmicko/common_tests
Share common tests
Diffstat (limited to 'tests/arch/ice40/dpram.v')
-rw-r--r--tests/arch/ice40/dpram.v23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/arch/ice40/dpram.v b/tests/arch/ice40/dpram.v
new file mode 100644
index 000000000..3ea4c1f27
--- /dev/null
+++ b/tests/arch/ice40/dpram.v
@@ -0,0 +1,23 @@
+/*
+Example from: https://www.latticesemi.com/-/media/LatticeSemi/Documents/UserManuals/EI/iCEcube201701UserGuide.ashx?document_id=52071 [p. 72].
+*/
+module top (din, write_en, waddr, wclk, raddr, rclk, dout);
+parameter addr_width = 8;
+parameter data_width = 8;
+input [addr_width-1:0] waddr, raddr;
+input [data_width-1:0] din;
+input write_en, wclk, rclk;
+output [data_width-1:0] dout;
+reg [data_width-1:0] dout;
+reg [data_width-1:0] mem [(1<<addr_width)-1:0]
+/* synthesis syn_ramstyle = "no_rw_check" */ ;
+always @(posedge wclk) // Write memory.
+begin
+if (write_en)
+mem[waddr] <= din; // Using write address bus.
+end
+always @(posedge rclk) // Read memory.
+begin
+dout <= mem[raddr]; // Using read address bus.
+end
+endmodule