Port_ID изменяется случайным образом, а outport иногда дает входные данные.

Я пытаюсь сделать сумматор с picoblaze, но я столкнулся с некоторыми проблемами.

Вот мой код для рисования:

LOAD s1,00
LOAD s0,00

start:
INPUT s0,00
ADD s1,s0
OUTPUT s1,01
JUMP start

Затем я поместил этот код в verilog с помощью kcpsm3 и написал верхний модуль и некоторый код:

    module top_module(
   input clock,
   input reset
   );



 integer i;
 wire [7:0] out_port;
 wire [9:0] address;
 wire [17:0] instruction;
 wire [7:0] port_id;
 wire write_strobe;
 wire read_strobe;
 reg [7:0] in_port;     
 wire interrupt;
 wire interrupt_ack;



 reg [7:0] counter ; 


 pico2 picoblaze2_asm (
.address(address), 
.instruction(instruction), 
.proc_reset(proc_reset), 
.clk(clock)
);

 kcpsm3 picoblaze2 (
.address(address), 
.instruction(instruction), 
.port_id(port_id), 
.write_strobe(write_strobe), 
.out_port(out_port), 
.read_strobe(read_strobe), 
.in_port(in_port), 
.interrupt(interrupt), 
.interrupt_ack(interrupt_ack), 
.reset(reset), 
.clk(clock)
);


 initial begin
 counter = 0;
 i = 0;
 end

 always @ (posedge clock)
 begin


 counter = counter+1;

 if(counter == 8)
 begin

 i = i+1;

  in_port = i;

 counter = 0;

 if(i == 10)
 begin
 i = 0;
 end


 end

 end




endmodule

Вот наш тестовый стенд:

port_id занимает 0,1,2, а некоторые входные данные, такие как 3,4,5, но мы хотим взять 0 и 1 из-за кода сборки picoblaze. Во-вторых,out_port принимает добавленную стоимость (inport = 1,2 outport = 1+2 =3) и некоторые входные данные 3,4,5, которые мы хотим получить только добавленную стоимость без входной стоимости.

Подобно:

*inport 1   2    3   4   5   6
*outport 1  3    6   10  15  21
*port id 0 1 0 1 0 1 0 1 0 1.....  

0 ответов

Другие вопросы по тегам