Changeset 178 for trunk/3DEES
- Timestamp:
- Dec 20, 2013, 10:10:03 AM (11 years ago)
- Location:
- trunk/3DEES
- Files:
-
- 1 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/3DEES/Paella.dpf
r152 r178 27 27 <pin name="ADC_D[3](n)" direction="Input" source="Assignments" diff_pair_node="ADC_D[3]" > 28 28 </pin> 29 <pin name="ADC_DCO(n)" direction="Input" source="Assignments" diff_pair_node="ADC_DCO" > 30 </pin> 31 <pin name="ADC_FCO(n)" direction="Input" source="Assignments" diff_pair_node="ADC_FCO" > 32 </pin> 29 33 <pin name="ADC_D[4](n)" direction="Input" source="Assignments" diff_pair_node="ADC_D[4]" > 30 34 </pin> 31 35 <pin name="ADC_D[5](n)" direction="Input" source="Assignments" diff_pair_node="ADC_D[5]" > 32 </pin>33 <pin name="ADC_DCO(n)" direction="Input" source="Assignments" diff_pair_node="ADC_DCO" >34 </pin>35 <pin name="ADC_FCO(n)" direction="Input" source="Assignments" diff_pair_node="ADC_FCO" >36 36 </pin> 37 37 </pin_info> -
trunk/3DEES/Paella.qsf
r153 r178 248 248 249 249 set_global_assignment -name MISC_FILE "D:/altera/MultiChannelUSB/Paella.dpf" 250 250 251 set_global_assignment -name VERILOG_FILE Paella.v 251 252 set_global_assignment -name VERILOG_FILE adc_lvds.v … … 258 259 set_global_assignment -name VERILOG_FILE amplitude.v 259 260 set_global_assignment -name VERILOG_FILE deconv.v 261 set_global_assignment -name VERILOG_FILE shift.v 260 262 set_global_assignment -name VERILOG_FILE delay.v 261 263 set_global_assignment -name VERILOG_FILE coincidence.v … … 272 274 set_global_assignment -name MIF_FILE test.mif 273 275 set_global_assignment -name VERILOG_FILE average.v 274 set_global_assignment -name VERILOG_FILE extrema.v275 276 set_global_assignment -name VERILOG_FILE filter.v 276 277 set_global_assignment -name VERILOG_FILE new_filter.v 277 278 set_global_assignment -name VERILOG_FILE clip.v 278 279 set_global_assignment -name VERILOG_FILE pwm.v 279 280 set_global_assignment -name MISC_FILE "D:/altera/3DEES-6ch/Paella.dpf" 281 set_global_assignment -name FMAX_REQUIREMENT "100 MHz" -section_id "100 MHz Clock" 282 set_instance_assignment -name CLOCK_SETTINGS "100 MHz Clock" -to CLK_100MHz 280 283 set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top -
trunk/3DEES/Paella.v
r154 r178 34 34 ); 35 35 36 localparam N = 12;36 localparam N = 6; 37 37 38 38 // Turn output ports off … … 83 83 ); 84 84 85 /* 86 reg [31:0] led_counter; 87 always @(posedge CLK_50MHz) 88 begin 89 led_counter = led_counter + 32'd1; 90 end 91 assign LED = led_counter[28]; 92 */ 85 93 wire [11:0] osc_mux_data [4:0]; 86 94 … … 88 96 wire trg_flag; 89 97 90 wire [2:0] coi_data;91 wire coi_flag;92 93 98 wire [4*12-1:0] int_mux_data [N-1:0]; 94 99 95 wire amp_flag [N-1:0]; 96 wire [11:0] amp_data [N-1:0]; 97 98 wire cnt_good [N-1:0]; 100 wire [1:0] amp_flag [3*N-1:0]; 101 wire [12:0] amp_data [3*N-1:0]; 102 103 wire [1:0] amp_mux_flag [2:0]; 104 wire [11:0] amp_mux_data [2:0]; 105 106 wire cnt_good [3:0]; 99 107 wire [15:0] cnt_bits_wire; 100 108 … … 105 113 wire [11:0] tst_data; 106 114 107 wire [ 11:0] cmp_data;108 wire [1 1:0] del_data;109 110 wire [ 20:0] cic_data [N-1:0];115 wire [3:0] cmp_data; 116 wire [1:0] del_data; 117 118 wire [19:0] cic_data [N-1:0]; 111 119 112 120 wire [11:0] dec_data [N-1:0]; 113 wire [11:0] clp_data [N-1:0]; 114 wire [11:0] tmp_data [1:0]; 121 wire [12:0] clp_data [N-1:0]; 122 wire [11:0] tmp_data; 123 115 124 116 125 wire i2c_reset; 126 127 assign tmp_data = 12'h000; 128 assign sys_clock = CLK_100MHz; 129 /* 130 sys_pll sys_pll_unit( 131 .inclk0(CLK_100MHz), 132 .c0(sys_clock)); 133 */ 117 134 /* 118 135 sys_pll sys_pll_unit( … … 124 141 wire ADC_DCO, ADC_FCO; 125 142 143 126 144 test test_unit( 127 145 .clock(ADC_FCO), 128 146 .data(tst_data)); 147 */ 129 148 130 149 adc_lvds #( 131 .size( 3),150 .size(6), 132 151 .width(12)) adc_lvds_unit ( 133 152 .clock(sys_clock), 134 153 .lvds_dco(ADC_DCO), 135 154 .lvds_fco(ADC_FCO), 136 .lvds_d(36'd0), 137 .test(tst_data), 138 .trig(12'd0), 139 .adc_frame(sys_frame), 140 .adc_data({cmp_data, adc_data[2], adc_data[1], adc_data[0]})); 141 */ 142 sys_pll sys_pll_unit( 143 .inclk0(CLK_100MHz), 144 .c0(sys_clock)); 145 146 adc_lvds #( 147 .size(6), 148 .width(24)) adc_lvds_unit ( 149 .clock(sys_clock), 150 .lvds_dco(ADC_DCO), 151 .lvds_fco(ADC_FCO), 152 .lvds_d({ADC_D[5], ADC_D[4], ADC_D[3], ADC_D[2], ADC_D[1], ADC_D[0]}), 155 .lvds_d(ADC_D), 156 // .test(tst_data), 153 157 .adc_frame(sys_frame), 154 158 .adc_data({ 155 adc_data[11], adc_data[10], adc_data[9], adc_data[8], 156 adc_data[7], adc_data[6], adc_data[5], adc_data[4], 157 adc_data[3], adc_data[2], adc_data[1], adc_data[0]})); 159 adc_data[5], adc_data[4], adc_data[3], 160 adc_data[2], adc_data[1], adc_data[0]})); 158 161 159 162 wire [15:0] cfg_bits [63:0]; … … 174 177 wire mrg_bus_busy; 175 178 176 wire [1 2*16-1:0] int_bus_miso;179 wire [11*16-1:0] int_bus_miso; 177 180 178 181 genvar j; … … 197 200 198 201 generate 199 for (j = 0; j < 12; j = j + 1)202 for (j = 0; j < 6; j = j + 1) 200 203 begin : MUX_DATA 201 204 assign int_mux_data[j] = { 202 amp_data[j],203 clp_data[j],204 c ic_data[j][19:8],205 {4'd0, amp_flag[j][0], 7'd0}, 206 amp_data[j][11:0], 207 clp_data[j][11:0], 205 208 sys_data[j]}; 206 209 end … … 210 213 211 214 lpm_mux #( 212 .lpm_size(4* 12),215 .lpm_size(4*6), 213 216 .lpm_type("LPM_MUX"), 214 217 .lpm_width(12), 215 .lpm_widths( 6)) trg_mux_unit (216 .sel(cfg_bits[4][1 3:8]),218 .lpm_widths(5)) trg_mux_unit ( 219 .sel(cfg_bits[4][12:8]), 217 220 .data({ 218 int_mux_data[11], int_mux_data[10], int_mux_data[9], int_mux_data[8], 219 int_mux_data[7], int_mux_data[6], int_mux_data[5], int_mux_data[4], 220 int_mux_data[3], int_mux_data[2], int_mux_data[1], int_mux_data[0]}), 221 int_mux_data[5], int_mux_data[4], int_mux_data[3], 222 int_mux_data[2], int_mux_data[1], int_mux_data[0]}), 221 223 .result(trg_mux_data)); 222 224 … … 226 228 227 229 lpm_mux #( 228 .lpm_size(4* 12),230 .lpm_size(4*6), 229 231 .lpm_type("LPM_MUX"), 230 232 .lpm_width(12), 231 .lpm_widths( 6)) osc_mux_unit (232 .sel(cfg_mux_selector[j*8+ 5:j*8]),233 .lpm_widths(5)) osc_mux_unit ( 234 .sel(cfg_mux_selector[j*8+4:j*8]), 233 235 .data({ 234 int_mux_data[11], int_mux_data[10], int_mux_data[9], int_mux_data[8], 235 int_mux_data[7], int_mux_data[6], int_mux_data[5], int_mux_data[4], 236 int_mux_data[3], int_mux_data[2], int_mux_data[1], int_mux_data[0]}), 236 int_mux_data[5], int_mux_data[4], int_mux_data[3], 237 int_mux_data[2], int_mux_data[1], int_mux_data[0]}), 237 238 .result(osc_mux_data[j])); 238 239 end … … 264 265 .bus_busy(bus_busy[1])); 265 266 266 new_filter #(.size(12), .width(12)) filter_unit (267 filter #(.size(6), .width(12)) filter_unit ( 267 268 .clock(sys_clock), 268 269 .frame(sys_frame), 269 270 .reset(1'b0), 270 .inp_data({ 271 sys_data[11], sys_data[10], sys_data[9], sys_data[08], 272 sys_data[7], sys_data[6], sys_data[5], sys_data[4], 273 sys_data[3], sys_data[2], sys_data[1], sys_data[0]}), 274 .out_data({ 275 cic_data[11], cic_data[10], cic_data[9], cic_data[8], 276 cic_data[7], cic_data[6], cic_data[5], cic_data[4], 277 cic_data[3], cic_data[2], cic_data[1], cic_data[0]})); 278 279 generate 280 for (j = 0; j < 3; j = j + 1) 271 .inp_data({sys_data[5], sys_data[4], sys_data[3], 272 sys_data[2], sys_data[1], sys_data[0]}), 273 .out_data({cic_data[5], cic_data[4], cic_data[3], 274 cic_data[2], cic_data[1], cic_data[0]})); 275 /* 276 new_filter #(.size(6), .width(12)) filter_unit ( 277 .clock(sys_clock), 278 .frame(sys_frame), 279 .reset(1'b0), 280 .inp_data({sys_data[5], sys_data[4], sys_data[3], 281 sys_data[2], sys_data[1], sys_data[0]}), 282 .out_data({cic_data[5], cic_data[4], cic_data[3], 283 cic_data[2], cic_data[1], cic_data[0]})); 284 */ 285 286 generate 287 for (j = 0; j < 2; j = j + 1) 281 288 begin : DECONV_CHAIN 282 289 283 clip #(.shift(22), .width( 20), .widthr(12)) clip_unit (290 clip #(.shift(22), .width(19), .widthr(12)) clip_unit ( 284 291 .clock(sys_clock), 285 292 .frame(sys_frame), 286 293 .reset(1'b0), 287 // .del_data({6'd14, 6'd14, 6'd14, 6'd14}), 288 .del_data({cfg_bits[39+8*j][5:0], cfg_bits[37+8*j][5:0], cfg_bits[35+8*j][5:0], cfg_bits[33+8*j][5:0]}), 289 .amp_data({6'd17, 6'd17, 6'd17, 6'd17}), 290 // .tau_data({16'd17193, 16'd17193, 16'd17193, 16'd17193}), /* exp(-14/1125)*1024*17 */ 291 .tau_data({cfg_bits[38+8*j], cfg_bits[36+8*j], cfg_bits[34+8*j], cfg_bits[32+8*j]}), 294 .del_data({6'd0, 6'd32, 6'd32, 6'd32}), 295 // .del_data({6'd0, cfg_bits[37+6*j][5:0], cfg_bits[35+6*j][5:0], cfg_bits[33+6*j][5:0]}), 296 .amp_data({6'd0, 6'd20, 6'd20, 6'd20}), 297 .tau_data({16'd0, 16'd19835, 16'd19835, 16'd19835}), 298 // exp(-32/1000)*1024*20 299 // .tau_data({16'd0, cfg_bits[36+6*j], cfg_bits[34+6*j], cfg_bits[32+6*j]}), 292 300 .inp_data({ 293 cic_data[j*4+3][19:0], cic_data[j*4+2][19:0], 294 cic_data[j*4+1][19:0], cic_data[j*4+0][19:0]}), 301 19'd0, cic_data[j*3+2][18:0], cic_data[j*3+1][18:0], cic_data[j*3+0][18:0]}), 295 302 .out_data({ 296 clp_data[j*4+3], clp_data[j*4+2], 297 clp_data[j*4+1], clp_data[j*4+0]})); 298 299 end 300 endgenerate 301 302 generate 303 for (j = 0; j < 12; j = j + 1) 303 tmp_data, clp_data[j*3+2], clp_data[j*3+1], clp_data[j*3+0]})); 304 305 end 306 endgenerate 307 308 generate 309 for (j = 0; j < 6; j = j + 1) 304 310 begin : MCA_CHAIN 305 306 assign sys_data[j] = (cfg_bits[1][j]) ? (adc_data[j] ^ 12'hfff) : (adc_data[j]); 307 308 amplitude #(.width(12)) amplitude_unit_2 ( 311 /* 312 shift #(.shift(11), .width(19), .widthr(13)) shift_unit ( 309 313 .clock(sys_clock), 310 314 .frame(sys_frame), 311 315 .reset(1'b0), 312 .cfg_data({1'b0, 12'd0, 12'd5}), 313 // .cfg_data({cfg_bits[7+2*j][12:0], cfg_bits[6+2*j][11:0]}), 314 // .inp_data(dec_data[j]), 316 .amp_data(6'd21), 317 .inp_data(cic_data[j][18:0]), 318 .out_data(clp_data[j])); 319 */ 320 assign sys_data[j] = (cfg_bits[1][j]) ? (adc_data[j] ^ 12'hfff) : (adc_data[j]); 321 322 amplitude #(.width(13)) amplitude_unit ( 323 .clock(sys_clock), 324 .frame(sys_frame), 325 .reset(1'b0), 326 .min_data({1'b0, cfg_bits[7][11:0]}), 327 .max_data(13'd4095), 328 // .cfg_data(cfg_bits[6+2*j][11:0]), 315 329 .inp_data(clp_data[j]), 316 330 .out_flag(amp_flag[j]), … … 323 337 .frame(sys_frame), 324 338 .reset(cfg_bits[0][5]), 325 .hst_good((amp_flag[0] ) & (cnt_good[0]) & (cfg_bits[13][1])),339 .hst_good((amp_flag[0][1]) & (cnt_good[0]) & (cfg_bits[13][1])), 326 340 .hst_data(amp_data[0]), 327 /*328 .hst_good((amp_flag[j]) & (cnt_good[j]) & (cfg_bits[13][1])),329 .hst_data(amp_data[j]),330 */331 341 .bus_ssel(bus_ssel[2]), 332 342 .bus_wren(bus_wren), … … 338 348 counter hst_counter_unit ( 339 349 .clock(sys_clock), 340 // .frame((sys_frame) & (~ana_dead[0])),341 .frame(sys_frame),350 .frame((sys_frame) & (~amp_flag[0][1])), 351 // .frame(sys_frame), 342 352 .reset(cfg_bits[0][8]), 343 353 .setup(cfg_bits[13][0]), … … 395 405 396 406 lpm_mux #( 397 .lpm_size(1 2),407 .lpm_size(11), 398 408 .lpm_type("LPM_MUX"), 399 409 .lpm_width(16), -
trunk/3DEES/adc_lvds.v
r148 r178 4 4 module adc_lvds 5 5 #( 6 parameter size = 8, // number of channels7 parameter width = 24// channel resolution6 parameter size = 3, // number of channels 7 parameter width = 12 // channel resolution 8 8 ) 9 9 ( … … 13 13 input wire lvds_fco, 14 14 input wire [size-1:0] lvds_d, 15 input wire [11:0] test, 15 16 16 17 output wire adc_frame, … … 20 21 localparam width2 = width + 2; 21 22 23 22 24 reg state, int_rdreq, adc_frame_reg; 23 25 wire int_wrfull, int_rdempty; … … 47 49 // LSB first 48 50 // assign int_data_wire[j*width+width-1:j*width] = {int_data_n[j], int_data_p[j], int_data_reg[j*width+width-1:j*width+2]}; 49 assign int_data_wire[j*width2+width2-1:j*width2] = {int_data_n[j], int_data_p[j], int_data_reg[j*width2+width2-1:j*width2+2]}; 50 assign int_fifo_wire[j*width+width-1:j*width] = int_data_reg[j*width2+width2-3:j*width2]; 51 52 // assign int_fifo_wire[j*width+width-1:j*width] = test; 53 54 assign int_data_wire[j*width2+width2-1:j*width2] = {int_data_reg[j*width2+width2-3:j*width2], int_data_p[j], int_data_n[j]}; 55 assign int_fifo_wire[j*width+width-1:j*width] = int_data_reg[j*width2+width2-1:j*width2+2]; 56 // assign int_fifo_wire[j*width+width-1:j*width] = int_data_reg[j*width2+width2-1:j*width2+8]; 57 58 // assign int_data_wire[j*width2+width2-1:j*width2] = {int_data_n[j], int_data_p[j], int_data_reg[j*width2+width2-1:j*width2+2]}; 59 // assign [j*width+width-1:j*width] = int_data_reg[j*width2+width2-3:j*width2]; 51 60 end 52 61 endgenerate 62 53 63 54 64 dcfifo #( -
trunk/3DEES/amplitude.v
r155 r178 5 5 ( 6 6 input wire clock, frame, reset, 7 input wire [width-1:0] cfg_data, 7 input wire [width-1:0] min_data, 8 input wire [width-1:0] max_data, 8 9 input wire [width-1:0] inp_data, 9 10 output wire [width-1:0] out_data, 10 output wire 11 output wire [1:0] out_flag 11 12 ); 12 13 … … 20 21 wire int_comp_wire; 21 22 reg int_comp_reg, int_comp_next; 23 24 reg [5:0] int_cntr_reg, int_cntr_next; 22 25 23 26 assign int_comp_wire = (inp_data_reg[1] < inp_data); … … 35 38 int_flag_reg <= 1'b0; 36 39 int_comp_reg <= 1'b0; 40 int_cntr_reg <= 6'd0; 37 41 end 38 42 else … … 46 50 int_flag_reg <= int_flag_next; 47 51 int_comp_reg <= int_comp_next; 52 int_cntr_reg <= int_cntr_next; 48 53 end 49 54 end … … 59 64 int_flag_next = int_flag_reg; 60 65 int_comp_next = int_comp_reg; 66 int_cntr_next = int_cntr_reg; 61 67 62 68 case (int_case_reg) … … 71 77 out_flag_next = 1'b0; 72 78 // minimum 73 if ((~int_comp_reg) & (int_comp_wire) )79 if ((~int_comp_reg) & (int_comp_wire) & int_cntr_reg[5]) 74 80 begin 75 81 int_mini_next = inp_data_reg[0]; 76 82 int_flag_next = 1'b1; 77 83 end 78 // maximum 84 // maximum after minimum 79 85 else if ((int_comp_reg) & (~int_comp_wire) & (int_flag_reg)) 80 86 begin … … 83 89 int_case_next = 1'b1; 84 90 end 91 else if (~int_cntr_reg[5]) 92 begin 93 int_cntr_next = int_cntr_reg + 6'd1; 94 end 85 95 end 86 96 end … … 88 98 1: 89 99 begin 90 out_flag_next = (out_data_reg >= cfg_data); 100 if (out_data_reg > min_data) 101 begin 102 int_cntr_next = 6'b0; 103 // out_flag_next = 1'b1; 104 out_flag_next = (inp_data_reg[1] < max_data); 105 end 91 106 int_case_next = 1'b0; 92 107 end … … 96 111 97 112 assign out_data = out_data_reg; 98 assign out_flag = out_flag_reg;113 assign out_flag = {~int_cntr_reg[5], out_flag_reg}; 99 114 100 115 endmodule -
trunk/3DEES/clip.v
r154 r178 31 31 wire [widthr-1:0] out_data_wire; 32 32 33 reg [width3-1:0] add_data_reg [4:0], add_data_next [4:0]; 33 34 wire [width3-1:0] add_data_wire; 34 35 … … 104 105 - {2'b0, mul_data_wire1}; 105 106 106 assign out_data_wire = add_data_ wire[width3-1] ? {(widthr){1'b0}} :107 add_data_ wire[shift+widthr-1:shift]108 + {{(widthr-1){add_data_ wire[width3-1]}}, add_data_wire[shift-1]};107 assign out_data_wire = add_data_reg[0][width3-1] ? {(widthr){1'b0}} : 108 add_data_reg[0][shift+widthr-1:shift] 109 + {{(widthr-1){add_data_reg[0][width3-1]}}, add_data_reg[0][shift-1]}; 109 110 110 111 … … 172 173 begin 173 174 out_data_reg[i] <= {(widthr){1'b0}}; 175 add_data_reg[i] <= {(width3){1'b0}}; 174 176 end 175 177 end … … 191 193 begin 192 194 out_data_reg[i] <= out_data_next[i]; 195 add_data_reg[i] <= add_data_next[i]; 193 196 end 194 197 end … … 212 215 begin 213 216 out_data_next[i] = out_data_reg[i]; 217 add_data_next[i] = add_data_reg[i]; 214 218 end 215 219 … … 230 234 begin 231 235 out_data_next[i] = {(widthr){1'b0}}; 236 add_data_next[i] = {(width3){1'b0}}; 232 237 end 233 238 … … 264 269 // prepare registers for 1st sum 265 270 inp_data_next[0] = inp_data_wire[0]; 271 // prepare registers for 2nd shift 272 add_data_next[0] = add_data_reg[2]; 266 273 267 274 tau_data_next = tau_data_wire[0]; … … 274 281 int_addr_next[5:0] = del_addr_reg; 275 282 // register 1st product 276 out_data_next[0] = out_data_wire; 283 add_data_next[1] = add_data_wire; 284 out_data_next[1] = out_data_wire; 277 285 end 278 286 end … … 286 294 // prepare registers for 2nd sum 287 295 inp_data_next[0] = inp_data_reg[1]; 296 // prepare registers for 3rd shift 297 add_data_next[0] = add_data_reg[3]; 288 298 289 299 tau_data_next = tau_data_wire[1]; … … 291 301 292 302 // register 2nd product 293 out_data_next[1] = out_data_wire; 303 add_data_next[2] = add_data_wire; 304 out_data_next[2] = out_data_wire; 294 305 295 306 int_case_next = 3'd4; … … 304 315 // prepare registers for 3rd sum 305 316 inp_data_next[0] = inp_data_reg[2]; 317 // prepare registers for 4th shift 318 add_data_next[0] = add_data_reg[4]; 306 319 307 320 tau_data_next = tau_data_wire[2]; … … 309 322 310 323 // register 3rd product 311 out_data_next[2] = out_data_wire; 324 add_data_next[3] = add_data_wire; 325 out_data_next[3] = out_data_wire; 312 326 313 327 del_addr_next = del_addr_reg + 6'd1; … … 326 340 // prepare registers for 4th sum 327 341 inp_data_next[0] = inp_data_reg[3]; 342 // prepare registers for 1st shift 343 add_data_next[0] = add_data_reg[1]; 328 344 329 345 tau_data_next = tau_data_wire[3]; … … 331 347 332 348 // register 4th product 333 out_data_next[3] = out_data_wire; 349 add_data_next[4] = add_data_wire; 350 out_data_next[4] = out_data_wire; 334 351 335 352 // register 4th output 336 out_data_next[ 4] = out_data_reg[0];353 out_data_next[0] = out_data_reg[1]; 337 354 338 355 int_case_next = 3'd2; … … 345 362 end 346 363 347 assign out_data = {out_data_reg[ 3], out_data_reg[2], out_data_reg[1], out_data_reg[4]};364 assign out_data = {out_data_reg[4], out_data_reg[3], out_data_reg[2], out_data_reg[0]}; 348 365 349 366 endmodule -
trunk/3DEES/histogram16.v
r107 r178 38 38 .intended_device_family("Cyclone III"), 39 39 .lpm_type("altsyncram"), 40 .numwords_a(1 6384),41 .numwords_b(1 6384),40 .numwords_a(10000), 41 .numwords_b(10000), 42 42 .operation_mode("BIDIR_DUAL_PORT"), 43 43 .outdata_aclr_a("NONE"), -
trunk/3DEES/sys_pll.v
r84 r178 39 39 module sys_pll ( 40 40 inclk0, 41 c0); 41 c0, 42 c1, 43 c2); 42 44 43 45 input inclk0; 44 46 output c0; 47 output c1; 48 output c2; 45 49 46 50 wire [4:0] sub_wire0; 47 wire [0:0] sub_wire4 = 1'h0; 51 wire [0:0] sub_wire6 = 1'h0; 52 wire [2:2] sub_wire3 = sub_wire0[2:2]; 53 wire [1:1] sub_wire2 = sub_wire0[1:1]; 48 54 wire [0:0] sub_wire1 = sub_wire0[0:0]; 49 55 wire c0 = sub_wire1; 50 wire sub_wire2 = inclk0; 51 wire [1:0] sub_wire3 = {sub_wire4, sub_wire2}; 56 wire c1 = sub_wire2; 57 wire c2 = sub_wire3; 58 wire sub_wire4 = inclk0; 59 wire [1:0] sub_wire5 = {sub_wire6, sub_wire4}; 52 60 53 61 altpll altpll_component ( 54 .inclk (sub_wire 3),62 .inclk (sub_wire5), 55 63 .clk (sub_wire0), 56 64 .activeclock (), … … 68 76 .fbmimicbidir (), 69 77 .fbout (), 78 .fref (), 79 .icdrclk (), 70 80 .locked (), 71 81 .pfdena (1'b1), … … 91 101 altpll_component.clk0_divide_by = 10, 92 102 altpll_component.clk0_duty_cycle = 50, 93 altpll_component.clk0_multiply_by = 17,103 altpll_component.clk0_multiply_by = 9, 94 104 altpll_component.clk0_phase_shift = "0", 105 altpll_component.clk1_divide_by = 10, 106 altpll_component.clk1_duty_cycle = 50, 107 altpll_component.clk1_multiply_by = 6, 108 altpll_component.clk1_phase_shift = "0", 109 altpll_component.clk2_divide_by = 10, 110 altpll_component.clk2_duty_cycle = 50, 111 altpll_component.clk2_multiply_by = 1, 112 altpll_component.clk2_phase_shift = "0", 95 113 altpll_component.compensate_clock = "CLK0", 96 altpll_component.inclk0_input_frequency = 20000,114 altpll_component.inclk0_input_frequency = 10000, 97 115 altpll_component.intended_device_family = "Cyclone III", 98 altpll_component.lpm_hint = "CBX_MODULE_PREFIX= pll",116 altpll_component.lpm_hint = "CBX_MODULE_PREFIX=sys_pll", 99 117 altpll_component.lpm_type = "altpll", 100 118 altpll_component.operation_mode = "NORMAL", … … 126 144 altpll_component.port_scanwrite = "PORT_UNUSED", 127 145 altpll_component.port_clk0 = "PORT_USED", 128 altpll_component.port_clk1 = "PORT_U NUSED",129 altpll_component.port_clk2 = "PORT_U NUSED",146 altpll_component.port_clk1 = "PORT_USED", 147 altpll_component.port_clk2 = "PORT_USED", 130 148 altpll_component.port_clk3 = "PORT_UNUSED", 131 149 altpll_component.port_clk4 = "PORT_UNUSED",
Note:
See TracChangeset
for help on using the changeset viewer.