软件:Quartus
语言:VHDL
代码功能:
本项目将涉及VHDL中并行到串行和串行到并行转换器的开发和仿真。
数字系统通常采用并行字节的数据,并通过一根传输,以节省线面积,减少串扰影响,提高时钟速度,或保持设备之间的兼容性。
本练习将介绍组件实例化和在单个项目中使用多个VHDL模块文件。
在VHDL中设计复杂的系统时,通过几个VHDL模块传播系统的功能块是很好和常见的做法,从而增加代码的简易性和功能性。
代码结构框图如下:
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1.工程文件
2.程序文件
3.程序编译
4.RTL图
5.程序仿真
Testbench
Combination仿真
Count仿真
串转并模块仿真
串转并模块testbench
并转串模块仿真
并转串模块testbench
部分代码展示:
LIBRARY?ieee; ???USE?ieee.std_logic_1164.all; ENTITY?combination?IS ???PORT?( ??????clk??????:?IN?STD_LOGIC;--输入clk ??????par_in???:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0);--输入并行数据 ??????par_out??:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--输出并行数据 ???); END?combination; ARCHITECTURE?behave?OF?combination?IS --串转并模块 COMPONENT?SerialToparallel?IS ???PORT?( ??????clk??????:?IN?STD_LOGIC;--输入clk ??????ser_in???:?IN?STD_LOGIC;--串行输入 ??????par_out??:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--并行输出 ???); END?COMPONENT; --并转串模块 COMPONENT?parallelToSerial?IS ???PORT?( ??????clk?????:?IN?STD_LOGIC;--时钟 ??????par_in??:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0);--输入并行数据 ??????ser_out?:?OUT?STD_LOGIC--输出串行数据 ???); END?COMPONENT; ?? SIGNAL?serial_data?:?STD_LOGIC:='0';--串行数据 BEGIN ??? --调用并转串模块??? ???parallelToSerial_i?:?parallelToSerial ??????PORT?MAP?( ?????????clk?????=>?clk, ?????????par_in??=>?par_in, ?????????ser_out??=>?serial_data ??????); ??? --调用串转并模块??? ???SerialToparallel_i?:?SerialToparallel ??????PORT?MAP?( ?????????clk??????=>?clk, ?????????par_out??=>?par_out, ?????????ser_in???=>?serial_data ??????); END?behave;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=633
阅读全文