搜档网
当前位置:搜档网 › Verilog实验报告

Verilog实验报告

Verilog实验报告
Verilog实验报告

2014-2015-2-G02A3050-1

电子电路设计训练(数字EDA部分)

实验报告

(2015 年5 月20 日)

教学班学号姓名组长签名成绩

自动化科学与电气工程学院

目录

目录 (1)

实验一、简单组合逻辑和简单时序逻辑 (1)

1.1 实验任务1——简单组合逻辑 (1)

1.1.1 实验要求 (1)

1.1.2 模块的核心逻辑设计 (1)

1.1.3 测试程序的核心逻辑设计 (1)

1.1.4 仿真实验关键结果及其解释 (2)

1.2 实验任务2——简单时序逻辑 (3)

1.2.1 实验要求 (3)

1.2.2 模块的核心逻辑设计 (3)

1.2.3 测试程序的核心逻辑设计 (3)

1.2.4 仿真实验关键结果及其解释 (4)

1.3 实验小结 (4)

实验二、条件语句和always过程块 (5)

2.1 实验任务1——利用条件语句实现计数分频时序电路 (5)

2.1.1 实验要求 (5)

2.1.2 模块的核心逻辑设计 (5)

2.1.3 测试程序的核心逻辑设计 (6)

2.1.4 仿真实验关键结果及其解释 (7)

2.2 实验任务2——用always块实现较复杂的组合逻辑电路 (8)

2.2.1 实验要求 (8)

2.2.2 模块的核心逻辑设计 (8)

2.2.3 测试程序的核心逻辑设计 (9)

2.2.4 仿真实验关键结果及其解释 (10)

2.3 实验小结 (11)

实验三、赋值、函数和任务 (12)

3.1 实验任务1——阻塞赋值与非阻塞赋值的区别 (12)

3.1.1 实验要求 (12)

3.1.2 模块的核心逻辑设计 (12)

3.1.3 测试程序的核心逻辑设计 (13)

3.1.4 仿真实验关键结果及其解释 (14)

3.2 实验任务2——在Verilog HDL中使用函数 (16)

3.2.1 实验要求 (16)

3.2.2 模块的核心逻辑设计 (16)

3.2.3 测试程序的核心逻辑设计 (18)

3.2.4 仿真实验关键结果及其解释 (19)

3.3 实验任务3——在Verilog HDL中使用任务 (20)

3.3.1 实验要求 (20)

3.3.2 模块的核心逻辑设计 (20)

3.2.3 测试程序的核心逻辑设计 (21)

3.2.4 仿真实验关键结果及其解释 (22)

3.3 实验小结 (22)

实验四、有限状态机 (23)

4.1 实验任务1——基于状态机的串行数据检测器 (23)

4.1.1 实验要求 (23)

4.1.2 模块的核心逻辑设计 (23)

4.1.3 测试程序的核心逻辑设计 (25)

4.1.4 仿真实验关键结果及其解释 (26)

4.2 实验任务2——楼梯灯 (26)

4.2.1 实验要求 (26)

4.2.2 模块的核心逻辑设计 (27)

4.2.3 测试程序的核心逻辑设计 (31)

4.2.4 仿真实验关键结果及其解释 (32)

4.3 实验小结 (34)

实验一、简单组合逻辑和简单时序逻辑

1.1 实验任务1——简单组合逻辑

1.1.1 实验要求

(1)设计一个两位数据比较器,比较两个数据a和b。若两数据相同,则给出结果1,否则给出结果0。

(2)设计一个字节(8位)的比较器,比较两个字节a[7:0]和b[7:0]的大小。若a大于b,则输出高电平,否则输出低电平。

1.1.2 模块的核心逻辑设计

(1)两位数据比较器

assign equal=(a==b)?1:0; //用连续赋值语句assign对结果equal赋值,a=b 时,equal输出为1,否则为0

(2)字节数据比较器

assign res=(a>b)?1:0; //用连续语句assign对结果equal赋值,a>b时equal输出为1,否则输出为0

1.1.3 测试程序的核心逻辑设计

(1)两位数据比较器

always #50 clock=~clock; //产生周期性跳变的时钟,50个时间单位跳变一次always@(negedge clock) //always后的语句表示时序控制,每次时钟下降沿时刻产生不同的a和b

begin

a={$random}%2;

b={$random}%2; //每次随机产生a和b

end

initial

begin#100000000 $stop; end//系统任务,暂停仿真以观察波形

(2)字节数据比较器

a={$random}%256;

b={$random}%256;//a和b从0~255共256个数中随机产生,即可生成8位字节数据

1.1.4 仿真实验关键结果及其解释

(1)两位数据比较器

图1两位数据比较器波形图

如图1所示,a和b相同时equal输出为高电平,否则输出低电平。

(2)字节数据比较器

图 2 字节数据比较器波形图

如图2所示,a>b时,res输出高电平,否则res输出低电平。

1.2 实验任务2——简单时序逻辑

1.2.1 实验要求

设计一个分频器,将时钟波形二分频。

1.2.2 模块的核心逻辑设计

always@(posedge clk_in)//always语句后表示时序控制,每次clk_in时钟上升沿时刻进行动作

begin

if(! reset) clk_out=0; //reset信号为低电平时,输出清零

else clk_out=~clk_out;//reset为高电平时,输出时钟clk_out在输入时钟clk_in的上升沿时刻翻转

end

1.2.3 测试程序的核心逻辑设计

always #`clk_cycle clk=~clk; //产生输入时钟

initial

begin

clk=0;

reset=1;

#10 reset=0; //reset给低电平,输出清零

#110 reset=1; //reset复位

#100000 $stop; //系统任务,暂停仿真以便观察波形

end

1.2.4 仿真实验关键结果及其解释

图 3 二分频器的波形图如图3所示,输入时钟clk被二分频输出。

1.3 实验小结

通过实验一,我掌握了如下内容:

1)assign连续赋值语句的使用。

2)always, initial块的使用。

3)reg, wire等数据类型的适用范围

4)调用被测试模块的方法

实验二、条件语句和always过程块

2.1 实验任务1——利用条件语句实现计数分频时序电路2.1.1 实验要求

(1)设计20分频计数器,将10MHz的时钟分频为500kHz的时钟。

(2)利用10MHz的时钟,设计一个给定单周期形状的周期波形。

2.1.2 模块的核心逻辑设计

(1)20分频计数器

begin

if(j==9) //对计数器进行判断,计十个数翻转一次,则一个周期计20个数,即实现20分频

begin

j<=0; //输出时钟翻转的同时计数器置零

F500K<=~F500K;

end

else

j<=j+1; //若还没计到十个数,继续计数

end

(2)给定单周期形状的波形

begin

if(j<=20)

begin

FDIV<=0;

j<=j+1; //前20个输入时钟周期,计数器计数,但输出不跳变

