verilog出错了,求指导

2019-07-16 02:18发布

  做了一个计数器结果数码管显示的实验,结果数码管全部显示一样的数字。
  仿真结果也不对,有1000个warning,都是Warning: Found clock high time violation at 2.8 ns on register "|dynamic_sweep_top|bcd_4bit:u1|cnt10:u1|dout[1]",查了半天也没查出来哪儿有问题。
  我会陆续把程序发上来的
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
koma
2019-07-16 05:37
  1. module dynamic_sweep(clk,data_in,count,seg);
  2. input clk;
  3. input [15:0] data_in;//显示数据输入
  4. output [7:0]seg;
  5. output [1:0]count;
  6. reg [7:0]seg;
  7. reg [1:0]count;
  8. reg [3:0]seg_mid;
  9. always @(posedge clk)
  10.   begin
  11.     count<=count+2'b01;
  12.   end
  13. always @(count,data_in) //位线及显示内容选择
  14.   begin
  15.    case(count[1:0])
  16.      2'b00:seg_mid<=data_in[3:0];
  17.      2'b01:seg_mid<=data_in[7:4];
  18.      2'b10:seg_mid<=data_in[11:8];
  19.      2'b11:seg_mid<=data_in[15:12];
  20.    
  21.      default:seg_mid<=7;
  22.    endcase
  23.   end
  24. always @(seg_mid) //字符译码
  25. begin
  26.   case(seg_mid)
  27.    4'b0000:seg<=8'b00111111;
  28.    4'b0001:seg<=8'b00000110;
  29.    4'b0010:seg<=8'b01011011;
  30.    4'b0011:seg<=8'b01001111;
  31.    4'b0100:seg<=8'b01100110;
  32.    4'b0101:seg<=8'b01101101;
  33.    4'b0110:seg<=8'b01111100;
  34.    4'b0111:seg<=8'b00000111;
  35.    4'b1000:seg<=8'b01111111;
  36.    4'b1001:seg<=8'b01100111;
  37.    default:seg<=8'b00111111;
  38.   endcase
  39. end
  40. endmodule
复制代码这是动态扫描模块,应该也是没问题i的

一周热门 更多>