| @ -0,0 +1,30 @@ | |||
| SYMBI_SRC_FILE := /opt/symbiotic.sh | |||
| TASKS := flag_check | |||
| .PHONY: all | |||
| all: flag_check | |||
| define taskTemplate | |||
| .PHONY: $(1) | |||
| $(1): | |||
| source $(SYMBI_SRC_FILE); sby -f symbiyosys.sby $(1) | |||
| endef | |||
| $(foreach task, $(TASKS), $(eval $(call taskTemplate,$(task)))) | |||
| wave: | |||
| ifndef wf | |||
| $(error please give wave parameter) | |||
| endif | |||
| gtkwave -a trace.gtkw $(wf) | |||
| .PHONY: clean | |||
| clean: | |||
| rm -rf symbiyosys_* | |||
| @ -0,0 +1,37 @@ | |||
| module Properties ( | |||
| // global | |||
| input clk, | |||
| input resetn, | |||
| input [1:0] sel, | |||
| input [3:0] we | |||
| ); | |||
| // Constrain reset | |||
| reg init_flag = 1; | |||
| always @(*) begin | |||
| if (init_flag) assume (!resetn); | |||
| if (!init_flag) assume (resetn); | |||
| end | |||
| always @(posedge clk) | |||
| init_flag <= 0; | |||
| default clocking | |||
| @(posedge clk); | |||
| endclocking | |||
| default disable iff (!resetn); | |||
| assert property (we[0] |=> sel == 0); | |||
| endmodule | |||
| bind TestDesign Properties i_Properties (.*); | |||
| @ -0,0 +1,37 @@ | |||
| library ieee; | |||
| use ieee.std_logic_1164.all; | |||
| use ieee.numeric_std.all; | |||
| entity TestDesign is | |||
| port ( | |||
| clk : in std_logic; | |||
| resetn : in std_logic; | |||
| sel : in std_logic_vector(1 downto 0); | |||
| we : out std_logic_vector(3 downto 0) | |||
| ); | |||
| end entity TestDesign; | |||
| architecture rtl of TestDesign is | |||
| begin | |||
| process (CLK, RESETn) is | |||
| begin | |||
| if (RESETn = '0') then | |||
| we <= (others => '0'); | |||
| elsif (rising_edge(CLK)) then | |||
| we(0) <= '0' when sel = "00" else '1'; | |||
| we(1) <= '0' when sel = "01" else '1'; | |||
| we(2) <= '0' when sel = "10" else '1'; | |||
| we(3) <= '0' when sel = "11" else '1'; | |||
| end if; | |||
| end process; | |||
| end architecture; | |||
| @ -0,0 +1,20 @@ | |||
| [tasks] | |||
| flag_check | |||
| [options] | |||
| mode prove | |||
| depth 30 | |||
| [engines] | |||
| abc pdr | |||
| [script] | |||
| verific -vhdl TestDesign.vhd | |||
| verific -sv Properties.sv | |||
| verific -import -extnets -all TestDesign | |||
| prep -top TestDesign | |||
| setundef -anyseq -undriven | |||
| [files] | |||
| Properties.sv | |||
| TestDesign.vhd | |||