• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

同步串行信号设计VHDL代码ISE仿真

09/07 08:07
311
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-24092Q23953421.doc

共1个文件

名称:同步串行信号设计VHDL代码ISE仿真

软件:ISE

语言:VHDL

代码功能:

同步串口通讯采用三线制通讯式同串行信号行有选通门、时钟和数据三个信号组成。在门信号持续时间内通个时斜脉冲和响应的8N比特串行数据,高位在前,低位在后。用户可以用选门的后沿从移位寄存器中采集注入数据。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

设计文档:

1.?工程文件

2.?程序文件

3.?程序编译

4.?Testbench

5.?仿真图

部分代码展示:

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
???USE?ieee.std_logic_unsigned.all;
ENTITY?Synchronous_serial?IS
???GENERIC?(
??????N??????:?INTEGER?:=?8--参数化设计,N可以自由指定,为8的倍数
???);
???PORT?(
??????
??????clk????:?IN?STD_LOGIC;--时钟输入
??????reset??:?IN?STD_LOGIC;--复位
??????SCK????:?OUT?STD_LOGIC;--同步SCK
??????CS?????:?OUT?STD_LOGIC;--选通门
??????SDI????:?IN?STD_LOGIC;--串行数据信号
??????data???:?OUT?STD_LOGIC_VECTOR(N?-?1?DOWNTO?0)--接收到的Nbit数据
???);
END?Synchronous_serial;
ARCHITECTURE?behave?OF?Synchronous_serial?IS
???
???SIGNAL?cnt????????:?INTEGER?:=?0;--计数器
???SIGNAL?SCK_buf??:?STD_LOGIC;
???SIGNAL?CS_buf???:?STD_LOGIC;
???SIGNAL?data_buf?:?STD_LOGIC_VECTOR(N?-?1?DOWNTO?0);
BEGIN
???PROCESS?(clk,?reset)
???BEGIN
??????IF?(reset?=?'1')?THEN--复位
?????????cnt?<=?0;
??????ELSIF?(clk'EVENT?AND?clk?=?'1')?THEN
?????????IF?(cnt?>=?2?*?N)?THEN--计数0~2*N
????????????cnt?<=?0;
?????????ELSE
????????????cnt?<=?cnt?+?1;--计数
?????????END?IF;
??????END?IF;
???END?PROCESS;
???
???--控制CS信号
???PROCESS?(clk,?reset)
???BEGIN
??????IF?(reset?=?'1')?THEN--复位
?????????CS_buf?<=?'1';--默认高电平
??????ELSIF?(clk'EVENT?AND?clk?=?'1')?THEN
?????????IF?(cnt?>?N)?THEN--大于N
????????????CS_buf?<=?'0';--低电平
?????????ELSE
????????????CS_buf?<=?'1';--高电平
?????????END?IF;
??????END?IF;
???END?PROCESS;

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1155

  • 2-24092Q23953421.doc
    下载

相关推荐