名称:串行并行数据转换模块设计Verilog代码VIVADO仿真
软件:VIVADO
语言:Verilog
代码功能:
1、串行数据转换为并行数据
2、并行数据转换为串行数据
3、并行数据为8位
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. Testbench
4. 仿真图
串转并仿真图
并转串仿真图
整体仿真图
部分代码展示:
`timescale?1ns?/?1ps ////////////////////////////////////////////////////////////////////////////////// //?Company:? //?Engineer:? //? //?Create?Date:?2021/08/08?16:36:01 //?Design?Name:? //?Module?Name:?detect //?Project?Name:? //?Target?Devices:? //?Tool?Versions:? //?Description:? //? //?Dependencies:? //? //?Revision: //?Revision?0.01?-?File?Created //?Additional?Comments: //? ////////////////////////////////////////////////////////////////////////////////// module?detect( input?clk, input?x, output?reg?z, output??reg?[7:0]?Z ????); ????parameter??S0?=8'b0000000_01;???????? ????parameter??S1?=8'b0000000_10; ????parameter??S2?=8'b0000001_00; ????parameter??S3?=8'b0000010_00; ????parameter??S4?=8'b0000100_00; ????parameter??S5?=8'b0001000_00; ????parameter??S6?=8'b0010000_00; ????parameter??S7?=8'b0100000_00; ????parameter??S8?=8'b1000000_00; ????reg?[7:0]?CS; ????reg?[7:0]?NS?=?S0; ???? ????????always?@(posedge?clk)?begin ????????CS?<=?NS; ???? ????end ???????? ????????always?@(*)?begin ????????????case(CS) ????????????S0:?NS=(x==1)??S1:S0; ????????????S1:?NS=(x==1)??S2:S0; ????????????S2:?NS=(x==0)??S3:S2; ????????????S3:?NS=(x==1)??S4:S0; ????????????S4:?NS=(x==0)??S5:S2; ????????????S5:?NS=(x==1)??S6:S0; ????????????S6:?NS=(x==1)??S7:S0; ????????????S7:?NS=(x==0)??S8:S2; ????????????S8:?NS=(x==1)??S4:S0; ????????????default:???NS?=?S0; ????????????endcase ???????? ???????? ????????end ???????? ????????//根据现态或次态?输出 ????????always?@(posedge?clk)?begin ????????????if(NS==S8) ????????????????z<=1'b1; ????????????else ????????????????z<=1'b0; ????????end
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1114
阅读全文