2015-03-12 4 views
1

Мы разрабатываем 8-битный сумматор в verilog. Кодексxilinx ise CHIPSCOPE PRO

module addsub (
    input  [7:0] dataa, 
    input  [7:0] datab, 
    input   clk, 
    output reg[8:0] result 
); 

    [email protected](posedge clk) 
    begin 
    result <= dataa + datab; 
    end 
endmodule 

Можете ли вы дать нам простые шаги для создания ядра, так что мы запускаем этот код на SPARTAN 3E плате с использованием Chipscope PRO. Мы пытались использовать различные форумы и видео, но не смогли найти точные шаги.

Edit 1 - Перечень предупреждений:

Вот предупреждающие сообщения, но никаких сообщений об ошибках.
Предупреждений заключаются в следующем:

WARNING:Xst:2211 - "ipcore_dir/aj_icon_core.v" line 16: Instantiating black box module <aj_icon_core>. 
WARNING:Xst:2211 - "ipcore_dir/aj_vio_core.v" line 25: Instantiating black box module <aj_vio_core>. 
WARNING:Xst:2211 - "ipcore_dir/aj_ila_core.v" line 36: Instantiating black box module <aj_ila_core>. 
WARNING:Xst:1780 - Signal <CONTROL> is never used or assigned. This unconnected signal will be trimmed during the optimization process. 
WARNING:Xst:1780 - Signal <CLK> is never used or assigned. This unconnected signal will be trimmed during the optimization process. 
WARNING:PhysDesignRules:372 - Gated clock. Clock net CONTROL1<13> is sourced by a combinatorial pin. This is not good design practice. Use the CE pin to control the loading of data into the flip-flop. 
WARNING:Route:455 - CLK Net:CONTROL1<13> may have excessive skew because 
WARNING:Route:455 - CLK Net:result_3 may have excessive skew because 
WARNING:Route:455 - CLK Net:result_6 may have excessive skew because 
WARNING:Route:455 - CLK Net:result_4 may have excessive skew because 
WARNING:Route:455 - CLK Net:result_7 may have excessive skew because 
WARNING:Route:455 - CLK Net:result_8 may have excessive skew because 
WARNING:Route:455 - CLK Net:result_1 may have excessive skew because 
WARNING:Route:455 - CLK Net:result_0 may have excessive skew because 
WARNING:Route:455 - CLK Net:result_5 may have excessive skew because 
WARNING:Route:455 - CLK Net:result_2 may have excessive skew because 
WARNING:PhysDesignRules:372 - Gated clock. Clock net CONTROL1<13> is sourced by a combinatorial pin. This is not good design practic 

Наш код выглядит следующим образом:

