blob: 10b2d12604cb801e1720f0376587ae7ab8dec62e [file] [log] [blame]
`timescale 1 ns/1 ps
module sram(CSB,WRB,ABUS,DBUS);
input CSB; // active low chip select
input WRB; // active low write control
input [11:0] ABUS; // 12-bit address bus
inout [7:0] DBUS; // 8-bit data bus
`pragma protect begin
reg [7:0] DBUS_driver;
wire [7:0] DBUS = DBUS_driver;
reg [7:0] ram[0:4095]; // memory cells
integer i;
initial // initialize all RAM cells to 0 at startup
begin
DBUS_driver = 8'bzzzzzzzz;
for (i=0; i < 4095; i = i + 1)
ram[i] = 0;
end
specify
$setup(ABUS,posedge WRB,10);
endspecify
always @(CSB or WRB or ABUS)
begin
if (CSB == 1'b0)
begin
if (WRB == 1'b0) //start to sram, data will be latched in on
//rising edge of CSB or WRB
begin
DBUS_driver <= #10 8'bzzzzzzzz;
@(posedge CSB or posedge WRB);
$display($time," Writing %m ABUS=%h DATA=%h",ABUS,DBUS);
ram[ABUS] = DBUS;
end
else if (WRB == 1'b1) //reading from sram (data becomes valid after 10ns)
begin
#10 DBUS_driver = ram[ABUS];
$display($time," Reading %m ABUS=%h DATA=%h",ABUS,DBUS_driver);
end
end
else //sram unselected, stop driving bus after 10ns
begin
DBUS_driver <= #10 8'bzzzzzzzz;
end
end
`pragma protect end
endmodule
`protected
module secret (a, b);
input a;
output b;
`pragma protect encoding=(enctype="raw")
`pragma protect data_method="x-caesar", data_keyname="rot13", begin
`pragma protect runtime_license=(library="lic.so",feature="runSecret",entry="chk", match=42)
reg b;
initial
begin
b = 0;
end
always
begin
#5 b = a;
end
`pragma protect end
endmodule // secret
`endprotected
`timescale 1 ns/1 ps
module sram(CSB,WRB,ABUS,DBUS);
input CSB; // active low chip select
input WRB; // active low write control
input [11:0] ABUS; // 12-bit address bus
inout [7:0] DBUS; // 8-bit data bus
`pragma protect begin_protected
`pragma protect encrypt_agent = "SynaptiCAD VeriLogger Extreme"
`pragma protect encrypt_agent_info = "13.20a"
`pragma protect data_method = "aes128-cbc"
`pragma protect key_keyowner = "SynaptiCAD"
`pragma protect key_keyname = "syncad", key_method = "rsa"
`pragma protect key_block encoding = (enctype = "base64")
K0c+W1GDd9YcMBiX3ZqvpyTdb9sTWK06w75CLxQWVrmc3L9rzWMKgZ8vZhFcBsMT
t9K7aZTd7cJidH5kbBZbCRAZmn1xvTgmkTY7OZYtejMKStrp2bweOCxNgujIrPqo
S7Sn8oFlbG9tPn7jMCdKpyWg+20EH74G9ss7MXAJey8=
`pragma protect data_block encoding = (enctype = "base64", bytes = 1059)
Y1XAstZb24qy35cVbs13JwZp8GncAXhU4FpR2dX1rBlg0zECK0A1CNN6sPhox8ty
ZJZucCjN8EE5cbAhhw16W230HmPtWM8mQu5PwIUN/Te5Cd9CJSjIGvgJWFqJStUk
a+YBiWOT3cYXjh15krCRpeZvvqdRwvfa+yY57UeLyggomvqPScSGtmnS3S+5hQur
...
yP4QT/S4ATdx2eku9kx0Sew9EVMCA69huZN1ZIfpsKQXPMvIb/DSZnsnZhlQicCK
wqPfzxcOB1x9OK5yvgaxUf6XVvW2IFk2+kLqwL5Uc5IT/BF1fRmQQh63Bo/XA6Eu
M6sxuyIlXqvHkcZROqkyg52e/pq6yaVd0JvXkQBlaIdaa5Ebu4WkBWkPtk368KIc
2HEBVaus9ZQyGYVleOZbQA==
`pragma protect end_protected
`pragma reset protect
endmodule