|
大家好,我在整一个工程时遇到个问题,就是我定义了一个输出寄存器,直接连到输出端,我在测试时,发现输出端我写1后,很短时间内又自个变为零了,而且感觉是代码没变的情况下,偶尔综合的又没有这种现象,不知是什么原因,请求大家帮忙看下,部分代码如下:
input GPIO_IN_0,GPIO_IN_1,GPIO_IN_2;
output [7:0] GPIO_OUT_0;
output [7:0] GPIO_OUT_1;
output [7:0] GPIO_OUT_2;
reg [7:0] GPIO_OUT_0;
reg [7:0] GPIO_OUT_1;
reg [7:0] GPIO_OUT_2;
always @ (posedge clk or negedge rst_n)
begin
if (!rst_n)
begin
send_data <= 8'hFF;
GPIO_OUT_0 <= 8'b0;
GPIO_OUT_1 <= 8'b0;
GPIO_OUT_2 <= 8'b0;
end
else if (GPIO_re_cmd) send_data <= {5'b0,GPIO_IN_2,GPIO_IN_1,GPIO_IN_0};
else if (GPIO_wr_cmd)
begin
case (GPIO_reg_sel)
3'b0:GPIO_OUT_0 <= 8'b11111111;
3'b1:GPIO_OUT_1 <= GPIO_OUT_tem;
3'd2:GPIO_OUT_2 <= GPIO_OUT_tem;
default:;
endcase
end
end
开发环境是京微雅格的Primace,用的是M5芯片。代码中就算我直接写GPIO_OUT_0等于8‘b11111111,输出的管脚值也只是在一瞬间是1,然后很快就又回到零了。小弟对fpga不熟,谢谢大家了。
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|