北航verilog实验报告

2026/4/30 4:44:32

实验三 利用条件语句实现计数分频时序电路

一.实验目的:

1.掌握条件语句在简单时序模块设计中的使用。

2.学习在Verilog模块中应用计数器。

3.学习测试模块的编写、综合和不同层次的仿真。 二.实验设备:

安装Modelsim-6.5c的PC机。 三.实验内容:

仿真一个可综合风格的分频器,将10MB的时钟分频为500KB的时钟,定义一个计数器,原理同1/2分频器一样,只不过分频变为1/20。

四.实验代码

module fdivision(RESET,F10M,F500K); input RESET,F10M; output F500K; reg F500K; reg[7:0]j;

always @(posedge F10M) if(!RESET) begin

F500K <= 0; j<=0; end else begin if(j==9) begin j<=0;

F500K =~ F500K; end else

j<=j+1; end endmodule

`timescale 1ns/1ps `define clk_cycle 50 module division_Top; reg F10M,RESET; wire F500K_clk;

always #`clk_cycle F10M=~F10M; initial begin

RESET=1; F10M=0;

#100 RESET=0; #100 RESET=1; #10000 $stop; end

fdivision fdivision(.RESET(RESET),.F10M(F10M),.F500K(F500K_clk)); endmodule

五.综合仿真结果

实验四 阻塞赋值与非阻塞赋值的区别

一.实验目的:

1.通过实验,掌握阻塞赋值与非阻塞赋值的概念和区别。 2.了解非阻塞和阻塞赋值的不同使用场合。 3.学习测试模块的编写、综合和不同层次的仿真。 二.实验设备:

安装Modelsim-6.5c的PC机。

三.实验内容:

两个模块,一个阻塞赋值,一个非阻塞赋值,观察两者之间的区别

四.实验代码

module blocking(clk,a,b,c); output [3:0]b,c; input [3:0]a; input clk; reg [3:0]b,c;

always @(posedge clk) begin b=a; c=b;

$display(\ end endmodule //non_blocking.v

module non_blocking(clk,a,b,c); output [3:0]b,c; input [3:0]a; input clk; reg [3:0]b,c;

always @(posedge clk) begin b<=a; c<=b;

$display(\ end endmodule

//comepareTop.v `timescale 1ns/100ps module conpareTop; wire[3:0]b1,c1,b2,c2; reg[3:0]a; reg clk; initial begin clk=0;

forever #50 clk=~clk; end initial


北航verilog实验报告.doc 将本文的Word文档下载到电脑
搜索更多关于: 北航verilog实验报告 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219