end

else if((j>20)&&(j<=30))

begin

FDIV<=1;

j<=j+1; //中间10个时钟周期输出跳变成高电平,保持计数

end

else if((j>30)&&(j<=50))

begin

FDIV<=0;

j<=j+1; //后20个时钟周期输出跳变成低电平,保持计数

end

else

j<=0; //计数器清零

end

2.1.3 测试程序的核心逻辑设计

(1)20分频计数器

always #`clk_cycle F10M_clk=~F10M_clk; //产生输入的10MHz时钟initial

begin

RESET=1;

F10M_clk=0;

#100 RESET=0; //reset给低电平,输出清零

#100 RESET=1; //reset复位

#10000 $stop; //系统任务,暂停仿真以便观察波形

end

(2)给定单周期形状的波形

begin

RESET=1;

F10M_clk=0;

#100 RESET=0;

#100 RESET=1;

#100000 $stop;

end //与(1)一致

2.1.4 仿真实验关键结果及其解释

(1)20分频计数器

图 4 20分频计数器波形图

如图4所示,10MHz的时钟F10M被20分频成500kHz的时钟F500k。

(2)给定单周期形状的波形

图 5 给定单周期形状的波形图

如图5所示,生成了题目要求形状的周期波形图。

2.2 实验任务2——用always块实现较复杂的组合逻辑电路

2.2.1 实验要求

(1)设计一个指令译码电路,对输入数据执行相应的操作,包括加、减、与、或和求反。

(2)运用always块设计一个8路数据选择器。要求:每路输入数据与输出数据均为4位2进制数,当选择开关(至少3位)或输入数据发生变化时,输出数据也相应变化。

2.2.2 模块的核心逻辑设计

(1)指令译码电路

always@(opcode or a or b) //电平敏感的always块,当输入数据a,b或控制信号opcode变化时,输出发生变化

begin

case(opcode)

`plus: out=a+b; //控制信号为'plus时,输出等于a+b

`minus: out=a-b; //控制信号为'minus时,输出等于a-b

`band: out=a&b; //控制信号为'band时,输出等于a&b

`bor: out=a|b; //控制信号为'bor时,输出等于a|b

`unegate:out=~a; //控制信号为'unegate时,输出等于~a

default: out=8'hx; //未收到指令时,输出任意态

endcase

(2)8路数据选择器

always@(ctl or a0 or a1 or a2 or a3 or a4 or a5 or a6 or a7) //电平敏感模块,控制信号ctl或输入a0~a7变化时,输出发生变化

begin

case(ctl)

`ctl0: out=a0;

`ctl1: out=a1;

`ctl2: out=a2;

`ctl3: out=a3;

`ctl4: out=a4;

`ctl5: out=a5;

`ctl6: out=a6;

