Visible to Intel only — GUID: cdr1511227658312
Ixiasoft
1. Introduction to Intel® FPGA Design Flow for Xilinx* Users
2. Technology Comparison
3. FPGA Tools Comparison
4. Xilinx* to Intel® FPGA Design Conversion
5. Conclusion
6. AN 307: Intel® FPGA Design Flow for Xilinx* Users Archives
7. Document Revision History for Intel® FPGA Design Flow for Xilinx* Users
3.3.1. Project Creation
3.3.2. Design Entry
3.3.3. IP Status
3.3.4. Design Constraints
3.3.5. Synthesis
3.3.6. Design Implementation
3.3.7. Finalize Pinout
3.3.8. Viewing and Editing Design Placement
3.3.9. Static Timing Analysis
3.3.10. Generation of Device Programming Files
3.3.11. Power Analysis
3.3.12. Simulation
3.3.13. Hardware Verification
3.3.14. View Netlist
3.3.15. Design Optimization
3.3.16. Techniques to Improve Productivity
3.3.17. Partial Reconfiguration
3.3.18. Cross-Probing in the Intel® Quartus® Prime Pro Edition Software
4.2.1.2.1. Memory Mode
4.2.1.2.2. Clocking Mode
4.2.1.2.3. Write and Read Operation Triggering
4.2.1.2.4. Read-During-Write Operation at the Same Address
4.2.1.2.5. Error Correction Code (ECC)
4.2.1.2.6. Byte Enable
4.2.1.2.7. Address Clock Enable
4.2.1.2.8. Parity Bit Support
4.2.1.2.9. Memory Initialization
4.2.1.2.10. Output Synchronous Set/Reset
Visible to Intel only — GUID: cdr1511227658312
Ixiasoft
4.2.3.3. Example: Converting to the LPM_MULT IP Core
You can convert the Xilinx* Multiplier Core that targets a Xilinx* device into multipliers for an Intel® FPGA device by using the IP Catalog.
In this example, the test module instantiates the mymult module, created using the Xilinx* Core Generator. The parameters are:
Parameter | Value |
---|---|
Multiplier Type | Parallel multiplier where neither of the input buses is a constant value |
Input data width | 18 bits |
Input data type | Signed |
Output result width | Restricted to 36 bits |
Number of pipeline stages | 2 |
Implemented using Multipliers and optimized for Speed |
The Original Verilog HDL Code in the Vivado* Software is:
module top(
input clk,
input [17:0] a,
input [17:0] b,
input ce,
input sclr,
output [35:0] p
);
mymult i1 (
.CLK(clk),
.A(a), // Bus [17: 0]
.B(b), // Bus [17: 0]
.CE(ce),
.SCLR(sclr),
.P(p)); // Bus [35: 0]
endmodule
The original VHDL Code in the Vivado* Software is:
LIBRARY ieee;
USE ieee.std_logic_1164.all; LIBRARY work;
ENTITY test IS
port (
clk: IN STD_LOGIC;
a: IN STD_LOGIC_VECTOR(17 downto 0);
b: IN STD_LOGIC_VECTOR(17 downto 0);
sclr: IN STD_LOGIC;
ce: IN STD_LOGIC;
p: OUT STD_LOGIC_VECTOR(35 downto 0)
);
END test;
ARCHITECTURE arch OF test IS
component mymult
PORT(
CLK: IN STD_LOGIC;
A: IN STD_LOGIC_VECTOR(17 downto 0);
B: IN STD_LOGIC_VECTOR(17 downto 0);
CE: IN STD_LOGIC;
SCLR: IN STD_LOGIC;
P: OUT STD_LOGIC_VECTOR(35 downto 0)
);
end component;
BEGIN
i1: mymult
PORT MAP(CLK => clk,
A => a, B => b, CE => ce,
SCLR => sclr, P => p);
END;
In the IP Catalog, select the LPM_MULT IP core to create the equivalent mymult module.
Converted Verilog HDL Code in the Intel® Quartus® Prime Pro Edition software:
module test(
input clk,
input [17:0] a,
input [17:0] b,
input ce,
input sclr,
output [35:0] p
);
mymult i1 (
.clock(clk),
.dataa(a), // Bus [17: 0]
.datab(b), // Bus [17: 0]
.clken(ce),
.sclr(sclr),
.result(p)); // Bus [35: 0]
endmodule
Converted VHDL Code in the Intel® Quartus® Prime Pro Edition Software
LIBRARY ieee;
USE ieee.std_logic_1164.all;
LIBRARY work;
ENTITY test IS
port (
clk: IN STD_LOGIC;
a: IN STD_LOGIC_VECTOR(17 downto 0);
b: IN STD_LOGIC_VECTOR(17 downto 0);
ce: IN STD_LOGIC;
sclr: IN STD_LOGIC;
p: OUT STD_LOGIC_VECTOR(35 downto 0)
);
END test;
ARCHITECTURE arch OF test IS
component mymult
PORT(clock: IN STD_LOGIC;
dataa: IN STD_LOGIC_VECTOR(17 downto 0);
datab: IN STD_LOGIC_VECTOR(17 downto 0);
clken: IN STD_LOGIC;
sclr: IN STD_LOGIC;
result: OUT STD_LOGIC_VECTOR(35 downto 0)
);
end component;
BEGIN
i1: mymult
PORT MAP(clock => clk,
dataa => a,
datab => b,
clken => ce,
sclr => sclr,
result => p);
END;