本帖最后由 卿小小 于 2022-12-14 17:54 编辑
//------说明
如果不是导师作业,这种代码的含金量不太高。想学习Verilog或者FPGA的话建议从开发板的教程入手。
为了提高交流效率,代码之类的内容建议使用源文件或者插入文字的形式处理,尽量不要贴代码图片。
//------流程
此处仅以第一张图的“Vr1to8check"进行流程和功能说明。其他几个文件的处理是相似的流程。
//---基本步骤:
1.创建工程,器件型号任意选择(此处我选择的xc7k325tffg900-2)。
2.新建源文件或者导入源文件,源文件内是需要测试验证的代码。
3.运行综合Synthesis,等待运行结束查看综合后资源占用结果。
4.同时,在RTL_ANALYSIS/Open_Elaborated_Design中可以对RTL进行更加详细的网表分析。
//---步骤示例:
//---源文件
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 2022/12/14 17:00:57
// Design Name:
// Module Name: Vr1to8check
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module Vr1to8check(
input [0:7] I ,//input
output reg VALID //output
);
//------internal_signals: reg, wire, integer.
integer N1s ;
integer j ;
//------always
always@(I) begin
N1s = 0 ;
for(j = 0 ; j <= 7 ; j = j + 1) N1s = N1s + I[j] ;//for()
VALID = (N1s == 1);
end
//a. when "I" is changed, first N1s is changed to "0";
//b. then N1s will execute “for”,which means: N1s+I[0]+I[1]+I[2]+I[3]+I[4]+I[5]+I[6]+I[7];
//c. at the end, VALID=1 @N1s=1, VALID=0 @N1s=0.
//------
endmodule
|