`ctl7: out=a7; //控制端为ctl0~ctl7对应输出a0~a7

default: out=4'dx; //未收到指令时,输出任意态

endcase

2.2.3 测试程序的核心逻辑设计

(1)指令译码电路

begin

a={$random}%256; //从0~255共256个数中随机生成一个数作为输入a b={$random}%256; //从0~255共256个数中随机生成一个数作为输入b opcode=3'h0; //控制信号设为初值0,即'plus,求和

repeat(times) //repeat循环语句使控制及输入信号重复变化

begin

#100 a={$random}%256;

b={$random}%256;

opcode=opcode+1; //每一时钟到来时,输入a,b改变一随机数,控制信号+1

end

#100 $stop; //系统任务,暂停仿真以观察输出波形

end

(2)8路数据选择器

begin

a0={$random}%16;

a1={$random}%16;

a2={$random}%16;

a3={$random}%16;

a4={$random}%16;

a5={$random}%16;

a6={$random}%16;

a7={$random}%16; //从0~15中随机生成输入a0~a7

ctl=3'd0; //控制端置ctl0

repeat(times) //repeat语句重复改变输入

begin

#100 a0={$random}%16;

a1={$random}%16;

a2={$random}%16;

a3={$random}%16;

a4={$random}%16;

a5={$random}%16;

a6={$random}%16;

a7={$random}%16; //随机生成a0~a7

ctl=ctl+1; //控制端每次加1

end

#100 $stop;

end

2.2.4 仿真实验关键结果及其解释

(1)指令译码电路

图 6 指令译码电路波形

指令译码电路输出波形如图所示。控制信号opcode为0时,输出为a+b;控制信号opcode为1时,输出为a-b;......以此类推。

(2)8路数据选择器

图7 8选1数据选择器波形图

8路数据选择器输出波形如图7所示,控制端ctl为0~7时对应输出a0~a7。

2.3 实验小结

通过实验二,我掌握了如下内容:

1)if...else条件语句的使用。

2)case条件语句的使用

实验三、赋值、函数和任务

3.1 实验任务1——阻塞赋值与非阻塞赋值的区别

3.1.1 实验要求

本实验中两个模块"blocking"和"non_blocking"分别采用阻塞赋值和非阻塞赋值语句,从实验结果比较他们的区别。

3.1.2 模块的核心逻辑设计

(1)阻塞赋值

always@(posedge clk)

begin

b=a;

c=b; //阻塞赋值,a赋给b,b赋给c

$display("Blocking: a=%d, b=%d, c=%d.",a,b,c); //在Transcript窗口中显示赋值后a,b,c的值

end

(2)非阻塞赋值

always@(posedge clk)

begin

b<=a;

c<=b; //非阻塞赋值,a赋给b,b赋给c

$display("Non_Blocking:a=%d, b=%d, c=%d.",a,b,c); //在Transcript 窗口中显示赋值后a,b,c的值

end

(3)改变阻塞赋值程序的写法,再比较二者的区别(测试程序仅改变调用的阻塞赋值模块)

always@(posedge clk)

begin

c=b;

b=a;//改变阻塞赋值的顺序,b赋给c,a赋给b

$display("Blocking: a=%d, b=%d, c=%d.",a,b,c);

end

(3)再改变阻塞赋值程序的写法,比较二者的区别(测试程序仅改变调用的阻塞赋值模块)

always@(posedge clk) b=a;

always@(posedge clk) c=b;

3.1.3 测试程序的核心逻辑设计

将阻塞与非阻塞赋值模块用同一测试程序测试,比较其输出的不同。

begin

a=4'h3;

$display("____________");

#100 a=4'h7;

$display("____________");

#100 a=4'hf;

$display("____________");

#100 a=4'ha;

$display("____________");

#100 a=4'h2;

$display("____________");

#100 $display("___________"); //每隔100个时间单位改变一次输入a 的值,并显示输出

$stop;

end

blocking blocking(clk,a,b1,c1); //阻塞赋值输出用b1,c1表示

non_blocking non_blocking(clk,a,b2,c2); //非阻塞赋值输出用b2,c2表示

3.1.4 仿真实验关键结果及其解释

(1)阻塞赋值写法1

图8 阻塞与非阻塞赋值比较波形图

图9 阻塞与非阻塞赋值输出结果

如图8所示,b1,c1为阻塞赋值输出,输入a的值改变时,输出b的值随之改变,同时b的值赋给c,即赋值语句执行完后输出b, c值立即改变,然后块才结束。b2,c2为非阻塞赋值输出,赋值语句之后输出b, c的值并不立即改变,而是在块结束后才进行赋值操作,当下一时钟上升沿到来时,上一个a值才赋给b,同时上一b值赋给c。以上即阻塞与非阻塞赋值的区别。

a和b的输出结果如图9所示。

(2)阻塞赋值写法2

图10 阻塞赋值程序变形1波形图

图11 阻塞赋值程序变形1输出结果

改变阻塞赋值程序后的波形图如图10所示,可见将b=a, c=b的顺序调换之后,阻塞赋值程序先将上一次时钟上升沿时b的值赋给c,再将这一次时钟上升沿时a的值赋给b,即b与a同时变化但c的值是上一个b值。在波形图上看,由于输入a的变化时刻对应的是时钟下降沿,而输出要在下一时钟上升沿才能显示,故阻塞与非阻塞输出c在波形图上看是一致的,实际上在时钟下降沿a发生变化时,阻塞输出c的值已经发生变化。输出结果如图11

(3)阻塞赋值写法3

图12 阻塞赋值程序变形2波形图

图13 阻塞赋值程序变形2输出结果

阻塞赋值程序变形2的输出波形与结果如图12、图13所示。由于两个阻塞操作用同一个时钟沿触发,执行顺序是不确定的。

3.2 实验任务2——在Verilog HDL中使用函数

3.2.1 实验要求

(1)设计程序实现函数调用

(2)设计一个带控制端的逻辑运算电路,分别完成正整数的平方、立方和最大数为5的阶乘运算。

3.2.2 模块的核心逻辑设计

(1)设计程序实现函数调用

always@(posedge clk) //clk上升沿触发同步运算

begin

if(!reset)

result<=0; //reset为低时复位

else

begin

result<=n*factorial(n)/((n*2)+1); //调用factorial函数,verilog在整数除法运算结果中不考虑余数

end

end

function[31:0] factorial; //函数定义,返回一个32位的数

input[3:0] operand; //输入一个4位操作数

reg[3:0] index; //函数内部计数用中间变量

begin

factorial=operand?1:0; //操作数为0时函数输出为0,否则为1

for(index=2;index<=operand;index=index+1)

factorial=index*factorial; //表示阶乘的迭代运算

end

endfunction

(2)带控制端的逻辑运算电路

always@(posedge clk)

begin

if(!reset)

result<=0;

else

begin

if(sel==0) result<=n*n; //控制端输入sel=0时,执行平方操作

else if(sel==1) result<=n*n*n; //控制端输入sel=1时,执行立方操作

else if(sel==2&&n<=5) result<=factorial(n); //控制端输入sel=2且

数电实验报告2.1—基于Verilog HDL显示译码器设计

<基于Verilog HDL显示译码器设计>实验报告 学生姓名: 班级学号: 指导老师:

<实验报告内容> 一、实验名称:基于Verilog HDL 显示译码器设计 二、实验学时:4学时 三、实验目的:进一步掌握QuartusII 软件逻辑电路设计环境及Verilog HDL 的基本语法,熟悉设计流程及思路。掌握显示译码器的工作原理及应用。(提示:本实验将涉及到verilog 的条件语句(如if …else, case ….end case, for ….等)、赋值语句(如assign 等)和二进制变量位宽的定义等内容,请大家实验前做好本部分预习和自学,可参考本课本第九章内容,也可自行查找有关Verilog 设计基础的相关内容,推荐参考书:北京航空航天出版社,夏宇闻编著 )。通过对所设计逻辑电路功能仿真,分析所设计电路逻辑功能是否正确,掌握逻辑功能仿真的方法。 四、实验内容:基于verilog 的显示译码器逻辑设计及功能仿真 五、实验原理:(1)半导体发光二极管(LED )数码显示器:半导体发光二极管数码显示器由7(或8)个LED 排成“日”字形,称为七段(或八段),封装成数码管,如错误!未找到引用源。所示。LED 数码管内部有共阴极和共阳极两种接法。如错误!未找到引用源。。 (2 )常用显示译码器管脚功能(74LS148):LCD —七段显示译码器:介绍常用的74LS148七段显示译码器, 图 3为74LS48 74LS48 (a ) 图 1 图 2 CC f g a b c d e BI 7123456

图 3 (3)74LS48的逻辑功能:如表1: 表1 其译码器输出(Ya~Yg)是高电平有效,适用于驱动共阴极LED数码管,显示的字形表中所示。因其译码器输出端的内部有上拉电阻(是2K的限流电阻),因此在与LED管连接时无需再外接限流电阻。 具体功能介绍及内部设计图,请自行上网查阅74LS48的DATASHEET。 六、实验步骤: 1.复习QuartusII软件逻辑电路设计环境及Verilog HDL的基本语法,熟悉设计流程及思路。 2.做好预习和自习,查找相关资料。 3.设计出文本输入并进行功能仿真。

IEEE802标准和以太网 实验报告

实验报告 实验中心(室):计算机工程实验教学中心实验分室:计算机网络基础 实验课程:计算机网络与互联网实验项目名称:IEEE802标准和以太网专业:计算机科学与技术(网络工程)年级:2014级 姓名:刘成学号:20140657031105 日期:2016年11月3日 一.实验目的 1. 掌握以太网的报文格式 2. 掌握MAC 地址的作用 3. 掌握MAC 广播地址的作用 4. 掌握LLC 帧报文格式 5. 掌握协议编辑器和协议分析器的使用方法 6. 掌握协议栈发送和接收以太网数据帧的过程 二.实验环境 三.实验内容 练习 1 领略真实的MAC 帧 各主机打开工具区的“拓扑验证工具”,选择相应的网络结构,配置网卡后,进行拓扑验证,如果通过拓扑验证,关闭工具继续进行实验,如果没有通过,请检查网络连接。本练习将主机 A 和 B 作为一组,主机 C 和 D 作为一组,主机 E 和 F 作为一组。现仅以主机A、B 所在组为例,其它组的操作参考主机A、B 所在组的操作。 1. 主机B 启动协议分析器,新建捕获窗口进行数据捕获并设置过滤条件(提取ICMP 协议)。 2. 主机A ping 主机B,察看主机B 协议分析器捕获的数据包,分析MAC 帧格式。 3. 将主机B 的过滤器恢复为默认状态。练习 2 理解MAC 地址的作用 本练习将主机 A 和 B 作为一组,主机 C 和 D 作为一组,主机 E 和 F 作为一组。现仅以主机A、B 为例,其它组的操作参考主机A、B 的操作。 1. 主机B 启动协议分析器,打开捕获窗口进行数据捕获并设置过滤条件(源MAC 地址为主机A 的MAC 地址)。 2.主机A ping 主机B。 3.主机B 停止捕获数据,在捕获的数据中查找主机A 所发送的ICMP 数据帧,并分析该帧内容 练习 3 编辑并发送MAC 广播帧 本练习将主机A、B、C、D、E、F 作为一组进行实验。1. 主机 E 启动协议编辑器。2. 主机 E 编辑一个MAC 帧:目的MAC 地址:FFFFFF-FFFFFF 源MAC 地址:主机 E 的MAC 地址协议类型或数据长度:大于0x0600 数据字段:编辑长度在46—1500 字节之间的数据 3. 主机A、B、C、D、F 启动协议分析器,打开捕获窗口进行数据捕获并设置过滤条件(源MAC 地址为主机 E 的MAC 地址)。4. 主机E 发送已编辑好的数据帧。5. 主机A、B、C、D、F 停止捕获数据,察看捕获到的数据中是否含有主机E 所发送的数据帧。●结合练习三的实验结果,简述FFFFFF-FFFFFF 作为目的MAC 地址的作用。 四.实验结果及分析(还需回答思考问题) 本机IP :169.254.112.31 本机MAC :7427EA-F01A1B 目标IP:169.254.62.201 目标MAC:7427EA-F0FA9D 练习1.2结果截图

Verilog HDL实验报告

HDL实验报告 专业电子科学与技术 姓名 学号 指导老师

1 实验一Modelsim仿真软件的使用 1.1 实验目的 (1)熟悉Modelsim 软件; (2)掌握Modelsim 软件的编译、仿真方法; (3)熟练运用Modelsim 软件进行HDL 程序设计开发。 1.2 实验步骤 (1)学习使用Modelsim软件; (2)分析原理及功能; (3)用Verilog HDL编写程序; (4)编写测试程序进行仿真; (4)观察波形,分析仿真结果是否正确。 1.3 实验内容 用Verilog HDL 程序实现一个异或门,Modelsim 仿真,观察效果。 1.4.1 程序 module my_xor(ina,inb,out); input ina,inb; output out; assign out=ina^inb; endmodule module t_xor; reg ina,inb; wire out; initial begin ina=1'b0; forever #20 ina=~ina; end initial begin inb=1'b0; forever #10 inb=~inb; end my_xor tt(.ina(ina),.inb(inb),.out(out)); endmodule

2 实验二简单组合电路设计 2.1 实验目的 (1)掌握基于Modelsim 的数字电路设计方法; (2)熟练掌握HDL 程序的不同实现方法 2.2 实验步骤 (1)分析原理及功能; (2)根据原理用Verilog HDL编写程序; (3)编写测试程序进行仿真; (4)观察波形,分析仿真结果是否正确。 2.3 实验内容 设计一个三人表决器(高电平表示通过) ,实验内容如下: (1)三个人,一个主裁判,两个副裁判; (2)规则:只要主裁判同意,输出结果为通过;否则,按少数服从多数原则决定是否通过。使用Verilog HDL 程序实现上述实验内容,并使用modelsim 仿真(要求:至少使用两种方法实现上述实验内容和testbench)。 2.4.1 程序 方法1: module voter(v0,v1,v2,y); input v0,v1,v2; output y; assign y=v0|(v1&v2); endmodule 方法2: module voter(v0,v1,v2,y); input v0,v1,v2; output reg y; always @(v0,v1,v2) begin if(v0) y=1;

计算机网络与通讯实验报告记录

计算机网络与通讯实验报告记录

————————————————————————————————作者:————————————————————————————————日期:

实验名称:RJ-45接口与网卡设置 一.题目 二.实验设备仪器(软件环境) ⒈RJ-45压线钳 ⒉双绞线剥线器 ⒊ RJ-45接头 ⒋双绞线 ⒌网线测试仪 ⒍网卡 三.试验目的 1.掌握使用双绞线作为传输介质的网络连接方法,学会制作RJ45接头。 2.学会测线器的使用方法。 3.学会网卡的安装与设置。 四.试验内容及步骤 1.网线制作 (1)按以下步骤制作网线(直通线): ●抽出一小段线,然后先把外皮剥除一段; ●将双绞线反向缠绕开; ●根据标准排线(注意这里非常重要); ●铰齐线头(注意线头长度); ●插入插头; ●用打线钳夹紧; ●用同样方法制作另一端。 (2)网线的检查、测试 可以使用网线测试仪或万用表测试网线连接逻辑是否正确。网线制作好后,将其两端分别插入网卡和交换机的插口内,开机后对应的指示灯应闪亮。 2.网卡的安装与设置 (1)安装网卡驱动程序 一.将网卡插入计算机主板的插槽内,启动计算机; 二.单击【开始】|【设置】|【控制面板】命令,打开【控制面板】窗口,双击【添加硬件】 图标; 三.弹出【添加硬件向导】,在设备列表中选择所用的网卡设备,插入带有网卡驱动程序的 光盘(或磁盘),按向导提示逐步安装驱动程序; 四.若安装成功,向导会给出正确的提示。

(2)网络协议的添加(此步可略) 一般情况下,安装好网卡的驱动程序以后,最基本的TCP/IP网络协议会自动被添加到系统中。但在某些特殊情况下,需要我们手动添加/删除网络协议: ●单击【开始】|【设置】|【控制面板】命令,打开【控制面板】窗口,双击【网 络连接】图标; ●打开【网络连接】窗口,选中【本地连接】图标,点击右键,在弹出菜单中选 【属性】; ●进入【属性】对话框,选【常规】项,单击【安装】按钮; ●弹出【选择网络组件类型】对话框,在【单击要安装的网络组件类型】列表中 选【协议】,单击【安装】; ●弹出【选择网络协议】对话框,在【网络协议】列表中选择所要的协议,单击 【确定】按钮。 (3)网卡的设置 网卡安装成功后,必须对其进行配置,配置前,必须到网络中心申请到合法的IP地址,并得到网络中心提供的域名及其IP地址、网关的IP地址。 (1)打开【网络连接】中“本地连接”的【属性】窗口; (2)选中【Internet协议(TCP/IP)】,单击【属性】按钮; (3)打开【Internet协议(TCP/IP)属性】窗口,分别设置“IP地址”、“子网掩码”、“默认 网关”、“DNS服务器”等项。 3.网络连通的测试 常用ping命令来测试网络连接,格式: ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-list 参数含义 -t 校验与指定计算机的连接,直到用户中断。 -a 将地址解析为计算机名。 -n count 发送由count指定数量的ECHO 报文,默认值为 4。 -l length 发送包含由length 指定数据长度的ECHO报文。 默认值为64字节,最大值为8192 字节。 -f 在包中发送“不分段”标志,该包将不被路由上的 网关分段。 -I ttl 将“生存时间”字段设置为ttl指定的数值。 -v tos 将“服务类型”字段设置为tos指定的数值。 -r count 在“记录路由”字段中记录发出报文和返回报文的 路由。指定的Count值最小可以是1,最大可以是 9 。 -s count 指定由count指定的转发次数的时间邮票。 -j computer-list 经过由computer-list指定的计算机列表的路由报 文。中间网关可能分隔连续的计算机(松散的源路 由)。允许的最大IP地址数目是9。 -k computer-list 经过由computer-list指定的计算机列表的路由报

北航verilog实验报告(全)

目录 实验一 (2) 实验二 (9) 实验三 (21) 实验四 (44)

实验一 实验目的:熟悉硬件开发流程,掌握Modelsim设计与仿真环境,学会简单组合逻辑电路、简单时序逻辑电路设计,不要求掌握综合和综合后仿真。 实验内容:必做实验:练习一、简单的组合逻辑设计 练习二、简单分频时序逻辑电路的设计 选做实验:选做一、练习一的练习题 选做二、7段数码管译码电路 练习一、简单的组合逻辑设计 描述一个可综合的数据比较器,比较数据a 、b的大小,若相同,则给出结果1,否则给出结果0。 实验代码: 模块源代码: module compare(equal,a,b); input a,b; output equal; assign equal=(a==b)?1:0; endmodule 测试模块源代码: `timescale 1ns/1ns `include "./compare.v" module t; reg a,b; wire equal; initial begin a=0; b=0; #100 a=0;b=1; #100 a=1;b=1;

#100 a=1;b=0; #100 a=0;b=0; #100 $stop; end compare m(.equal(equal),.a(a),.b(b)); endmodule 实验波形 练习二、简单分频时序逻辑电路的设计 用always块和@(posedge clk)或@(negedge clk)的结构表述一个1/2分频器的可综合模型,观察时序仿真结果。 实验代码: 模块源代码: module halfclk(reset,clkin,clkout); input clkin,reset; output clkout; reg clkout; always@(posedge clkin) begin if(!reset) clkout=0; else clkout=~clkout; end endmodule 测试模块源代码: `timescale 1ns/100ps `define clkcycle 50 module tt; reg clkin,reset; wire clkout;

北航电子电路设计数字部分实验报告

电子电路设计数字部分实验报告 学院: 姓名:

实验一简单组合逻辑设计 实验内容 描述一个可综合的数据比较器,比较数据a 、b的大小,若相同,则给出结果1,否则给出结果0。 实验仿真结果 实验代码 主程序 module compare(equal,a,b); input[7:0] a,b; output equal; assign equal=(a>b)1:0; endmodule 测试程序

module t; reg[7:0] a,b; reg clock,k; wire equal; initial begin a=0; b=0; clock=0; k=0; end always #50 clock = ~clock; always @ (posedge clock) begin a[0]={$random}%2; a[1]={$random}%2; a[2]={$random}%2; a[3]={$random}%2; a[4]={$random}%2; a[5]={$random}%2; a[6]={$random}%2; a[7]={$random}%2; b[0]={$random}%2; b[1]={$random}%2; b[2]={$random}%2; b[3]={$random}%2; b[4]={$random}%2;

b[5]={$random}%2; b[6]={$random}%2; b[7]={$random}%2; end initial begin #100000 $stop;end compare m(.equal(equal),.a(a),.b(b)); endmodule 实验二简单分频时序逻辑电路的设计 实验内容 用always块和@(posedge clk)或@(negedge clk)的结构表述一个1/2分频器的可综合模型,观察时序仿真结果。 实验仿真结果

verilog hdl 实验报告

Verilog HDL数字系统设计 实验报告汇总 任课教师 实验者姓名 学号 实验指导教师

姓名学号 时间地点 实验题目阻塞赋值与非阻塞赋值的区别 一.实验目的与要求 (1)通过实验,掌握阻塞赋值与非阻塞赋值的概念与区别; (2)了解非阻塞赋值和阻塞赋值的不同使用场合; (3)学习测试模块的编写,综合和不同层次的仿真。 二.实验环境 仿真软件: modlsim6.2SE 三.实验内容 阻塞赋值与非阻塞赋值,在教材中已经了解了他们之间在语法上的区别以及综合后所得到的

电路结构上的区别。在always块中,阻塞赋值可以理解为赋值语句是并发执行的。时序逻辑设计中,通常都使用非阻塞赋值语句,而在实现组合逻辑的assign结构中,或者always快结构中都必须采用阻塞赋值语句。 四.系统框图 五.实验波形图 六.实验体会 (1)一开始使用modelsimSE6.2时候不知道建立工作区的方法。后面请教了毕老师才知道如何来建立工作区。 (2)编译时候错误看不懂,细心找才发现‘ ` 两个符号有区别 (3)波形找不到,后来发现时没有放大。 七.代码附录: 源代码:

