Jump to content

    

des00

Модераторы
  • Content Count

    7546
  • Joined

  • Last visited

Everything posted by des00


  1. Цитата(asya @ May 11 2005, 21:10)прочитал про процессы. т.е. process. я правильно понял? т.е. если в теле архитектуры несколько процессов - то все процессы выполняются параллельно. а внутри каждого процесса все идет последовательно? и еще, можно ли написать процесс в процессе? ИМХО нет, если нужно расписать последовательную логигуку то пишщемм ее вообще без процесса. А процесс это блок который отслеживает изменения определенного сигнала и в соответсвии с этим сигналом идет измененрие работы схемы. В зависимости от списка чуствительности и от логигки в процесее можно описать либо асинхронный либо синхронный блок. ИМХО так.
  2. Цитата(stalko @ May 11 2005, 03:40)Получил, спасибо!! Но в xst.pdf не нашел, как запихать регистры в память принудительно. Мож не там искал? Видел только такой аттрибут, который командует поместить логику в память (видно как нас учили в институтские времена - "логика на ПЗУ"  ), но и он у меня не заработал (правда и не ругался на него), похоже это только для Виртексов. А вот чтобы конкретные регистры пихнуть в память пока не вижу, сейчас попробую, конечно, поискать повнимательнее. Всегда пожалуйста. Насчет того что можно что нельзя, вообще ИМХО нужно смотреть три доки: xst.pdf, cgd.pdf, lib.pdf и сопостовляя данные можно точно узнать что может плис и как это сделать. Насчет регитсров в память не любой регистр можно сделать на памяти, это зависит от логики его функционирования, но если вы прописали констрейн указывающий сделать что то, а синтезатор сделать этого не может, он обязательно пишет почему и как это исправить.
  3. Цитата(asya @ May 11 2005, 06:17)и еще, я видел, что люди так синхронные дизайны делают используя эту конструкцию... (а если она несинтесируемая, то о какой синхронности можэно говорить?) опять же. может глупость сказал. немного добавлю Синхронный дизайн это стиль проектирования когда все модули одного блока сидят на одной частоте. А те люди скорее всего использовали данную конструкцию в тестбенче для генератора клока ))
  4. Цитата(asya @ May 10 2005, 20:06)Вот такой вот код написал чтобы проверить работу директивы (или как это еще назвать) after. library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity top is     Port ( a : in std_logic;           b : out std_logic); end top; architecture Behavioral of top is begin b<=a after 1000ms; end Behavioral; И проблема в том, что не работает. Вернее работает, но не так, как я себе это представлял. Происходит мгновенное срабатывание, а нес задержкой в одну секунду. (проверял на глаз, поэтому и поставил такую большую задержку) Что не так? Пользуюсь Xilinx ISE и Spartan3. ЗЫЖ ногами не пинайте если я тут глупости наговорил, я новичек еще. а смотришь чем ?? не забыл что это не синтезируемая констукция ?
  5. Мыло ушло. Ну полнейшая переносимость не будет, т.к. полностью констрейны вешь сугубо индивидуальная, пока. Хотя если ИСЕ начнет поддерживать синопсивские констреийны то это будет хорошо.
  6. Цитата(stalko @ May 6 2005, 15:14)Кстати, мож кто знает, где взять полноценную доку по Verilog-у на русском? ... на худой конец не на русском... В принципе, буду рад и доке по VHDL, AHDL и ABEL (больше языков описания не знаю). Надо же с чем-то сравнивать  Мыло где ?? есть на руском немного, но лучше стандарта 2001г (~800 стр англ. текста) нат ) ЦитатаR1<=R2; R2<=сигнал; if ({R1,R2}==2'b01) // типа posedge сигнала ... // понеслось ... т.е. примерно то, что предложил sazh Но, если честно, вариант не из красивых. смеяться будете это стандартная схема выделения фронта, очень часто используеться при синхронизации блоков. ЦитатаТеперь у меня вопрос такой: как мне заставить регистры в данном модуле лечь в память? В другом модуле Foundation кладет FIFO в память сам, даже по приколу попробовал 8x1. Все равно кладет. А эти регистры раздувает в регистры (масло масляное) если уж пишете под хилинк то обязательно прочитайте xst.pdf - HDL Coding Techniques и cgd.pdf Constraints Guide. Там написанно как можно писать на ХДЛ и задействовать все ресурсы плис, без использования либ от производителя.
  7. --Раньше я пользовал схемотехнический ввод. А писал я много на чем, но языки --описания аппаратуры только начал пользовать. очень хорошо, значит задача упрощаеться. --Ровно настолько же, насколько Вы "первый раз с" русским языком. Это моя --специальность, вообще-то... Хмм ну я знаю два руских языка, официальный и сетевой - когда быстро набираешь и нет проверки синтаксиса редактором - его нужно понимать а не читать побуквенно. --По разным стробам можно, при чем тут фронты непонятно (ЛЕГКО). --А насчет ОДНОВРЕМЕННО... Об ОДНОВРЕМЕННО никто не говорил. Реально в --ЭТОТ регистр (3-й) по второму стробу вообще писаться не будет. Значит так ставим себя на место синтезатора. Он встречает первый always always @(posedge HFCC) begin RARM[3]=HFCD; end и видит что вы просите его сделать запись в регистр RARM[3] по положительному фронту сигнала HFCC, при чем в любой момент времени. н принимате решение использовать регистр с динамическим тактовым входом, на тактовый вход подав сигнал HFCC. Встречает второй алвайс always @(negedge nWR) begin if (CS_FPGA==1) begin RARM[A]<=D; end end и видит что вы просиде сдлелать запись в один из регистров RARM[3]...[0] по отрицательному фронту сигнала nWR, если выставлен сигнал разрешения CS_FPGA, причем в любой момент времени. сдесь синтезатор принимает решение сделать четрые регистра с динамическим клоком и входами разрешения., подав на тактовые входы сигнал nWR, а на разрешение CS_FPGA. Но на клок регистра RARM уже используеться под такирование положительным фронтом сигналом HFCC, и как теперь синтезатору приладить сюда отрицательный фронт ? Что бы исправить сию ситуацию нужно: 1. Внести все сигналы тактирования в один алвайс и переделать логику под регистр RARM[3]. что я вам и указал. -- И не привыкайте хамить, потом отвыкать тяжело... Даже не начинал, если вы уж такой ранимый то "Чудны твои дела господи.... "
  8. Цитата(stalko @ May 5 2005, 13:08)Никогда раньше не писал на Verilog-е, но вот решил, что время пришло. В качестве кристалла выбрался Xilinx-овский Spartan III (делаю не ради развлечения, а по работе). Пользую WebPack 7.1i . Все написал, отсимулировал, но как только начинаю синтезировать... Прет ошибка. В двух местах ее вылечил, а в остальных не получается  Мож кто поможет? Ну вы приколист, а раньше вы на чем писали ?? или первый раз с электроникой ?? always @(posedge HFCC) begin RARM[3]=HFCD; end always @(negedge nWR) begin if (CS_FPGA==1) begin RARM[A]<=D; end end Вы сами посмотрие на свой код ?? как можно сделать запись в ОДИН и тот Же регистр по РАЗНЫМ стробам и с разными фронтами, да еще и одновременно ?? такое в принципе нельзя реализовать на вашем семействе плис. Нужно менять подход., либо сделать память синхронной, либо усложнить логику записи.
  9. Цитата(FAE @ Apr 28 2005, 09:17)Используйте ACTEL !!! Там этой проблемы вообще не возникает, т.к. ПЛИС не требуется загружать каждый раз при включении питания, и , таким образом, нельзя перехватить поток данных.  (www.actel.com) Это то можно, но архитектура этих плис не совсем подходит для некоторых задач ((
  10. Цитата(3.14 @ Apr 22 2005, 09:38)При указании констрейна PERIOD в отчете PAR вы видите получившуюся рабочую частоту "модуля". согласен, но есть еще такой параметр как OFFSET IN BEFORE for Clock 'sys_clk' OFFSET OUT BEFORE for Clock 'sys_clk' и вот в них то как раз и учитываються задержки на IBUF OBUF. ИМХО какой смысл иметь тактовую в 200 МГц, если сигналы устанавливаються за 7-9 нс ?? Или я не прав ?
  11. Цитата(Dmetry K. @ Apr 24 2005, 19:58)всем спасибо за информацию! Только Actel со своей  однократной программируемостью наверное не подойдет, так как за частую бывает что в процессе разработки могут поменятся исходные данные (исходя из опыта проектирования приборов на рассыпухе). А если в качестве схемного редактора применить OrCad 9.1 а далее разработку проекта  продолжить в Max+plus II - что можете сказать по этому поводу? ИМХО в топку, толькв квартус и только ХДЛ !!!!
  12. Цитата(makc @ Apr 22 2005, 06:46)Цитата(des00 @ Apr 22 2005, 12:11)хмм интересно а у исе есть вирт. пины как у квартуса ?? А для чего они могут быть нужны? И как они физически реализуются? хмм может быть скажу неправильно, просто при проектировании модулей я хочу получить реальные показатели тактовой частоты и задержек. Для этого можно буферизировать все сигналы ввода вывода, что неудобно. Вот меня и интересовал вопрос можно ли как нибудь заставить ИСЕ, считать все входы выходы не внешними, а внутренними сигналами, исключив из учета ячейки ввода/вывода
  13. Цитата(makc @ Apr 22 2005, 01:34)Да, забавно... А если по теме, то у Вас, Epikur, в проекте использовано слишком много блоков ввода-вывода (пинов на кристалле, если говорит проще). Что Вам с этим делать - решайте сами. хмм интересно а у исе есть вирт. пины как у квартуса ??
  14. Цитата(Serega Doc @ Apr 22 2005, 02:36)На самом деле у меня кроме сравнеия еще и простейшие вычисления (сложение и вычитание) в зависимости от результатов сравнения. может я туплю но решение через тригерочек и на слуд суматор/вычитатель ?? правда задержка появиться, зато частотка увеличиться )
  15. Цитата(Serega Doc @ Apr 14 2005, 07:24)2 des00 А как вы получите знак не выполнив вычитания? Или diff<={1'b0, data0}-{1'b0,data1}; -это не 49 битные операнды? Вот этот код module proj ( input sys_clk, input [47:0] data0, input [47:0] data1, output sing ); wire [47:0] data0, data1; wire sing; reg [48:0] d; assign sing = d[48]; always @(posedge sys_clk) begin d <= {1'b0,data0} - {1'b0,data1}; end endmodule Вот отчеты синтезатора +-----------------------------------------------------------------------+ ; Fitter Summary ; +-----------------------+-----------------------------------------------+ ; Fitter Status ; Successful - Wed Apr 13 17:49:41 2005 ; ; Quartus II Version ; 4.2 Build 178 01/19/2005 SP 1 SJ Full Version ; ; Revision Name ; Bosik ; ; Top-level Entity Name ; Bosik ; ; Family ; Cyclone ; ; Device ; EP1C6F256C8 ; ; Timing Models ; Final ; ; Total logic elements ; 49 / 5,980 ( < 1 % ) ; ; Total pins ; 98 / 185 ( 52 % ) ; ; Total virtual pins ; 0 ; ; Total memory bits ; 0 / 92,160 ( 0 % ) ; ; Total PLLs ; 0 / 2 ( 0 % ) ; +-----------------------+-----------------------------------------------+ +---------------------------------------------------------------------------------------------------------------------------------------------------+ ; Timing Analyzer Summary ; +------------------------------+-------+---------------+-------------+-------------------+-------------------+------------+----------+--------------+ ; Type ; Slack ; Required Time ; Actual Time ; From ; To ; From Clock ; To Clock ; Failed Paths ; +------------------------------+-------+---------------+-------------+-------------------+-------------------+------------+----------+--------------+ ; Worst-case tsu ; N/A ; None ; 8.629 ns ; B[19] ; Compar:inst|d[48] ; ; Clock ; 0 ; ; Worst-case tco ; N/A ; None ; 8.353 ns ; Compar:inst|d[48] ; AGB ; Clock ; ; 0 ; ; Worst-case th ; N/A ; None ; -1.691 ns ; A[39] ; Compar:inst|d[48] ; ; Clock ; 0 ; ; Total number of failed paths ; ; ; ; ; ; ; ; 0 ; +------------------------------+-------+---------------+-------------+-------------------+-------------------+------------+----------+--------------+ При запросе максимальной тактовой в 475 метров квартус ругнулся Clock Setup: 'Clock' N/A 475.06 MHz ( period = 2.105 ns ) Restricted to 275.03 MHz ( period = 3.636 ns ) Compar:inst|d[48] AGB Clock Cloc вот еще оттуда Info: Clock "Clock" Internal fmax is restricted to 275.03 MHz between source register "Compar:inst|d[48]" and destination register "AGB" Info: fmax restricted to Clock High delay (1.818 ns) plus Clock Low delay (1.818 ns) : restricted to 3.636 ns. Expand message to see actual delay path. Info: + Longest register to register delay is 1.049 ns Info: 1: + IC(0.000 ns) + CELL(0.000 ns) = 0.000 ns; Loc. = LC_X33_Y14_N9; Fanout = 1; REG Node = 'Compar:inst|d[48]' Info: 2: + IC(0.740 ns) + CELL(0.309 ns) = 1.049 ns; Loc. = LC_X32_Y14_N0; Fanout = 0; REG Node = 'AGB' Info: Total cell delay = 0.309 ns ( 29.46 % ) Info: Total interconnect delay = 0.740 ns ( 70.54 % ) Info: - Smallest clock skew is 0.000 ns Info: + Shortest clock path from clock "Clock" to destination register is 2.962 ns Info: 1: + IC(0.000 ns) + CELL(1.469 ns) = 1.469 ns; Loc. = PIN_H1; Fanout = 2; CLK Node = 'Clock' Info: 2: + IC(0.782 ns) + CELL(0.711 ns) = 2.962 ns; Loc. = LC_X32_Y14_N0; Fanout = 0; REG Node = 'AGB' Info: Total cell delay = 2.180 ns ( 73.60 % ) Info: Total interconnect delay = 0.782 ns ( 26.40 % ) Info: - Longest clock path from clock "Clock" to source register is 2.962 ns Info: 1: + IC(0.000 ns) + CELL(1.469 ns) = 1.469 ns; Loc. = PIN_H1; Fanout = 2; CLK Node = 'Clock' Info: 2: + IC(0.782 ns) + CELL(0.711 ns) = 2.962 ns; Loc. = LC_X33_Y14_N9; Fanout = 1; REG Node = 'Compar:inst|d[48]' Info: Total cell delay = 2.180 ns ( 73.60 % ) Info: Total interconnect delay = 0.782 ns ( 26.40 % ) Info: + Micro clock to output delay of source is 0.224 ns Info: + Micro setup delay of destination is 0.037 ns
  16. Цитата(Serega Doc @ Apr 13 2005, 08:47)Не знаю как отдельно но в блоке простое сравнение работает быстрее чем вычитание Synplify_8 -> Quartus 4.2 --- Cyclon -8 A и B 8bit A-B - 156 MHz 100 LUt - думаю не самое оптимальное решение A>B - 175 MHz 98 LUt Надеюсь что у когото получится лучше организовать сравнение. хмм Антоном то приведен совершенно другой варант, ему не нужна вся разность, его интересует только знаковый бит !!!!
  17. Цитата(Serega Doc @ Apr 13 2005, 06:52)Что синтезированная схема сравнения будет медленнее работать чем вычитатор? Мне нужно так чтобы синтез в Quartus показал наибольшую скорость. ХЗ как будет работать синтезированная схема сравнения, но вот этот код занял в 4.2 циклон, отдельный модуль 49 ячеек на 275 метрах по квартусу (кстати Антон спасибо, я благодаря вам я выиграл пиво)
  18. Цитата(Iho @ Apr 13 2005, 06:32)Люди если кто знает где есть готовая реализация LPT порта на любом языке скиньте ссылочку плз! Очень надо!!!!!!!!!!! хмм а то что у лпт порта есть 4 режима работы побоку ??
  19. Цитата(Pahuchy @ Apr 13 2005, 05:57)Задача: есть входной сигнал RGB 24бита .  Формат сигнала может быть различным 640х480, 800x600 и т.п.(вообщем VESA) надо сделать так что бы на выходе формат не зависил от входа т.е. вход 640х480 выход 1280x1024 или вход 1280х1024 выход 800х600. Т.е. понятно что сигнал оцифровуется попадает в FPGA(я использую альтеру) и выходит на ЦАП. В альтере надо сделать Upscaler и Downscaler . Так вот вопрос как это сделать. Любые ссылки , теориии , примеры приветствуются. PS. Раньше уже делал подобную вещь но использовал готовый scaler от Philips SAA6713. Теперь scaler надо засунуть в альтеру а на входе будет простой 3хАЦП. Хммм имхо если бы передо мнй встала такая задача, то нужно определить следующее : 1. Метод интерполяции данных (при увеличении изображения необходимо расчитать "недостающие" точки) 2. Метод прореживания данных.
  20. Цитата(Pechkin @ Apr 10 2005, 03:13)Ознакомился с синтаксисом Verilog, накачал документацию. Попробовал простенький примерчик-получился. Теперь нужен примерчик побольше. Люди подскажите что такое можно реализовать на Verilog, что бы размер кода был около 200 строчек? И что бы проблем с поиском описания алгоритма не было. EPP контроллер ))))
  21. Цитата(altmer @ Apr 11 2005, 01:23)Если не секрет, то как с этим побороться не убирая оптимизации? Или лучше вообще квартусом воспользоваться? ИМХО для начала собрать проект в квартусе, с нужными установками.
  22. Цитата(aosp @ Apr 8 2005, 00:15)Спасибо за комплемент! Единственная просьба, не распространяйте их. Сейчас я убрал их с сервера в силу определенных обстоятельств, там очень много грамматических ошибок, поскольку все делалось очень быстро непосредствено при подготовке к лекциям. Возможно в будущем я сделаю их достоянием общественности, если... хватит сил на продолжение. Хорошо без проблем.
  23. Нет не мерил, т.к не задавался подобными вешами. Мне нужен был параллельный цап м нужен был срочно, под рукой были ап6 и 1% резистры. Качество выходного сигнала меня устроило, поэтому дальнейшие экспиременты я счел не необхолимыми )
  24. Цитата(aosp @ Apr 6 2005, 00:10)Почитай материалы моих лекций... http://forum.electronix.ru/index.php?showtopic=2417 Бальшое спасибо вам за лекции, скачал с 3 по 9 ю, очень понравилось, кратко, понятно и по делу )) побольше бы таких материалов.
  25. Цитата(Anybody @ Apr 7 2005, 11:42)+ к тому что сказанно выше ... а Вы посчитайте разброс параметров резисторов ... впишитесь ли Вы в установленные +/- LSB я думаю, что нет ... Хмм я когда делал, правда не на матрице р-2р, а просто на резитсорах, так вот на 1% точности мона получить около 7 бит ))) и по скорости у меня было до 14 метров ))