Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue in simulating only processor(core.vhdl) in vivado #293

Open
sasi8985 opened this issue May 28, 2021 · 1 comment
Open

Issue in simulating only processor(core.vhdl) in vivado #293

sasi8985 opened this issue May 28, 2021 · 1 comment

Comments

@sasi8985
Copy link

sasi8985 commented May 28, 2021

I wanted to simulate the core to view wave forms of different instructions. But i am struck. I am getting this error "FATAL_ERROR: Vivado Simulator kernel has discovered an exceptional condition from which it cannot recover. Process will terminate. For technical support on this issue, please open a WebCase with this project attached at http://www.xilinx.com/support."

I created a System Verilog testbench file and instantiated core.vhdl first to see whether at least clock runs or not at my end but i got above error. I am attaching log files.
xvhdl.log
xvlog.log
elaborate.log
webtalk.log
compile.log
Tcl_console_output.txt
Capture_3567

Here is the code : -

`

`timescale 1ns/1ns
typedef struct packed { longint dat;
                                      bit ack;
                                      bit stall;} wish_slave_out ;
                    
typedef struct packed { longint dat;
                                      int addr;
                                      byte sel; 
                                      bit cyc;
                                      bit stb;
                                      bit we; } wish_master_out ;

module top_u ;

bit clk=1,rst=1,rst_1,dmi_req,dmi_ack,dmi_wr,ext_irq,terminated_out;
bit [3:0] dmi_addr;
longint dmi_din,dmi_dout;

wish_slave_out s_insn_in,s_data_in;
wish_master_out m_insn_out,m_data_out; 

parameter bit [63:0]alt_addr = '{64{0}};

core#(0,0,1,alt_addr,512) a1 (.clk(clk),.rst(rst),.alt_reset(rst_1),.wishbone_insn_in(s_insn_in),.wishbone_insn_out(m_insn_out),
                            .wishbone_data_in(s_data_in),.wishbone_data_out(m_data_out),.dmi_addr(dmi_addr),.dmi_din(dmi_din),
                            .dmi_dout(dmi_dout),.dmi_req(dmi_req),
                            .dmi_wr(dmi_wr),.dmi_ack(dmi_ack),.ext_irq(ext_irq),.terminated_out(terminated_out) );
                                                       
     initial
        begin
            repeat(1000)
                begin
                    #100 clk = ~clk;
                end
        end
     
     initial
        begin
            #200 rst = 0;
        end
          
     initial
        begin
            $dumpfile("dump.vcd");
            $dumpvars(0,top_u);
        end                      
                          

endmodule

`
Also i wanted to know if there is an SV verification requirement.
Thanks in advance

@umarcor
Copy link
Contributor

umarcor commented Jul 21, 2021

Vivado Simulator does not support several features of VHDL 2008 and it's lacking some of VHDL 1993. Therefore, it's better to use any other simulator with proper language support. See #242.

Alternatively, you can try converting the sources to Verilog through ghdl --synth. See https://ghdl.github.io/ghdl/using/Synthesis.html#cmdoption-ghdl-out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants