OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6894|回复: 3

[ALTERA] does not match a standard flip-flop 错误求助

[复制链接]

15

主题

35

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
328
金钱
328
注册时间
2014-4-18
在线时间
68 小时
发表于 2020-5-26 18:59:57 | 显示全部楼层 |阅读模式
1金钱

问下大家为什么这个会报 Io_control[3:0] does not match a standard flip-flop 谢谢大家 网上搜了一圈还是找不到原因

module command_recv(
    input                          sys_clk,                  //??????
    input             sys_rst_n,                //???????????????
    input   [7:0] uart_data,                 //???????   
    input         uart_en,                  //?????????.uart_done(uart_en_w),
    output  reg[3:0] Io_control  
);


//*****************************************************
//**                    main code
//*****************************************************  
reg [4:0]    c_state;
reg [8:0]    data_check;
reg [8:0]    command_buf;
reg [3:0]    command_cnt;
reg  cmd_valid_en;
//reg define
reg        uart_en_d0;
reg        uart_en_d1;
reg [ 7:0] tx_data;  
//wire define
wire       en_flag;

//*****************************************************
//**                    main code
//*****************************************************
assign en_flag = (~uart_en_d1) & uart_en_d0;

//assign Io_out= Io_control;
initial begin
  c_state=1;
  command_cnt=0;
end

always @(posedge sys_clk or negedge sys_rst_n) begin         
    if (!sys_rst_n) begin
        uart_en_d0 <= 1'b0;                                 
        uart_en_d1 <= 1'b0;
    end                                                      
    else begin                                               
        uart_en_d0 <= uart_en;                              
        uart_en_d1 <= uart_en_d0;                           
    end
end


always  @(posedge sys_clk or negedge sys_rst_n) begin

    if (!sys_rst_n) begin
        c_state=1;
        command_cnt=0;
    end
         begin
               tx_data=uart_data;
               if(tx_data==8'hd7)begin
                Io_control <= 4'b1111;
               end
                c_state=1;
         end
  end  

always  @(posedge sys_clk or negedge sys_rst_n) begin
       if(cmd_valid_en==1) begin
       end
end

endmodule


最佳答案

查看完整内容[请看2#楼]

always @(posedge sys_clk or negedge sys_rst_n) begin if (!sys_rst_n) begin c_state=1; command_cnt=0; end else begin tx_data=uart_data; if(tx_data==8'hd7)begin Io_control
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

136

帖子

0

精华

高级会员

Rank: 4

积分
661
金钱
661
注册时间
2020-4-21
在线时间
85 小时
发表于 2020-5-26 18:59:58 | 显示全部楼层
always  @(posedge sys_clk or negedge sys_rst_n) begin

    if (!sys_rst_n) begin
        c_state=1;
        command_cnt=0;
    end
    else    begin
               tx_data=uart_data;
               if(tx_data==8'hd7)begin
                Io_control <= 4'b1111;
               end
                c_state=1;
         end
  end  
应该这么写,你那么写是语法有错
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2020-5-27 01:12:42 | 显示全部楼层
帮顶
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2020-5-27 01:12:42 | 显示全部楼层
帮顶
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-27 08:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表