// ---------- 模块源代码:---------------------- // ------------- blocking.v --------------- 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("Blocking: a = %d, b = %d, c = %d ",a,b,c); 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("Non_Blocking: a = %d, b = %d, c = %d ",a,b,c); end endmodule 测试模块: // ---------- 测试模块源代码:-------------------------- //------------- compareTop.v -----------------------------

Verilog实验报告交通灯

V e r i l o g实验报告交通 灯 集团标准化工作小组 [Q8QX9QT-X8QQB8Q8-NQ8QJ8-M8QMN]

V e r i l o g实验报告---第四次交通灯 班级:集电0802班 姓名:张鹏 学号: 04086057 序号: 16 一、规范 (1)具有开关功能:当reset=0时红绿灯关闭,使主支干道六个灯全灭; (2)具有四个功能:当reset=1且func=2’b00时,主干道和支路正常计数; 且func=2’b01时,支干道一直绿灯,主干道一直红灯; 且func=2’b10时,主干道一直绿灯,支干道一直红灯; 且func=2’b11时,主干道和支干道一直黄灯闪; (3)计数器频率:运行频率2Hz计数器; (4)信号灯种类:红、黄、绿; (5)信号灯计执行时间关系:主干道:绿灯常亮+绿灯闪+黄灯=支干道:红灯常亮; 此设计中: 主干道:绿灯常亮=57s,T绿灯闪=3s,T黄灯亮=3s 支干道:绿灯常亮=15s,T绿灯闪=3s,T黄灯亮=3s (6)信号灯到计时功能:信号灯预置后,开始执行2Hz计数器; (7)信号灯跳转功能:当各信号灯计时至T时在下一个时钟信号上升沿到来时自动转为下一状态; (8)信号灯各状态跳转关系:绿-黄-红-绿; 二、输入输出定义

状态转移图: 四、测试代码 module frequency_divider_small(reset,clk,out); eset(reset),.clk(clk),.func(func),.green(green),.red(red),.yellow(yellow)); always #10 clk=~clk; initial begin reset=0; clk=1; func=2'b00; #20 reset=1; #21000 func=2'b01; #10000 func=2'b10; #10000 func=2'b11; end endmodule 波形: 五、源代码 module frequency_divider(reset,clk,out);eset(reset),.clk(clk),.out(in));//调用分频模块 always @ (posedge clk or negedge reset) if(!reset) begin cnt<=7'd0; state<=3'd1; green<=2'b00; red<=2'b00; yellow<=2'b00; end else if(in)//分频器结果当主模块始能 if(func==2'b00)//选择不同功能控制开关 if(cnt==7'd0) case(state)//选择不同状态 3'd1:begin cnt<=greentime1<<1;

以太网交换配置实验报告

以太网交配置实验报告 郴州师范学校王资生 2012-11-14 任务要求: 1、掌握以太网交换原理; 2、掌握Vlan配置方法; 3、掌握三层交换原理; 4、掌握链路聚合的配置方法 实验一用trunck口实现Vlan跨交换机扩展要求:PC0、PC2属于vlan10,PC1、PC3属于vlan20,在SW0上进行正确的配置,要求实现PC0和PC1之间不能通信,PC2和PC3之间不能通信,PC0和PC2之间可以通信,PC1和PC3之间可以通信。 IP设置: 实验步骤: 一、建立好数据连接。如上图 二、设置好各IP,具体如下: PC0:192.168.1.1 255.255.255.0 PC1:192.168.1.2 255.255.255.0 PC3:192.168.1.3 255.255.255.0 PC4:192.168.1.4 255.255.255.0 三、配置交换s1

代码如下: 1、在交换机上创建两个vlan,分别是Vlan 10 和Vlan 20 Switch>en Switch#config t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#vlan 10 Switch(config-vlan)#vlan 20 2、指定两个端口fa0/1 和fa0/2 Switch(config)#interface fa0/1 Switch(config-if)#switch mode access Switch(config-if)#switch access vlan 10 Switch(config-if)#interface fa0/2 Switch(config-if)#switch mode access Switch(config-if)#switch access vlan 20 3、设置交换机S1与S2连接端口类型,端口fa0/3允许fa0/1和fa0/2通过Switch(config-if)#switch moder trunk Switch(config-if)#switch trunk all Switch(config-if)#switch trunk allowed vlan 10,20 5、查看配置情况,是否成功。 Switch#show run Building configuration... Current configuration : 1133 bytes ! version 12.1 no service timestamps log datetime msec no service timestamps debug datetime msec no service password-encryption ! hostname Switch ! ! spanning-tree mode pvst ! interface FastEthernet0/1 switchport access vlan 10 switchport mode access ! interface FastEthernet0/2 switchport access vlan 20 switchport mode access

通过Verilog实现交通灯设计实验报告

电子科技大学 实 验 报 告 一、实验室名称:虚拟仪器实验室 二、实验项目名称:交通灯设计实验 三、实验学时:4学时 四、实验原理

假设交通灯处于南北和东西两条大街的“十”字路口,如图1所示。用FPGA 开发板的LED 灯来模拟红、黄、绿3种颜色信号,并按一定顺序、时延来点亮LED ,如图2所示。图3给出了交通灯的状态转移图。设计使用频率为1Hz 的时钟来驱动电路(注1:仿真时采用1MHz 的时钟来驱动电路),则停留1个时钟可得到1S 的延时,类似停留3个时钟可得到3S 的延时,停留15个时钟可得到15S 的延时(注2:开发板工作时钟为50MHz )。 北 南 西东 图1. 六个彩色LED 可以表示一组交通信号灯 图2. 交通灯状态 南北 东西 红 黄 绿 红 黄 绿 S0 1 0 0 0 0 1 S1 1 0 0 0 1 0 S2 1 0 0 1 0 0 S3 0 0 1 1 0 0 S4 0 1 0 1 0 0 S5 1 0 0 1 0 0

图3. 交通灯的状态转移图 顶层模块 时钟分频模块状态机跳转模块 图4. 交通灯的原理框图 五、实验目的 本实验是有限状态机的典型综合实验,掌握如何使用状态转移图来定义Mealy状态机和Moore状态机,熟悉利用HDL代码输入方式进行电路的设计和仿真的流程,掌握Verilog语言的基本语法。并通过一个交通灯的设计掌握利用EDA软件(Xilinx ISE 13.2)进行HDL代码输入方式的电子线路设计与仿真的详细流程。。 六、实验内容 在Xilinx ISE 13.2上完成交通灯设计,输入设计文件,生成二进制码流文件下载到FPGA开发板上进行验证。 七、实验器材(设备、元器件)

数字逻辑实验报告-Verilog时序逻辑设计

电子科技大学 实验报告 学生姓名:任彦璟学号:2015040101018 指导教师:吉家成米源王华 一、实验项目名称:Verilog时序逻辑设计 二、实验目的: 掌握边沿D触发器74x74、同步计数器74x163、4位通用移位寄存器74x194,的工作原理。 设计移位寄存器74x194设计3位最大序列长度线性反馈移位寄存器(LFSR:Linear Feedback Shift Register)计数器。 设计同步计数器74x163 。 三、实验内容: 1.设计边沿D触发器74x74。 2.设计通用移位寄存器74x194。 3.采用1片74x194和其它小规模逻辑门设计3位LFSR计数器。 4.设计4位同步计数器74x163。 四、实验原理: 74x74逻辑电路图

CLK_D CLR_L_D S1_L S1_H S0_L S0_H w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 w11 w12 w13 w14 w15 w16 w17 w18 w19 w20 74x194逻辑电路图 3位LFSR逻辑电路图

74x163逻辑电路图 上图的设计可以采用门级描述,也可以采用教材《数字设计—原理与实践》(第4版)第525页的表8-20中的行为描述 五、实验器材(设备、元器件): PC 机、Windows XP 、Anvyl 或Nexys3开发板、Xilinx ISE 14.7开发工具、Digilent Adept 下载工具。 六、实验步骤: 实验步骤包括:建立新工程,设计代码与输入,设计测试文件,设置仿真,查看波形,约束与实现、生成流代码与下载调试。 七、关键源代 码及波形图: 1.D 触发器的Verilog 代码 源码如下 module vr74x74(CLK, D, PR_L, CLR_L, Q, QN); input CLK, D, PR_L, CLR_L ; output Q, QN ; wire w1, w2, w3, w4 ; nand (w1, PR_L, w2, w4); nand (w2, CLR_L, w1, CLK) ; nand (w3, w2, CLK, w4) ; nand (w4, CLR_L, w3, D) ; nand (Q, PR_L, w2, QN); nand (QN, Q, w3, CLR_L); endmodule

