相关疑难解决方法(0)

Verilog,FPGA,使用单位寄存器

我有一个问题,关于我正在研究的AGC/SPI控制器的奇怪行为.它是在Verilog中完成的,目标是Xilinx Spartan 3e FPGA.控制器是一个依赖外部输入启动的FSM.FSM的状态存储在未明确初始化的state_reg中,因为我认为未初始化的寄存器默认为零.当我实现控制器时,FSM将无法运行.监控SPI总线我没有观察到任何活动.为了监视FSM,我将state_reg路由到一个输出总线,该总线连接到LED组.这就是分配data_out = state_reg的行正在进行的操作.我发现当我这样做时,FSM和AGC/SPI控制器在SPI总线上观察到正确.似乎正在发生的事情是,state_reg在初始化时处于未确定状态,因此FSM永远不会处于任何状态,因此它不会运行.但是通过将state_reg分配给输出,它初始化为00000000,正如我预期的那样从头开始.所以我的问题是,一个未初始化的寄存器是否应该假设值为0?通过为输出分配一个未初始化的寄存器,是否会强制它假设为零?或者是其他事情发生在我不明白的地方?以下是我的代码.我已经评论了*state_reg**被分配给输出线[7:0] data_out的相关部分.我知道这是一个很长的问题,但我真的想了解我应该期待什么类型的行为.谢谢.

  module agc_control
        (
            input wire [7:0] agc_data,
            input wire clk,
            input wire agc_start,
            input wire AMP_DO,
            output reg MOSI,
            output reg SCK,
            output reg CS_AMP,
            output wire inhibit_ADC,
            output wire [7:0] data_out  
         );

        //signals
        reg [4:0] state_reg,
        reg [2:

0] ampclkreg;
    reg ampclk;
    reg [7:0] agc_data_reg;
    reg agc_running;
    reg [7:0] data_out_reg;
    wire agc_done;




    //ampclk generation
    always @(posedge clk)
        begin …
Run Code Online (Sandbox Code Playgroud)

verilog fpga cpu-registers fsm xilinx

3
推荐指数
1
解决办法
2099
查看次数

标签 统计

cpu-registers ×1

fpga ×1

fsm ×1

verilog ×1

xilinx ×1