1
0
mirror of https://github.com/aolofsson/oh.git synced 2025-01-17 20:02:53 +08:00
oh/elink/dv/dv_ecfg.v
Andreas Olofsson 21a058f696 Cleanup
Removed useless common directory
Fixed vivados permissions on file
2015-04-11 00:12:57 -04:00

128 lines
3.4 KiB
Verilog

//`timescale 1 ns / 100 ps
module dv_ecfg();
//Stimulus to drive
reg clk;
reg reset;
reg mi_access;
reg [19:0] mi_addr;
reg [31:0] mi_data_in;
reg mi_write;
reg [1:0] test_state;
//Reset
initial
begin
$display($time, " << Starting the Simulation >>");
#0
clk = 1'b0; // at time 0
reset = 1'b1; // reset is active
mi_write = 1'b0;
mi_access = 1'b0;
mi_addr[19:0] = 20'hf0340;
mi_data_in[31:0] = 32'h0;
test_state[1:0] = 2'b00;
#100
reset = 1'b0; // at time 100 release reset
#100
mi_write = 1'b1;
mi_access = 1'b1;
#10000
$finish;
end
//Clock
always
#10 clk = ~clk;
//Pattern generator
always @ (posedge clk)
if(mi_access)
case(test_state[1:0])
2'b00:
if(~done)
begin
mi_addr[19:0] <= mi_addr[19:0]+20'h4;
mi_data_in[5:0] <= mi_data_in[5:0]+1'b1;
end
else
begin
test_state <= 2'b01;
mi_addr[19:0] <= 20'hf0340;
mi_write <= 1'b0;
end
2'b01:
if(~done)
begin
mi_addr[19:0] <= mi_addr[19:0]+20'h4;
mi_data_in[5:0] <= 32'hffffffff;
end
else
test_state <= 2'b01;
endcase// case (test_state[1:0])
wire done = (mi_addr[19:0]==20'hf0360);
/*AUTOWIRE*/
// Beginning of automatic wires (for undeclared instantiated-module outputs)
wire [3:0] ecfg_cclk_div; // From ecfg of ecfg.v
wire ecfg_cclk_en; // From ecfg of ecfg.v
wire [3:0] ecfg_cclk_pllcfg; // From ecfg of ecfg.v
wire [11:0] ecfg_coreid; // From ecfg of ecfg.v
wire [11:0] ecfg_dataout; // From ecfg of ecfg.v
wire ecfg_rx_enable; // From ecfg of ecfg.v
wire ecfg_rx_gpio_mode; // From ecfg of ecfg.v
wire ecfg_rx_loopback_mode; // From ecfg of ecfg.v
wire ecfg_rx_mmu_mode; // From ecfg of ecfg.v
wire ecfg_sw_reset; // From ecfg of ecfg.v
wire [3:0] ecfg_tx_clkdiv; // From ecfg of ecfg.v
wire [3:0] ecfg_tx_ctrl_mode; // From ecfg of ecfg.v
wire ecfg_tx_enable; // From ecfg of ecfg.v
wire ecfg_tx_gpio_mode; // From ecfg of ecfg.v
wire ecfg_tx_mmu_mode; // From ecfg of ecfg.v
wire [31:0] mi_data_out; // From ecfg of ecfg.v
// End of automatics
//DUT
ecfg ecfg(.param_coreid (12'h808),
/*AUTOINST*/
// Outputs
.mi_data_out (mi_data_out[31:0]),
.ecfg_sw_reset (ecfg_sw_reset),
.ecfg_tx_enable (ecfg_tx_enable),
.ecfg_tx_mmu_mode (ecfg_tx_mmu_mode),
.ecfg_tx_gpio_mode (ecfg_tx_gpio_mode),
.ecfg_tx_ctrl_mode (ecfg_tx_ctrl_mode[3:0]),
.ecfg_tx_clkdiv (ecfg_tx_clkdiv[3:0]),
.ecfg_rx_enable (ecfg_rx_enable),
.ecfg_rx_mmu_mode (ecfg_rx_mmu_mode),
.ecfg_rx_gpio_mode (ecfg_rx_gpio_mode),
.ecfg_rx_loopback_mode (ecfg_rx_loopback_mode),
.ecfg_cclk_en (ecfg_cclk_en),
.ecfg_cclk_div (ecfg_cclk_div[3:0]),
.ecfg_cclk_pllcfg (ecfg_cclk_pllcfg[3:0]),
.ecfg_coreid (ecfg_coreid[11:0]),
.ecfg_dataout (ecfg_dataout[11:0]),
// Inputs
.clk (clk),
.reset (reset),
.mi_access (mi_access),
.mi_write (mi_write),
.mi_addr (mi_addr[19:0]),
.mi_data_in (mi_data_in[31:0]));
//Waveform dump
initial
begin
$dumpfile("test.vcd");
$dumpvars(0, dv_ecfg);
end
endmodule // dv_ecfg
// Local Variables:
// verilog-library-directories:("." "../hdl" "../../memory/hdl ")
// End: