diff --git a/.gitignore b/.gitignore index 8bc9eed..5c7b684 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ *.rpt *.bak .#* +#*.*# +.*~ /db /incremental_db @@ -19,11 +21,15 @@ drivers/ HAL/ Part_test/ .metadata/ +.settings/ RemoteSystemsTempFiles/ aldec/ cadence/ synopsys/ +db/ +incremental_db/ +*.xml /testbenches/*.bak /common_uart/*.bak diff --git a/HDL/IP/sine256.mif b/HDL/IP/sine256.mif new file mode 100644 index 0000000..a5d700e --- /dev/null +++ b/HDL/IP/sine256.mif @@ -0,0 +1,242 @@ +WIDTH = 8; +DEPTH = 256; + +ADDRESS_RADIX = DEC; +DATA_RADIX = HEX; + +CONTENT BEGIN + 0 : 02; + 1 : 05; + 2 : 08; + 3 : 0B; + 4 : 0E; + 5 : 11; + 6 : 14; + 7 : 17; + 8 : 1A; + 9 : 1D; + 10 : 20; + 11 : 23; + 12 : 26; + 13 : 29; + 14 : 2C; + 15 : 2F; + 16 : 32; + 17 : 35; + 18 : 38; + 19 : 3A; + 20 : 3D; + 21 : 40; + 22 : 43; + 23 : 45; + 24 : 48; + 25 : 4A; + 26 : 4D; + 27 : 4F; + 28 : 52; + 29 : 54; + 30 : 56; + 31 : 59; + 32 : 5B; + 33 : 5D; + 34 : 5F; + 35 : 61; + 36 : 63; + 37 : 65; + 38 : 67; + 39 : 69; + 40 : 6A; + 41 : 6C; + 42 : 6E; + 43 : 6F; + 44 : 71; + 45 : 72; + 46 : 73; + 47 : 75; + 48 : 76; + 49 : 77; + 50 : 78; + 51 : 79; + 52 : 7A; + 53 : 7B; + 54 : 7C; + 55 : 7C; + 56 : 7D; + 57 : 7D; + [58..69] : 7E; + 70 : 7D; + 71 : 7D; + 72 : 7C; + 73 : 7C; + 74 : 7B; + 75 : 7A; + 76 : 79; + 77 : 78; + 78 : 77; + 79 : 76; + 80 : 75; + 81 : 73; + 82 : 72; + 83 : 71; + 84 : 6F; + 85 : 6E; + 86 : 6C; + 87 : 6A; + 88 : 69; + 89 : 67; + 90 : 65; + 91 : 63; + 92 : 61; + 93 : 5F; + 94 : 5D; + 95 : 5B; + 96 : 59; + 97 : 56; + 98 : 54; + 99 : 52; + 100 : 4F; + 101 : 4D; + 102 : 4A; + 103 : 48; + 104 : 45; + 105 : 43; + 106 : 40; + 107 : 3D; + 108 : 3A; + 109 : 38; + 110 : 35; + 111 : 32; + 112 : 2F; + 113 : 2C; + 114 : 29; + 115 : 26; + 116 : 23; + 117 : 20; + 118 : 1D; + 119 : 1A; + 120 : 17; + 121 : 14; + 122 : 11; + 123 : 0E; + 124 : 0B; + 125 : 08; + 126 : 05; + 127 : 02; + 128 : FE; + 129 : FB; + 130 : F8; + 131 : F5; + 132 : F2; + 133 : EF; + 134 : EC; + 135 : E9; + 136 : E6; + 137 : E3; + 138 : E0; + 139 : DD; + 140 : DA; + 141 : D7; + 142 : D4; + 143 : D1; + 144 : CE; + 145 : CB; + 146 : C8; + 147 : C6; + 148 : C3; + 149 : C0; + 150 : BD; + 151 : BB; + 152 : B8; + 153 : B6; + 154 : B3; + 155 : B1; + 156 : AE; + 157 : AC; + 158 : AA; + 159 : A7; + 160 : A5; + 161 : A3; + 162 : A1; + 163 : 9F; + 164 : 9D; + 165 : 9B; + 166 : 99; + 167 : 97; + 168 : 96; + 169 : 94; + 170 : 92; + 171 : 91; + 172 : 8F; + 173 : 8E; + 174 : 8D; + 175 : 8B; + 176 : 8A; + 177 : 89; + 178 : 88; + 179 : 87; + 180 : 86; + 181 : 85; + 182 : 84; + 183 : 84; + 184 : 83; + 185 : 83; + [186..197] : 82; + 198 : 83; + 199 : 83; + 200 : 84; + 201 : 84; + 202 : 85; + 203 : 86; + 204 : 87; + 205 : 88; + 206 : 89; + 207 : 8A; + 208 : 8B; + 209 : 8D; + 210 : 8E; + 211 : 8F; + 212 : 91; + 213 : 92; + 214 : 94; + 215 : 96; + 216 : 97; + 217 : 99; + 218 : 9B; + 219 : 9D; + 220 : 9F; + 221 : A1; + 222 : A3; + 223 : A5; + 224 : A7; + 225 : AA; + 226 : AC; + 227 : AE; + 228 : B1; + 229 : B3; + 230 : B6; + 231 : B8; + 232 : BB; + 233 : BD; + 234 : C0; + 235 : C3; + 236 : C6; + 237 : C8; + 238 : CB; + 239 : CE; + 240 : D1; + 241 : D4; + 242 : D7; + 243 : DA; + 244 : DD; + 245 : E0; + 246 : E3; + 247 : E6; + 248 : E9; + 249 : EC; + 250 : EF; + 251 : F2; + 252 : F5; + 253 : F8; + 254 : FB; + 255 : FE; +END; diff --git a/HDL/IP/sinelut.qip b/HDL/IP/sinelut.qip new file mode 100644 index 0000000..02a5cec --- /dev/null +++ b/HDL/IP/sinelut.qip @@ -0,0 +1,5 @@ +set_global_assignment -name IP_TOOL_NAME "ROM: 1-PORT" +set_global_assignment -name IP_TOOL_VERSION "18.1" +set_global_assignment -name IP_GENERATED_DEVICE_FAMILY "{Cyclone IV E}" +set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) "sinelut.v"] +set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "sinelut_bb.v"] diff --git a/HDL/IP/sinelut.v b/HDL/IP/sinelut.v new file mode 100644 index 0000000..0f449f8 --- /dev/null +++ b/HDL/IP/sinelut.v @@ -0,0 +1,159 @@ +// megafunction wizard: %ROM: 1-PORT% +// GENERATION: STANDARD +// VERSION: WM1.0 +// MODULE: altsyncram + +// ============================================================ +// File Name: sinelut.v +// Megafunction Name(s): +// altsyncram +// +// Simulation Library Files(s): +// altera_mf +// ============================================================ +// ************************************************************ +// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! +// +// 18.1.0 Build 625 09/12/2018 SJ Lite Edition +// ************************************************************ + + +//Copyright (C) 2018 Intel Corporation. All rights reserved. +//Your use of Intel Corporation's design tools, logic functions +//and other software and tools, and its AMPP partner logic +//functions, and any output files from any of the foregoing +//(including device programming or simulation files), and any +//associated documentation or information are expressly subject +//to the terms and conditions of the Intel Program License +//Subscription Agreement, the Intel Quartus Prime License Agreement, +//the Intel FPGA IP License Agreement, or other applicable license +//agreement, including, without limitation, that your use is for +//the sole purpose of programming logic devices manufactured by +//Intel and sold by Intel or its authorized distributors. Please +//refer to the applicable agreement for further details. + + +// synopsys translate_off +`timescale 1 ps / 1 ps +// synopsys translate_on +module sinelut ( + address, + clock, + q); + + input [7:0] address; + input clock; + output [7:0] q; +`ifndef ALTERA_RESERVED_QIS +// synopsys translate_off +`endif + tri1 clock; +`ifndef ALTERA_RESERVED_QIS +// synopsys translate_on +`endif + + wire [7:0] sub_wire0; + wire [7:0] q = sub_wire0[7:0]; + + altsyncram altsyncram_component ( + .address_a (address), + .clock0 (clock), + .q_a (sub_wire0), + .aclr0 (1'b0), + .aclr1 (1'b0), + .address_b (1'b1), + .addressstall_a (1'b0), + .addressstall_b (1'b0), + .byteena_a (1'b1), + .byteena_b (1'b1), + .clock1 (1'b1), + .clocken0 (1'b1), + .clocken1 (1'b1), + .clocken2 (1'b1), + .clocken3 (1'b1), + .data_a ({8{1'b1}}), + .data_b (1'b1), + .eccstatus (), + .q_b (), + .rden_a (1'b1), + .rden_b (1'b1), + .wren_a (1'b0), + .wren_b (1'b0)); + defparam + altsyncram_component.address_aclr_a = "NONE", + altsyncram_component.clock_enable_input_a = "BYPASS", + altsyncram_component.clock_enable_output_a = "BYPASS", + altsyncram_component.init_file = "sine256.mif", + altsyncram_component.intended_device_family = "Cyclone IV E", + altsyncram_component.lpm_hint = "ENABLE_RUNTIME_MOD=NO", + altsyncram_component.lpm_type = "altsyncram", + altsyncram_component.numwords_a = 256, + altsyncram_component.operation_mode = "ROM", + altsyncram_component.outdata_aclr_a = "NONE", + altsyncram_component.outdata_reg_a = "CLOCK0", + altsyncram_component.widthad_a = 8, + altsyncram_component.width_a = 8, + altsyncram_component.width_byteena_a = 1; + + +endmodule + +// ============================================================ +// CNX file retrieval info +// ============================================================ +// Retrieval info: PRIVATE: ADDRESSSTALL_A NUMERIC "0" +// Retrieval info: PRIVATE: AclrAddr NUMERIC "0" +// Retrieval info: PRIVATE: AclrByte NUMERIC "0" +// Retrieval info: PRIVATE: AclrOutput NUMERIC "0" +// Retrieval info: PRIVATE: BYTE_ENABLE NUMERIC "0" +// Retrieval info: PRIVATE: BYTE_SIZE NUMERIC "8" +// Retrieval info: PRIVATE: BlankMemory NUMERIC "0" +// Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_A NUMERIC "0" +// Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_A NUMERIC "0" +// Retrieval info: PRIVATE: Clken NUMERIC "0" +// Retrieval info: PRIVATE: IMPLEMENT_IN_LES NUMERIC "0" +// Retrieval info: PRIVATE: INIT_FILE_LAYOUT STRING "PORT_A" +// Retrieval info: PRIVATE: INIT_TO_SIM_X NUMERIC "0" +// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E" +// Retrieval info: PRIVATE: JTAG_ENABLED NUMERIC "0" +// Retrieval info: PRIVATE: JTAG_ID STRING "NONE" +// Retrieval info: PRIVATE: MAXIMUM_DEPTH NUMERIC "0" +// Retrieval info: PRIVATE: MIFfilename STRING "sine256.mif" +// Retrieval info: PRIVATE: NUMWORDS_A NUMERIC "256" +// Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0" +// Retrieval info: PRIVATE: RegAddr NUMERIC "1" +// Retrieval info: PRIVATE: RegOutput NUMERIC "1" +// Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0" +// Retrieval info: PRIVATE: SingleClock NUMERIC "1" +// Retrieval info: PRIVATE: UseDQRAM NUMERIC "0" +// Retrieval info: PRIVATE: WidthAddr NUMERIC "8" +// Retrieval info: PRIVATE: WidthData NUMERIC "8" +// Retrieval info: PRIVATE: rden NUMERIC "0" +// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all +// Retrieval info: CONSTANT: ADDRESS_ACLR_A STRING "NONE" +// Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_A STRING "BYPASS" +// Retrieval info: CONSTANT: CLOCK_ENABLE_OUTPUT_A STRING "BYPASS" +// Retrieval info: CONSTANT: INIT_FILE STRING "sine256.mif" +// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E" +// Retrieval info: CONSTANT: LPM_HINT STRING "ENABLE_RUNTIME_MOD=NO" +// Retrieval info: CONSTANT: LPM_TYPE STRING "altsyncram" +// Retrieval info: CONSTANT: NUMWORDS_A NUMERIC "256" +// Retrieval info: CONSTANT: OPERATION_MODE STRING "ROM" +// Retrieval info: CONSTANT: OUTDATA_ACLR_A STRING "NONE" +// Retrieval info: CONSTANT: OUTDATA_REG_A STRING "CLOCK0" +// Retrieval info: CONSTANT: WIDTHAD_A NUMERIC "8" +// Retrieval info: CONSTANT: WIDTH_A NUMERIC "8" +// Retrieval info: CONSTANT: WIDTH_BYTEENA_A NUMERIC "1" +// Retrieval info: USED_PORT: address 0 0 8 0 INPUT NODEFVAL "address[7..0]" +// Retrieval info: USED_PORT: clock 0 0 0 0 INPUT VCC "clock" +// Retrieval info: USED_PORT: q 0 0 8 0 OUTPUT NODEFVAL "q[7..0]" +// Retrieval info: CONNECT: @address_a 0 0 8 0 address 0 0 8 0 +// Retrieval info: CONNECT: @clock0 0 0 0 0 clock 0 0 0 0 +// Retrieval info: CONNECT: q 0 0 8 0 @q_a 0 0 8 0 +// Retrieval info: GEN_FILE: TYPE_NORMAL sinelut.v TRUE +// Retrieval info: GEN_FILE: TYPE_NORMAL sinelut.inc FALSE +// Retrieval info: GEN_FILE: TYPE_NORMAL sinelut.cmp FALSE +// Retrieval info: GEN_FILE: TYPE_NORMAL sinelut.bsf FALSE +// Retrieval info: GEN_FILE: TYPE_NORMAL sinelut_inst.v FALSE +// Retrieval info: GEN_FILE: TYPE_NORMAL sinelut_bb.v TRUE +// Retrieval info: LIB_FILE: altera_mf diff --git a/HDL/IP/sinelut_bb.v b/HDL/IP/sinelut_bb.v new file mode 100644 index 0000000..64e01dc --- /dev/null +++ b/HDL/IP/sinelut_bb.v @@ -0,0 +1,110 @@ +// megafunction wizard: %ROM: 1-PORT%VBB% +// GENERATION: STANDARD +// VERSION: WM1.0 +// MODULE: altsyncram + +// ============================================================ +// File Name: sinelut.v +// Megafunction Name(s): +// altsyncram +// +// Simulation Library Files(s): +// altera_mf +// ============================================================ +// ************************************************************ +// THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! +// +// 18.1.0 Build 625 09/12/2018 SJ Lite Edition +// ************************************************************ + +//Copyright (C) 2018 Intel Corporation. All rights reserved. +//Your use of Intel Corporation's design tools, logic functions +//and other software and tools, and its AMPP partner logic +//functions, and any output files from any of the foregoing +//(including device programming or simulation files), and any +//associated documentation or information are expressly subject +//to the terms and conditions of the Intel Program License +//Subscription Agreement, the Intel Quartus Prime License Agreement, +//the Intel FPGA IP License Agreement, or other applicable license +//agreement, including, without limitation, that your use is for +//the sole purpose of programming logic devices manufactured by +//Intel and sold by Intel or its authorized distributors. Please +//refer to the applicable agreement for further details. + +module sinelut ( + address, + clock, + q); + + input [7:0] address; + input clock; + output [7:0] q; +`ifndef ALTERA_RESERVED_QIS +// synopsys translate_off +`endif + tri1 clock; +`ifndef ALTERA_RESERVED_QIS +// synopsys translate_on +`endif + +endmodule + +// ============================================================ +// CNX file retrieval info +// ============================================================ +// Retrieval info: PRIVATE: ADDRESSSTALL_A NUMERIC "0" +// Retrieval info: PRIVATE: AclrAddr NUMERIC "0" +// Retrieval info: PRIVATE: AclrByte NUMERIC "0" +// Retrieval info: PRIVATE: AclrOutput NUMERIC "0" +// Retrieval info: PRIVATE: BYTE_ENABLE NUMERIC "0" +// Retrieval info: PRIVATE: BYTE_SIZE NUMERIC "8" +// Retrieval info: PRIVATE: BlankMemory NUMERIC "0" +// Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_A NUMERIC "0" +// Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_A NUMERIC "0" +// Retrieval info: PRIVATE: Clken NUMERIC "0" +// Retrieval info: PRIVATE: IMPLEMENT_IN_LES NUMERIC "0" +// Retrieval info: PRIVATE: INIT_FILE_LAYOUT STRING "PORT_A" +// Retrieval info: PRIVATE: INIT_TO_SIM_X NUMERIC "0" +// Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E" +// Retrieval info: PRIVATE: JTAG_ENABLED NUMERIC "0" +// Retrieval info: PRIVATE: JTAG_ID STRING "NONE" +// Retrieval info: PRIVATE: MAXIMUM_DEPTH NUMERIC "0" +// Retrieval info: PRIVATE: MIFfilename STRING "sine256.mif" +// Retrieval info: PRIVATE: NUMWORDS_A NUMERIC "256" +// Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0" +// Retrieval info: PRIVATE: RegAddr NUMERIC "1" +// Retrieval info: PRIVATE: RegOutput NUMERIC "1" +// Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0" +// Retrieval info: PRIVATE: SingleClock NUMERIC "1" +// Retrieval info: PRIVATE: UseDQRAM NUMERIC "0" +// Retrieval info: PRIVATE: WidthAddr NUMERIC "8" +// Retrieval info: PRIVATE: WidthData NUMERIC "8" +// Retrieval info: PRIVATE: rden NUMERIC "0" +// Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all +// Retrieval info: CONSTANT: ADDRESS_ACLR_A STRING "NONE" +// Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_A STRING "BYPASS" +// Retrieval info: CONSTANT: CLOCK_ENABLE_OUTPUT_A STRING "BYPASS" +// Retrieval info: CONSTANT: INIT_FILE STRING "sine256.mif" +// Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E" +// Retrieval info: CONSTANT: LPM_HINT STRING "ENABLE_RUNTIME_MOD=NO" +// Retrieval info: CONSTANT: LPM_TYPE STRING "altsyncram" +// Retrieval info: CONSTANT: NUMWORDS_A NUMERIC "256" +// Retrieval info: CONSTANT: OPERATION_MODE STRING "ROM" +// Retrieval info: CONSTANT: OUTDATA_ACLR_A STRING "NONE" +// Retrieval info: CONSTANT: OUTDATA_REG_A STRING "CLOCK0" +// Retrieval info: CONSTANT: WIDTHAD_A NUMERIC "8" +// Retrieval info: CONSTANT: WIDTH_A NUMERIC "8" +// Retrieval info: CONSTANT: WIDTH_BYTEENA_A NUMERIC "1" +// Retrieval info: USED_PORT: address 0 0 8 0 INPUT NODEFVAL "address[7..0]" +// Retrieval info: USED_PORT: clock 0 0 0 0 INPUT VCC "clock" +// Retrieval info: USED_PORT: q 0 0 8 0 OUTPUT NODEFVAL "q[7..0]" +// Retrieval info: CONNECT: @address_a 0 0 8 0 address 0 0 8 0 +// Retrieval info: CONNECT: @clock0 0 0 0 0 clock 0 0 0 0 +// Retrieval info: CONNECT: q 0 0 8 0 @q_a 0 0 8 0 +// Retrieval info: GEN_FILE: TYPE_NORMAL sinelut.v TRUE +// Retrieval info: GEN_FILE: TYPE_NORMAL sinelut.inc FALSE +// Retrieval info: GEN_FILE: TYPE_NORMAL sinelut.cmp FALSE +// Retrieval info: GEN_FILE: TYPE_NORMAL sinelut.bsf FALSE +// Retrieval info: GEN_FILE: TYPE_NORMAL sinelut_inst.v FALSE +// Retrieval info: GEN_FILE: TYPE_NORMAL sinelut_bb.v TRUE +// Retrieval info: LIB_FILE: altera_mf diff --git a/HDL/IP/sinelut_inst.v b/HDL/IP/sinelut_inst.v new file mode 100644 index 0000000..0cc87a5 --- /dev/null +++ b/HDL/IP/sinelut_inst.v @@ -0,0 +1,5 @@ +sinelut sinelut_inst ( + .address ( address_sig ), + .clock ( clock_sig ), + .q ( q_sig ) + ); diff --git a/HDL/phacc.sv b/HDL/phacc.sv new file mode 100644 index 0000000..fa1bc47 --- /dev/null +++ b/HDL/phacc.sv @@ -0,0 +1,23 @@ +module phacc + #( + parameter unsigned WIDTH = 14 + ) ( + input logic [7:0] phinc, + input clk, + input reset, + output [7:0] phase + ); + + logic [WIDTH - 1 : 0] sum; + + always_ff @(posedge clk, negedge reset) begin + if (~reset) begin + sum <= 0; + end else begin + sum <= sum + phinc; + end + end + + assign phase = sum[WIDTH - 1 : WIDTH - 8]; + +endmodule diff --git a/HDL/sigdel.sv b/HDL/sigdel.sv new file mode 100644 index 0000000..19ae48f --- /dev/null +++ b/HDL/sigdel.sv @@ -0,0 +1,21 @@ +//top-level module +module sigdel +#( + PHACC_WIDTH = 14 +) ( + //clock and reset + input logic clk, clr_n, + //control slave + input logic [31:0] wr_data, + input logic wr_n, + output logic fout +); + + phacc phacc_inst (.phinc(phinc_val), .clk(clk), .reset(clr_n), .phase(phase)); + defparam phacc_inst.WIDTH = PHACC_WIDTH; + + sinelut sinelut_inst ( + .address (phase), .clock (clk), .q(sine) + ); + +endmodule diff --git a/Testbench/dec/#dec_tb.sv# b/Testbench/dec/#dec_tb.sv# deleted file mode 100644 index 00becc7..0000000 --- a/Testbench/dec/#dec_tb.sv# +++ /dev/null @@ -1,128 +0,0 @@ -`timescale 1 ns/1 ns - -module dec_tb(); - - // Wires and variables to connect to UUT (unit under test) - logic clk, clrn, train; - logic r, y, g; - logic [1:0] div; - logic ctl_wr, ctl_rd; - logic ctl_addr; - logic [31:0] ctl_wrdata; - logic [31:0] ctl_rddata; - logic ram_wr; - logic [3:0] ram_addr; - logic [31:0] ram_wrdata; - - logic [31:0] divisor[3:0] = { - {8'd10, 8'd70, 8'd50, 8'd20}, - {8'd10, 8'd30, 8'd40, 8'd30}, - {8'd10, 8'd30, 8'd10, 8'd100}, - {8'd10, 8'd60, 8'd80, 8'd50} - }; - - // Instantiate UUT - dec my_sem( - .clk(clk), .clrn(clrn), - .ctl_wr(ctl_wr), .ctl_rd(ctl_rd), - .ctl_addr(ctl_addr), .ctl_wrdata(ctl_wrdata), .ctl_rddata(ctl_rddata), - .ram_wr(ram_wr), - .ram_addr(ram_addr), .ram_wrdata(ram_wrdata), - .train(train), .red(r), .yellow(y), .green(g) - ); - - // Clock definition - initial begin - clk = 0; - forever #10 clk = ~clk; - end - - // Divisor and train definition - initial begin - //initial reset - clrn = 0; - div = 0; - train = 0; - //take reset off - @(negedge clk) clrn = 1; - //configure semaphore - for (int i=0; i<4; i++) write_ram_transaction(i,divisor[i]); //write divisor RAM - write_reg_transaction(1,div); //write initial divisor - write_reg_transaction(0,1); //enable semaphore - //run trains - repeat (4) - begin - repeat (10) @(posedge clk); - train=1; - repeat (4) @(posedge clk); - train=0; - wait ({r,y,g}==3'b001); - repeat (10) @(posedge clk); - write_reg_transaction(1,div); - div=div+1; - end - //wait a little - repeat (10) @(posedge clk); - $stop; - end - - //Single register write transaction task - task write_reg_transaction; - //input signals - input [1:0] offs; - input [31:0] val; - //transaction implementation - begin - @(posedge clk); - //assert signals for one clock cycle - ctl_wr = 1; - ctl_addr = offs; - ctl_wrdata = val; - @(posedge clk); - //deassert signals - ctl_wr = 0; - ctl_addr = 'bx; - ctl_wrdata = 'bx; - end - endtask - - //Single register read transaction task - task read_reg_transaction; - //input signals - input [1:0] offs; - output [31:0] val; - //transaction implementation - begin - @(posedge clk); - //assert signals for one clock cycle - ctl_rd = 1; - ctl_addr = offs; - @(posedge clk); - val = ctl_rddata; - //deassert signals - ctl_rd = 0; - ctl_addr = 'bx; - end - endtask - - //RAM write transaction task - task write_ram_transaction; - //input signals - input [1:0] offs; - input [31:0] val; - //transaction implementation - begin - @(posedge clk); - //assert signals for one clock cycle - ram_wr = 1; - ram_addr = offs; - ram_wrdata = val; - @(posedge clk); - //deassert signals - ram_wr = 0; - ram_addr = 'bx; - ram_wrdata = 'bx; - end - endtask - -endmodule diff --git a/Testbench/sigdel/db/prev_cmp_sigdel.qmsg b/Testbench/sigdel/db/prev_cmp_sigdel.qmsg deleted file mode 100644 index 1a6f05d..0000000 --- a/Testbench/sigdel/db/prev_cmp_sigdel.qmsg +++ /dev/null @@ -1,9 +0,0 @@ -{ "Info" "IQEXE_SEPARATOR" "" "*******************************************************************" { } { } 3 0 "*******************************************************************" 0 0 "Design Software" 0 -1 1673520674097 ""} -{ "Info" "IQEXE_START_BANNER_PRODUCT" "Analysis & Synthesis Quartus Prime " "Running Quartus Prime Analysis & Synthesis" { { "Info" "IQEXE_START_BANNER_VERSION" "Version 18.1.0 Build 625 09/12/2018 SJ Lite Edition " "Version 18.1.0 Build 625 09/12/2018 SJ Lite Edition" { } { } 0 0 "%1!s!" 0 0 "Design Software" 0 -1 1673520674097 ""} { "Info" "IQEXE_START_BANNER_TIME" "Thu Jan 12 13:51:13 2023 " "Processing started: Thu Jan 12 13:51:13 2023" { } { } 0 0 "Processing started: %1!s!" 0 0 "Design Software" 0 -1 1673520674097 ""} } { } 4 0 "Running %2!s! %1!s!" 0 0 "Analysis & Synthesis" 0 -1 1673520674097 ""} -{ "Info" "IQEXE_START_BANNER_COMMANDLINE" "quartus_map --read_settings_files=on --write_settings_files=off sigdel -c sigdel " "Command: quartus_map --read_settings_files=on --write_settings_files=off sigdel -c sigdel" { } { } 0 0 "Command: %1!s!" 0 0 "Analysis & Synthesis" 0 -1 1673520674098 ""} -{ "Warning" "WQCU_PARALLEL_USER_SHOULD_SPECIFY_NUM_PROC" "" "Number of processors has not been specified which may cause overloading on shared machines. Set the global assignment NUM_PARALLEL_PROCESSORS in your QSF to an appropriate value for best performance." { } { } 0 18236 "Number of processors has not been specified which may cause overloading on shared machines. Set the global assignment NUM_PARALLEL_PROCESSORS in your QSF to an appropriate value for best performance." 0 0 "Analysis & Synthesis" 0 -1 1673520674253 ""} -{ "Info" "IQCU_PARALLEL_AUTODETECT_MULTIPLE_PROCESSORS" "8 8 " "Parallel compilation is enabled and will use 8 of the 8 processors detected" { } { } 0 20030 "Parallel compilation is enabled and will use %1!i! of the %2!i! processors detected" 0 0 "Analysis & Synthesis" 0 -1 1673520674253 ""} -{ "Error" "EVRFX_VERI_SYNTAX_ERROR" "\"\[\"; expecting an operand sigdel.sv(14) " "Verilog HDL syntax error at sigdel.sv(14) near text: \"\[\"; expecting an operand. Check for and fix any syntax errors that appear immediately before or at the specified keyword. The Intel FPGA Knowledge Database contains many articles with specific details on how to resolve this error. Visit the Knowledge Database at https://www.altera.com/support/support-resources/knowledge-base/search.html and search for this specific error message number." { } { { "../../HDL/sigdel.sv" "" { Text "/home/ovchinnikov_ii@RISDE.ru/Documents/Lab2/HDL/sigdel.sv" 14 0 0 } } } 0 10170 "Verilog HDL syntax error at %2!s! near text: %1!s!. Check for and fix any syntax errors that appear immediately before or at the specified keyword. The Intel FPGA Knowledge Database contains many articles with specific details on how to resolve this error. Visit the Knowledge Database at https://www.altera.com/support/support-resources/knowledge-base/search.html and search for this specific error message number." 0 0 "Analysis & Synthesis" 0 -1 1673520680482 ""} -{ "Error" "EVRFX_VERI_DESIGN_UNIT_IGNORED" "sigdel sigdel.sv(1) " "Ignored design unit \"sigdel\" at sigdel.sv(1) due to previous errors" { } { { "../../HDL/sigdel.sv" "" { Text "/home/ovchinnikov_ii@RISDE.ru/Documents/Lab2/HDL/sigdel.sv" 1 0 0 } } } 0 10112 "Ignored design unit \"%1!s!\" at %2!s! due to previous errors" 0 0 "Analysis & Synthesis" 0 -1 1673520680482 ""} -{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "/home/ovchinnikov_ii@RISDE.ru/Documents/Lab2/HDL/sigdel.sv 0 0 " "Found 0 design units, including 0 entities, in source file /home/ovchinnikov_ii@RISDE.ru/Documents/Lab2/HDL/sigdel.sv" { } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Analysis & Synthesis" 0 -1 1673520680483 ""} -{ "Error" "EQEXE_ERROR_COUNT" "Analysis & Synthesis 2 s 1 Quartus Prime " "Quartus Prime Analysis & Synthesis was unsuccessful. 2 errors, 1 warning" { { "Error" "EQEXE_END_PEAK_VSIZE_MEMORY" "923 " "Peak virtual memory: 923 megabytes" { } { } 0 0 "Peak virtual memory: %1!s! megabytes" 0 0 "Design Software" 0 -1 1673520680505 ""} { "Error" "EQEXE_END_BANNER_TIME" "Thu Jan 12 13:51:20 2023 " "Processing ended: Thu Jan 12 13:51:20 2023" { } { } 0 0 "Processing ended: %1!s!" 0 0 "Design Software" 0 -1 1673520680505 ""} { "Error" "EQEXE_ELAPSED_TIME" "00:00:07 " "Elapsed time: 00:00:07" { } { } 0 0 "Elapsed time: %1!s!" 0 0 "Design Software" 0 -1 1673520680505 ""} { "Error" "EQEXE_ELAPSED_CPU_TIME" "00:00:17 " "Total CPU time (on all processors): 00:00:17" { } { } 0 0 "Total CPU time (on all processors): %1!s!" 0 0 "Design Software" 0 -1 1673520680505 ""} } { } 0 0 "%6!s! %1!s! was unsuccessful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Analysis & Synthesis" 0 -1 1673520680505 ""} diff --git a/Testbench/sigdel/db/sigdel.(0).cnf.cdb b/Testbench/sigdel/db/sigdel.(0).cnf.cdb deleted file mode 100644 index 0f55ee1..0000000 Binary files a/Testbench/sigdel/db/sigdel.(0).cnf.cdb and /dev/null differ diff --git a/Testbench/sigdel/db/sigdel.(0).cnf.hdb b/Testbench/sigdel/db/sigdel.(0).cnf.hdb deleted file mode 100644 index c9098ef..0000000 Binary files a/Testbench/sigdel/db/sigdel.(0).cnf.hdb and /dev/null differ diff --git a/Testbench/sigdel/db/sigdel.cbx.xml b/Testbench/sigdel/db/sigdel.cbx.xml deleted file mode 100644 index 4c9d94f..0000000 --- a/Testbench/sigdel/db/sigdel.cbx.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/Testbench/sigdel/db/sigdel.cmp.rdb b/Testbench/sigdel/db/sigdel.cmp.rdb deleted file mode 100644 index d161ef5..0000000 Binary files a/Testbench/sigdel/db/sigdel.cmp.rdb and /dev/null differ diff --git a/Testbench/sigdel/db/sigdel.cmp_merge.kpt b/Testbench/sigdel/db/sigdel.cmp_merge.kpt deleted file mode 100644 index 049df89..0000000 Binary files a/Testbench/sigdel/db/sigdel.cmp_merge.kpt and /dev/null differ diff --git a/Testbench/sigdel/db/sigdel.db_info b/Testbench/sigdel/db/sigdel.db_info deleted file mode 100644 index 132a34a..0000000 --- a/Testbench/sigdel/db/sigdel.db_info +++ /dev/null @@ -1,3 +0,0 @@ -Quartus_Version = Version 18.1.0 Build 625 09/12/2018 SJ Lite Edition -Version_Index = 486699264 -Creation_Time = Mon Jan 16 21:47:58 2023 diff --git a/Testbench/sigdel/db/sigdel.hier_info b/Testbench/sigdel/db/sigdel.hier_info deleted file mode 100644 index 388f4ea..0000000 --- a/Testbench/sigdel/db/sigdel.hier_info +++ /dev/null @@ -1,47 +0,0 @@ -|sigdel -phinc[0] => Add0.IN14 -phinc[1] => Add0.IN13 -phinc[2] => Add0.IN12 -phinc[3] => Add0.IN11 -phinc[4] => Add0.IN10 -phinc[5] => Add0.IN9 -phinc[6] => Add0.IN8 -phinc[7] => Add0.IN7 -clk => acc[0].CLK -clk => acc[1].CLK -clk => acc[2].CLK -clk => acc[3].CLK -clk => acc[4].CLK -clk => acc[5].CLK -clk => acc[6].CLK -clk => acc[7].CLK -clk => acc[8].CLK -clk => acc[9].CLK -clk => acc[10].CLK -clk => acc[11].CLK -clk => acc[12].CLK -clk => acc[13].CLK -clr_n => acc[0].ACLR -clr_n => acc[1].ACLR -clr_n => acc[2].ACLR -clr_n => acc[3].ACLR -clr_n => acc[4].ACLR -clr_n => acc[5].ACLR -clr_n => acc[6].ACLR -clr_n => acc[7].ACLR -clr_n => acc[8].ACLR -clr_n => acc[9].ACLR -clr_n => acc[10].ACLR -clr_n => acc[11].ACLR -clr_n => acc[12].ACLR -clr_n => acc[13].ACLR -phase[0] <= acc[6].DB_MAX_OUTPUT_PORT_TYPE -phase[1] <= acc[7].DB_MAX_OUTPUT_PORT_TYPE -phase[2] <= acc[8].DB_MAX_OUTPUT_PORT_TYPE -phase[3] <= acc[9].DB_MAX_OUTPUT_PORT_TYPE -phase[4] <= acc[10].DB_MAX_OUTPUT_PORT_TYPE -phase[5] <= acc[11].DB_MAX_OUTPUT_PORT_TYPE -phase[6] <= acc[12].DB_MAX_OUTPUT_PORT_TYPE -phase[7] <= acc[13].DB_MAX_OUTPUT_PORT_TYPE - - diff --git a/Testbench/sigdel/db/sigdel.hif b/Testbench/sigdel/db/sigdel.hif deleted file mode 100644 index c478932..0000000 Binary files a/Testbench/sigdel/db/sigdel.hif and /dev/null differ diff --git a/Testbench/sigdel/db/sigdel.lpc.html b/Testbench/sigdel/db/sigdel.lpc.html deleted file mode 100644 index fbc5ab5..0000000 --- a/Testbench/sigdel/db/sigdel.lpc.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - -
HierarchyInputConstant InputUnused InputFloating InputOutputConstant OutputUnused OutputFloating OutputBidirConstant BidirUnused BidirInput only BidirOutput only Bidir
diff --git a/Testbench/sigdel/db/sigdel.lpc.rdb b/Testbench/sigdel/db/sigdel.lpc.rdb deleted file mode 100644 index 6da93af..0000000 Binary files a/Testbench/sigdel/db/sigdel.lpc.rdb and /dev/null differ diff --git a/Testbench/sigdel/db/sigdel.lpc.txt b/Testbench/sigdel/db/sigdel.lpc.txt deleted file mode 100644 index a463804..0000000 --- a/Testbench/sigdel/db/sigdel.lpc.txt +++ /dev/null @@ -1,5 +0,0 @@ -+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -; Legal Partition Candidates ; -+-----------+-------+----------------+--------------+----------------+--------+-----------------+---------------+-----------------+-------+----------------+--------------+------------------+-------------------+ -; Hierarchy ; Input ; Constant Input ; Unused Input ; Floating Input ; Output ; Constant Output ; Unused Output ; Floating Output ; Bidir ; Constant Bidir ; Unused Bidir ; Input only Bidir ; Output only Bidir ; -+-----------+-------+----------------+--------------+----------------+--------+-----------------+---------------+-----------------+-------+----------------+--------------+------------------+-------------------+ diff --git a/Testbench/sigdel/db/sigdel.map.ammdb b/Testbench/sigdel/db/sigdel.map.ammdb deleted file mode 100644 index 46055fc..0000000 Binary files a/Testbench/sigdel/db/sigdel.map.ammdb and /dev/null differ diff --git a/Testbench/sigdel/db/sigdel.map.bpm b/Testbench/sigdel/db/sigdel.map.bpm deleted file mode 100644 index c0ec0ab..0000000 Binary files a/Testbench/sigdel/db/sigdel.map.bpm and /dev/null differ diff --git a/Testbench/sigdel/db/sigdel.map.cdb b/Testbench/sigdel/db/sigdel.map.cdb deleted file mode 100644 index 4f7368c..0000000 Binary files a/Testbench/sigdel/db/sigdel.map.cdb and /dev/null differ diff --git a/Testbench/sigdel/db/sigdel.map.hdb b/Testbench/sigdel/db/sigdel.map.hdb deleted file mode 100644 index 33b95dd..0000000 Binary files a/Testbench/sigdel/db/sigdel.map.hdb and /dev/null differ diff --git a/Testbench/sigdel/db/sigdel.map.kpt b/Testbench/sigdel/db/sigdel.map.kpt deleted file mode 100644 index 3da6623..0000000 Binary files a/Testbench/sigdel/db/sigdel.map.kpt and /dev/null differ diff --git a/Testbench/sigdel/db/sigdel.map.logdb b/Testbench/sigdel/db/sigdel.map.logdb deleted file mode 100644 index 626799f..0000000 --- a/Testbench/sigdel/db/sigdel.map.logdb +++ /dev/null @@ -1 +0,0 @@ -v1 diff --git a/Testbench/sigdel/db/sigdel.map.qmsg b/Testbench/sigdel/db/sigdel.map.qmsg deleted file mode 100644 index 94d2057..0000000 --- a/Testbench/sigdel/db/sigdel.map.qmsg +++ /dev/null @@ -1,12 +0,0 @@ -{ "Info" "IQEXE_SEPARATOR" "" "*******************************************************************" { } { } 3 0 "*******************************************************************" 0 0 "Design Software" 0 -1 1673883395012 ""} -{ "Info" "IQEXE_START_BANNER_PRODUCT" "Analysis & Synthesis Quartus Prime " "Running Quartus Prime Analysis & Synthesis" { { "Info" "IQEXE_START_BANNER_VERSION" "Version 18.1.0 Build 625 09/12/2018 SJ Lite Edition " "Version 18.1.0 Build 625 09/12/2018 SJ Lite Edition" { } { } 0 0 "%1!s!" 0 0 "Design Software" 0 -1 1673883395013 ""} { "Info" "IQEXE_START_BANNER_TIME" "Mon Jan 16 18:36:34 2023 " "Processing started: Mon Jan 16 18:36:34 2023" { } { } 0 0 "Processing started: %1!s!" 0 0 "Design Software" 0 -1 1673883395013 ""} } { } 4 0 "Running %2!s! %1!s!" 0 0 "Analysis & Synthesis" 0 -1 1673883395013 ""} -{ "Info" "IQEXE_START_BANNER_COMMANDLINE" "quartus_map --read_settings_files=on --write_settings_files=off sigdel -c sigdel " "Command: quartus_map --read_settings_files=on --write_settings_files=off sigdel -c sigdel" { } { } 0 0 "Command: %1!s!" 0 0 "Analysis & Synthesis" 0 -1 1673883395013 ""} -{ "Warning" "WQCU_PARALLEL_USER_SHOULD_SPECIFY_NUM_PROC" "" "Number of processors has not been specified which may cause overloading on shared machines. Set the global assignment NUM_PARALLEL_PROCESSORS in your QSF to an appropriate value for best performance." { } { } 0 18236 "Number of processors has not been specified which may cause overloading on shared machines. Set the global assignment NUM_PARALLEL_PROCESSORS in your QSF to an appropriate value for best performance." 0 0 "Analysis & Synthesis" 0 -1 1673883395187 ""} -{ "Info" "IQCU_PARALLEL_AUTODETECT_MULTIPLE_PROCESSORS" "8 8 " "Parallel compilation is enabled and will use 8 of the 8 processors detected" { } { } 0 20030 "Parallel compilation is enabled and will use %1!i! of the %2!i! processors detected" 0 0 "Analysis & Synthesis" 0 -1 1673883395187 ""} -{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "/home/ovchinnikov_ii@RISDE.ru/Documents/Lab2/HDL/sigdel.sv 1 1 " "Found 1 design units, including 1 entities, in source file /home/ovchinnikov_ii@RISDE.ru/Documents/Lab2/HDL/sigdel.sv" { { "Info" "ISGN_ENTITY_NAME" "1 sigdel " "Found entity 1: sigdel" { } { { "../../HDL/sigdel.sv" "" { Text "/home/ovchinnikov_ii@RISDE.ru/Documents/Lab2/HDL/sigdel.sv" 1 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Design Software" 0 -1 1673883401066 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Analysis & Synthesis" 0 -1 1673883401066 ""} -{ "Info" "ISGN_NUM_OF_DESIGN_UNITS_AND_ENTITIES" "sigdel_tb.sv 1 1 " "Found 1 design units, including 1 entities, in source file sigdel_tb.sv" { { "Info" "ISGN_ENTITY_NAME" "1 sigdel_tb " "Found entity 1: sigdel_tb" { } { { "sigdel_tb.sv" "" { Text "/home/ovchinnikov_ii@RISDE.ru/Documents/Lab2/Testbench/sigdel/sigdel_tb.sv" 3 -1 0 } } } 0 12023 "Found entity %1!d!: %2!s!" 0 0 "Design Software" 0 -1 1673883401066 ""} } { } 0 12021 "Found %2!llu! design units, including %3!llu! entities, in source file %1!s!" 0 0 "Analysis & Synthesis" 0 -1 1673883401066 ""} -{ "Info" "ISGN_START_ELABORATION_TOP" "sigdel " "Elaborating entity \"sigdel\" for the top level hierarchy" { } { } 0 12127 "Elaborating entity \"%1!s!\" for the top level hierarchy" 0 0 "Analysis & Synthesis" 0 -1 1673883401097 ""} -{ "Info" "ISUTIL_TIMING_DRIVEN_SYNTHESIS_RUNNING" "" "Timing-Driven Synthesis is running" { } { } 0 286030 "Timing-Driven Synthesis is running" 0 0 "Analysis & Synthesis" 0 -1 1673883401388 ""} -{ "Info" "IBPM_HARD_BLOCK_PARTITION_CREATED" "hard_block:auto_generated_inst " "Generating hard_block partition \"hard_block:auto_generated_inst\"" { { "Info" "IBPM_HARD_BLOCK_PARTITION_NODE" "0 0 0 0 0 " "Adding 0 node(s), including 0 DDIO, 0 PLL, 0 transceiver and 0 LCELL" { } { } 0 16011 "Adding %1!d! node(s), including %2!d! DDIO, %3!d! PLL, %4!d! transceiver and %5!d! LCELL" 0 0 "Design Software" 0 -1 1673883401553 ""} } { } 0 16010 "Generating hard_block partition \"%1!s!\"" 0 0 "Analysis & Synthesis" 0 -1 1673883401553 ""} -{ "Info" "ICUT_CUT_TM_SUMMARY" "32 " "Implemented 32 device resources after synthesis - the final resource count might be different" { { "Info" "ICUT_CUT_TM_IPINS" "10 " "Implemented 10 input pins" { } { } 0 21058 "Implemented %1!d! input pins" 0 0 "Design Software" 0 -1 1673883401619 ""} { "Info" "ICUT_CUT_TM_OPINS" "8 " "Implemented 8 output pins" { } { } 0 21059 "Implemented %1!d! output pins" 0 0 "Design Software" 0 -1 1673883401619 ""} { "Info" "ICUT_CUT_TM_LCELLS" "14 " "Implemented 14 logic cells" { } { } 0 21061 "Implemented %1!d! logic cells" 0 0 "Design Software" 0 -1 1673883401619 ""} } { } 0 21057 "Implemented %1!d! device resources after synthesis - the final resource count might be different" 0 0 "Analysis & Synthesis" 0 -1 1673883401619 ""} -{ "Info" "IQEXE_ERROR_COUNT" "Analysis & Synthesis 0 s 1 Quartus Prime " "Quartus Prime Analysis & Synthesis was successful. 0 errors, 1 warning" { { "Info" "IQEXE_END_PEAK_VSIZE_MEMORY" "1047 " "Peak virtual memory: 1047 megabytes" { } { } 0 0 "Peak virtual memory: %1!s! megabytes" 0 0 "Design Software" 0 -1 1673883401622 ""} { "Info" "IQEXE_END_BANNER_TIME" "Mon Jan 16 18:36:41 2023 " "Processing ended: Mon Jan 16 18:36:41 2023" { } { } 0 0 "Processing ended: %1!s!" 0 0 "Design Software" 0 -1 1673883401622 ""} { "Info" "IQEXE_ELAPSED_TIME" "00:00:07 " "Elapsed time: 00:00:07" { } { } 0 0 "Elapsed time: %1!s!" 0 0 "Design Software" 0 -1 1673883401622 ""} { "Info" "IQEXE_ELAPSED_CPU_TIME" "00:00:16 " "Total CPU time (on all processors): 00:00:16" { } { } 0 0 "Total CPU time (on all processors): %1!s!" 0 0 "Design Software" 0 -1 1673883401622 ""} } { } 0 0 "%6!s! %1!s! was successful. %2!d! error%3!s!, %4!d! warning%5!s!" 0 0 "Analysis & Synthesis" 0 -1 1673883401622 ""} diff --git a/Testbench/sigdel/db/sigdel.map.rdb b/Testbench/sigdel/db/sigdel.map.rdb deleted file mode 100644 index f833721..0000000 Binary files a/Testbench/sigdel/db/sigdel.map.rdb and /dev/null differ diff --git a/Testbench/sigdel/db/sigdel.map_bb.cdb b/Testbench/sigdel/db/sigdel.map_bb.cdb deleted file mode 100644 index 8caa875..0000000 Binary files a/Testbench/sigdel/db/sigdel.map_bb.cdb and /dev/null differ diff --git a/Testbench/sigdel/db/sigdel.map_bb.hdb b/Testbench/sigdel/db/sigdel.map_bb.hdb deleted file mode 100644 index a750c1f..0000000 Binary files a/Testbench/sigdel/db/sigdel.map_bb.hdb and /dev/null differ diff --git a/Testbench/sigdel/db/sigdel.map_bb.logdb b/Testbench/sigdel/db/sigdel.map_bb.logdb deleted file mode 100644 index 626799f..0000000 --- a/Testbench/sigdel/db/sigdel.map_bb.logdb +++ /dev/null @@ -1 +0,0 @@ -v1 diff --git a/Testbench/sigdel/db/sigdel.pre_map.hdb b/Testbench/sigdel/db/sigdel.pre_map.hdb deleted file mode 100644 index 2016702..0000000 Binary files a/Testbench/sigdel/db/sigdel.pre_map.hdb and /dev/null differ diff --git a/Testbench/sigdel/db/sigdel.root_partition.map.reg_db.cdb b/Testbench/sigdel/db/sigdel.root_partition.map.reg_db.cdb deleted file mode 100644 index 24e9fc3..0000000 Binary files a/Testbench/sigdel/db/sigdel.root_partition.map.reg_db.cdb and /dev/null differ diff --git a/Testbench/sigdel/db/sigdel.rtlv.hdb b/Testbench/sigdel/db/sigdel.rtlv.hdb deleted file mode 100644 index 5597348..0000000 Binary files a/Testbench/sigdel/db/sigdel.rtlv.hdb and /dev/null differ diff --git a/Testbench/sigdel/db/sigdel.rtlv_sg.cdb b/Testbench/sigdel/db/sigdel.rtlv_sg.cdb deleted file mode 100644 index d586076..0000000 Binary files a/Testbench/sigdel/db/sigdel.rtlv_sg.cdb and /dev/null differ diff --git a/Testbench/sigdel/db/sigdel.rtlv_sg_swap.cdb b/Testbench/sigdel/db/sigdel.rtlv_sg_swap.cdb deleted file mode 100644 index 96b5aa3..0000000 Binary files a/Testbench/sigdel/db/sigdel.rtlv_sg_swap.cdb and /dev/null differ diff --git a/Testbench/sigdel/db/sigdel.sld_design_entry.sci b/Testbench/sigdel/db/sigdel.sld_design_entry.sci deleted file mode 100644 index 6849b47..0000000 Binary files a/Testbench/sigdel/db/sigdel.sld_design_entry.sci and /dev/null differ diff --git a/Testbench/sigdel/db/sigdel.sld_design_entry_dsc.sci b/Testbench/sigdel/db/sigdel.sld_design_entry_dsc.sci deleted file mode 100644 index 6849b47..0000000 Binary files a/Testbench/sigdel/db/sigdel.sld_design_entry_dsc.sci and /dev/null differ diff --git a/Testbench/sigdel/db/sigdel.smart_action.txt b/Testbench/sigdel/db/sigdel.smart_action.txt deleted file mode 100644 index e04bbcf..0000000 --- a/Testbench/sigdel/db/sigdel.smart_action.txt +++ /dev/null @@ -1 +0,0 @@ -FIT diff --git a/Testbench/sigdel/db/sigdel.tis_db_list.ddb b/Testbench/sigdel/db/sigdel.tis_db_list.ddb deleted file mode 100644 index 9b5e0bf..0000000 Binary files a/Testbench/sigdel/db/sigdel.tis_db_list.ddb and /dev/null differ diff --git a/Testbench/sigdel/db/sigdel_partition_pins.json b/Testbench/sigdel/db/sigdel_partition_pins.json deleted file mode 100644 index 42834f5..0000000 --- a/Testbench/sigdel/db/sigdel_partition_pins.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "partitions" : [ - { - "name" : "Top", - "pins" : [ - { - "name" : "phase[0]", - "strict" : false - }, - { - "name" : "phase[1]", - "strict" : false - }, - { - "name" : "phase[2]", - "strict" : false - }, - { - "name" : "phase[3]", - "strict" : false - }, - { - "name" : "phase[4]", - "strict" : false - }, - { - "name" : "phase[5]", - "strict" : false - }, - { - "name" : "phase[6]", - "strict" : false - }, - { - "name" : "phase[7]", - "strict" : false - }, - { - "name" : "clk", - "strict" : false - }, - { - "name" : "clr_n", - "strict" : false - }, - { - "name" : "phinc[6]", - "strict" : false - }, - { - "name" : "phinc[7]", - "strict" : false - }, - { - "name" : "phinc[5]", - "strict" : false - }, - { - "name" : "phinc[4]", - "strict" : false - }, - { - "name" : "phinc[3]", - "strict" : false - }, - { - "name" : "phinc[2]", - "strict" : false - }, - { - "name" : "phinc[1]", - "strict" : false - }, - { - "name" : "phinc[0]", - "strict" : false - } - ] - } - ] -} \ No newline at end of file diff --git a/Testbench/sigdel/inc_lut_tb.sv b/Testbench/sigdel/inc_lut_tb.sv new file mode 100644 index 0000000..7a7fae3 --- /dev/null +++ b/Testbench/sigdel/inc_lut_tb.sv @@ -0,0 +1,47 @@ +`timescale 1 ns/1 ns + +module inc_lut_tb(); + + // Parameters + localparam CLK_PRD = 20; + localparam PHACC_WIDTH = 14; + + logic clk, clr_n, wr_n; + logic [7:0] phinc_val, phase, sine; + + // Instantiate UUT and connect used ports + phacc phacc(.phinc(phinc_val), .clk(clk), .reset(clr_n), .phase(phase)); + defparam phacc.WIDTH = PHACC_WIDTH; + + sinelut sinelut_inst ( + .address (phase), .clock (clk), .q(sine) + ); + + + // Clock definition + initial begin + clk = 0; + forever #(CLK_PRD/2) clk = ~clk; + end + + // Reset and initial values definition + initial begin + clr_n = 0; + #(CLK_PRD*5) clr_n = 1; + end + + // Bus write transaction simulation + initial begin + // Wait until system is out of reset + @(posedge clr_n); + + phinc_val=(2**(PHACC_WIDTH - 8)); + if ((phinc_val <= 255) && (phinc_val != 0)) begin + #(CLK_PRD * 256 * 5) $stop; + end else begin + $display("Error: value of phase increment is out of range! Stopped simulation."); + #1 $stop; + end + end +endmodule + diff --git a/Testbench/sigdel/incremental_db/README b/Testbench/sigdel/incremental_db/README deleted file mode 100644 index 9f62dcd..0000000 --- a/Testbench/sigdel/incremental_db/README +++ /dev/null @@ -1,11 +0,0 @@ -This folder contains data for incremental compilation. - -The compiled_partitions sub-folder contains previous compilation results for each partition. -As long as this folder is preserved, incremental compilation results from earlier compiles -can be re-used. To perform a clean compilation from source files for all partitions, both -the db and incremental_db folder should be removed. - -The imported_partitions sub-folder contains the last imported QXP for each imported partition. -As long as this folder is preserved, imported partitions will be automatically re-imported -when the db or incremental_db/compiled_partitions folders are removed. - diff --git a/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.db_info b/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.db_info deleted file mode 100644 index faa6190..0000000 --- a/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.db_info +++ /dev/null @@ -1,3 +0,0 @@ -Quartus_Version = Version 18.1.0 Build 625 09/12/2018 SJ Lite Edition -Version_Index = 486699264 -Creation_Time = Thu Jan 12 13:26:18 2023 diff --git a/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.cdb b/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.cdb deleted file mode 100644 index 71d080d..0000000 Binary files a/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.cdb and /dev/null differ diff --git a/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.dpi b/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.dpi deleted file mode 100644 index 96aaa29..0000000 Binary files a/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.dpi and /dev/null differ diff --git a/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.hbdb.cdb b/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.hbdb.cdb deleted file mode 100644 index c88e3ee..0000000 Binary files a/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.hbdb.cdb and /dev/null differ diff --git a/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.hbdb.hb_info b/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.hbdb.hb_info deleted file mode 100644 index 8210c55..0000000 Binary files a/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.hbdb.hb_info and /dev/null differ diff --git a/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.hbdb.hdb b/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.hbdb.hdb deleted file mode 100644 index d831a4a..0000000 Binary files a/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.hbdb.hdb and /dev/null differ diff --git a/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.hbdb.sig b/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.hbdb.sig deleted file mode 100644 index af9b8e9..0000000 --- a/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.hbdb.sig +++ /dev/null @@ -1 +0,0 @@ -7aee213afbf8301ed5eefc8c827f49a3 \ No newline at end of file diff --git a/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.hdb b/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.hdb deleted file mode 100644 index 5fd74e7..0000000 Binary files a/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.hdb and /dev/null differ diff --git a/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.kpt b/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.kpt deleted file mode 100644 index 7c434b5..0000000 Binary files a/Testbench/sigdel/incremental_db/compiled_partitions/sigdel.root_partition.map.kpt and /dev/null differ diff --git a/Testbench/sigdel/sigdel.qpf b/Testbench/sigdel/sigdel.qpf new file mode 100644 index 0000000..ec3fe7b --- /dev/null +++ b/Testbench/sigdel/sigdel.qpf @@ -0,0 +1,30 @@ +# -------------------------------------------------------------------------- # +# +# Copyright (C) 2018 Intel Corporation. All rights reserved. +# Your use of Intel Corporation's design tools, logic functions +# and other software and tools, and its AMPP partner logic +# functions, and any output files from any of the foregoing +# (including device programming or simulation files), and any +# associated documentation or information are expressly subject +# to the terms and conditions of the Intel Program License +# Subscription Agreement, the Intel Quartus Prime License Agreement, +# the Intel FPGA IP License Agreement, or other applicable license +# agreement, including, without limitation, that your use is for +# the sole purpose of programming logic devices manufactured by +# Intel and sold by Intel or its authorized distributors. Please +# refer to the applicable agreement for further details. +# +# -------------------------------------------------------------------------- # +# +# Quartus Prime +# Version 18.1.0 Build 625 09/12/2018 SJ Lite Edition +# Date created = 10:16:23 January 27, 2023 +# +# -------------------------------------------------------------------------- # + +QUARTUS_VERSION = "18.1" +DATE = "10:16:23 January 27, 2023" + +# Revisions + +PROJECT_REVISION = "sigdel" diff --git a/Testbench/sigdel/sigdel.qsf b/Testbench/sigdel/sigdel.qsf new file mode 100644 index 0000000..81c3948 --- /dev/null +++ b/Testbench/sigdel/sigdel.qsf @@ -0,0 +1,68 @@ +# -------------------------------------------------------------------------- # +# +# Copyright (C) 2018 Intel Corporation. All rights reserved. +# Your use of Intel Corporation's design tools, logic functions +# and other software and tools, and its AMPP partner logic +# functions, and any output files from any of the foregoing +# (including device programming or simulation files), and any +# associated documentation or information are expressly subject +# to the terms and conditions of the Intel Program License +# Subscription Agreement, the Intel Quartus Prime License Agreement, +# the Intel FPGA IP License Agreement, or other applicable license +# agreement, including, without limitation, that your use is for +# the sole purpose of programming logic devices manufactured by +# Intel and sold by Intel or its authorized distributors. Please +# refer to the applicable agreement for further details. +# +# -------------------------------------------------------------------------- # +# +# Quartus Prime +# Version 18.1.0 Build 625 09/12/2018 SJ Lite Edition +# Date created = 10:16:23 January 27, 2023 +# +# -------------------------------------------------------------------------- # +# +# Notes: +# +# 1) The default values for assignments are stored in the file: +# sigdel_assignment_defaults.qdf +# If this file doesn't exist, see file: +# assignment_defaults.qdf +# +# 2) Altera recommends that you do not modify this file. This +# file is updated automatically by the Quartus Prime software +# and any changes you make may be lost or overwritten. +# +# -------------------------------------------------------------------------- # + + +set_global_assignment -name FAMILY "Cyclone IV E" +set_global_assignment -name DEVICE EP4CE6E22A7 +set_global_assignment -name TOP_LEVEL_ENTITY sigdel +set_global_assignment -name ORIGINAL_QUARTUS_VERSION 18.1.0 +set_global_assignment -name PROJECT_CREATION_TIME_DATE "10:16:23 JANUARY 27, 2023" +set_global_assignment -name LAST_QUARTUS_VERSION "18.1.0 Lite Edition" +set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files +set_global_assignment -name MIN_CORE_JUNCTION_TEMP "-40" +set_global_assignment -name MAX_CORE_JUNCTION_TEMP 125 +set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1 +set_global_assignment -name NOMINAL_CORE_SUPPLY_VOLTAGE 1.2V +set_global_assignment -name EDA_SIMULATION_TOOL "ModelSim-Altera (SystemVerilog)" +set_global_assignment -name EDA_TIME_SCALE "1 ps" -section_id eda_simulation +set_global_assignment -name EDA_OUTPUT_DATA_FORMAT "SYSTEMVERILOG HDL" -section_id eda_simulation +set_global_assignment -name SYSTEMVERILOG_FILE ../../HDL/phacc.sv +set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW" +set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)" +set_global_assignment -name QIP_FILE ../../HDL/IP/sinelut.qip +set_global_assignment -name SYSTEMVERILOG_FILE ../../HDL/sigdel.sv +set_global_assignment -name SYSTEMVERILOG_FILE inc_lut_tb.sv +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 EDA_TEST_BENCH_ENABLE_STATUS TEST_BENCH_MODE -section_id eda_simulation +set_global_assignment -name EDA_NATIVELINK_SIMULATION_TEST_BENCH inc_lut_tb -section_id eda_simulation +set_global_assignment -name EDA_TEST_BENCH_NAME inc_lut_tb -section_id eda_simulation +set_global_assignment -name EDA_DESIGN_INSTANCE_NAME NA -section_id inc_lut_tb +set_global_assignment -name EDA_TEST_BENCH_MODULE_NAME inc_lut_tb -section_id inc_lut_tb +set_global_assignment -name EDA_TEST_BENCH_FILE inc_lut_tb.sv -section_id inc_lut_tb +set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/Testbench/sigdel/sine256.mif b/Testbench/sigdel/sine256.mif new file mode 100644 index 0000000..a5d700e --- /dev/null +++ b/Testbench/sigdel/sine256.mif @@ -0,0 +1,242 @@ +WIDTH = 8; +DEPTH = 256; + +ADDRESS_RADIX = DEC; +DATA_RADIX = HEX; + +CONTENT BEGIN + 0 : 02; + 1 : 05; + 2 : 08; + 3 : 0B; + 4 : 0E; + 5 : 11; + 6 : 14; + 7 : 17; + 8 : 1A; + 9 : 1D; + 10 : 20; + 11 : 23; + 12 : 26; + 13 : 29; + 14 : 2C; + 15 : 2F; + 16 : 32; + 17 : 35; + 18 : 38; + 19 : 3A; + 20 : 3D; + 21 : 40; + 22 : 43; + 23 : 45; + 24 : 48; + 25 : 4A; + 26 : 4D; + 27 : 4F; + 28 : 52; + 29 : 54; + 30 : 56; + 31 : 59; + 32 : 5B; + 33 : 5D; + 34 : 5F; + 35 : 61; + 36 : 63; + 37 : 65; + 38 : 67; + 39 : 69; + 40 : 6A; + 41 : 6C; + 42 : 6E; + 43 : 6F; + 44 : 71; + 45 : 72; + 46 : 73; + 47 : 75; + 48 : 76; + 49 : 77; + 50 : 78; + 51 : 79; + 52 : 7A; + 53 : 7B; + 54 : 7C; + 55 : 7C; + 56 : 7D; + 57 : 7D; + [58..69] : 7E; + 70 : 7D; + 71 : 7D; + 72 : 7C; + 73 : 7C; + 74 : 7B; + 75 : 7A; + 76 : 79; + 77 : 78; + 78 : 77; + 79 : 76; + 80 : 75; + 81 : 73; + 82 : 72; + 83 : 71; + 84 : 6F; + 85 : 6E; + 86 : 6C; + 87 : 6A; + 88 : 69; + 89 : 67; + 90 : 65; + 91 : 63; + 92 : 61; + 93 : 5F; + 94 : 5D; + 95 : 5B; + 96 : 59; + 97 : 56; + 98 : 54; + 99 : 52; + 100 : 4F; + 101 : 4D; + 102 : 4A; + 103 : 48; + 104 : 45; + 105 : 43; + 106 : 40; + 107 : 3D; + 108 : 3A; + 109 : 38; + 110 : 35; + 111 : 32; + 112 : 2F; + 113 : 2C; + 114 : 29; + 115 : 26; + 116 : 23; + 117 : 20; + 118 : 1D; + 119 : 1A; + 120 : 17; + 121 : 14; + 122 : 11; + 123 : 0E; + 124 : 0B; + 125 : 08; + 126 : 05; + 127 : 02; + 128 : FE; + 129 : FB; + 130 : F8; + 131 : F5; + 132 : F2; + 133 : EF; + 134 : EC; + 135 : E9; + 136 : E6; + 137 : E3; + 138 : E0; + 139 : DD; + 140 : DA; + 141 : D7; + 142 : D4; + 143 : D1; + 144 : CE; + 145 : CB; + 146 : C8; + 147 : C6; + 148 : C3; + 149 : C0; + 150 : BD; + 151 : BB; + 152 : B8; + 153 : B6; + 154 : B3; + 155 : B1; + 156 : AE; + 157 : AC; + 158 : AA; + 159 : A7; + 160 : A5; + 161 : A3; + 162 : A1; + 163 : 9F; + 164 : 9D; + 165 : 9B; + 166 : 99; + 167 : 97; + 168 : 96; + 169 : 94; + 170 : 92; + 171 : 91; + 172 : 8F; + 173 : 8E; + 174 : 8D; + 175 : 8B; + 176 : 8A; + 177 : 89; + 178 : 88; + 179 : 87; + 180 : 86; + 181 : 85; + 182 : 84; + 183 : 84; + 184 : 83; + 185 : 83; + [186..197] : 82; + 198 : 83; + 199 : 83; + 200 : 84; + 201 : 84; + 202 : 85; + 203 : 86; + 204 : 87; + 205 : 88; + 206 : 89; + 207 : 8A; + 208 : 8B; + 209 : 8D; + 210 : 8E; + 211 : 8F; + 212 : 91; + 213 : 92; + 214 : 94; + 215 : 96; + 216 : 97; + 217 : 99; + 218 : 9B; + 219 : 9D; + 220 : 9F; + 221 : A1; + 222 : A3; + 223 : A5; + 224 : A7; + 225 : AA; + 226 : AC; + 227 : AE; + 228 : B1; + 229 : B3; + 230 : B6; + 231 : B8; + 232 : BB; + 233 : BD; + 234 : C0; + 235 : C3; + 236 : C6; + 237 : C8; + 238 : CB; + 239 : CE; + 240 : D1; + 241 : D4; + 242 : D7; + 243 : DA; + 244 : DD; + 245 : E0; + 246 : E3; + 247 : E6; + 248 : E9; + 249 : EC; + 250 : EF; + 251 : F2; + 252 : F5; + 253 : F8; + 254 : FB; + 255 : FE; +END; diff --git a/Top/semafor.qws b/Top/semafor.qws new file mode 100644 index 0000000..2ef7074 Binary files /dev/null and b/Top/semafor.qws differ diff --git a/Top/software/ci_project/.project b/Top/software/ci_project/.project new file mode 100644 index 0000000..c4041de --- /dev/null +++ b/Top/software/ci_project/.project @@ -0,0 +1,40 @@ + + + ci_project + + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIAppNature + com.altera.sbtgui.project.SBTGUIManagedNature + + diff --git a/Top/software/semafor/.settings/language.settings.xml b/Top/software/semafor/.settings/language.settings.xml deleted file mode 100644 index 106a2e8..0000000 --- a/Top/software/semafor/.settings/language.settings.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/Top/software/semafor_bsp/.settings/language.settings.xml b/Top/software/semafor_bsp/.settings/language.settings.xml deleted file mode 100644 index a7d17d7..0000000 --- a/Top/software/semafor_bsp/.settings/language.settings.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - -