并行数据转换为串行数据的转换器

本文介绍了如何使用Verilog设计一个并行数据到串行数据的转换器,包括寄存器存储并行地址和数据、连接串行单总线、地址和数据的串行输出等功能。设计采用嵌套状态机实现,主状态机包含idle, addr_write, data_write, stop四个状态,并使用task shift8out进行并行到串行的转换。在Modelsim中进行了仿真验证。" 134463630,7406880,真空热重分析仪精密控制技术改造,"['热重分析', '真空技术', '压力控制', '气体气氛', '精密仪器']
摘要由CSDN通过智能技术生成

这篇文章写一下今天早上设计的并行数据到串行数据的转换器,也算是对并行总线和串行总线一个小小的应用,编码过程中也用到了task。

该转换器主要实现的功能是:

1、把并行地址存入寄存器

2、把并行数据存入寄存器

3、连接串行单总线

4、地址的串行输出

5、数据的串行输出

6、挂起串行单总线

7、给信号源应答

8、让信号源给出下一个操作对象

9、结束写操作

该设计利用嵌套的状态机实现,主状态机分为四个状态:idle,addr_write,data_write,stop,主状态机中会涉及到任务shift8out的调用,该任务主要实现并行数据到串行数据的转换,也是由一个状态机实现。下面给出整个设计的代码:

设计代码:

///并串转换器//
module ps_convertor(clk,rst,data,addr,sda,ack);
parameter idle=4'b0001,addr_write=4'b0010,data_write=4'b0100,stop=4'b1000;//独热编码
parameter sh8_start=9'b00000_0001;
parameter bit6     =9'b00000_0010;
parameter bit5     =9'b00000_0100;
parameter bit4     =9'b00000_1000;
parameter bit3     =9'b00001_0000;
parameter bit2     =9'b00010_0000;
parameter bit1     =9'b00100
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值