abstractaccelerator/VexRiscv/murax/soc.v

58 lines
1.1 KiB
Verilog

`timescale 1ns/1ps
module soc (
input wire io_asyncReset,
input wire io_mainClk,
input wire [31:0] io_gpioA_read,
output wire [31:0] io_gpioA_write,
output wire [31:0] io_gpioA_writeEnable,
output wire io_uart_txd,
input wire io_uart_rxd
);
wire jtag_tck;
wire jtag_tms;
wire jtag_tdi;
wire jtag_tdo;
bit [31:0] cycleCnt;
always @(posedge io_mainClk) begin
cycleCnt <= cycleCnt + 1;
end
wire clk;
assign clk = cycleCnt[2];
logic rst_l;
assign rst_l = cycleCnt > 100;
Murax murax(
.io_asyncReset(io_asyncReset),
.io_mainClk(io_mainClk),
.io_jtag_tms(jtag_tms),
.io_jtag_tdi(jtag_tdi),
.io_jtag_tdo(jtag_tdo),
.io_jtag_tck(jtag_tck),
.io_gpioA_read(io_gpioA_read),
.io_gpioA_write(io_gpioA_write),
.io_gpioA_writeEnable(io_gpioA_writeEnable),
.io_uart_txd(io_uart_txd),
.io_uart_rxd(io_uart_rxd)
);
jtagdpi jtagdpi (
.clk_i (io_mainClk),
.rst_ni(rst_l),
.jtag_tck(jtag_tck),
.jtag_tms(jtag_tms),
.jtag_tdi(jtag_tdi),
.jtag_tdo(jtag_tdo),
.jtag_trst_n(),
.jtag_srst_n()
);
endmodule