数电实验3:从电路到代码+结构化设计

这篇具有很好参考价值的文章主要介绍了数电实验3:从电路到代码+结构化设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

西南交大数电实验

练习写HDL的好地方

实验要求

一、 实验目的

1、巩固组合逻辑电路设计、仿真方法。

2、学习Verilog HDL层次化文件设计。

二、实验内容

实验内容按以下步骤,用Verilog HDL描述和仿真图示电路。该电路实现1位二进制加法,X、Y分别是加数、被加数,CIN是低位来的进位,COUT是向高位的进位,S是相加的和。真值表如下:

数电实验3:从电路到代码+结构化设计,数电实验,fpga开发,Powered by 金山文档

编辑

1、门级描述与仿真

(1)新建工程文件,工程名是:_学号_V1_1bit_adder_ga(1位加法器门级描述);

(2)新建Verilog HDL文件,将代码输入。注意:输入输出端口名必须与图上的名字完全一致,否则无法仿真!【5分】

(3)选择菜单Processing--Start Compilation,分析并综合电路,若有错误请自行更正,截图代码和编译报告(Flow Summary);【5分】

(4)选择菜单Tools—Netlist Viewers—RTL Viewer,截图逻辑电路图;【5分】

(5)建立仿真向量波形文件Waveform.vwf,运行功能仿真(Simulation—Run Functional Simulation),截图仿真结果【5分】并分析电路功能是否正确【5分】。

注:每一步都需要截图、打印、分析

2、数据流描述与仿真。【25分】

按照1中的步骤,新建工程名为:_学号_V1_1bit_adder_df(1位加法器数据流描述),完成数据流建模与仿真。

3、行为建模与仿真。【25分】

按照1中的步骤,新建工程名为:_学号_V1_1bit_adder_bh(1位加法器行为描述),完成行为建模与仿真。

4、2位二进制加电路结构化建模与仿真。【25分】

使用上面的加法器(3个中的任一个),对2位二进制加法器进行结构化建模与仿真(仿真向量Waveform.vwf1可在群文件中下载),模块名和端口定义如下:

_学号_V1_2bit_adder_st(a,b,ci,s,co); //2为二进制加法结构化建模

input a[1:0], b[1:0]; //a是2位被加数,b是2位加数

input ci; //低位来的进位输入

output co; //向高位的进位输出

output s[1:0]; //2位相加的和

其它要求同1

5、引脚锁定与下载测试

(1)查阅实验器使用说明书上的引脚号对照表,进行引脚锁定规划,填写实验报告中的引脚锁定表。将输入信号锁定到开关上(主板器件名SW0~SW15);将输出信号锁定到指示灯上(主板器件名LED0~LED7)。

(2)启动Quartus的引脚规划器Pin Planner,完成引脚锁定。

(3)重新编译整个工程,如有报错,请自行改正并重新编译通过。

(4)将下载线与实验器、电脑正确连接,并接通实验器电源。

(5)启动Programmer,将生成的工程同名sof文件用JTAG模式下载到实验器上的核心板。

(6)在实验器上测试、验证前述所设计的2位二进制加法器。

(7)将实测结果以真值表形式记录在实验报告的原始记录部分。

三、 预习要求

1、自行查找资料,自学Verilog HDL的层次化文件设计,完成本实验“实验内容”部分的设计要求。

2、对实验电路进行功能仿真,并将仿真结果截图插入报告中。

3、列出引脚锁定分配表(信号名->主板器件名->引脚号)。

4、填写编译报告。

四、 实验报告要求

1、列出通电测试结果。

2、列出实验过程出现的问题及解决措施。

3、代码和综合结果截图要求

(1)必须要有文件名(第一行红线处);

(2)代码和综合结果必须完整。

数电实验3:从电路到代码+结构化设计,数电实验,fpga开发,Powered by 金山文档
数电实验3:从电路到代码+结构化设计,数电实验,fpga开发,Powered by 金山文档

4. 仿真波形截图要求:

(1)必须要有文件名(第一行);

(2)信号名(左侧 name 列)必须清楚可读;

(3)波形必须清晰可读。

好的仿真波形示例

数电实验3:从电路到代码+结构化设计,数电实验,fpga开发,Powered by 金山文档

