mirror of https://github.com/YosysHQ/yosys.git
195 lines
4.9 KiB
Verilog
195 lines
4.9 KiB
Verilog
// Intel megafunction declarations, to avoid Yosys complaining.
|
|
`default_nettype none
|
|
|
|
(* blackbox *)
|
|
module altera_std_synchronizer(clk, din, dout, reset_n);
|
|
|
|
parameter depth = 2;
|
|
|
|
input clk;
|
|
input reset_n;
|
|
input din;
|
|
output dout;
|
|
|
|
endmodule
|
|
|
|
(* blackbox *)
|
|
module altiobuf_in(datain, dataout);
|
|
|
|
parameter enable_bus_hold = "FALSE";
|
|
parameter use_differential_mode = "FALSE";
|
|
parameter number_of_channels = 1;
|
|
|
|
input [number_of_channels-1:0] datain;
|
|
output [number_of_channels-1:0] dataout;
|
|
|
|
endmodule
|
|
|
|
(* blackbox *)
|
|
module altiobuf_out(datain, dataout);
|
|
|
|
parameter enable_bus_hold = "FALSE";
|
|
parameter use_differential_mode = "FALSE";
|
|
parameter use_oe = "FALSE";
|
|
parameter number_of_channels = 1;
|
|
|
|
input [number_of_channels-1:0] datain;
|
|
output [number_of_channels-1:0] dataout;
|
|
|
|
endmodule
|
|
|
|
(* blackbox *)
|
|
module altiobuf_bidir(dataio, oe, datain, dataout);
|
|
|
|
parameter number_of_channels = 1;
|
|
parameter enable_bus_hold = "OFF";
|
|
|
|
inout [number_of_channels-1:0] dataio;
|
|
input [number_of_channels-1:0] datain;
|
|
output [number_of_channels-1:0] dataout;
|
|
input [number_of_channels-1:0] oe;
|
|
|
|
endmodule
|
|
|
|
(* blackbox *)
|
|
module altsyncram(clock0, clock1, address_a, data_a, rden_a, wren_a, byteena_a, q_a, addressstall_a, address_b, data_b, rden_b, wren_b, byteena_b, q_b, addressstall_b, clocken0, clocken1, clocken2, clocken3, aclr0, aclr1, eccstatus);
|
|
|
|
parameter lpm_type = "altsyncram";
|
|
parameter operation_mode = "dual_port";
|
|
parameter ram_block_type = "auto";
|
|
parameter intended_device_family = "auto";
|
|
parameter power_up_uninitialized = "false";
|
|
parameter read_during_write_mode_mixed_ports = "dontcare";
|
|
parameter byte_size = 8;
|
|
parameter widthad_a = 1;
|
|
parameter width_a = 1;
|
|
parameter width_byteena_a = 1;
|
|
parameter numwords_a = 1;
|
|
parameter clock_enable_input_a = "clocken0";
|
|
parameter widthad_b = 1;
|
|
parameter width_b = 1;
|
|
parameter numwords_b = 1;
|
|
parameter address_aclr_b = "aclr0";
|
|
parameter address_reg_b = "";
|
|
parameter outdata_aclr_b = "aclr0";
|
|
parameter outdata_reg_b = "";
|
|
parameter clock_enable_input_b = "clocken0";
|
|
parameter clock_enable_output_b = "clocken0";
|
|
|
|
input clock0, clock1;
|
|
input [widthad_a-1:0] address_a;
|
|
input [width_a-1:0] data_a;
|
|
input rden_a;
|
|
input wren_a;
|
|
input [(width_a/8)-1:0] byteena_a;
|
|
input addressstall_a;
|
|
|
|
output [width_a-1:0] q_a;
|
|
|
|
input wren_b;
|
|
input rden_b;
|
|
input [widthad_b-1:0] address_b;
|
|
input [width_b-1:0] data_b;
|
|
input [(width_b/8)-1:0] byteena_b;
|
|
input addressstall_b;
|
|
|
|
output [width_b-1:0] q_b;
|
|
|
|
input clocken0;
|
|
input clocken1;
|
|
input clocken2;
|
|
input clocken3;
|
|
|
|
input aclr0;
|
|
input aclr1;
|
|
|
|
output eccstatus;
|
|
|
|
endmodule
|
|
|
|
(* blackbox *)
|
|
module cyclonev_mlab_cell(portaaddr, portadatain, portbaddr, portbdataout, ena0, clk0, clk1);
|
|
|
|
parameter logical_ram_name = "";
|
|
parameter logical_ram_depth = 32;
|
|
parameter logical_ram_width = 20;
|
|
parameter mixed_port_feed_through_mode = "new";
|
|
parameter first_bit_number = 0;
|
|
parameter first_address = 0;
|
|
parameter last_address = 31;
|
|
parameter address_width = 5;
|
|
parameter data_width = 1;
|
|
parameter byte_enable_mask_width = 1;
|
|
parameter port_b_data_out_clock = "NONE";
|
|
parameter [639:0] mem_init0 = 640'b0;
|
|
|
|
input [address_width-1:0] portaaddr, portbaddr;
|
|
input [data_width-1:0] portadatain;
|
|
output [data_width-1:0] portbdataout;
|
|
input ena0, clk0, clk1;
|
|
|
|
endmodule
|
|
|
|
(* blackbox *)
|
|
module cyclonev_mac(ax, ay, resulta);
|
|
|
|
parameter ax_width = 9;
|
|
parameter ay_scan_in_width = 9;
|
|
parameter result_a_width = 18;
|
|
parameter operation_mode = "M9x9";
|
|
|
|
input [ax_width-1:0] ax;
|
|
input [ay_scan_in_width-1:0] ay;
|
|
output [result_a_width-1:0] resulta;
|
|
|
|
endmodule
|
|
|
|
(* blackbox *)
|
|
module cyclone10gx_mac(ax, ay, resulta);
|
|
|
|
parameter ax_width = 18;
|
|
parameter ay_scan_in_width = 18;
|
|
parameter result_a_width = 36;
|
|
parameter operation_mode = "M18X18_FULL";
|
|
|
|
input [ax_width-1:0] ax;
|
|
input [ay_scan_in_width-1:0] ay;
|
|
output [result_a_width-1:0] resulta;
|
|
|
|
endmodule
|
|
|
|
(* blackbox *)
|
|
module cyclonev_ram_block(portaaddr, portadatain, portawe, portbaddr, portbdataout, portbre, clk0);
|
|
|
|
parameter operation_mode = "dual_port";
|
|
parameter logical_ram_name = "";
|
|
parameter port_a_address_width = 10;
|
|
parameter port_a_data_width = 10;
|
|
parameter port_a_logical_ram_depth = 1024;
|
|
parameter port_a_logical_ram_width = 10;
|
|
parameter port_a_first_address = 0;
|
|
parameter port_a_last_address = 1023;
|
|
parameter port_a_first_bit_number = 0;
|
|
parameter port_b_address_width = 10;
|
|
parameter port_b_data_width = 10;
|
|
parameter port_b_logical_ram_depth = 1024;
|
|
parameter port_b_logical_ram_width = 10;
|
|
parameter port_b_first_address = 0;
|
|
parameter port_b_last_address = 1023;
|
|
parameter port_b_first_bit_number = 0;
|
|
parameter port_b_address_clock = "clock0";
|
|
parameter port_b_read_enable_clock = "clock0";
|
|
parameter mem_init0 = "";
|
|
parameter mem_init1 = "";
|
|
parameter mem_init2 = "";
|
|
parameter mem_init3 = "";
|
|
parameter mem_init4 = "";
|
|
|
|
input [port_a_address_width-1:0] portaaddr;
|
|
input [port_b_address_width-1:0] portbaddr;
|
|
input [port_a_data_width-1:0] portadatain;
|
|
output [port_b_data_width-1:0] portbdataout;
|
|
input clk0, portawe, portbre;
|
|
|
|
endmodule
|