怎样快速看懂一个较大的verilog模块代码

怎样快速看懂一个较大的verilog模块代码,第1张

读懂一个Verilog工程代码主要通过以下方面:1、区分好结构,一个工程是由基本的顶层、模块、约束等部分组成的,通常模块都是在顶层中逐一实例化,所以,了解一个工程的结构就是从顶层逐一向下延伸,相当于植物的根系,最底层的模块往往是被“引用”最多的,也是最基础的构成。2、通过代码注释来辅助阅读,一段好的代码必须有70%~80%的注释,方便进行工作交接,以及多人讨论。重点通过代码结合注释,看懂工程师的意图,查找设计不严谨的地方。3、verilog代码实际上就是在画电路图,是一种硬件描述语言,在读代码的同时,头脑中要有电路的概念,知道电路的大概结构是什么样的,每个模块的扇入扇出等。当然,最基本的还是对语法和原理要有较好的基础,否则,很难看懂一些大规模的电路描述。

问题在这里:

output [3:0]sum; //statistics number

reg sum;

sum被定义为位宽为1的寄存器型,而又被定义位宽为4的输出,不是冲突了嘛!

改为

output [3:0]sum; //statistics number

reg [3:0] sum;

起码编译能通过了。

但是能否综合还难说。一看你的编写风格,就是个新手。这种写法不符合业界规范,综合后很费资源的。

module fenpin1khz(clk,clk1khz);      //创建叫fenpin的程序块

input clk;     //输入clk

output reg clk1khz;     //定义寄存器类输出

integer i;   //定义数据类型i

initial       //赋予初始值,从begin到end

begin

i=0;

clk1khz<=0;

end

always @(posedge clk)   //每检测到时钟上升沿就执行一次下面的程序

begin

i=i+1;   //i累加

if(i==3000)    //判断i够3000了没

begin       //如果满足条件则,i=0,clk1khz反相输出(即由0变1或者由1变0)

i=0;

clk1khz<=~clk1khz;

end

end

endmodule

2

module div_rill(input[5:0] a,input[5:0] b,output reg [5:0] yshang,output reg [5:0] yyushu);//创建程序模块

reg[5:0] tempa; //下面5行都是定义数据类型

reg[5:0] tempb;

reg[11:0] temp_a;

reg[11:0] temp_b;

integer i;

always @(a or b)   //如果a或者b的值改变,则执行以下程序、命令

begin

tempa <= a;     //给tempa赋值

tempb <= b;     //给tempa赋值

end

always @(tempa or tempb)    //如果tempa或者tempb的值改变,则执行以下程序、命令

begin

temp_a = {6'b000000,tempa};    //赋值

temp_b = {tempb,6'b000000};    //赋值

for(i = 0;i < 6;i = i + 1)    //循环执行下面程序6次

begin

temp_a = {temp_a[10:0],1'b0}; //赋值

if(temp_a[11:6] >= tempb)   //比较temp_a[11:6] 与tempb大小,如果前者大则执行下面的命令,否则执行else后面的命令

temp_a = temp_a - temp_b + 1'b1; //计算

else

temp_a = temp_a;  //赋值

end

yshang <= temp_a[5:0]; //赋值

yyushu <= temp_a[11:6]; //赋值

end

endmodule

以上就是关于怎样快速看懂一个较大的verilog模块代码全部的内容,包括:怎样快速看懂一个较大的verilog模块代码、帮我看个Verilog程序,modulesim仿真显示、Verilog HDL语言释义第二篇等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10623891.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存