Отговори на тема  [ 33 мнения ]  Отиди на страница Предишна  1, 2, 3  Следваща
Малък въпрос за CPLD Xilinx 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юни 07, 2005 6:20 pm
Мнения: 3532
Мнение 
Мдам. Поиграх си малко. Видях схемата (благодаря за упътването!)

Сега като гледам, всичко което е дефинирано като io [15:0] няма да ни трябва.

Правилно ли разбирам, че някои от входовете директно се извеждат на изходи
или по-точно

Цитат:
assign io[2:0] = bad[2:0]; // на битове 2 до 0 от шината io се присвоява стоиноста на битове 2 до 0 от шината bad
assign io[3] = bwr; // на бит 3 от щината i/o се присвоява стоиноста на bwr
assign io[4] = r_first_pass_detect; // на бит 4 от щината i/o се присвоява стоиноста на r_first_pass_detect
assign io[5] = bras; // на бит 5 от щината i/o се присвоява стоиноста на bras
assign io[6] = bcas; // на бит 6 от щината i/o се присвоява стоиноста на bcas
assign io[7] = waitb; // на бит 7 от щината i/o се присвоява стоиноста на waitb
assign io[15:8] = bda[7:0]; // на битове 15 до 8 от шината io се присвоява стоиноста на битове 7 до 0 от шината bda
assign ioclk = bad[3]; // на сигнала ioclk се присвоява стоиноста на бит 3 от сигнала bad


Има ли нещо по-специфично или на практика тези връзки могат да се заменят с по един буфер или направо с директна връзка?

С други думи единственото полезно след като махнем споменатите ненужни изходи се оказва

wire bufsdramsel = (!bsdcs[1] & !bsdcs[2]) ? 1'b1 : 1'b0;
//wire read;
assign read = ((!mcdir & !mcdaen) | (!brd & mcdaen) | ( bsdwe & bufsdramsel)) ? 1'b0 : 1'b1;

assign bbdqm[0] = ((!bdqm[0] & mcdaen) | (bdqm[0] & !mcdaen)) ? 1'b0 : 1'b1;
assign bbdqm[1] = ((!bdqm[1] & mcdaen) | (bdqm[1] & !mcdaen)) ? 1'b0 : 1'b1;
assign bbdqm[2] = ((!bdqm[2] & mcdaen) | (bdqm[2] & !mcdaen)) ? 1'b0 : 1'b1;
assign bbdqm[3] = ((!bdqm[3] & mcdaen) | (bdqm[3] & !mcdaen)) ? 1'b0 : 1'b1;

заедно със съответните дефиниции?

Между другото благодаря и на двамата за помощта \:D/ [/quote]


Сря Авг 24, 2005 12:00 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Пон Юли 04, 2005 11:51 pm
Мнения: 651
Местоположение: София
Мнение 
Правилно ли разбирам, че някои от входовете директно се извеждат на изходи
или по-точно


Да можеш направо да ги вържеш дирекно ... но имаи в предвид че можеби в случея CPLD'то се ползва като волтаж-конвертор (5V -> 3.3V) .....

_________________
От наше село са види връо, ама от връо се невиди наше село ... що така и я незнам .. ?!?


Сря Авг 24, 2005 1:33 pm
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
Може и друго да е, не само волтаж конвертор. Например малко закъснение. А на мен ми се е случвало да прекарвам сигнал през CPLD само защото няма място на платката, през което да прекарам проводника. :lol:


Сря Авг 24, 2005 1:38 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юни 07, 2005 6:20 pm
Мнения: 3532
Мнение 
А, не не. Всички дето са отбелязани с IO са изведени на куплунг за наблюдение. На нас не ни трябват.
И индикациите не ни трябват (евентуално, ще видим).
Останаха онези 5 сигнала, тях ще ги гадая по-нататък...
На този етап може да турим по-малко CPLD, да заема по-малко място.
Възможно ли е да стане това, като просто затрия излишните дефиниции и функции и оставя само необходимото от файла (щото съм далече от етапа да ми е съвсем ясно какво правя :roll: ).
Така например


