集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2326|回复: 10

求大神解释一下

[复制链接]
167690693 发表于 2014-4-18 14:32:10 | 显示全部楼层 |阅读模式
这样做事为了什么啊,有什么作用

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
zhiweiqiang33 发表于 2014-4-18 14:44:00 | 显示全部楼层
这是一个典型的移位寄存器代码,主要用在串并转换电路中;比如,通信RS232,I2C实验中,串并转换电路在FPGA设计中很典型;这也是FPGA设计的一种思想;
 楼主| 167690693 发表于 2014-4-18 15:41:17 | 显示全部楼层
那他实现的是怎么样的移位,功能是什么
zhiweiqiang33 发表于 2014-4-18 15:50:53 | 显示全部楼层
功能就是实现电路的串并转换;从你的代码中来分析;把外部输入进来的一位数据输送到移位寄存器的最低位;当第二个有效时钟沿到来的时候,移位寄存器的最低位在把数据赋值给移位寄存器的次高位;一次类推;移位寄存器的原理这块,建议你把数字电路中的移位寄存器电路逻辑,原理好好看看;
zhiweiqiang33 发表于 2014-4-18 15:55:29 | 显示全部楼层
通过你的提问;可见你的数字电路基础不是很好,学习FPGA最基本的基础是掌握数字电路;
 楼主| 167690693 发表于 2014-4-18 15:58:48 | 显示全部楼层
谢谢,可是第一位数据是7位的,我不明白
 楼主| 167690693 发表于 2014-4-18 16:00:44 | 显示全部楼层
当然这次截图这个是1为的写使能,可是还有好多他们都是多位的数据,求指教
 楼主| 167690693 发表于 2014-4-18 16:01:41 | 显示全部楼层
嗯,你这么一说我好像明白了,
 楼主| 167690693 发表于 2014-4-18 16:01:52 | 显示全部楼层
3Q,灰常感谢
zhiweiqiang33 发表于 2014-4-18 16:21:37 | 显示全部楼层
module register(clk,rstn,din,dou);
input clk;
input rstn;
input [7:0] din;
output dout;

reg [7:0] shiftreg;
always @(posedge clk or negedge rstn)
begin
        if(!rstn)
        shiftreg <= 8'd0;
        else                                                  
        shiftreg[0] <= din;        
        shiftreg[1] <= shiftreg[0];
        shiftreg[2] <= shiftreg[1];
        shiftreg[3] <= shiftreg[2];
        shiftreg[4] <= shiftreg[3];
        shiftreg[5] <= shiftreg[4];
        shiftreg[6] <= shiftreg[5];
        shiftreg[7] <= shiftreg[6];
end

wire dout;
assign dout = shiftreg[7];      


endmodule
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-6-21 21:12 , Processed in 0.097314 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表