diff options
author | lonkaars <loek@pipeframe.xyz> | 2023-03-01 16:29:20 +0100 |
---|---|---|
committer | lonkaars <loek@pipeframe.xyz> | 2023-03-01 16:29:20 +0100 |
commit | 13e48c722f785d29342bf421309d1f1f963decdc (patch) | |
tree | 252712de226a6218b44533f3710d3b17e377c8cf /constraints/constraints.srcs/sim_1 | |
parent | 0be6c421969ddb99fcfaf30b84a02ab59318f1c0 (diff) |
week 3 dingen gedaan
Diffstat (limited to 'constraints/constraints.srcs/sim_1')
-rw-r--r-- | constraints/constraints.srcs/sim_1/imports/tb/cpu_tb.v | 225 |
1 files changed, 225 insertions, 0 deletions
diff --git a/constraints/constraints.srcs/sim_1/imports/tb/cpu_tb.v b/constraints/constraints.srcs/sim_1/imports/tb/cpu_tb.v new file mode 100644 index 0000000..4814a13 --- /dev/null +++ b/constraints/constraints.srcs/sim_1/imports/tb/cpu_tb.v @@ -0,0 +1,225 @@ +///////////////////////////////////////////////////////////////////////// +// Copyright (c) 2008 Xilinx, Inc. All rights reserved. +// +// XILINX CONFIDENTIAL PROPERTY +// This document contains proprietary information which is +// protected by copyright. All rights are reserved. This notice +// refers to original work by Xilinx, Inc. which may be derivitive +// of other work distributed under license of the authors. In the +// case of derivitive work, nothing in this notice overrides the +// original author's license agreeement. Where applicable, the +// original license agreement is included in it's original +// unmodified form immediately below this header. +// +// Xilinx, Inc. +// XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A +// COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS +// ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR +// STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION +// IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE +// FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. +// XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO +// THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO +// ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE +// FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY +// AND FITNESS FOR A PARTICULAR PURPOSE. +// +///////////////////////////////////////////////////////////////////////// + +`timescale 1ns / 1ps + +module test; + reg [0:72] indata_array; + reg sysClk; + reg reset; + reg bench_TILE0_REFCLK_PAD_N_IN; + wire bench_TILE0_REFCLK_PAD_P_IN; + wire bench_TILE1_REFCLK_PAD_N_IN; + wire bench_TILE1_REFCLK_PAD_P_IN; + wire bench_TILE2_REFCLK_PAD_N_IN; + wire bench_TILE2_REFCLK_PAD_P_IN; + wire bench_TILE3_REFCLK_PAD_N_IN; + wire bench_TILE3_REFCLK_PAD_P_IN; + wire bench_GTPRESET_IN; + wire [7:0] bench_RXN_IN; + wire [7:0] bench_RXP_IN; + wire [7:0] bench_TXN_OUT; + wire [7:0] bench_TXP_OUT; + wire bench_phy_rst_pad_0_o; + wire [7:0] bench_DataOut_pad_0_o; + wire bench_TxValid_pad_0_o; + wire bench_TxReady_pad_0_i; + wire [7:0] bench_DataIn_pad_0_i; + wire bench_RxValid_pad_0_i; + wire bench_RxActive_pad_0_i; + wire bench_RxError_pad_0_i; + wire bench_XcvSelect_pad_0_o; + wire bench_TermSel_pad_0_o; + wire bench_SuspendM_pad_0_o; + wire [1:0] bench_LineState_pad_0_i; + wire [1:0] bench_OpMode_pad_0_o; + wire bench_usb_vbus_pad_0_i; + wire bench_VControl_Load_pad_0_o; + wire [3:0] bench_VControl_pad_0_o; + wire [7:0] bench_VStatus_pad_0_i; + wire bench_phy_rst_pad_1_o; + wire [7:0] bench_DataOut_pad_1_o; + wire bench_TxValid_pad_1_o; + wire bench_TxReady_pad_1_i; + wire [7:0] bench_DataIn_pad_1_i; + wire bench_RxValid_pad_1_i; + wire bench_RxActive_pad_1_i; + wire bench_RxError_pad_1_i; + wire bench_XcvSelect_pad_1_o; + wire bench_TermSel_pad_1_o; + wire bench_SuspendM_pad_1_o; + wire [1:0] bench_LineState_pad_1_i; + wire [1:0] bench_OpMode_pad_1_o; + wire bench_usb_vbus_pad_1_i; + wire bench_VControl_Load_pad_1_o; + wire [3:0] bench_VControl_pad_1_o; + wire [7:0] bench_VStatus_pad_1_i; + wire bench_or1200_clmode; + wire bench_or1200_pic_ints; + wire [3:0] bench_or1200_pm_out; + + assign bench_sysClk = sysClk; + assign bench_reset = reset; + initial + begin + bench_TILE0_REFCLK_PAD_N_IN = 0; + forever #7 bench_TILE0_REFCLK_PAD_N_IN = ~bench_TILE0_REFCLK_PAD_N_IN; + end + assign #2 bench_TILE0_REFCLK_PAD_P_IN = bench_TILE0_REFCLK_PAD_N_IN; + assign #4 bench_TILE1_REFCLK_PAD_N_IN = bench_TILE0_REFCLK_PAD_N_IN; + assign #6 bench_TILE1_REFCLK_PAD_P_IN = bench_TILE0_REFCLK_PAD_N_IN; + assign #8 bench_TILE2_REFCLK_PAD_N_IN = bench_TILE0_REFCLK_PAD_N_IN; + assign #10 bench_TILE2_REFCLK_PAD_P_IN = bench_TILE0_REFCLK_PAD_N_IN; + assign #12 bench_TILE3_REFCLK_PAD_N_IN = bench_TILE0_REFCLK_PAD_N_IN; + assign #14 bench_TILE3_REFCLK_PAD_P_IN = bench_TILE0_REFCLK_PAD_N_IN; + assign bench_GTPRESET_IN = indata_array[8:8]; + assign bench_RXN_IN = indata_array[9:16]; + assign bench_RXP_IN = indata_array[17:24]; + assign bench_TxReady_pad_0_i = indata_array[25:25]; + assign bench_DataIn_pad_0_i = indata_array[26:33]; + assign bench_RxValid_pad_0_i = indata_array[34:34]; + assign bench_RxActive_pad_0_i = indata_array[35:35]; + assign bench_RxError_pad_0_i = indata_array[36:36]; + assign bench_LineState_pad_0_i = indata_array[37:38]; + assign bench_usb_vbus_pad_0_i = indata_array[39:39]; + assign bench_VStatus_pad_0_i = indata_array[40:47]; + assign bench_TxReady_pad_1_i = indata_array[48:48]; + assign bench_DataIn_pad_1_i = indata_array[49:56]; + assign bench_RxValid_pad_1_i = indata_array[57:57]; + assign bench_RxActive_pad_1_i = indata_array[58:58]; + assign bench_RxError_pad_1_i = indata_array[59:59]; + assign bench_LineState_pad_1_i = indata_array[60:61]; + assign bench_usb_vbus_pad_1_i = indata_array[62:62]; + assign bench_VStatus_pad_1_i = indata_array[63:70]; + assign bench_or1200_clmode = indata_array[71:71]; + assign bench_or1200_pic_ints = indata_array[72:72]; + + initial + begin + #0 sysClk = 1'b0; + end + + always + begin + #5 sysClk = !sysClk; + end + + initial + begin + #0 reset = 1'b0; + end + + initial + begin + #500 reset = 0; + #700 reset = 1; + #100 reset = 0; + end + + always + begin : stim + reg [0:31] r1; + reg [0:31] r2; + reg [0:7] r3; + + r1 = $random; + r2 = $random; + r3 = $random; + + #5 indata_array = {r1, r2, r3}; + end + + + top inst( + .sysClk(bench_sysClk), + .reset(bench_reset), + .TILE0_REFCLK_PAD_N_IN(bench_TILE0_REFCLK_PAD_N_IN), + .TILE0_REFCLK_PAD_P_IN(bench_TILE0_REFCLK_PAD_P_IN), + .TILE1_REFCLK_PAD_N_IN(bench_TILE1_REFCLK_PAD_N_IN), + .TILE1_REFCLK_PAD_P_IN(bench_TILE1_REFCLK_PAD_P_IN), + .TILE2_REFCLK_PAD_N_IN(bench_TILE2_REFCLK_PAD_N_IN), + .TILE2_REFCLK_PAD_P_IN(bench_TILE2_REFCLK_PAD_P_IN), + .TILE3_REFCLK_PAD_N_IN(bench_TILE3_REFCLK_PAD_N_IN), + .TILE3_REFCLK_PAD_P_IN(bench_TILE3_REFCLK_PAD_P_IN), + .GTPRESET_IN(bench_GTPRESET_IN), + .RXN_IN(bench_RXN_IN), + .RXP_IN(bench_RXP_IN), + .TXN_OUT(bench_TXN_OUT), + .TXP_OUT(bench_TXP_OUT), + .phy_rst_pad_0_o(bench_phy_rst_pad_0_o), + .DataOut_pad_0_o(bench_DataOut_pad_0_o), + .TxValid_pad_0_o(bench_TxValid_pad_0_o), + .TxReady_pad_0_i(bench_TxReady_pad_0_i), + .DataIn_pad_0_i(bench_DataIn_pad_0_i), + .RxValid_pad_0_i(bench_RxValid_pad_0_i), + .RxActive_pad_0_i(bench_RxActive_pad_0_i), + .RxError_pad_0_i(bench_RxError_pad_0_i), + .XcvSelect_pad_0_o(bench_XcvSelect_pad_0_o), + .TermSel_pad_0_o(bench_TermSel_pad_0_o), + .SuspendM_pad_0_o(bench_SuspendM_pad_0_o), + .LineState_pad_0_i(bench_LineState_pad_0_i), + .OpMode_pad_0_o(bench_OpMode_pad_0_o), + .usb_vbus_pad_0_i(bench_usb_vbus_pad_0_i), + .VControl_Load_pad_0_o(bench_VControl_Load_pad_0_o), + .VControl_pad_0_o(bench_VControl_pad_0_o), + .VStatus_pad_0_i(bench_VStatus_pad_0_i), + .phy_rst_pad_1_o(bench_phy_rst_pad_1_o), + .DataOut_pad_1_o(bench_DataOut_pad_1_o), + .TxValid_pad_1_o(bench_TxValid_pad_1_o), + .TxReady_pad_1_i(bench_TxReady_pad_1_i), + .DataIn_pad_1_i(bench_DataIn_pad_1_i), + .RxValid_pad_1_i(bench_RxValid_pad_1_i), + .RxActive_pad_1_i(bench_RxActive_pad_1_i), + .RxError_pad_1_i(bench_RxError_pad_1_i), + .XcvSelect_pad_1_o(bench_XcvSelect_pad_1_o), + .TermSel_pad_1_o(bench_TermSel_pad_1_o), + .SuspendM_pad_1_o(bench_SuspendM_pad_1_o), + .LineState_pad_1_i(bench_LineState_pad_1_i), + .OpMode_pad_1_o(bench_OpMode_pad_1_o), + .usb_vbus_pad_1_i(bench_usb_vbus_pad_1_i), + .VControl_Load_pad_1_o(bench_VControl_Load_pad_1_o), + .VControl_pad_1_o(bench_VControl_pad_1_o), + .VStatus_pad_1_i(bench_VStatus_pad_1_i), + .or1200_clmode(bench_or1200_clmode), + .or1200_pic_ints(bench_or1200_pic_ints), + .or1200_pm_out(bench_or1200_pm_out) + ); + + initial + begin +// $monitor($time, " reset = %b, sysClk = %b, TILE0_REFCLK_PAD_N_IN = %b , TILE0_REFCLK_PAD_P_IN = %b , TILE1_REFCLK_PAD_N_IN = %b , TILE1_REFCLK_PAD_P_IN = %b , TILE2_REFCLK_PAD_N_IN = %b , TILE2_REFCLK_PAD_P_IN = %b , TILE3_REFCLK_PAD_N_IN = %b , TILE3_REFCLK_PAD_P_IN = %b , GTPRESET_IN = %b , RXN_IN = %b , RXP_IN = %b , TxReady_pad_0_i = %b , DataIn_pad_0_i = %b , RxValid_pad_0_i = %b , RxActive_pad_0_i = %b , RxError_pad_0_i = %b , LineState_pad_0_i = %b , usb_vbus_pad_0_i = %b , VStatus_pad_0_i = %b , TxReady_pad_1_i = %b , DataIn_pad_1_i = %b , RxValid_pad_1_i = %b , RxActive_pad_1_i = %b , RxError_pad_1_i = %b , LineState_pad_1_i = %b , usb_vbus_pad_1_i = %b , VStatus_pad_1_i = %b , or1200_clmode = %b , or1200_pic_ints = %b , TXN_OUT = %b , TXP_OUT = %b , phy_rst_pad_0_o = %b , DataOut_pad_0_o = %b , TxValid_pad_0_o = %b , XcvSelect_pad_0_o = %b , TermSel_pad_0_o = %b , SuspendM_pad_0_o = %b , OpMode_pad_0_o = %b , VControl_Load_pad_0_o = %b , VControl_pad_0_o = %b , phy_rst_pad_1_o = %b , DataOut_pad_1_o = %b , TxValid_pad_1_o = %b , XcvSelect_pad_1_o = %b , TermSel_pad_1_o = %b , SuspendM_pad_1_o = %b , OpMode_pad_1_o = %b , VControl_Load_pad_1_o = %b , VControl_pad_1_o = %b , or1200_pm_out = %b ", +// bench_reset, bench_sysClk, bench_TILE0_REFCLK_PAD_N_IN, bench_TILE0_REFCLK_PAD_P_IN, bench_TILE1_REFCLK_PAD_N_IN, bench_TILE1_REFCLK_PAD_P_IN, bench_TILE2_REFCLK_PAD_N_IN, bench_TILE2_REFCLK_PAD_P_IN, bench_TILE3_REFCLK_PAD_N_IN, bench_TILE3_REFCLK_PAD_P_IN, bench_GTPRESET_IN, bench_RXN_IN, bench_RXP_IN, bench_TxReady_pad_0_i, bench_DataIn_pad_0_i, bench_RxValid_pad_0_i, bench_RxActive_pad_0_i, bench_RxError_pad_0_i, bench_LineState_pad_0_i, bench_usb_vbus_pad_0_i, bench_VStatus_pad_0_i, bench_TxReady_pad_1_i, bench_DataIn_pad_1_i, bench_RxValid_pad_1_i, bench_RxActive_pad_1_i, bench_RxError_pad_1_i, bench_LineState_pad_1_i, bench_usb_vbus_pad_1_i, bench_VStatus_pad_1_i, bench_or1200_clmode, bench_or1200_pic_ints, bench_TXN_OUT, bench_TXP_OUT, bench_phy_rst_pad_0_o, bench_DataOut_pad_0_o, bench_TxValid_pad_0_o, bench_XcvSelect_pad_0_o, bench_TermSel_pad_0_o, bench_SuspendM_pad_0_o, bench_OpMode_pad_0_o, bench_VControl_Load_pad_0_o, bench_VControl_pad_0_o, bench_phy_rst_pad_1_o, bench_DataOut_pad_1_o, bench_TxValid_pad_1_o, bench_XcvSelect_pad_1_o, bench_TermSel_pad_1_o, bench_SuspendM_pad_1_o, bench_OpMode_pad_1_o, bench_VControl_Load_pad_1_o, bench_VControl_pad_1_o, bench_or1200_pm_out); + end + + initial + begin + #5000 $display("TEST PASSED"); + $finish; + end + +endmodule |