差的波形示例

数电实验3:从电路到代码+结构化设计,数电实验,fpga开发,Powered by 金山文档

Verilog 代码及RTL电路图

一、门级描述与仿真

a.Verilog代码

module _1bit_adder_ga(X,Y,CIN,S,COUT);
input X,Y,CIN;
output S,COUT;
wire A1_xor;
wire A1_and,A2_and,A3_and;
xor
    n1(A1_xor,X,Y),
    n2(S,A1_xor,CIN);
and
    n3(A1_and,CIN,X),
    n4(A2_and,CIN,Y),
    n5(A3_and,X,Y);
or
    n6(COUT,A1_and,A2_and,A3_and);    
endmodule 

b.RTL电路图

数电实验3:从电路到代码+结构化设计,数电实验,fpga开发,Powered by 金山文档

c.仿真结果

数电实验3:从电路到代码+结构化设计,数电实验,fpga开发,Powered by 金山文档

二、数据流描述与仿真

  1. Verilog代码

module _1bit_adder_df(X,Y,CIN,S,COUT);
input X,Y,CIN;
output S,COUT;
assign S = X ^ Y ^ CIN;
assign COUT = (CIN & X) | (CIN & Y) | (Y & X);
endmodule
  1. RTL电路图

数电实验3:从电路到代码+结构化设计,数电实验,fpga开发,Powered by 金山文档
  1. 仿真结果

数电实验3:从电路到代码+结构化设计,数电实验,fpga开发,Powered by 金山文档

三、行为建模与仿真

a.Verilog代码

module _1bit_adder_bh(X,Y,CIN,S,COUT);
input X,Y,CIN;
output S,COUT;
reg [2:0]A;
reg S,COUT;
always@(X,Y,CIN)
begin
    A[2] <=X;
    A[1] <=Y;
    A[0] <=CIN;
end
always@(A)
begin
    case(A) 
        3'b000:S <= 0;
        3'b001:S <= 1;
        3'b010:S <= 1;
        3'b011:S <= 0;
        3'b100:S <= 1;
        3'b101:S <= 0;
        3'b110:S <= 0;
        3'b111:S <= 1;
    endcase
    case(A)
        3'b000:COUT <= 0;
        3'b001:COUT <= 0;
        3'b010:COUT <= 0;
        3'b011:COUT <= 1;
        3'b100:COUT <= 0;
        3'b101:COUT <= 1;
        3'b110:COUT <= 1;
        3'b111:COUT <= 1;
    endcase
end
endmodule

b.RTL电路图

数电实验3:从电路到代码+结构化设计,数电实验,fpga开发,Powered by 金山文档

c.仿真结果

数电实验3:从电路到代码+结构化设计,数电实验,fpga开发,Powered by 金山文档

四、2位二进制加法电路结构化建模与仿真

a.Verilog代码

module _1bit_adder_ga(X,Y,CIN,S,COUT);
input X,Y,CIN;
output S,COUT;
wire A1_xor;
wire A1_and,A2_and,A3_and;
xor
    n1(A1_xor,X,Y),
    n2(S,A1_xor,CIN);
and
    n3(A1_and,CIN,X),
    n4(A2_and,CIN,Y),
    n5(A3_and,X,Y);
or
    n6(COUT,A1_and,A2_and,A3_and);
endmodule 

module _2bit_adder_st(a,b,ci,s,co);
input[1:0] a,b;
input ci;
output co;
output[1:0] s;
wire d;
_1bit_adder_ga(a[0],b[0],ci,s[0],d);
_1bit_adder_ga(a[1],b[1],d,s[1],co);
endmodule 

b.RTL电路图

数电实验3:从电路到代码+结构化设计,数电实验,fpga开发,Powered by 金山文档

c.仿真结果

数电实验3:从电路到代码+结构化设计,数电实验,fpga开发,Powered by 金山文档

有什么问题欢迎评论区留言!感谢你的关注与支持!文章来源地址https://www.toymoban.com/news/detail-717658.html