module edb(
bsdcs,
read,
mcdaen,
mcdir,
brd,
bbdqm,
bdqm,
bsdwe,
);

input [2:1] bsdcs;
input mcdir;
input bsdwe;
input brd;

input mcdaen;
input [3:0] bdqm;
output [3:0] bbdqm;
output read;
input bresetn;


wire bufsdramsel = (!bsdcs[1] & !bsdcs[2]) ? 1'b1 : 1'b0;
//wire read;
assign read = ((!mcdir & !mcdaen) | (!brd & mcdaen) | ( bsdwe & bufsdramsel)) ? 1'b0 : 1'b1;

assign bbdqm[0] = ((!bdqm[0] & mcdaen) | (bdqm[0] & !mcdaen)) ? 1'b0 : 1'b1;
assign bbdqm[1] = ((!bdqm[1] & mcdaen) | (bdqm[1] & !mcdaen)) ? 1'b0 : 1'b1;
assign bbdqm[2] = ((!bdqm[2] & mcdaen) | (bdqm[2] & !mcdaen)) ? 1'b0 : 1'b1;
assign bbdqm[3] = ((!bdqm[3] & mcdaen) | (bdqm[3] & !mcdaen)) ? 1'b0 : 1'b1;

endmodule


Сря Авг 24, 2005 4:25 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
Ако само премахнеш излишните изходни пинове, пак е достатъчно. WebPack просто няма да имплементира блоковете, които нямат коридор навън.


Сря Авг 24, 2005 4:29 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юни 07, 2005 6:20 pm
Мнения: 3532
Мнение 
Остава въпроса кое CPLD е най-подходящо
XCR3032XL 44pin PLCC?
или
XCR3064XL 44pin PLCC?
или някой друг...


Сря Авг 24, 2005 4:37 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Пон Юли 04, 2005 11:51 pm
Мнения: 651
Местоположение: София
Мнение 
XCR3032XL 44pin PLCC ще ти свърши работа ...... доколкото си спомням то има около 32 и/о 'та ... това CPLD e от фамилията CoolRunner XPLA3 ... тава са едни от най-бързите CPLD'та на Xilinx (могат да се справят с честоти от порядъка на 213Mhz в зависимост от модела) ..... и следователно не са от най-ефтините .. :) (макар че този моде струва около 2~3$)

Алтернативно ако не са ти необходими чак толкова бързи CPLD'та ... може да ползваш XC9532XL ... (те се справят с честоти до 175Mhz .. в зависимост от модела) .... пак ги има в 44 PLCC корпус .. те са с около 34 и/о'та ... (цената им е по-ниска от тази на XCRxxxxx ... около 1~1.8$)

Също така XC9532XL за разлика от XCR3032XL са 5V-толерантни (спрямо и/о'тата).

Но като се замисля ... може би този XCRxxxxx които е сложен в схемата която рзглеждаш най-вероятно не е там случаино ... така че най-добре в конкретния случаи се придържаи към CoolRunner XPLA3 .... XCR3032XL :)

_________________
От наше село са види връо, ама от връо се невиди наше село ... що така и я незнам .. ?!?


Сря Авг 24, 2005 5:21 pm
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 26, 2005 2:01 pm
Мнения: 1952
Местоположение: Варна
Мнение 
Ако вземеш по-големия CoolRunner и ти останат бройки след това може да паснат на някой друг проект на който пък да не му стигат 32 макроклетки. :wink:
Това е ако мислиш и за в бъдеще. Не само за цената.
А за прекарването на сигналите през CPLD за да се улесни опроводяването на платката, както каза bateAz е сериозен аргумент. Възможността за преразпределение на сигналите по краката на CPLD-то дава голяма свобода при проектирането на платката или за последващи промени. Така че ако няма други фактори които натежават аз ти препоръчвам да вземеш по-големия. В 64 макроклетки/44 краков корпус например съм побирал дешифратор на 16 бутонна клавиатура, като се дешифрират и дву-бутонни комбинации + още няколко по-елементарни логически функции. При това с размерите и консумацията на CoolRunner.


