新聞中心

        EEPW首頁 > 汽車電子 > 設計應用 > 使用LeonardoSpectrum綜合Xilinx FPGA的VHDL程序

        使用LeonardoSpectrum綜合Xilinx FPGA的VHDL程序

        作者:■和記奧普泰通信技術有限公司 蔡連峰 時間:2004-11-03 來源:電子設計應用2003年第6期 收藏

        摘   要: 本文總結了使用綜合Xilinx 程序應用,以及在中使用不同類型RAM的方法。
        關鍵詞: 
        是Mentor Graphics公司設計的功能強大的EPLD//ASIC綜合工具,支持大部分EPLD/FPGA廠商的產品。LeonardoSpectrum支持VHDL、Verilog、EDIF的綜合、優化和定時分析,可以運行在Windows 98/2000/NT/XP和HP、SUN 的UNIX平臺上。
        LeonardoSpectrum通過名為exemplar的庫,可以在用HDL設計FPGA/EPLD時使用與原理圖設計相同的功能。LeonardoSpectrum對于Xilinx公司的EPLD/FPGA支持尤其完善,使得用HDL的設計在效率和功能上可以和原理圖的設計相當。本文總結了使用LeonardoSpectrum過程一些有用的設計方法。

        本文引用地址:http://www.104case.com/article/3708.htm

        圖1 全局時鐘使用的map結果

        圖2 延遲鎖相環使用map結果

        圖3 塊狀RAM的map結果

        圖4 分布式RAM的map結果

        屬性的使用
        在LeonardoSpectrum中,可以在程序中對信號賦予屬性來對綜合結果進行控制。在使用LeonardoSpectrum綜合時,除了LeonardoSpectrum提供的屬性外,可以把Xilinx原理圖設計中的某些元件作為屬性來賦予信號,主要限于雙端口的元件,例如IBUFG,BUFG等等。LeonardoSpectrum所提供的屬性可以參看使用手冊。
        如果使用LeonardoSpectrum來綜合,建議調用exemplar庫,以獲得更多的功能支持,本文介紹的程序都需要使用exemplar庫。下面是對程序中一個信號通過賦予bufg的屬性而定義該信號為全局時鐘的例子。
        ......
        ARCHITECTURE rtl of bufg IS
        SIGNAL    clk :td_logic;
        attribute buffer_sig of clk: signal is "bufg";
        BEGIN
         clk<=clkin;
         clkout<=clk;
         process(clk)
         begin
        if(clk'event and clk='1') then
          end if;
         end process;
        END rtl;
        這個程序選用的芯片是Xilinx的spartanII 系列XC2S50-5QP208,經LeonardoSpectrum綜合后,用Xilinx ISE5.1進行map后的結果如圖1所示,可以看到使用了1個全局時鐘。
        元件的引用
        在Xilinx的FPGA/EPLD的原理圖設計中需要用到元件庫,元件庫中包含一些特殊功能的元件,例如延遲鎖相環(DLL)、全局時鐘BUF、邊界掃描電路、數字時鐘管理器(DCM)、內置SRAM等。LeonardoSpectrum提供的exemplar庫中的程序包使得設計者可以在VHDL程序中直接引用原理圖庫中所包含的元件。引用元件時,先調用exemplar庫,對要引用的元件按照原理圖庫中的描述進行聲明。引用元件時可以只使用其中一部分參數,不必對元件所有的參數進行映射。
        下面是引用Xilinx的FPGA的延遲鎖相環〔DLL〕的例子。
        ............
        ARCHITECTURE rtl of pll IS
        SIGNAL  clk       :std_logic;
        component clkdll         --鎖相環
        port(clkin,clkfb,rst  :in std_logic;clk0,clk90, clk180,clk270,clkdv,locked  :out std_logic);
        end component;
        BEGIN
        CLK1: clkdll port map(clkin=>clkin,clkfb=>clk,rst=>'0', clk0=>clk,clk90=>clkout );
         process(clk)
         begin
        if(clk'event and clk='1') then
        data_out<=data_in;
        end if;
        end process;
        END rtl;
        這個程序也選用Xilinx的XC2S50-5QP208,經LeonardoSpectrum綜合后,用Xilinx ISE5.1進行map后的結果如圖2所示,可以看到使用了一個DLL。

        RAM的綜合
        RAM設計是Xilinx FPGA的一個特色,按照在芯片內的分布情況可以分為分布式RAM和塊狀RAM,分布式RAM分布在每個LC中,可以將一個LC作為16



        關鍵詞: FPGA LeonardoSpectrum VHDL

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 师宗县| 安陆市| 丹凤县| 辉南县| 丰顺县| 大埔区| 桐梓县| 长春市| 陆川县| 赤峰市| 龙泉市| 绿春县| 牟定县| 贡嘎县| 勐海县| 绵阳市| 嵩明县| 阳山县| 寻乌县| 徐州市| 孙吴县| 唐山市| 平塘县| 汝阳县| 新沂市| 灌阳县| 防城港市| 磐石市| 察雅县| 临城县| 乐山市| 灵武市| 四平市| 邹平县| 富平县| 天峻县| 和林格尔县| 上虞市| 寿光市| 泗洪县| 祁门县|