`timescale 1ns/1ps 
module addsub (
    inout [7:0] dataa, 
    inout [7:0] datab, 
    input clk1, 
    output reg[8:0]result 
); 

    /////////////////ICON//////////////////////////// 
    wire[35:0] CONTROL0; 
    wire[35:0] CONTROL1; 

    aj_icon_core YourInstanceName (
    .CONTROL0(CONTROL0),  // INOUT BUS [35:0] 
    .CONTROL1(CONTROL1)  // INOUT BUS [35:0] 
); 

    //////////////////////VIO////////////////////////////////////// 
    wire[35:0] CONTROL; 
    wire CLK; 
    wire [8:0] SYNC_IN; 
    wire [15:0] SYNC_OUT; 

    aj_vio_core vio_core1 (
    .CONTROL(CONTROL0), // INOUT BUS [35:0] 
    .CLK(clk1),   // IN 
    .SYNC_IN(SYNC_IN), // IN BUS [8:0] 
    .SYNC_OUT(SYNC_OUT) // OUT BUS [15:0] 
); 

    //////////////////////////////////ila/////////////////////// 
    wire [31 : 0] TRIG0; 
    aj_ila_core ila_core1(
    .CONTROL(CONTROL1), // INOUT BUS [35:0] 
    .CLK(clk1),   // IN 
    .TRIG0(TRIG0)  // IN BUS [31:0] 
); 

    assign TRIG0={16'h0000, dataa ,datab}; // 
    assign dataa= SYNC_OUT[15:8], datab= SYNC_OUT[7:0], SYNC_IN=result; 

    [email protected](posedge clk1) 
    begin 
    result <= dataa + datab; 
    end 
endmodule 
+0

Зачем вам нужен ChipScope Pro (CSP)? На вашей плате Spartan 3E есть светодиоды и переключатели для тестирования вашего модуля addub. Кроме того, есть ли у вас лицензия CSP? CSP не входит в состав WebPack Edition. – Paebbels

+0

Фактический код - это 32-разрядное дополнение, поэтому нам нужен чип-коп-про, мы пытались использовать вышеприведенный код, чтобы начать работу с основами. –

ответ

1

Создать новый источник (файл) в проекте: ChipScope Определение и файл подключения (* .cdc) и следуйте инструкциям мастера.

Прочитать UG750 для пошагового руководства.

Edit1 - Пример:

К сожалению, в настоящее время можно обеспечить только пример VHDL.

entity myExample is 
    port (
    A : out : STD_LOGIC_VECTOR(31 downto 0); 
    B : out : STD_LOGIC_VECTOR(31 downto 0); 
    C : in : STD_LOGIC_VECTOR(31 downto 0) 
); 
end entity; 

architecture rtl of myExample is 
    subtype T_XIL_CHIPSCOPE_CONTROL  is STD_LOGIC_VECTOR(35 downto 0); 
    type  T_XIL_CHIPSCOPE_CONTROL_VECTOR is array (NATURAL range <>) of T_XIL_CHIPSCOPE_CONTROL; 

    signal ControlBus : T_XIL_CHIPSCOPE_CONTROL_VECTOR(0 downto 0); 

    signal ControlVIO_In : STD_LOGIC_VECTOR(31 downto 0); 
    signal ControlVIO_Out : STD_LOGIC_VECTOR(63 downto 0); 
begin 
    -- instantiate a ICON IPCore with one ports 
    ICON : entity PoC.xil_ChipScopeICON_1 
    port map (
     control0 => ControlBus(0) 
    ); 

    ControlVIO : entity myDesign.CSP_ControlVIO 
    port map (
     CONTROL => ControlBus(0), 
     CLK  => SoFPGA_Clock, 
     SYNC_IN => ControlVIO_In, 
     SYNC_OUT => ControlVIO_Out 
    ); 

    A    <= ControlVIO_Out(31 downto 0); 
    B    <= ControlVIO_Out(63 downto 32); 
    ControlVIO_In <= C; 
end; 

В этом примере используется ICON IPCore с одним портом управления. Все сигналы агрегируются в T_XIL_CHIPSCOPE_CONTROL. (См. xil.pkg.vhdl).

Предварительно сконфигурированные сердечники ICON можно загрузить с here. Для каждого возможного количества портов имеется 15 ядер ICON. В дополнение к этому существует общая оболочка ICON xil_ChipScopeICON.vhdl, чтобы скрыть все ядра и выбрать соответствующее ядро ​​общим.

Синхронные порты ControlVIO подключаются к A, B, C каждому из 32 битов, которые могут использоваться вашим сумматором.

Edit 2 - в том числе нетлисты:

Есть 3 способа о том, как включить нетлисты:

1)
Добавить сгенерированный файл XCO в проект. Он включает в себя все.

2)
Добавить сгенерированный файл ngc в проект. Это список соединений. Связанный файл ограничения сетевого списка (ncf) загружается автоматически.

3) (это работает с VHDL, не проверено с Verilog)
Добавить сгенерированный файл vhdl обертки в проект и назначить его библиотеке. Теперь укажите один или несколько IPCore чтения directorys:

XST process properties -> Synthesis options page: 
-read_cores - Read Cores 
-sd - Cores Search Directories = d:\git\....\IPCores 

enter image description here (кликабельны)

Это изображение показывает мой Chipscope ICON обертку для 1..15 портов в фоновом режиме. 15 файлов VHDL загружаются как заполнители. В Forground вы можете увидеть свойства XST и настроенный путь поиска. Используйте '|' для разделения нескольких каталогов.

XST должен сообщать о найденных netlists в отчете XST (файл syr), если включено чтение ячеек.

+0

sir, мы добавили одно ядро ​​vio для ввода ввода (т. Е. Dataa и datab, как показано на рисунке) и другое ядро ​​vio для вывода вывода, но нам сложно определить, как связать эти ядра, можете ли вы рассказать, как связать эти ядер. –

+0

Каждое ядро ​​VIO имеет 256 входов и 256 выходов, поэтому для теста 32-разрядного сумматора достаточно одного VIO (3x 32-бит = 96 бит). Вы добавили ICON IPCore с одним или двумя портами? – Paebbels

+0

мы добавили ядро ​​значка с двумя портами, и мы не можем связать значок и vio-сердечники, вы предоставите некоторые примеры кодов для ссылки на vio и ядро ​​значка –

Смежные вопросы