nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 23 Sep 2018 12:23



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

Joined: 21 Aug 2018 08:39
Posts: 21
Location: Кемеровская обл.
Reply with quote
Сдвиг экрана на символ через пятую точку победил. Остался маленький баг со сдвигом столбца на пиксель вниз.
 фото
Attachment:
ep4ce10_vga1.jpg
ep4ce10_vga1.jpg [ 67.6 KiB | Viewed 359 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
Writer
User avatar

Joined: 21 Aug 2018 08:39
Posts: 21
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
Writer
User avatar

Joined: 21 Aug 2018 08:39
Posts: 21
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: 16953
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
Writer
User avatar

Joined: 21 Aug 2018 08:39
Posts: 21
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: 16953
Location: Colorado
Reply with quote
А нужен полноценный z80? Понятно

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


09 Sep 2018 21:02
Profile WWW
Writer
User avatar

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


09 Sep 2018 22:18
Profile
Writer
User avatar

Joined: 21 Aug 2018 08:39
Posts: 21
Location: Кемеровская обл.
Reply with quote
TV80 так и не дышит
 картинко
Attachment:
nopulse.PNG
nopulse.PNG [ 40.73 KiB | Viewed 226 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
Writer
User avatar

Joined: 21 Aug 2018 08:39
Posts: 21
Location: Кемеровская обл.
Reply with quote
Вырвиглотк оказался не так страшен :mrgreen:
 TV80 дышит
Attachment:
tv80alive.png
tv80alive.png [ 25.11 KiB | Viewed 209 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
Display posts from previous:  Sort by  
Reply to topic   [ 56 posts ]  Go to page Previous  1, 2, 3, 4

Who is online

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