nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 29 Mar 2024 02:55



Reply to topic  [ 153 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7, 8 ... 11  Next
8086+FPGA 
Author Message
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
Желтое на черном, потому что белый фон слепит глаза со страшной силой.
ГОСТ идет лесом, элементы примерно похожи на себя - и ладно. Микросхемы вообще - когда ЕСКД этот делали (84 года что ли...), FPGA и вообще настолько многоногих чипов еще в проекте не было.
Готовые библиотеки тоже обычно не использую.

зы Инверсные выходы у Вас не по ГОСТу :mrgreen:


23 Sep 2016 03:48
Profile
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Правда ваша по инверсии. ГОСТ предусматривал рисование микросхем (любых, в том числе и аналоговых) в виде прямоугольника - тут всё верно.


23 Sep 2016 05:08
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
fifan wrote:
Никогда не использовал готовых библиотек, символы рисую по ГОСТу.

Если бы ты их ещё в масштабе рисовал хотя б в половину меньшем - цены бы твоим схемам не было... :lol:
А так - больно огромные они у тебя выходят... :-?

_________________
iLavr


23 Sep 2016 09:08
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
fifan wrote:
Правда ваша по инверсии.

Я про то, что кружочки, обозначающие инверсию выхода должны быть на пересечении прямоугольника корпуса и ноги, а не снаружи.


23 Sep 2016 11:59
Profile
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Да точки инверсии должны быть внутри, я не знаю возможно ли их так сделать.

Сейчас специально зашёл в библиотеку и посмотрел расстояния между вертикальными выводами название пина/тело микросхемы/название пина должно быть 5/10...12/5 мм. У меня опять ниже - 2,5 мм.
Я тоже делал когда-то элементы по видеоучителю по точным координатам крайних точек прямоугольников.
Длина пинов не регламентируется, у меня - 5 мм. http://portal.tpu.ru:7777/SHARED/g/GREBENNIKOVVV/umm_disciplines_electronics_1_2/Tab/page2_1.jpg

Как-то мы ушли от темы. Давайте перейдём к девайсу. Вопрос к автору. Размеры платы - 39.37 на 39.37 мм.? Или я напутал?


23 Sep 2016 12:13
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
100x100 мм, максимум, что предлагают те китайцы, у которых я заказывал.


23 Sep 2016 12:36
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Vic3Dexe wrote:
Я про то, что кружочки, обозначающие инверсию выхода должны быть на пересечении прямоугольника корпуса и ноги, а не снаружи.

Если я не ошибаюсь, по новому ГОСТу можно и снаружи, как вариант.
Раньше ведь и диод не прочеркивали насквозь - а сейчас это по ГОСТу...
Всё - для удобства творцов схем! :mrgreen:

_________________
iLavr


23 Sep 2016 14:32
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Vic3Dexe wrote:
Биос, как я и планировал, располагается во флешке с прошивкой для самого циклона.

Можно, еще с глупыми вопросами попристаю ? :)
А как это реализуется - параллельная память в последовательной ?


02 Oct 2016 11:07
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
Так он же там просто лежит, а не работает оттуда. При старте машины биос копируется в RAM, при работе запись туда, понятное дело, отключена.
Все это ради того, чтобы не лепить отдельную ROM и не морочить голову с ее прошивкой.


02 Oct 2016 13:31
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
А, я то думал, что есть какая-нибудь мегафункция или что-то подобное, чтобы прямо из EPCS делать параллельную память...

Копируется, очевидно, во внешнюю RAM ?


02 Oct 2016 14:29
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
newold86 wrote:
А, я то думал, что есть какая-нибудь мегафункция или что-то подобное, чтобы прямо из EPCS делать параллельную память...

Да написать-то можно, только скорость будет не тогойт... И, главное, нафик оно надо-то? :)
newold86 wrote:
Копируется, очевидно, во внешнюю RAM ?

Именно. Сначала переливал в циклон, потом уже (в последующих версиях) прямо в SRAM.


02 Oct 2016 14:34
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Vic3Dexe wrote:
Сначала переливал в циклон, потом уже (в последующих версиях) прямо в SRAM.

Не просветите неуча, как именно копируется BIOS из флэша в Cyclone ?


19 May 2017 22:06
Profile
Senior

Joined: 27 Jul 2015 15:20
Posts: 101
Reply with quote
newold86 wrote:
как именно копируется BIOS из флэша в Cyclone ?


Я перепробовал много вариантов, мне показался самым простым такой:
Code:
4-х разрядное пзу на verilog

//(* romstyle = "logic" *)      - это необязательно, можно указать, где создавать ROM
reg [3:0] rom[255:0];
initial    $readmemh("rom.txt", rom);