Сря Авг 24, 2005 6:34 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юни 07, 2005 6:20 pm
Мнения: 3532
Мнение 
Може ли някой да ме насочи какъв програматор ми трябва за да си го препрограмирам туй нящу (JTAG e да, ама някакъв специален ли или всякакъв върши работа).
Доколкото прочитам оттук-оттам Xilinx имат публикувана схема на такова нещо.
Питам, защото нямам време сега за да се ориентирам от 0 в обстановкта.

А и още нещо - когато се програмира, захранване само от JTAG ли се ползва или трябва да е захранен и външно.

Става въпрос за CoolRunner XPLA3.


Пон Авг 29, 2005 11:10 am
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Пон Юли 04, 2005 11:51 pm
Мнения: 651
Местоположение: София
Мнение 
Ето от тук може да си свалиш схемата и PCB ... (правени са Protel99SE) за програмиращия кабел .... с него може да дупчиш всички чипове на Xilinx /CPLD&FPGA/

http://www.mcu-bg.com/mcu_site/viewtopi ... c&start=15

Захранването е външно .. 3.3V

_________________
От наше село са види връо, ама от връо се невиди наше село ... що така и я незнам .. ?!?


Пон Авг 29, 2005 2:44 pm
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юни 07, 2005 6:20 pm
Мнения: 3532
Мнение 
Ок, мерси

Ама нещо липсва спецификацията. Резисторите и кодензаторите нямат стойности...

EDIT
Намерих ги

Оригиналната схема е тук
http://toolbox.xilinx.com/docsan/data/a ... /fig26.htm


Пон Авг 29, 2005 3:35 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Пон Юли 04, 2005 11:51 pm
Мнения: 651
Местоположение: София
Мнение 
Мда .... именно тва е схемата ... :)

Извиняваи за неузначените чаркове ... :oops: ... бях забравил за тая подробност ... :roll:

Доколкото си спомнам, поне наименованието на отделните компоненти е едно към едно с това във оригиналната схема .. така че направо зимаи стоиностотеим от там ... :)

_________________
От наше село са види връо, ама от връо се невиди наше село ... що така и я незнам .. ?!?


Пон Авг 29, 2005 4:43 pm
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30684
Местоположение: София
Мнение 
Абе не съм изчел цялата тема но като избираш CPLD-то внимавай, някои серии нямат 5 V I/o.. то май почти никои нямат, но от CR има такива които не се повре ждат, т.е. с външни pull up става ...... CR3 мисля не работи с 5 В .. малко съм позабравил но погледни и това ....


Вто Авг 30, 2005 6:51 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 26, 2005 2:01 pm
Мнения: 1952
Местоположение: Варна
Мнение 
Недей да шашкаш... XCR3064 е CoolRunner с "5V толерантни" вход/изходи. При CoolRunnerII т. е. XC2C64 ядрото се захранва с 1.8V и имаш отделно зхранване за входно/изходните буфери, които не са "5V толерантни".
А относно CR3 ... накараме да погледна на сайта на Xilinx дали не е излязъл CoolRunnerIII. Все още не е ... :D


Вто Авг 30, 2005 7:18 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30684
Местоположение: София
Мнение 
Да бе .... 2 имах в предвид ...... че не става за 5 V .. за Cool Runer I става, ама както писах не изчетох много подробно и не ми направи впечатление че говори за чип от тая серия, както и да е .. добре е човек да го има в предвид .. тъй е .. като се чете по диагонал :)


Вто Авг 30, 2005 8:32 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 33 мнения ]  Отиди на страница Предишна  1, 2, 3  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 4 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни