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

LordVader

Участник
  • Постов

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

  • Посещение

Репутация

0 Обычный

Информация о LordVader

  • Звание
    Частый гость
    Частый гость

Контакты

  • Сайт
    Array

Посетители профиля

1 205 просмотров профиля
  1. Дано: modelsim 10.0b Из кода на верилоге (тестбенч) пытаюсь сделать что-то вроде initial begin force tb.q75.u0.RC <= 16'd0; end q75.u0.RC -- это signal в VHDLном модуле. Получаю: # ** Error: (vsim-8220) tb_top.v(570): This or another usage of 'tb.q75.u0.RC' inconsistent with 'VHDL SIGNAL' object. Есть очевидный метод, заключающийся в переписывании VHDL-кода с целью введения нужного функционала. Но что же получается, из вериложного бенча нельзя форсить сигналы в глубине VHDLного кода? Или можно, но я просто не знаю как? Если так, то как надо?
  2. Спасибо! А что за разъём (тип)?
  3. Подскажите плз, у кого есть beagleboneblack -- туда JTAG поставить таки можно, припаяв разъём?
  4. Про стандарт я в курсе. Но никто не обязывает ему следовать. Потому и вопрос, вдруг у кого есть.
  5. Сабж вообще бывает? Гуглёж дал намёки, что раньше выпускались диммы с такими. Очень хочется, потому что allwinner A13 умеет только DDR2, хотя сам в QFP. Частоты устроят и минимальные, за ними не гонимся.
  6. Остаётся вопрос, почему в другом дистрибе ровно те же версии бинутилей всё линковали без -B. Собраны с разными настройками?
  7. "-O elf32-avr" -- разве не указание архитектуры? Прочёл ман и дошло... Сергей, спасибо за подсказку. добавил в avr-objcopy "-B avr:51" и всё слинковалось.
  8. стоят avr-gcc, avr-binutils и libc-avr. Делаю из бинарника объектный файл с целью влинковать его: >avr-objcopy -I binary -O elf32-avr --rename-section .data=.progmem.data,contents,alloc,load,readonly,data --redefine-sym _binary_top_mlz_start=fpga --redefine-sym _binary_top_mlz_end=fpga_end top.mlz top.o тут всё ок. далее линкую: >avr-gcc -mmcu=atmega128 -Wl,-Map=core.map zx.o interrupts.o main.o ps2.o spi.o depacker_dirty.o rs232.o rtc.o atx.o joystick.o version.o tape.o kbmap.o top.o -o core.elf /usr/lib/gcc/avr/4.5.3/../../../avr/bin/ld: avr architecture of input file `top.o' is incompatible with avr:51 output collect2: ld returned 1 exit status Версии: >avr-gcc --version avr-gcc (GCC) 4.5.3 >avr-objcopy --version GNU objcopy (GNU Binutils) 2.20.1.20100303 ЧСХ, те же версии тулзов в mint 11 64bit линкуют всё на ура. Я неправ в опциях avr-objcopy или это баг в тулзах? И (риторическое) что делать? :)
  9. Поискать в этой либе метку l_рubkеу_vеrify (набрать латиницей), заткнуть 31 c0 c3 (xor eax,eax:ret). Как-то так.
  10. Про XP не знаю, с vin7 64 сабж дружит замечательно. Правда с проектами, требующими более гига, пока не сталкивался. 64битная версия процентов на 5-10 быстрее 32битной (сравнивал на одном проекте, общее время порядка получаса). На том же проекте: маппер вообще не использует более 1 ядра, фиттер говорит, что использует одно ядро 100% времени, остальные - 35-40% времени. Причём по этапам фиттинга использование ядер разнится - иногда все 4 пашут под 100% каждое, иногда все 4, но загружены не полностью, иногда в одно ядро. Еще много ядер использует timequest и впараллель с ним работает assembler, но у меня по времени это совсем незаметный минимум на фоне первых двух тасков.
  11. Ещё при моделировании могут вылезти баги. Старайтесь в верилоге не использовать pull1, pull0. При передаче таких сигналов в ВХДЛ они превратятся не в 1 и 0, а в Z, и моделирование сломается. modelsim 6.2k
  12. Просто память, например такую: always @(posedge clk) begin if( rd_ena ) rd_data <= mem[rd_addr]; if( wr_stb ) mem[wr_addr] <= wr_data; end квартус замечательно кладёт в блок памяти на кристалле. Но если нужна память с byte enable'ами по записи, то анчинаются чудеса. Или память полностью в LE оказывается. Или таки в блоке памяти, но дублируется в LE. Или же вметсо 1 блока памяти берутся два и используются наполовину каждый. Вот так вот - дублируются логикой все биты памяти. always @(posedge clk) begin if( rd_ena ) rd_data <= mem[rd_addr]; if( wr_stb ) mem[wr_addr][15:8] <= wr_bmask[1] ? wr_data[15:8] : mem[wr_addr][15:8]; if( wr_stb ) mem[wr_addr][ 7:0] <= wr_bmask[0] ? wr_data[ 7:0] : mem[wr_addr][ 7:0]; end Вот так вот - 2 блока по половинке в каждом и 2 LE вдобавок. always @(posedge clk) begin if( rd_ena ) rd_data <= mem[rd_addr]; if( wr_stb && wr_bmask[1] ) mem[wr_addr][15:8] <= wr_data[15:8]; if( wr_stb && wr_bmask[0] ) mem[wr_addr][ 7:0] <= wr_data[ 7:0]; end verilog, quartus 9.1, stratix 2, блоки M512 Подскажите, если кто знает рецепт, можно ли написать так, чтоб квартус правильно заинферил? Про мегафункции в курсе, но хочется сделать красиво.
  13. Моежт я ошибаюсь, но мне кажется что будь даже 32 гига памяти, и поддержка такой памяти осёй, 32битные проги всё равно не осилят более 4 гигов заюзать. Надо ставить 64-битную ось и 64-битные прилаги, независимо от выбора виндос-линух.
  14. Переход на личности. Это вам тоже TI сказала?
  15. Я вправе иметь своё мнение. И моё мнение таково, что RISC я не понимаю как дословную аббревиатуру. И знакомство с некоторым кол-вом процессоров заставляет думать, что риск - это не кол-во команд, а прежде всего их простота. и в том числе load-store. И почему-то так считают некоторые умные люди, которые пишут книги. Автоинкрементация она, когда проц не конвееризированный, как 430ый в оригинале или как топиковый. Посмотрите, как извращаются в современных x86-процах на этапе "fetch opcode". Да ради бога. А я вправе определять архитектуру его детища, как мне удобно :)
×
×
  • Создать...