Make ROM writeable unless the lock is set. --- cores/monitor/rtl/monitor.v | 6 ++++-- cores/monitor/test/tb_monitor.v | 1 + 2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/cores/monitor/rtl/monitor.v b/cores/monitor/rtl/monitor.v index eee7664..d37d54e 100644 --- a/cores/monitor/rtl/monitor.v +++ b/cores/monitor/rtl/monitor.v @@ -20,6 +20,8 @@ module monitor( input sys_clk, input sys_rst, + input write_lock, + input [31:0] wb_adr_i, output reg [31:0] wb_dat_o, input [31:0] wb_dat_i, @@ -42,11 +44,11 @@ initial $readmemh("monitor.rom", mem); /* write protect */ `ifdef CFG_GDBSTUB_ENABLED -assign ram_we = (wb_adr_i[12] == 1'b1); +assign ram_we = (wb_adr_i[12] == 1'b1) | ~write_lock; wire [10:0] adr; assign adr = wb_adr_i[12:2]; `else -assign ram_we = (wb_adr_i[10:9] == 2'b11); +assign ram_we = (wb_adr_i[10:9] == 2'b11) | ~write_lock; wire [9:0] adr; assign adr = wb_adr_i[10:2]; `endif diff --git a/cores/monitor/test/tb_monitor.v b/cores/monitor/test/tb_monitor.v index 2505a91..077b812 100644 --- a/cores/monitor/test/tb_monitor.v +++ b/cores/monitor/test/tb_monitor.v @@ -17,6 +17,7 @@ reg dat; monitor dut( .sys_clk(sys_clk), .sys_rst(sys_rst), + .write_lock(1'b1), .wb_stb_i(wb_stb_i), .wb_cyc_i(wb_cyc_i), .wb_ack_o(wb_ack_o), -- 1.7.2.5 _______________________________________________ http://lists.milkymist.org/listinfo.cgi/devel-milkymist.org IRC: #milkymist@Freenode