nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 14 Nov 2018 13:16



Reply to topic  [ 67 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next
Язык Вырвиглотк 
Author Message
Novelist
User avatar

Joined: 21 Aug 2018 08:39
Posts: 30
Location: Кемеровская обл.
Reply with quote
Сдвиг экрана на символ через пятую точку победил. Остался маленький баг со сдвигом столбца на пиксель вниз.
 фото
Attachment:
ep4ce10_vga1.jpg
ep4ce10_vga1.jpg [ 67.6 KiB | Viewed 842 times ]
Причина вроде бы ясна, но править не буду т.к. по худу переписывать весь проект.
Буду пилить новую платку с цапом поболее, а там и новый проект.


27 Aug 2018 21:11
Profile
Writer

Joined: 22 Aug 2018 15:37
Posts: 11
Reply with quote
Icer wrote:
Сдвиг экрана на символ через пятую точку победил. Остался маленький баг со сдвигом столбца на пиксель вниз.

надо просто привыкнуть что все неблокирующие присвоения дают результвт в следующем цикле - и всё само собой получится.

Mixa64 wrote:
(если не вырываю из контекста, бо про очень тяжелая звучит странно) Для логики это один-единственный сумматор. На его входах множимое без двух младших разрядов и множимое, сдвинутое на два, к сумме снизу проводами приписываются те два младших разряда и ниже 4 нуля земляными (или какими другими с нужным потенциалом) проводами.

Угу, и регистр накопительный и прочая обвязка, плюс всё это потребует несколько клоков чтобы последовательно просуммировать все сдвиги чтобы получить результат умножения (а не суммирования).

И в каком же ретро компе стоят арифметические сумматоры? Обычно ставятся счетчики и последовательно считают до нужного значения.
Так же надо писать и в HDL, особено если хочется сделать копию чего-то реального.


28 Aug 2018 03:40
Profile
Novelist
User avatar

Joined: 21 Aug 2018 08:39
Posts: 30
Location: Кемеровская обл.
Reply with quote
Пока отключенный форум остужал головы, изморщил свой маленький мозг почему ядро tv80 не дышит. Во время мучительных поисков решения проблемы наткнулся на пару прикольных инструментов в квартусе "Simulation Wave form Editor" и "RTL Viewer". Короче нет худа без добра :rotate:


05 Sep 2018 23:55
Profile
Writer

Joined: 22 Aug 2018 15:37
Posts: 11
Reply with quote
Лучше T80. С моими фиксами проходит все найденные тесты, включая недокументированные. Ну кроме флагов X/Y у SCF/CCF комманд -там слишком замороченный алгоритм поведения - я не стал его делать, ибо даже у разных производителей Z80 поведение разное.


09 Sep 2018 13:30
Profile
Novelist
User avatar

Joined: 21 Aug 2018 08:39
Posts: 30
Location: Кемеровская обл.
Reply with quote
Sorgelig wrote:
Лучше T80. С моими фиксами проходит все найденные тесты, включая недокументированные. Ну кроме флагов X/Y у SCF/CCF комманд -там слишком замороченный алгоритм поведения - я не стал его делать, ибо даже у разных производителей Z80 поведение разное.
Не сочтите за наглость, а можно хотя бы один тест который tv80 точно не пройдет? Качал tv80 из-за верилога, думал как-нибудь поковыряться во внутренностях :roll:


09 Sep 2018 18:58
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17117
Location: Colorado
Reply with quote
Icer wrote:
Sorgelig wrote:
Лучше T80. С моими фиксами проходит все найденные тесты, включая недокументированные. Ну кроме флагов X/Y у SCF/CCF комманд -там слишком замороченный алгоритм поведения - я не стал его делать, ибо даже у разных производителей Z80 поведение разное.
Не сочтите за наглость, а можно хотя бы один тест который tv80 точно не пройдет? Качал tv80 из-за верилога, думал как-нибудь поковыряться во внутренностях :roll:

А чего не light8080 или cpu8080? Они вроде как посовременнее будут и тоже верылог

_________________
:eugeek: https://twitter.com/Shaos1973


09 Sep 2018 19:56
Profile WWW
Novelist
User avatar

Joined: 21 Aug 2018 08:39
Posts: 30
Location: Кемеровская обл.
Reply with quote
Shaos wrote:
А чего не light8080 или cpu8080? Они вроде как посовременнее будут и тоже верылог
В детстве был клон спекки " :twisted: Чебурашка" и даже кое что на асме z80 писал т.е. слегка знаком с процем, а так хотелось 6502 и велосипед nes запилить. Решил пока на том, что более знакомо, остановиться.


09 Sep 2018 20:14
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17117
Location: Colorado
Reply with quote
А нужен полноценный z80? Понятно

_________________
:eugeek: https://twitter.com/Shaos1973


09 Sep 2018 21:02
Profile WWW
Novelist
User avatar

Joined: 21 Aug 2018 08:39
Posts: 30
Location: Кемеровская обл.
Reply with quote
Shaos wrote:
А нужен полноценный z80? Понятно
не особо принципиально. Хотелось бы попробовать разные ядрышки х86 например.


09 Sep 2018 22:18
Profile
Novelist
User avatar

Joined: 21 Aug 2018 08:39
Posts: 30
Location: Кемеровская обл.
Reply with quote
TV80 так и не дышит
 картинко
Attachment:
nopulse.PNG
nopulse.PNG [ 40.73 KiB | Viewed 709 times ]

 module vga128
Code:
module vga128(clk,led);

input clk;
output [7:0]led;
wire m1_n,mreq_n, iorq_n, rd_n, wr_n, rfsh_n, halt_n, busak_n;

always @ (posedge clk)
begin
   
end

assign led={m1_n,mreq_n, iorq_n, rd_n, wr_n, halt_n, busak_n};

tv80s z80(.m1_n(m1_n), .mreq_n(mreq_n), .iorq_n(iorq_n), .rd_n(rd_n), .wr_n(wr_n),
          .wait_n(1),.int_n(1),.nmi_n(1),.busrq_n(1),.reset_n(1),
          .halt_n(halt_n),.busak_n(busak_n),.clk(clk),.di(1'b0));

endmodule
Вроде все необходимые сигналы подал. Выходные все в "1" кроме m1_n="0"

Получилось. Итить надо было просто подать импульс сброса.


09 Sep 2018 23:31
Profile
Novelist
User avatar

Joined: 21 Aug 2018 08:39
Posts: 30
Location: Кемеровская обл.
Reply with quote
Вырвиглотк оказался не так страшен :mrgreen:
 TV80 дышит
Attachment:
tv80alive.png
tv80alive.png [ 25.11 KiB | Viewed 692 times ]

 простыня
Code:
module vga128(clk,led);

input clk;
output [7:0]led;
wire m1_n,mreq_n, iorq_n, rd_n, wr_n, rfsh_n, halt_n, busak_n, reset_n;
reg [4:0] res=4;
reg [7:0] ram [0:1023]; initial $readmemh ("c:/lab/fpga/vga128/hex/my.hex", ram);
reg [7:0] o_ram;
wire [15:0] addr;
wire [7:0] cpu_out;
wire cs,wr;

always @ (posedge clk)
begin
   if (res != 0) res<=res-1'b1;
end

always @ (posedge clk)
begin
   if (cs==0)
   begin
      if (wr==0) ram[addr]<=cpu_out; else o_ram<=ram[addr];
   end
end

assign wr=wr_n;
assign cs=mreq_n;

assign led={reset_n,m1_n,mreq_n, iorq_n, rd_n, wr_n, halt_n, busak_n};
assign reset_n= (res==1'b0);

tv80s z80(.m1_n(m1_n), .mreq_n(mreq_n), .iorq_n(iorq_n), .rd_n(rd_n), .wr_n(wr_n),
          .wait_n(1),.int_n(1),.nmi_n(1),.busrq_n(1),.reset_n(reset_n),
          .halt_n(halt_n),.busak_n(busak_n),.clk(clk),.di(o_ram),.A(addr),.dout(cpu_out));

endmodule

 asm z80
Code:
   org 0
   di
   ld a,1
   out (60),a
   halt
TV80 после выполнения команды halt продолжает генерировать сигналы обращения к памяти. Это нормально?


10 Sep 2018 09:52
Profile
Novelist
User avatar

Joined: 21 Aug 2018 08:39
Posts: 30
Location: Кемеровская обл.
Reply with quote
Опять уселся в лужу.
Для организации доступа в озу процессором и видео-контроллером нет ничего проще, чем использовать двухпортовое, но как-то не спортивно да и его маловато. Планирую слутить платку с внешней срам, но пока решил попробовать смоделировать на внутренней.
Писанину, рожденную в муках, квартус принимать отказывается. Помогите кто чем может :mrgreen:

Code:
reg sel;
wire [13:0] ram_a, cpu_a, vpu_a;
assign ram_a=(sel) ? cpu_a : vpu_a;


15 Oct 2018 02:42
Profile
Doomed

Joined: 06 Oct 2006 04:17
Posts: 533
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Я смотрю как-то не заметно эта тема про хреновый верилог от Хаоса перешла в описание достижений пользователя. Не пора ли отпочковать последние посты в отдельную тему?

_________________
:arrow: Сайт о ПК "Специалист" и его клонах


15 Oct 2018 05:28
Profile WWW
Novelist
User avatar

Joined: 21 Aug 2018 08:39
Posts: 30
Location: Кемеровская обл.
Reply with quote
Похоже Хаоса не переубедить насчет верилога. Можно и подчистить темку.
Раздела для новичков нема. Писать в курилку?
А дошло... всё молчу. :obye:


15 Oct 2018 06:45
Profile
Doomed

Joined: 30 Nov 2013 12:08
Posts: 648
Location: WWW
Reply with quote
Lavr wrote:
Но вон тот же newold86 на нашем же форуме сделал приличное количество асинхронных схемы в FPGA
и всё вполне работало!

Ага, и тут же на форуме описывал свои душевные страдания от того, что нужно было как раз 5-10 раз откомпилировать тот же Орион, немного меняя код, чтобы заработало... С опытом стало понятнее, где могут быть засады с асинхронщиной, но сейчас по максимуму стараюсь синхронные делать - им можно еще и нормальный временной анализ сразу делать, чтобы методом научного тыка не разбираться, почему не работает. Плюс SignalTap намного лучше с синхронными схемами работает - от асинхронщины такие глюки были, что так и не понял, как такое возможно...

Из самого крупного асинхронного - пока так и не получилось сделать тактово правильный CGA адаптер, временно (надеюсь) отложил в сторону. Попытка в лоб описать схему провалилась - слишком много там замешано на учете скорости работы частей схемы. После первого более-менее серьезного разбирательства со схемой даже как-то заработало, но все-равно расползается при попытках посмотреть SignalTap'ом (и, соответственно, при перекомпиляции).


15 Oct 2018 08:27
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 67 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next

Who is online

Users browsing this forum: No registered users and 6 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.