Skip to content

Commit a399567

Browse files
committed
flags for write_flag() are flushed when write() is called.
1 parent f21d3dc commit a399567

File tree

7 files changed

+397
-326
lines changed

7 files changed

+397
-326
lines changed

examples/thread_ipcore/test_thread_ipcore.py

Lines changed: 41 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88
99
reg CLK;
1010
reg RST;
11-
reg [16-1:0] sw;
12-
wire [16-1:0] led;
11+
wire [8-1:0] led;
1312
reg [32-1:0] saxi_awaddr;
1413
reg saxi_awvalid;
1514
wire saxi_awready;
@@ -126,7 +125,6 @@
126125
(
127126
.CLK(CLK),
128127
.RST(RST),
129-
.sw(sw),
130128
.led(led),
131129
.saxi_awaddr(saxi_awaddr),
132130
.saxi_awvalid(saxi_awvalid),
@@ -528,8 +526,7 @@
528526
(
529527
input CLK,
530528
input RST,
531-
input [16-1:0] sw,
532-
output reg [16-1:0] led,
529+
output reg [8-1:0] led,
533530
input [32-1:0] saxi_awaddr,
534531
input saxi_awvalid,
535532
output saxi_awready,
@@ -679,22 +676,38 @@
679676
if((_saxi_register_0 == 1) && (th_blink == 2) && (0 == 3)) begin
680677
_saxi_register_3 <= 0;
681678
end
682-
if((th_blink == 10) && (3 == 0)) begin
679+
if((th_blink == 3) && (3 == 0)) begin
680+
_saxi_register_0 <= 0;
681+
_saxi_flag_0 <= 0;
682+
end
683+
if((th_blink == 3) && (3 == 1)) begin
684+
_saxi_register_1 <= 0;
685+
_saxi_flag_1 <= 0;
686+
end
687+
if((th_blink == 3) && (3 == 2)) begin
688+
_saxi_register_2 <= 0;
689+
_saxi_flag_2 <= 0;
690+
end
691+
if((th_blink == 3) && (3 == 3)) begin
692+
_saxi_register_3 <= 0;
693+
_saxi_flag_3 <= 0;
694+
end
695+
if((th_blink == 11) && (3 == 0)) begin
683696
_saxi_register_0 <= 1;
684697
_saxi_flag_0 <= 1;
685698
_saxi_resetval_0 <= 0;
686699
end
687-
if((th_blink == 10) && (3 == 1)) begin
700+
if((th_blink == 11) && (3 == 1)) begin
688701
_saxi_register_1 <= 1;
689702
_saxi_flag_1 <= 1;
690703
_saxi_resetval_1 <= 0;
691704
end
692-
if((th_blink == 10) && (3 == 2)) begin
705+
if((th_blink == 11) && (3 == 2)) begin
693706
_saxi_register_2 <= 1;
694707
_saxi_flag_2 <= 1;
695708
_saxi_resetval_2 <= 0;
696709
end
697-
if((th_blink == 10) && (3 == 3)) begin
710+
if((th_blink == 11) && (3 == 3)) begin
698711
_saxi_register_3 <= 1;
699712
_saxi_flag_3 <= 1;
700713
_saxi_resetval_3 <= 0;
@@ -745,6 +758,7 @@
745758
localparam th_blink_10 = 10;
746759
localparam th_blink_11 = 11;
747760
localparam th_blink_12 = 12;
761+
localparam th_blink_13 = 13;
748762
749763
always @(posedge CLK) begin
750764
if(RST) begin
@@ -764,7 +778,7 @@
764778
if(1) begin
765779
th_blink <= th_blink_2;
766780
end else begin
767-
th_blink <= th_blink_12;
781+
th_blink <= th_blink_13;
768782
end
769783
end
770784
th_blink_2: begin
@@ -773,47 +787,50 @@
773787
end
774788
end
775789
th_blink_3: begin
776-
_th_blink_sleep_1 <= _saxi_register_1;
777790
th_blink <= th_blink_4;
778791
end
779792
th_blink_4: begin
780-
_th_blink_size_0 <= _saxi_register_2;
793+
_th_blink_sleep_1 <= _saxi_register_1;
781794
th_blink <= th_blink_5;
782795
end
783796
th_blink_5: begin
784-
_th_blink_i_2 <= 0;
797+
_th_blink_size_0 <= _saxi_register_2;
785798
th_blink <= th_blink_6;
786799
end
787800
th_blink_6: begin
801+
_th_blink_i_2 <= 0;
802+
th_blink <= th_blink_7;
803+
end
804+
th_blink_7: begin
788805
if(_th_blink_i_2 < _th_blink_size_0) begin
789-
th_blink <= th_blink_7;
806+
th_blink <= th_blink_8;
790807
end else begin
791-
th_blink <= th_blink_10;
808+
th_blink <= th_blink_11;
792809
end
793810
end
794-
th_blink_7: begin
811+
th_blink_8: begin
795812
if(_tmp_9 < _th_blink_sleep_1) begin
796813
_tmp_9 <= _tmp_9 + 1;
797814
end
798815
if(_tmp_9 >= _th_blink_sleep_1) begin
799816
_tmp_9 <= 0;
800817
end
801818
if(_tmp_9 >= _th_blink_sleep_1) begin
802-
th_blink <= th_blink_8;
819+
th_blink <= th_blink_9;
803820
end
804821
end
805-
th_blink_8: begin
806-
led <= led + 1;
807-
th_blink <= th_blink_9;
808-
end
809822
th_blink_9: begin
810-
_th_blink_i_2 <= _th_blink_i_2 + 1;
811-
th_blink <= th_blink_6;
823+
led <= led + 1;
824+
th_blink <= th_blink_10;
812825
end
813826
th_blink_10: begin
814-
th_blink <= th_blink_11;
827+
_th_blink_i_2 <= _th_blink_i_2 + 1;
828+
th_blink <= th_blink_7;
815829
end
816830
th_blink_11: begin
831+
th_blink <= th_blink_12;
832+
end
833+
th_blink_12: begin
817834
th_blink <= th_blink_1;
818835
end
819836
endcase

examples/thread_ipcore/thread_ipcore.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ def mkLed():
1717
m = Module('blinkled')
1818
clk = m.Input('CLK')
1919
rst = m.Input('RST')
20-
sw = m.Input('sw', 16)
21-
led = m.OutputReg('led', 16, initval=0)
20+
led = m.OutputReg('led', 8, initval=0)
2221

2322
datawidth = 32
2423
addrwidth = 10
@@ -39,6 +38,8 @@ def blink(size):
3938
while True:
4039
# wait start
4140
saxi.wait_flag(0, value=1, resetvalue=0)
41+
# reset done
42+
saxi.write(3, 0)
4243

4344
sleep = saxi.read(1)
4445
size = saxi.read(2)

0 commit comments

Comments
 (0)