如何让系统在时钟的控制下自己产生复位信号?
下面是一个HDB3编码的一部分代码
module HDB3_code(
input clk,
input dat_in,
output reg dat_rx_en,
output P_out,
output N_out
);
....................
reg init_code;
reg init_stop;
................................................
...............................................
always @(posedge clk)
begin
if(init_code==1'b1)//init_code就是要产生的用来初始化系统的信号,
//系统正常工作时,init_code为高电平
;
else
begin
if(dat_in_reg1[2]&&init_stop)
init_code<=1'b1;
else if(dat_in==1'b1)
init_code<=1'b0;
else
;
end
end
//输入信号延迟4个clk时钟周期
always @(posedge clk)
begin
dat_in_reg1[0]<=dat_in;
dat_in_reg1[1]<=dat_in_reg1[0];
dat_in_reg1[2]<=dat_in_reg1[1];
dat_in_reg<=dat_in_reg1[2];
end
always @(posedge clk)
begin
if(init_code==1'b0)//对系统做初始化
begin
dat_rx_en<=1'b0;//输出低电平时不能工作
init_stop<=1'b1;//dat_in延迟4个clk后的截至标志
end
else if(init_code==1'b1)
..........................
.........................
...............................
end
在Modelsim里仿真都正确,可是把在Synplify里综合后产生的xxx.vqm文件放到Modelsim里再次仿真时就有点不对了,init_code输出一直是高电平,可奇怪的是HDB3编码输出确实完全正确的。
求各位大虾帮忙分析一下,综合后init_code寄存器到底出了什么问题啊?万分感谢!
一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!