module cshiftreg2(data,clk,clrn,stld,high,ser,dataout);
input[7:0] data; //并行输入的数据。
inputclk,clrn,high,stld,ser; //stld决定何时置数。
outputdataout;//DATAOUT是串行输出
regdataout;
reg[7:0] DATA_Q;
always @(posedge clk )
begin
if(clrn) DATA_Q=0;
else
if(high) DATA_Q = data;//高电平数据存入DATA_Q
else
if(!stld)
begin
dataout = DATA_Q[7];//输出
DATA_Q = DATA_Q<<1;//移位
end
else
dataout=ser;//前级的并串变换后的串行输出
end
endmodule
问题是:并行数据输入总要占用一个时钟周期(high),因此本级的数据输出8个时钟周期加上前级的串行输出8个时钟周期,总共要17个周期!
怎么修改程序呢,使得并行数据输入那个clock不用。
头痛~
谢谢,各位大虾!
[em27][em27][em27][em27] |