А в текстовом файле - листинг пзу, побайтно через пробел, без адресов.
Code:
....
7 7 7 F 7 F F 7 F F F 7 F 7 F 7
7 F 7 F 7 F F 7 F B B 7 F 7 F 7
7 F F F 7 F F 7 F B B 7 F 7 F 7
F 7 F F 7 F 7 7 F 7 3 3 F 7 F 7
....


Источник : Quartus Prime Handbook, страница 16-8 (970 в pdf).

Т.е. стандартными средствами Quartus+Altera при инициализации FPGA само всё скопируется.


19 May 2017 23:40
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
IgorR76 wrote:
Т.е. стандартными средствами Quartus+Altera при инициализации FPGA само всё скопируется.

Если ROM изначально в циклоне и там и останется - то это само собой.

Задача стояла совершенно иная - использовать флешку именно как внешнюю память, т.е. скопировать оттуда свои произвольные данные во внешнюю параллельную RAM. Например, если биос тупо не влазит в набортную память циклона.

Есть готовая мегафункция - asmi_parallel, которую и используем.
Примерно так:
Code:
module bios_asmi(
  input wire ASMI_CLK,
  output wire BIOS_DONE,
  //интерфейс к RAM
  output reg [19:0] RAM_A,
  output reg [15:0] RAM_D,
  output reg nWR);

wire [7:0] ASMI_DATA;
wire ASMI_BUSY, ASMI_DVALID;

//подождем, иначе флешка молчит, сука
reg [5:0] DELAY;
always @(posedge ASMI_CLK) DELAY <= &DELAY ? DELAY : DELAY + 6'h1;

//счетчик
reg [16:0] CNTR = 17'h0;
always @(posedge ASMI_CLK) CNTR <= ASMI_DVALID & ~BIOS_OK ? CNTR+17'h1 : CNTR;
wire PRELAST_BYTE = ~CNTR[16] & (&CNTR[15:0]); //FFFF
wire LAST_BYTE = CNTR[16];

//выдаем RDEN по отсутствию BUSY и счетчику меньше положенного
//RDEN висит все время чтения
reg RDEN = 1'b0;
always @(negedge ASMI_CLK) RDEN <= (PRELAST_BYTE | LAST_BYTE) ? 1'b0 : (~ASMI_BUSY & (&DELAY)) | RDEN;

//выдаем READ_CMD по фронту RDEN
reg RDEN_FRONT;
always @(negedge ASMI_CLK) RDEN_FRONT <= RDEN;
wire READ_CMD = RDEN & ~RDEN_FRONT;

//выдаем наружу признак окончания
reg BIOS_OK = 1'b0;
always @(posedge ASMI_CLK) BIOS_OK <= LAST_BYTE;
assign BIOS_DONE = BIOS_OK; //чтобы можно было ему 0 присвоить на старте

//снимаем данные
always @(posedge ASMI_CLK) begin
  RAM_D[15:8] <= ASMI_DVALID & CNTR[0] ? ASMI_DATA : RAM_D[15:8];
  RAM_D[7:0] <= ASMI_DVALID & ~CNTR[0] ? ASMI_DATA : RAM_D[7:0];
end

//адрес фиксируем при чтении 2 байта
always @(posedge ASMI_CLK) RAM_A <= ASMI_DVALID & CNTR[0] ? {1'b0,4'hF,CNTR[15:1]} : RAM_A;

//сигнал записи
always @(posedge ASMI_CLK) nWR <= ~(ASMI_DVALID & CNTR[0]);

//инстанс
parameter bios_read_addr = 24'h70000;
asmi_bios asmi(.clkin(ASMI_CLK), .read(READ_CMD), .rden(RDEN), .addr(bios_read_addr), .reset(1'b0), .dataout(ASMI_DATA), .busy(ASMI_BUSY), .data_valid(ASMI_DVALID));

endmodule


19 May 2017 23:52
Profile
Senior

Joined: 27 Jul 2015 15:20
Posts: 101
Reply with quote
А изначально код биоса находится в той же флешке, откуда инициализируется fpga? "Приаттачивается" вручную или есть способ через Квартус?

PS. Почитал описание мегафункции asmi. Надо отдельный модуль для записи в EPCS. Вроде понятно.

Но newold86 спрашивал про "копирование в циклон". Тогда подходит и мой способ.


Last edited by IgorR76 on 20 May 2017 00:30, edited 1 time in total.



20 May 2017 00:14
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 153 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7, 8 ... 11  Next

Who is online

Users browsing this forum: No registered users and 11 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.