|
新手:用CPLD 模拟一个74HC595接收信号,然后将接收的信号在输出 ,,,现在得到的输出一直为0,,,不知道什么原因,,代码如下:
//////////////////////////////////////////////////////////////////////////////////
module hc595(
CLK,
LD_IN,
SDI,
SDO
);
input CLK,LD_IN,SDI;
output SDO;
reg SDO;
reg[15:0]data,data_out,y;
always@(posedge LD_IN)//在锁存信号上升沿进行同步
begin
SDO <= data[15];//根据数据确定第一个时钟的时候输出地数据为1或者0
data <=16'b0; //将接收数据清零
end
always@(posedge CLK)//上升沿触发 接收数据
begin
if(SDI)
data[0]<=1'b1; //根据输入的数据移位处理
else data[0]<=1'b0;
data <=(data << 1); //data为接收的数据
//移位发送
data_out <=(data_out << 1); //左移
if(data_out[15])
SDO <=1; //根据数据确定下个时钟输出1或者0
else
SDO <= 0;
end
endmodule
用MODELSIM 仿真的波形如下:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|