宽带通信网综合实验报告.doc

《宽带通信网综合实验报告》 组员:XX 组员:XX 学院:通信工程学院

FTTx实验 【实验步骤和结果】 1、根据图13所示,搭建系统,其中三台ONU接计算机终端,还有一台ONU 接IPTV机顶盒。用ping命令检查接入系统是否可以连通?如果不能连通,请分析原因。如果可以连通,使用tracert命令检查路由,并给出HTTx的路由信息。 图1(ping) 图2(tracert) 2、用ipconfig检查接入终端的IP地址和网关,记录下来,并与LAN接入的地 址相比较,它们有什么不同?原因是什么? 经比较发现,两个地址的网段不同。

图3为ipconfig命令 图4为LAN接入地址 3、用telnet远程登录R4101路由器,记录有关光接口的配置信息。 ESR实验 【实验步骤和结果】 1、搭建系统,将三台S2016交换机组成一个ESR环,确定主节点为S2016(1),从节点 为S2016(2)和S2016(3)。 S2016(1)系统地址S2016(2)系统地址S2016(3)系统地址 192.168.6.249 192.168.6.250 192.168.6.251

(1)先配置主交换机: (2)进入ESR配置模式,并将该交换机配置成主站: (3)置ESR环所用接口和VLAN,并使能该ESR: (4)配置从交换机: 先对S2016(2)进行配置:

步骤同上,对S2016(3)进行相同配置。 (5)使用ping 192.168.6.254命令查看网络,网络连通成功。 3、人为切断ESR环路,由于前面对主、从交换机的成功配置,使得ESR域的master node 控制其第二接口的阻塞实现了保护倒换功能。系统正常运行。 S2016(1) S2016(2) S2016(3) 端口连接和用途端口用途端口用途 16 连接S2016(1) 15 连接S2016(1) 15 与S2016(2)连接, 用作组建ESR环 15 连接S2016(3) 16 连接S2016(2) 16 与S2016(3)连接, 用作组建ESR环

实验六-数字频率计的Verilog-HDL语言实现

五邑大学实验报告 实验课程名称 ) 数字频率计的Verilog HDL语言实现 院系名称:信息工程学院 专业名称:通信工程(物联网工程) 实验项目名称:EDA实验 班级: 110711 学号: 。 报告人:冯剑波

实验六 数字频率计的Verilog HDL 语言实现 一、实验目的: 1、掌握较复杂数字电路或系统的纯Verilog HDL 实现方法; 2、体会纯Verilog HDL 语言输入设计与原理图输入设计的差别。 二、实验原理: 【 数字频率计是用来测量输入信号的频率并显示测量结果的系统。一般基准时钟的高电平的持续时间为s T 10 ,若在这0T 内被测信号的周期数为N 则被测信号的频率就是N ,选择不同的0T ,可以得到不同的测量精度。一般0T 越大,测量精度越高,但一次的测量时间及频率计所需的硬件资源也增加。 三、设计任务与要求: 1、设计一个6位频率计,测量范围从1Hz 到99 99 99Hz ,测量结果用6个数码管显示,基准时钟频率为1Hz ; 2、只显示测量结果,中间计数过程不显示;结果更新时间2秒一次; 3、频率计只设一个复位键,按下该键(reset=0)系统复位,释放该键(reset=1)系统工作,测量并显示结果。 4、显示用静态方式; 5、用Verilog HDL 实现上述要求的频率计。 四、设计源程序及注释与仿真结果 设计源程序: module pinlvji(oHEX0,oHEX1,oHEX2,oHEX3,oHEX4,oHEX5,clk_50M,clk_1Hz,reset,signal_out); @ input clk_50M,reset; //50MHz 时钟输入、复位 output[6:0] oHEX0,oHEX1,oHEX2,oHEX3,oHEX4,oHEX5; //数码管0-5,分别显示个、十、百、千、万、十万位的数字 output reg clk_1Hz; output reg signal_out; reg signal_in; reg[29:0] cnt; reg[29:0] cnt1; reg count_en; //计数允许,count_en=1时计数,下降沿到来时锁存 reg load; reg[3:0] ge,shi,bai,qian,wan,shiwan; reg cout1,cout2,cout3,cout4,cout5; reg[3:0] q0,q1,q2,q3,q4,q5; wire clr; always @(posedge clk_50M) //改变Hz 的范围,自己设定的频率1Hz-999999Hz begin

Verilog实验报告

实验报告格式要求 一、实验报告内容包括: (1)实验名称。 (2)实验目的。 (3)实验仪器及编号。写明仪器名称、型号、编号。 (4)实验原理。简单叙述有关实验原理(包括电路图或光路图或实验装置示意图)及测量中依据的的公式,式中各量的物理含义及单位,公式成立所应满足的实验条件等。 (5)实验内容及步骤。根据实验内容及实际的实验过程写明关键步骤和安全注意要点。 (6)实验观测记录。记录原始测量数据、图形等有关原始量,形式上要求整齐规范。 (7)数据处理结果。根据实验要求,采用合适的方法进行数据处理,误差分析,最后写出实际结果。 (8)小结或讨论。内容不限。可以是实验中的现象分析,对实验关键问题的体会,实验的收获和建议,也可解答思考题。 二、书写次序 (1)到(5)是进行实验预习时就应该完成的。(6)在实验中完成。做完实验后再在预习报告基础上完成(7)(8)两项。 完成一个实验,就是一次最基本的科研训练,从预习到写出一个实验报告,每一步都有极其丰富的学习内容,要积极思考,认真对待。

实验(一)简单的组合逻辑设计 实验日期2014-10-31 同组者姓名 一、实验目的 [1] 掌握基本组合逻辑电路的实现方法 [2] 初步了解两种基本组合逻辑电路的生成方法 [3] 学习测试模块的编写 [4] 通过综合和布局布线了解不同层次仿真的物理意义 二、实验仪器 计算机、FPGA开发板 三、实验内容 [1] 在ISE软件环境中进行一次完整的设计流程,并在FPGA开发板上实现与门的功能。 [2] 完成一个可综合的数据比较器的程序。 [3] 完成数据比较器的测试模块。 [4] 发挥部分:设计一个多位(2位)的数据比较器并在FPGA开发板上实现该比较器。 四、实验步骤、分析及结果(在下面写出你的代码) 代码: module compare( input a, input b, output c ); assign c=a&b; endmodule 结果如图所示:

网络交换技术实验报告

Harbin Institute of Technology 网络交换技术 实验报告 院(系)电子与信息工程学院 学科信息与通信工程(51) 学生 学号 提交报告日期2013年10月27日 哈尔滨工业大学

