Перейти к содержанию
    

3.14

СуперМодератор
  • Постов

    1 986
  • Зарегистрирован

Весь контент 3.14


  1. Насчет PicoBlaze полностью поддерживаю. В одной плате я их аш восемь штук в кристалл SP2 впиндюрил, каждый на 60МГц. Только мои понимают 512б (может версии разные) и симулятора (если Вы не имели в виду ModelSim) у меня нет. Перед применением побаивался. Оказалось напрасно, достаточно ограничить его PERIODом да MAXDELAY указать. Насчет EDK. Обратил внимание и удивился на его на FTP. Я бы с радостью его аплоадил, но мое начальство это не поймет (уломал на скачку WG2004, чувствую себя как подлец). Я его получил с DVD диском AlexSoft "Золотой архив программ схемотехника". Еще он имеется в закромах. Только учтите, EDK6.2 не подходит к ISE 6.1 (как наоборот не знаю). Люди! Кто пользовался другими корками, поделитесь опытом. Ато последнее время мне все чаще приходит мысль о пробе упрощенной корки AVRки, microBlaze уш шибко крут (32 бита и все такое) picoBlaze – в принципе ничего, но далеко на asm не уедешь.
  2. Для тех кто не в курсе, поясню. Этот констрейн контролирует максимальное время разброса между тактовыми входами регистров. Если все тактовые сидят на глобальных буфферах, то о нем можно и не думать. Но такая красота не всегда бывает. Представьте, у вас сдвиговый регистр, внекоторых звеньях которго присутствует комбинаторная логика. После размещения и разводки в отчете фигурирует лишь максимальный путь от регистра к регистру (если ограничите). А для корректного указания MAXSKEW необходим минимальный путь. Как решаете для себя эту задачу? Я на шару указываю от 1 до 2нс.
  3. По-моему это единственный контроллер с которого можно сдернуть прошивку. Хотя примерно пару лет назад на телесистемах кто-то рассказывал что биты защиты слетали на каких-то ПИКах когда держишь их в печке градусов под 200.
  4. 1. Все-таки пленка пленке рознь, какого типа используете? 2. А если просто лист бумаги, хуже будет (все-таки по расколенной пленке утюг наверное плохо скользит)? 3. Как убираете пленку? Сам я пользую следующую технологию: Рисунок печатаю на бумаге из "Компоненты и технологии" или "Компьютерра", предварительно прогнав лист через принтер, чтоб по ровнее был. (ОЧЕНЬ ВАЖНЫЙ МОМЕНТ) Зачищаю плату. Шкурку использую такую, чтобы на ощупь слегка ощущалась шероховатость. Во время зачистки, плату зажимаю через лист бумаги (важно чтобы никаких пальчиков не оставалось). Затем промываю в воде, шоркая ее зубной щеткой (при очистке лучше не пользоваться всякими там тряпками, ватками и т.п.). Сушу на утюге и до момента приклеивания рисунка накрываю бумагой (чтобы пыль не оседала). Перед утюжением, подогреваю плату на утюге (градусов до 60). Накладываю рисунок, сверху лист бумаги. Утюг на ~70% (предварительно прогрев). Утюжу секунд 10. Если плата под утюг влазит целиком, то просто прижимаю, в противном случае приходится утюг водить, что может попортить результат. Затем тут же в воду (терпения никогда не хватало держать долго, да и хорошо приклеенный рисунок шкуркой трудно отскрести). Бумага с обоих сторон плотная а внутри мякоть. Пальцем аккуратно размягчаю бумагу и удаляю. Таким способом могу получить плату размером ~60х80, проводники 0.3мм зазоры 0.2мм. Если проводники >0.5мм то особых ограничений на размер платы нет. Делаю как односторонние так и двухсторонние (с переходными конечно геморрой), правда если приходится утюгом водить по плате, могут появиться перекосы по углам (в оной части платы отверстия сходятся в другой разъезжаются).
  5. долбаный PCAD (лелею надежду перебраться на Mentor Graphics).
  6. P.S. Грядет оччень большой проект на Stratix GX (40 тыщ LE) и несколько участников проекта, как на все это написать верификацию я просто не знаю. А в чем трабл тестбенча на верилоге? И всречный вопрос (самя крепко на Xilinx). У Xilinx можно организовать ModularDesign - разделил кристал на блоки раздал инженерам, потом все собирается. Позволяет к минимуму свести корреляцию писанины разных блоков. А как Вы собираетесь делить апельсин?
  7. Coregen это тулза ISE и в Sinplify еесоответственно нет, но ето не беда, просто подключаеш полученые в Кореген нетлисты как черные ящики и все. RTL у Synplify мне гораздо больше нравится. Удобная фишка выделения в теле предупреждений и ошибок (очень нехватает ее когда редактор используеш ISE). Синтез более качественный, покрайней мере у меня еще не было проекта в котором Syplify уступал XST (раньше после отладки менял синтезатор и смотрел отчет разводчика, потом надоело). Единственно что достает, он глобальные буфера раздает кому попало, для этого добавь top_module(.....) /* synthesis syn_noclockbuf = 1 */;
  8. Хотя это не ответ, но ... У меня такая же затычка только с ModelSim. И возникает она когда timing_model на verilog. Атрибут ASYNC_REG к регистрам в *.ucf не помогает, ключик +no_notifier не помогает. Извращаюсь тем, что двигаю асинхронные сигналы так чтобы зазоры вписывались. Я наверное не прав?
  9. Когдато задался целью приклеить умножитель к Меге128. Синтезировал в Synplify7.5. Занимало 15% от Spartan2-200. До отладки дело не дошло, но тестбенч в ModelSim грубых ошибок не выявил (хотя голову на отсечение не дам, давно было). module FMULT_module(inA, inB, outY, clc); input [31:0] inA; input [31:0] inB; output [31:0] outY; input clc; reg [31:0] outY; reg [8:0] Exponenta; reg [8:0] Exponenta1; reg [7:0] ExpS1; reg [7:0] ExpS2; reg [47:0] Mantisa; reg HbitA; reg HbitB; reg Hbit; reg bitMaxA; reg bitMinA; reg bitMaxB; reg bitMinB; reg Underflow; reg Overflow; reg SigExp; /*------------------------------------- bit 31 - S bits 30:23 - EXP bits 22:0 - MANTISA X=(-1)^S * 2^(EXP-127) * 1.MANTISSA -------------------------------------*/ always @(posedge clc) begin outY[31] = inA[31] ^ inB[31]; //signed of member ExpS1=inA[30:23]-8'd127; ExpS2=inB[30:23]-8'd127; Exponenta=$signed(ExpS1)+$signed(ExpS2); Hbit = Overflow | Underflow; Mantisa=$unsigned({1'b1,inA[22:0]}) * $unsigned({1'b1,inB[22:0]}); SigExp=Exponenta[8]; Exponenta1=Exponenta[7:0] ^ 8'hff; Exponenta1=Exponenta1 + 1; if(SigExp) begin if(Exponenta1[7:0]>8'd127) begin Exponenta=8'h81; outY[22:0]=23'h0; end else case(Mantisa[47:46]) 2'b01 : begin outY[22:0]={Mantisa[45:23]}; end 2'b10 : begin outY[22:0]={Mantisa[45:23]}; outY[22:0]={1'b0,Mantisa[45:24]}; Exponenta=Exponenta + 8'h01; end 2'b11 : begin outY[22:0]={Mantisa[46:24]}; Exponenta=Exponenta + 8'h01; end endcase end else begin if(Exponenta[7:0]>8'd127) begin Exponenta=8'h80; outY[22:0]=23'h0; end else case(Mantisa[47:46]) 2'b01 : begin outY[22:0]={Mantisa[45:23]}; end 2'b10 : begin outY[22:0]={1'b0,Mantisa[45:24]}; Exponenta=Exponenta + 8'h01; end 2'b11 : begin outY[22:0]={Mantisa[46:24]}; Exponenta=Exponenta + 8'h01; end endcase end Exponenta=$signed(Exponenta)+$signed(8'd127); outY[30:23]=Exponenta[7:0]; end endmodule :ph34r:
  10. После часового общения с сабжевым продуктом сильно смутил тот факт что в конце работы конструктора файл ограничений был пуст. После окончания разводки выяснилось , что некоторые корки заводят свои тактовые сигналы не сидящие на глобальных буферах (и НИКАКОГО на них констрейна).
×
×
  • Создать...