nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 12:24



Reply to topic  [ 67 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next
Язык Verilog 
Author Message
Writer

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

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

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

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

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


28 Aug 2018 02:40
Profile
Senior
User avatar

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


05 Sep 2018 22:55
Profile
Writer

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


09 Sep 2018 12:30
Profile
Senior
User avatar

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


09 Sep 2018 17:58
Profile
Admin
User avatar

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

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

_________________
:dj: https://mastodon.social/@Shaos


09 Sep 2018 18:56
Profile WWW
Senior
User avatar

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


09 Sep 2018 19:14
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
А нужен полноценный z80? Понятно

_________________
:dj: https://mastodon.social/@Shaos


09 Sep 2018 20:02
Profile WWW
Senior
User avatar

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


09 Sep 2018 21:18
Profile
Senior
User avatar

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

Joined: 21 Aug 2018 07:39
Posts: 164
Location: Кемеровская обл.
Reply with quote
Вырвиглотк оказался не так страшен :mrgreen:
 TV80 дышит
Attachment:
tv80alive.png
tv80alive.png [ 25.11 KiB | Viewed 8791 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 08:52
Profile
Senior
User avatar

Joined: 21 Aug 2018 07:39
Posts: 164
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 01:42
Profile
Devil

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


15 Oct 2018 04:28
Profile
Senior
User avatar

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


15 Oct 2018 05:45
Profile
Devil

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

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

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


15 Oct 2018 07:27
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
newold86 wrote:
Lavr wrote:
Но вон тот же newold86 на нашем же форуме сделал приличное количество асинхронных схемы в FPGA
и всё вполне работало!
Ага, и тут же на форуме описывал свои душевные страдания от того, что нужно было как раз 5-10 раз откомпилировать тот же Орион, немного меняя код, чтобы заработало... С опытом стало понятнее, где могут быть засады с асинхронщиной, ...

Но зато у Вас теперь есть ОПЫТ!!! А это очень важно - пока не наступишь на собственные грабли,
никакого опыта не наживешь.

Я сейчас вот хочу-таки запихать свой 4-bit Processor в ПЛИС - запихиваю по частям, нарисую блок -
проверю. Надеюсь, из проверенных блоков соберется в итоге сразу.

_________________
iLavr


15 Oct 2018 08:31
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 17 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.