网络交换技术课程实验报告 一,实验目的 数据通信是通信技术和计算机技术相结合而产生的一种新的通信方式。它通过通信线路将信息发生源(数据终端)与计算机连结起来,从而可使不同地点的数据终端直接利用计算机来实现软、硬件和信息资源的共享。交换机和路由器在数据通信中起着核心作用,用来完成组网和数据交换的功能。 本实验的目的就是通过实际操作加深对交换机和路由器基本知识和原理的了解,熟悉相关配置,强化对数据通信的认识。 二,实验内容 本实验使用中兴公司生产的3900系列交换机和1800系列路由器,分别进行VLAN和QoS的配置实验。 1,中兴3900系列交换机的VLAN和QoS配置实验 1.1 ZXR103900交换机简介 ZXR103900/3200是中兴通讯自主研发的智能快速以太网交换机,本实验中使用的3928属于3900系列,3900系列可作为大型企业网、园区网的汇聚三层交换机,支持多种单播和组播路由协议。ZXR103906/3952/3928实现了全线速的二三层交换功能,广泛支持多种协议,提供各种功能。 1.2 VLAN简介 VLAN(VitualLocalAreaNetwork)是一种将物理网络划分成多个逻辑(虚拟)局域网(LAN)的技术。 每个VLAN都有一个VLAN标识(VID)。利用VLAN技术,网络管理者能够根据实际应用需要,把同一物理局域网中的用户逻辑的划分成不同的广播域(每个广播域即一个VLAN),使具有相同需求的用户处于同一个广播域,不同需求的用户处于不同的广播域。每个VLAN在逻辑上就像一个独立的局域网,与物理上形成的LAN具有相同的属性。同一个VLAN中的所有广播和单播流量都被限制在该VLAN中,不会转发到其它VLAN中。当不同VLAN的设备要进行通信时,必须经过三层的路由转发。 VLAN的优点主要有: 1.减少网络上的广播流量; 2.增强网络的安全性; 3.简化网络的管理控制。 1.3 VLAN配置 (1)一般配置 如图1所示,交换机A的端口fei_3/1、fei_3/2和交换机B的端口fei_3/1、fei_3/2属于VLAN10;交换机A的端口fei_3/4、fei_3/5和交换机B的端口fei_3/4、fei_3/5属于VLAN20,均为Access端口。两台交换机通过端口gei_7/1以Trunk方式连接,

华中科技大学Verilog语言实验报告

计算机科学与技术学院

目录 1数据通路实验 (1) 1.1实验目的 (1) 1.2实验内容及要求 (1) 1.3实验方案 (2) 1.4实验步骤 (2) 1.5故障及分析 (2) 1.6仿真与结果 (3) 1.7心得与体会 (4) 2FSM实验 (6) 2.1实验目的 (6) 2.2实验内容及要求 (6) 2.3实验方案 (7) 2.4实验步骤 (7) 2.5故障及分析 (8) 2.6仿真与结果 (8) 2.7心得与体会 (9) 3意见和建议 (11) 4附录 (13)

1 数据通路实验 1.1 实验目的 综合应用掌握的简单组合电路和时序电路的设计方法,完成一个简单的数据通路的设计。 1.2 实验内容及要求 1. 根据下图给出的数据通路(图中R0、R1和ACC是寄存器,+是加法器,其它则是多路选择器),完成相应的Verilog程序设计,图中数据线的宽度为8位,要求可以扩充至16位或者是32位; 2. 根据下图给出的数据通路(图中SUM和NEXT是寄存器,Memory是存储器,+是加法器,==0是比较器,其它则是多路选择器),完成相应的Verilog程序设

计,图中数据线的宽度为8位,要求可以扩充至16位或者是32位。 实验要求:程序必须自己编写,满足数据通路设计要求,综合结果正确。 1.3 实验方案 根据要求,先把选择器、加法器、寄存器、比较器和存储器分模块编写,在主模块中根据数据通路调用即可。题目中要求数据线宽度为8位,并且可以扩充至16位或32位,所以在前面定义WIDTH,利用parameter的参数传递功能来实现。 1.4 实验步骤 1.分模块编写代码(见附录) 2.运行综合Run Synthesis 3.综合成功后检查RTL Analysis中的电路图Schematic 1.5 故障及分析 刚开始跑出来很多线是断的,后来发现是引脚对应部分的代码没有写完整。后来加法器和ACC的参数顺序写错,导致接线与题给的不一致,发现问题后及时改

Verilog实验报告

2014-2015-2-G02A3050-1 电子电路设计训练(数字EDA部分) 实验报告 (2015 年5 月20 日) 教学班学号姓名组长签名成绩 自动化科学与电气工程学院

目录 目录 (1) 实验一、简单组合逻辑和简单时序逻辑 (1) 1.1 实验任务1——简单组合逻辑 (1) 1.1.1 实验要求 (1) 1.1.2 模块的核心逻辑设计 (1) 1.1.3 测试程序的核心逻辑设计 (1) 1.1.4 仿真实验关键结果及其解释 (2) 1.2 实验任务2——简单时序逻辑 (3) 1.2.1 实验要求 (3) 1.2.2 模块的核心逻辑设计 (3) 1.2.3 测试程序的核心逻辑设计 (3) 1.2.4 仿真实验关键结果及其解释 (4) 1.3 实验小结 (4) 实验二、条件语句和always过程块 (5) 2.1 实验任务1——利用条件语句实现计数分频时序电路 (5) 2.1.1 实验要求 (5) 2.1.2 模块的核心逻辑设计 (5) 2.1.3 测试程序的核心逻辑设计 (6) 2.1.4 仿真实验关键结果及其解释 (7) 2.2 实验任务2——用always块实现较复杂的组合逻辑电路 (8) 2.2.1 实验要求 (8) 2.2.2 模块的核心逻辑设计 (8) 2.2.3 测试程序的核心逻辑设计 (9) 2.2.4 仿真实验关键结果及其解释 (10) 2.3 实验小结 (11) 实验三、赋值、函数和任务 (12) 3.1 实验任务1——阻塞赋值与非阻塞赋值的区别 (12) 3.1.1 实验要求 (12) 3.1.2 模块的核心逻辑设计 (12) 3.1.3 测试程序的核心逻辑设计 (13) 3.1.4 仿真实验关键结果及其解释 (14) 3.2 实验任务2——在Verilog HDL中使用函数 (16) 3.2.1 实验要求 (16) 3.2.2 模块的核心逻辑设计 (16) 3.2.3 测试程序的核心逻辑设计 (18) 3.2.4 仿真实验关键结果及其解释 (19) 3.3 实验任务3——在Verilog HDL中使用任务 (20) 3.3.1 实验要求 (20) 3.3.2 模块的核心逻辑设计 (20) 3.2.3 测试程序的核心逻辑设计 (21)

相关主题