如何让
系统在
时钟的控制下自己产生复位
信号?下面是一个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寄存器到底出了什么问题啊?万分感谢!
此帖出自
小平头技术问答
一周热门 更多>