AR# 14831

|

7.x Synplify - How do I infer the Virtex-II synchronous multiplier (MULT18X18S) in Synplify?

描述

Keywords: Synplify, VHDL, Verilog, multiply, multiplier, MULT18X18

Urgency: Standard

General Description:
How do I infer the Virtex-II synchronous multiplier in Synplify?

解决方案

1

Synchronous Multiplier in Synplify - VHDL Example:

(NOTE: The "syn_pipeline" Synplify attribute must be used.)

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity xcv2_mult18x18s is
port (a : in std_logic_vector(7 downto 0);
b : in std_logic_vector(7 downto 0);
clk : in std_logic;
prod : out std_logic_vector(15 downto 0));
end xcv2_mult18x18s;

architecture arch_xcv2_mult18x18s of xcv2_mult18x18s is

signal reg_prod : std_logic_vector (15 downto 0);

attribute syn_pipeline : boolean;
attribute syn_pipeline of reg_prod : signal is true;

begin

process(clk) is begin
if clk'event and clk = '1' then
reg_prod <= a*b;
end if;
end process;

prod <= reg_prod;

end arch_xcv2_mult18x18s;

2

Synchronous Multiplier in Synplify - Verilog Example:

(NOTE: The "syn_pipeline" Synplify attribute must be used.)

module xcv2_mult18x18s (a,b,clk,prod);
input [7:0] a;
input [7:0] b;
input clk;
output [15:0] prod;

reg [15:0] prod /* synthesis syn_pipeline = 1 */;

always @(posedge clk) prod <= a*b;

endmodule
AR# 14831
日期 04/23/2007
状态 Archive
Type 综合文章
People Also Viewed