Implement Counter TestBench
This commit is contained in:
15
CPU.qsf
15
CPU.qsf
@ -39,7 +39,7 @@
|
||||
|
||||
set_global_assignment -name FAMILY "Cyclone V"
|
||||
set_global_assignment -name DEVICE 5CGXFC5C6F27C7
|
||||
set_global_assignment -name TOP_LEVEL_ENTITY RegisterFile_TestBench
|
||||
set_global_assignment -name TOP_LEVEL_ENTITY Counter_TestBench
|
||||
set_global_assignment -name ORIGINAL_QUARTUS_VERSION 20.1.1
|
||||
set_global_assignment -name PROJECT_CREATION_TIME_DATE "11:27:08 MäRZ 23, 2023"
|
||||
set_global_assignment -name LAST_QUARTUS_VERSION "20.1.1 Lite Edition"
|
||||
@ -66,7 +66,7 @@ set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)"
|
||||
set_global_assignment -name VERILOG_INPUT_VERSION SYSTEMVERILOG_2005
|
||||
set_global_assignment -name VERILOG_SHOW_LMF_MAPPING_MESSAGES OFF
|
||||
set_global_assignment -name EDA_TEST_BENCH_ENABLE_STATUS TEST_BENCH_MODE -section_id eda_simulation
|
||||
set_global_assignment -name EDA_NATIVELINK_SIMULATION_TEST_BENCH RegisterFile_TestBench -section_id eda_simulation
|
||||
set_global_assignment -name EDA_NATIVELINK_SIMULATION_TEST_BENCH Counter_TestBench -section_id eda_simulation
|
||||
set_global_assignment -name EDA_TEST_BENCH_NAME ALU_TestBench -section_id eda_simulation
|
||||
set_global_assignment -name EDA_DESIGN_INSTANCE_NAME NA -section_id ALU_TestBench
|
||||
set_global_assignment -name EDA_TEST_BENCH_MODULE_NAME ALU_TestBench -section_id ALU_TestBench
|
||||
@ -92,12 +92,17 @@ set_global_assignment -name SYSTEMVERILOG_FILE RegisterFile_TestBench.sv
|
||||
set_global_assignment -name EDA_TEST_BENCH_NAME RegisterFile_TestBench -section_id eda_simulation
|
||||
set_global_assignment -name EDA_DESIGN_INSTANCE_NAME NA -section_id RegisterFile_TestBench
|
||||
set_global_assignment -name EDA_TEST_BENCH_MODULE_NAME RegisterFile_TestBench -section_id RegisterFile_TestBench
|
||||
set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top
|
||||
set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top
|
||||
set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE Counter_TestBench.sv
|
||||
set_global_assignment -name EDA_TEST_BENCH_FILE ALU_TestBench.sv -section_id ALU_TestBench
|
||||
set_global_assignment -name EDA_TEST_BENCH_FILE LogicalUnit_TestBench.sv -section_id LogicalUnit_TestBench
|
||||
set_global_assignment -name EDA_TEST_BENCH_FILE ArithmeticUnit_TestBench.sv -section_id ArithmeticUnit_TestBench
|
||||
set_global_assignment -name EDA_TEST_BENCH_FILE ConditionalUnit_TestBench.sv -section_id ConditionalUnit_TestBench
|
||||
set_global_assignment -name EDA_TEST_BENCH_FILE RegisterFile_TestBench.sv -section_id RegisterFile_TestBench
|
||||
set_global_assignment -name EDA_TEST_BENCH_NAME Counter_TestBench -section_id eda_simulation
|
||||
set_global_assignment -name EDA_DESIGN_INSTANCE_NAME NA -section_id Counter_TestBench
|
||||
set_global_assignment -name EDA_TEST_BENCH_MODULE_NAME Counter_TestBench -section_id Counter_TestBench
|
||||
set_global_assignment -name EDA_TEST_BENCH_FILE Counter_TestBench.sv -section_id Counter_TestBench
|
||||
set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top
|
||||
set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top
|
||||
set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
|
||||
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
|
65
Counter_TestBench.sv
Normal file
65
Counter_TestBench.sv
Normal file
@ -0,0 +1,65 @@
|
||||
`default_nettype none
|
||||
|
||||
module Counter_TestBench;
|
||||
|
||||
var logic clock;
|
||||
var logic reset;
|
||||
var logic decrement;
|
||||
var logic setvalue;
|
||||
var logic[7:0] valuein;
|
||||
|
||||
tri[7:0] valueout;
|
||||
|
||||
Counter cnt(
|
||||
.clock(clock),
|
||||
.reset(reset),
|
||||
.decrement(decrement),
|
||||
.setvalue(setvalue),
|
||||
.valuein(valuein),
|
||||
.valueout(valueout)
|
||||
);
|
||||
|
||||
// synthesis translate_off
|
||||
integer ii;
|
||||
initial begin
|
||||
$timeformat(-9, 2, " ns", 20);
|
||||
|
||||
$display("%0t Initial Reset", $time);
|
||||
#20 reset = 1'b1;
|
||||
#20 reset = 1'b0;
|
||||
assert (valueout == 1'b0);
|
||||
|
||||
$display("%0t Increment 1024x", $time);
|
||||
decrement = 1'b0;
|
||||
for (ii = 0; ii < 1024; ii = ii + 1) begin
|
||||
#20 clock = 1'b1;
|
||||
#20 clock = 1'b0;
|
||||
assert (valueout == 8'(ii + 1));
|
||||
end
|
||||
|
||||
$display("%0t Decrement 1024x", $time);
|
||||
decrement = 1'b1;
|
||||
for (ii = 1024; ii > 0; ii = ii - 1) begin
|
||||
#20 clock = 1'b1;
|
||||
#20 clock = 1'b0;
|
||||
assert (valueout == 8'(ii - 1));
|
||||
end
|
||||
|
||||
$display("%0t Setvalue", $time);
|
||||
decrement = 1'b0;
|
||||
setvalue = 1'b1;
|
||||
valuein = 8'b00001111;
|
||||
#20 clock = 1'b1;
|
||||
#20 clock = 1'b0;
|
||||
assert (valueout == 8'b00001111);
|
||||
|
||||
$display("%0t Reset", $time);
|
||||
#20 reset = 1'b1;
|
||||
#20 reset = 1'b0;
|
||||
assert (valueout == 8'b0);
|
||||
|
||||
$display("Success!");
|
||||
end
|
||||
|
||||
// synthesis translate_on
|
||||
endmodule
|
Reference in New Issue
Block a user