到了这里,关于数电实验3:从电路到代码+结构化设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 系统架构设计专业技能 ·结构化需求分析 - 数据流图

    现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everything is for the future of dream weaving wings, let the dream fly in reality. 点击进入系列文章目录 实体 实体可能是: (1)人物角色: 如客户、管理员、主管、经理、老师、学生 (2)组织机构 :如银行、供应商、募捐机

    2024年02月09日
    浏览(53)
  • 指令模板:技术文档设计与结构化内容架构 | AIGC实践

    【题外话】 在上一篇文章中,有朋友反馈说,【见睿思齐】的字号设置得太小了,读起来有点儿费劲。 首先,特别感谢这位热心读者,开诚布公地与我分享感受,提出宝贵意见,帮助我做得更好。 因此在这篇文章中,我尝试将字号调大1号。大家看看是否还有其他问题,欢迎

    2024年02月09日
    浏览(48)
  • Prompt进阶系列1:LangGPT(从编程语言反思LLM的结构化可复用提示设计框架)

    大语言模型 (Large Language Models, LLMs) 在不同领域都表现出了优异的性能。然而,对于非AI专家来说,制定高质量的提示来引导 LLMs 是目前AI应用领域的一项重要挑战。现有的提示工程研究已经提出了一些零散的优化原则,也有些研究设计了基于经验的提示优化器。然而,这些研

    2024年03月11日
    浏览(122)
  • 结构化数据、非结构化数据、半结构化数据

    结构化的数据一般是指可以使用关系型数据库表示和存储,可以用二维表来逻辑表达实现的数据。例如:需要多少个属性,每个属性什么类型,每个属性的取值范围等等,类似下图所示, 提前定义好了一个二维矩阵的元数据 ,包含有列名称、列的类型、列的约束等:   可见

    2024年02月09日
    浏览(67)
  • 【数电实验】实验 5 数码管动态扫描显示电路设计

    【2023-11-16:修改Y为4位宽,支持显示学号8和9】 实验要求 一、实验目的 1. 学习动态扫描显示数码管的使用。 2. 学习数据选择器及其信号分配方法。 3. 巩固 Verilog HDL 层次化设计电路的方法。 利用modelsim仿真 模块代码 1.modelsim仿真代码 2.程序源代码 RTL电路图 验收波形图 引脚

    2024年02月03日
    浏览(51)
  • 【数电实验】汽车流动转向灯电路设计

    真值表:  en X0 X1 X2 Codeout0 Codeout1 Codeout2 Codeout3 Codeout4 Codeout5 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 仿真波形图: RTL图:

    2024年02月07日
    浏览(39)
  • 【numpy基础】--结构化

    目前为止,介绍的 numpy 数组基本都是关于数值的,其实, numpy 本身就是一个用于数值计算的基础库。 不过,除了数值计算之外, numpy 也能够支持 结构化数组 。 numpy 的数组为了提高计算性能,要求数组的数据类型要一致。 但是现实情况下,我们经常遇到不是纯数值的数组

    2024年02月12日
    浏览(45)
  • elasticsearch结构化查询

    在上一篇中我们介绍了DSL相关的知识,接下来我们将会学习elasticsearch的结构化查询,同时也实践一下上一篇的DSL的查询用法 从《Elasticsearch权威指南》上摘取部分解释如下: 从上面的定义我们可以看出来结构化查询最重要的就是是否匹配么人并不是很关心相关性和分值计算。

    2024年02月01日
    浏览(49)
  • elasticsearch结构化查询(一)

    在上一篇中我们介绍了DSL相关的知识,接下来我们将会学习elasticsearch的结构化查询,同时也实践一下上一篇的DSL的查询用法 从《Elasticsearch权威指南》上摘取部分解释如下: 从上面的定义我们可以看出来结构化查询最重要的就是是否匹配么人并不是很关心相关性和分值计算。

    2024年02月05日
    浏览(63)
  • 结构化流的介绍

    目录 有界数据和无界数据 有界数据  无界数据  结构化流 基本介绍 入门案例 结构化流的编程模型 数据结构 数据源(Source) File Source Kafka Source(Spark 和 Kafka 整合) 整合Kafka准备工作 从kafka中读取数据 流式处理 批处理  数据写入Kafka中 流式处理 批处理 有界数据 数据有固定的开

    2024年01月15日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包