Jump to content

    

_ANDREW

Участник
  • Content Count

    49
  • Joined

  • Last visited

Community Reputation

0 Обычный

About _ANDREW

  • Rank
    Участник
  1. Здравствуйте. У меня возникла проблема при освоении PCIe ядра для Virtex6 ML605. Я изучил документацию xapp1052.pdf, xapp1022.pdf, ug517.pdf, ug379.pdf. Скачал xapp1052.zip, xapp1022.zip и программу PciTree.exe. Прогрузил флеш на плате проектом примером с PIO-после перезагрузки плата не определилась системой. потом попробовал прогрузить примером который был в xapp1052.zip (пример с BMD). увидел плату с помощью PCITree. затем установил драйвер pcie_demo.sys из xapp1052.zip запустил соответсвующее приложение PCIe_Perf.exe. Оно показало что транзакции чтения и записи совершаются, показало скорость транзакций. Но я не понял что дальше мне делать с этим BMD. Мне нужно осуществлять передачу данных через шину в ПЛИС, их там обрабатывать, и отправлять обратно по шине. Поковырял с Chipscope различные шины в BMD во время транзакций записи и чтения, но куда подключится для получения данных так и не нашёл. Далее я попытался установить драйвер xilinx_pcie_block.sys из xapp1022.zip согласно документации xapp1022.pdf. Система WindowsXP SP3 перестала загружаться. Загрузка стала возможна только в безопасном режиме, в котором с помощью программы MET.exe из xapp1022.zip я смог записать и прочитать регистры как описано в xapp1022.pdf. Если кто то сталкивался с похожими проблемами помогите пожалуйста их решить. И если можно ответьте пожалуйста на несколько вопросов: 1. В чём принципиальное различие между BMD и PIO. 2. возможно ли с помощью драйвера в xapp1052.zip полноценно использовать ядро в режиме DMA(чтение и запись по адресам) система Windows.если кто то знает где можно найти драйвер(Windows) для работы с PCIe с описанием буду ОЧЕНЬ благодарен. Заранее огромное спасибо!
  2. Большое спасибо всем за ответ. То есть, если я правильно понял, даже при отсутствии black box в проекте на этапе синтеза невозможно узнать сколько % будет занимать проект. jojo, подскажите пожалуйста, как именно в % выделить слайсы. в файле cgd.pdf нашёл информацию по использованию констант AREA_GROUP, RANGE, но не совсем понятно.
  3. здравствуйте! вопрос следующий: после синтеза проекта XST он занимает 58% , а после имплементации 74, почему? отчёт по синтезу Selected Device : 6vlx240tff1156-2 Slice Logic Utilization: Number of Slice Registers: 99196 out of 301440 32% Number of Slice LUTs: 87661 out of 150720 58% Number used as Logic: 87644 out of 150720 58% Number used as Memory: 17 out of 58400 0% Number used as SRL: 17 Slice Logic Distribution: Number of LUT Flip Flop pairs used: 108451 Number with an unused Flip Flop: 9255 out of 108451 8% Number with an unused LUT: 20790 out of 108451 19% Number of fully used LUT-FF pairs: 78406 out of 108451 72% Number of unique control sets: 3868 IO Utilization: Number of IOs: 151 Number of bonded IOBs: 151 out of 600 25% Specific Feature Utilization: Number of Block RAM/FIFO: 157 out of 416 37% Number using Block RAM only: 157 Number of BUFG/BUFGCTRLs: 3 out of 32 9% отчёт по имплементации Device Utilization Summary: Slice Logic Utilization: Number of Slice Registers: 99,196 out of 301,440 32% Number used as Flip Flops: 99,196 Number used as Latches: 0 Number used as Latch-thrus: 0 Number used as AND/OR logics: 0 Number of Slice LUTs: 76,802 out of 150,720 50% Number used as logic: 74,551 out of 150,720 49% Number using O6 output only: 56,764 Number using O5 output only: 71 Number using O5 and O6: 17,716 Number used as ROM: 0 Number used as Memory: 17 out of 58,400 1% Number used as Dual Port RAM: 0 Number used as Single Port RAM: 0 Number used as Shift Register: 17 Number using O6 output only: 17 Number using O5 output only: 0 Number using O5 and O6: 0 Number used exclusively as route-thrus: 2,234 Number with same-slice register load: 2,224 Number with same-slice carry load: 10 Number with other load: 0 Slice Logic Distribution: Number of occupied Slices: 28,140 out of 37,680 74% Number of LUT Flip Flop pairs used: 93,406 Number with an unused Flip Flop: 8,206 out of 93,406 8% Number with an unused LUT: 16,604 out of 93,406 17% Number of fully used LUT-FF pairs: 68,596 out of 93,406 73% Number of slice register sites lost to control set restrictions: 0 out of 301,440 0% подскажите, может можно с помощью настроек уменьшить объём проекта... спасибо..
  4. здравствуйте. хотелось бы создать закрытое ядро из vhdl файла. слышал что можно использовать ngc файл или encripted ngc. среда разработки-xilinx ise 12.3. заранее спасибо.
  5. а почему не получилось??? синтезатор ругается?? каким Вы синтезатором пользуетесь??
  6. на 78 странице память подключена как примитив, а вот на стр 76, внизу (Register-Based Dual-Port SRAM) подключение памяти как синтезируемого компонента... и практически тоже самое что и в моём коде (только я прописал ROM с инициализированными значениями). Честно говоря, думаю что отличия в архитектуре у разных компаний не велики.. и я обычно не подключаю блоки как примитивы, лучше писать на чистом языке, с настройкой синтеза атрибутами, чем лепить примитивы, и каждый раз переделывать проект под разные микросхемы.
  7. Это для XILINX, атрибуты для родного XILINX SYN TOOLS (XST) который по умолчанию в ISE...
  8. Я всегда делаю 1. вот небольшой пример library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity ROM is port (CLK : in std_logic; EN : in std_logic; ADDR : in std_logic_vector(15 downto 0); DATA : out std_logic_vector(31 downto 0)); end ROM; architecture syn of ROM is type rom_type is array (0 to 1007) of std_logic_vector (31 downto 0); signal ROM : rom_type:= ( X"00000000", X"00040050", X"000d00c0", X"00cc01f0", X"00ea0180", X"01bb0080", X"01aa0090", X"01720120", X"014d0100", X"011001f1", X"010a00c1", X"00000010", X"00110160", X"00710200", X"00810110", X"008901a0", X"008d0111", X"00b801e0", X"00c10112", X"01cb0230", X"016c0091", X"015a0150", X"00000020", X"00130181", X"004d0210", X"006800c2", X"006c0140", X"00cc0092", X"01e401d0", X"01c00130", X"01a201e1", X"01630093", X"01200141", X"00000030", X"001200d0", X"001901c0", X"00620231", X"00680211", X"007800a0", X"009d0142", X"00ad00f0", X"01d401c1", X"01b30220", X"01740190", X"00000040", X"00120212", X"00310131", X"00550170", X"009b0221", X"00bd00d1", X"00e300a1", X"01400232", X"012b0041", X"012d0070", X"01220171", X"00000051" -- и так далее ); attribute ROM_STYLE : string; ---атрибуты для того чтобы при синтезе распределение было в блоковую память attribute ROM_STYLE of ROM: signal is "block"; begin process (CLK) begin if (CLK'event and CLK = '1') then if (EN = '1') then DATA <= ROM(conv_integer(ADDR)); end if; end if; end process; end syn; у Вас будут скорее всего другие атрибуты, или можно обойтись без них, с помощью настроек синтеза..
  9. Спасибо за то что люди отозвались и посоветовали несколько вариантов!! Всё обязательно попробую!!
  10. Muscat, я не тестировал декодер Витерби, и с Actel не работал, но имеется небольшой опыт тестирования других декодеров на Virtex5... Честно, я не вникал в архитектуру Actel, но в Virtex есть блочная память, думаю она есть и у Actel. так вот, я всегда использовал для теста эту самую память... Организую её как ROM и либо файлом, либо из vhd файла определяю начальные значения ячеек, а потом просто счётчиком по порядку перебираю ячейки... но всё это получится если длина кодового слова у Вас вместится в неиспользуемую память... И, если не секрет, для каких кодов Витерби делаете?? А то у меня тоже этот тип в дальнейшем, похоже, намечается...
  11. К сожалению обнаружил "ERROR:TclTasksC:partition_031: Partitions are no longer supported in 12.1 Project Navigator and Xilinx Tcl." Так что пока не ясно как избежать повторного синтеза...
  12. По поводу Incremental Synthesis нашёл в XST.pdf нашёл следующее: The incremental_synthesis and resynthesize constraints are no longer supported. Так что пока вопрос остаётся открытым...
  13. Здравствуйте. Пишу проект в ISE12.3 который состоит из файла top.vhd и нескольких вложенных файлов in_buf.vhd, fifo.vhd и out.buf. Был произведён синтез top.vhd, соответственно все 3 вложенных файла прошли синтез. Имеется ли такая возможность при изменении файла in_buf.vhd и повторном синтезе top.vhd не синтезировать fifo.vhd и out.buf, т.е. те которые прошли синтез и не изменялись? А то тратится очень много времени. Заранее спасибо.
  14. Всем спасибо за помощь!! Сегодня поковырял снова эту проблему, и выяснил, что моделсим не видит 'ifdef, а весь файл ddr3_model_parameters.vh написан под несколько микросхем памяти а конкретная выбирается с помощью условий ifdef `ifdef QUAD_RANK `define DUAL_RANK // also define DUAL_RANK parameter CS_BITS = 4; // Number of Chip Select Bits parameter RANKS = 4; // Number of Chip Selects `else `ifdef DUAL_RANK parameter CS_BITS = 2; // Number of Chip Select Bits parameter RANKS = 2; // Number of Chip Selects `else parameter CS_BITS = 2; // Number of Chip Select Bits parameter RANKS = 1; // Number of Chip Selects `endif `endif я убрал эту универсальность, всё сделал под конкретную микруху без ifdef и всё заработало... но это не порядок.. надо разбираться... на следующей неделе встречаюсь с гуру моделсима... у меня к нему масса вопросов... так что разберусь - отпишусь!!!