V
VitalyM4
Guest
嗨!
我创建分频器(255/divisor),它工作的所有案件时
, 除一个良好除数等于1,那么结果是0,而不是255。
代码:模块组(
SCAN_EN_SCLK,/ *扫描启用* /
SCAN_IN_SCLK,/ *扫描输入* /
SCAN_OUT_SCLK,/ *扫描输出* /
rb_por_cr,/ *异步复位* /
的SCLK,/ *分频时钟* /
除数,/ *除数* /
我们,/ *写使能-启动分割* /
结果/ *分工的结果* /
);
/ *港口方向和类型* /
输出[6:0]的结果;
第[6:0]的结果;输入[7:0]除数;
线材[7:0]除数;
SCLK的投入;
丝的SCLK;
我们的投入;
丝我们;
输入rb_por_cr;
输入SCAN_EN_SCLK;
输入SCAN_IN_SCLK;
输出SCAN_OUT_SCLK;/ *内部信号宣言* /
第[8:0] cur_divident;
第[6:0] cur_divisor;
第[2:0] bit_count;
整数i;
第[2:0]最大;/ *功能说明* // *创建逻辑结果的MSB 1 * /
总是@(除数)
开始
最大= 0;
为(1 = 7,我“0; =的i - 1)
如果(除数[一] == 1'b1及I“=最大)
最大=一;
末端线材[7:0] tmp_div =除数“”(8最大值);
/ *部门* /
总是@(negedge rb_por_cr或posedge的SCLK)
如果(!rb_por_cr)
开始
cur_divident“= 8'd0;
cur_divisor“= 8'd0;
bit_count“= 3'd0;
结果“= 7'd0;
末端
否则,如果(我们)
开始
cur_divident“= 9'd255,tmp_div;
cur_divisor“= tmp_div”“1;
bit_count“= 8的最大值;
结果“= 7'd0;
末端
否则,如果(bit_count“3'b000)
开始
如果(cur_divident [8] == 1'b0)
开始
cur_divident“= cur_divident,cur_divisor;
结果[bit_count - 1'b1]“= 1'b1;
末端
其他的
开始
结果[bit_count - 1'b1]“= 1'b0;
cur_divident“= cur_divident cur_divisor;
末端bit_count“= bit_count - 1;
cur_divisor“= cur_divisor”“1;
末端
endmodule
我创建分频器(255/divisor),它工作的所有案件时
, 除一个良好除数等于1,那么结果是0,而不是255。
代码:模块组(
SCAN_EN_SCLK,/ *扫描启用* /
SCAN_IN_SCLK,/ *扫描输入* /
SCAN_OUT_SCLK,/ *扫描输出* /
rb_por_cr,/ *异步复位* /
的SCLK,/ *分频时钟* /
除数,/ *除数* /
我们,/ *写使能-启动分割* /
结果/ *分工的结果* /
);
/ *港口方向和类型* /
输出[6:0]的结果;
第[6:0]的结果;输入[7:0]除数;
线材[7:0]除数;
SCLK的投入;
丝的SCLK;
我们的投入;
丝我们;
输入rb_por_cr;
输入SCAN_EN_SCLK;
输入SCAN_IN_SCLK;
输出SCAN_OUT_SCLK;/ *内部信号宣言* /
第[8:0] cur_divident;
第[6:0] cur_divisor;
第[2:0] bit_count;
整数i;
第[2:0]最大;/ *功能说明* // *创建逻辑结果的MSB 1 * /
总是@(除数)
开始
最大= 0;
为(1 = 7,我“0; =的i - 1)
如果(除数[一] == 1'b1及I“=最大)
最大=一;
末端线材[7:0] tmp_div =除数“”(8最大值);
/ *部门* /
总是@(negedge rb_por_cr或posedge的SCLK)
如果(!rb_por_cr)
开始
cur_divident“= 8'd0;
cur_divisor“= 8'd0;
bit_count“= 3'd0;
结果“= 7'd0;
末端
否则,如果(我们)
开始
cur_divident“= 9'd255,tmp_div;
cur_divisor“= tmp_div”“1;
bit_count“= 8的最大值;
结果“= 7'd0;
末端
否则,如果(bit_count“3'b000)
开始
如果(cur_divident [8] == 1'b0)
开始
cur_divident“= cur_divident,cur_divisor;
结果[bit_count - 1'b1]“= 1'b1;
末端
其他的
开始
结果[bit_count - 1'b1]“= 1'b0;
cur_divident“= cur_divident cur_divisor;
末端bit_count“= bit_count - 1;
cur_divisor“= cur_divisor”“1;
末端
endmodule