第二章、第三章 任务与实践

文章目录

  • 第二章、第三章 任务与实践
  • 第二章 硬件实验平台及FPGA设计流程
    • 1.跑马灯
  • 第三章 数字逻辑电路设计基础
    • 1.寄存器堆仿真
    • 2.板载RAM以及分布式RAM的仿真
      • (1)首先是查找表搭建的RAM仿真,如下图所示,we表示写使能信号,a为写地址,d为写数据,spo为读数据。
      • (2)其次是板载的RAM仿真,如下图所示,wea表示写使能,addra表示地址,dina表示写入数据,douta表示读取数据。
    • 3.数字逻辑电路的设计与调试

第二章 硬件实验平台及FPGA设计流程

我的手上只有ZCU106板卡,并没有对应的龙芯平台的板子。

1.跑马灯

组合逻辑的点灯,对于每一个灯,由Switch开关来控制。
led.v

module led(input  [7:0] switch,output [7:0] led
};assign led = switch;
endmodule

led_tb.v

module led_tb( );reg [7:0] switch;wire [7:0] led;led led_inst(.switch(switch),.led(led));initial beginswitch = 8'b0;#100;$stop;endalways #10 beginswitch = {$random} % 256;end
endmodule

led.xdc

set_property PACKAGE_PIN AL11 [get_ports {led[0]}]
set_property IOSTANDARD LVCMOS12 [get_ports {led[0]} ]
set_property PACKAGE_PIN AL13 [get_ports {led[1]}]
set_property IOSTANDARD LVCMOS12 [get_ports {led[1]} ]
set_property PACKAGE_PIN AK13 [get_ports {led[2]}]
set_property IOSTANDARD LVCMOS12 [get_ports {led[2]} ]
set_property PACKAGE_PIN AE15 [get_ports {led[3]}]
set_property IOSTANDARD LVCMOS12 [get_ports {led[3]} ]
set_property PACKAGE_PIN AM8 [get_ports {led[4]}]
set_property IOSTANDARD LVCMOS12 [get_ports {led[4]} ]
set_property PACKAGE_PIN AM9 [get_ports {led[5]}]
set_property IOSTANDARD LVCMOS12 [get_ports {led[5]} ]
set_property PACKAGE_PIN AM10 [get_ports {led[6]}]
set_property IOSTANDARD LVCMOS12 [get_ports {led[6]} ]
set_property PACKAGE_PIN AM11 [get_ports {led[7]}]
set_property IOSTANDARD LVCMOS12 [get_ports {led[7]} ]set_property PACKAGE_PIN A17 [get_ports {switch[0]}]
set_property IOSTANDARD LVCMOS18 [get_ports {switch[0]}]
set_property PACKAGE_PIN A16 [get_ports {switch[1]}]
set_property IOSTANDARD LVCMOS18 [get_ports {switch[1]}]
set_property PACKAGE_PIN B16 [get_ports {switch[2]}]
set_property IOSTANDARD LVCMOS18 [get_ports {switch[2]}]
set_property PACKAGE_PIN B15 [get_ports {switch[3]}]
set_property IOSTANDARD LVCMOS18 [get_ports {switch[3]}]
set_property PACKAGE_PIN A15 [get_ports {switch[4]}]
set_property IOSTANDARD LVCMOS18 [get_ports {switch[4]}]
set_property PACKAGE_PIN A14 [get_ports {switch[5]}]
set_property IOSTANDARD LVCMOS18 [get_ports {switch[5]}]
set_property PACKAGE_PIN B14 [get_ports {switch[6]}]
set_property IOSTANDARD LVCMOS18 [get_ports {switch[6]}]
set_property PACKAGE_PIN B13 [get_ports {switch[7]}]
set_property IOSTANDARD LVCMOS18 [get_ports {switch[7]}]

第三章 数字逻辑电路设计基础

1.寄存器堆仿真

在第2011ns时候,由于we = 1’b0,所以不写入数据,在10ns之后we=1,写入数据。

如果访问没有加载过的位置,会显示X(高阻态)

访问存过的位置,会显示写入的数据大小

2.板载RAM以及分布式RAM的仿真

(1)首先是查找表搭建的RAM仿真,如下图所示,we表示写使能信号,a为写地址,d为写数据,spo为读数据。


依次在地址16’hf0 f1 f2 f3 f3 中写入数据。

从地址16’hf0 f1 f2 f3 f3 中读取数据。

(2)其次是板载的RAM仿真,如下图所示,wea表示写使能,addra表示地址,dina表示写入数据,douta表示读取数据。


依次在地址16’hf0 f1 f2 f3 f3 中写入数据。

从图片可见,板载RAM载读取数据时候,读出数据默认在读地址的后一个时钟周期内出现。

使用提供的XDC文件,先建立50MHz的时钟,再加上输入输出的delay,然后进行综合与实现过程,观察时序报告以及对应的资源报告。

create_clock -period 20.000 -name clk -waveform {0.000 10.000} [get_ports clk]
set_input_delay -clock clk [expr 4.0] [all_inputs]
set_output_delay -clock clk [expr 3.0] [all_outputs]

用资源堆出来的RAM在写数据与读数据时候,都是与地址同步的;
但是板载的RAM在写数据时候同步,读数据时候晚于地址一个时钟周期。

3.数字逻辑电路的设计与调试

(1)删去show_data_r前面的注释#,这样每次都会保存show_data的上一个时钟沿的数值
(2)将num_scn改为num_csn

(3)将缺少的6补上去

(4)更改keep_a_g

(4)更改=为<=

(6)修改后的时序图如下所示

CPU设计实战(一)相关推荐

  1. CPU设计实战 第5章 实践任务

    CPU设计实战-汪文祥 邢金璋 第5章 实践任务一 实验环境 lab6.zip 文章目录 前言 一.实验内容 前言 在lab5的实验环境下,添加算术逻辑运算类指令,乘除运算类指令,以及乘数法配套的数据 ...

  2. 【CPU设计实战】数字逻辑电路设计基础(一)

    cpu设计中,需要遵守一些规定 禁止出现initial语句 禁止出现casex,casez 禁止使用#表达电路延迟 时钟信号clock只允许出现在always@(posedge clk)中 带复位的触 ...

  3. 可用性高达5个9!支付系统高可用架构设计实战

    可用性高达5个9!支付系统高可用架构设计实战 一.背景 对于互联网应用和企业大型应用而言,多数都尽可能地要求做到7*24小时不间断运行,而要做到完全不间断运行可以说"难于上青天". ...

  4. 单周期十条指令CPU设计与verilog实现(Modelsim)

    目录 一.实验目的 二.实验内容 三.实验原理 1. 规定 2. 原理图 四.实验步骤 1. CPU各部件实现 pc insMem acc alu cu dataMem 2. CPU例化实现 3. 编 ...

  5. ***帮兄设计实战分析

    点击後会打开新窗口显示本文章: ***帮兄设计实战分析 转载于:https://blog.51cto.com/hawke/141962

  6. Black Hat|英特尔CPU设计漏洞为恶意软件打开后门

    本文讲的是 Black Hat|英特尔CPU设计漏洞为恶意软件打开后门,约二十年前在x86处理器架构中存在一个设计缺陷,这个缺陷可以允许攻击者在低级别的计算机固件中安装恶意软件,而且安全产品无法检测的 ...

  7. [.NET领域驱动设计实战系列]专题八:DDD案例:网上书店分布式消息队列和分布式缓存的实现...

    原文:[.NET领域驱动设计实战系列]专题八:DDD案例:网上书店分布式消息队列和分布式缓存的实现 一.引言 在上一专题中,商家发货和用户确认收货功能引入了消息队列来实现的,引入消息队列的好处可以保证 ...

  8. Java生鲜电商平台-电商中海量搜索ElasticSearch架构设计实战与源码解析

    Java生鲜电商平台-电商中海量搜索ElasticSearch架构设计实战与源码解析 生鲜电商搜索引擎的特点 众所周知,标准的搜索引擎主要分成三个大的部分,第一步是爬虫系统,第二步是数据分析,第三步才 ...

  9. Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲

    Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲 Java生鲜电商平台:   微服务是当前非常流行的技术框架,通过服务的小型化.原子化以及分布式架构的弹性伸缩和高可用性, ...

  10. 《大规模分布式系统架构与设计实战》

    <大规模分布式系统架构与设计实战> 基本信息 作者: 彭渊 丛书名: 大数据技术丛书 出版社:机械工业出版社 ISBN:9787111455035 上架时间:2014-2-21 出版日期: ...

最新文章

  1. 数据中心系统管理员基础知识培训
  2. 计算机技术与自动化期刊官网,计算技术与自动化是什么级别
  3. 【转】windows多线程CreateThread与_beginthreadex本质区别
  4. ETC因背胶问题脱落,如何重新激活?
  5. 海康威视:工程项目不是我们的目标,对创新业务发展充满信心...
  6. 如何进行大数据分析与处理
  7. 用turtle实现动态汉诺塔
  8. mysql类exadata功能_查看Exadata的版本
  9. Jquery(十)jqueryUI常用功能实战
  10. html格式蠕虫病毒,XiaoBa自制蠕虫病毒[2018-1-10]
  11. jupyter不显示直接保存图片
  12. 9N90-ASEMI的MOS管9N90
  13. 网络文件共享服务(一)
  14. java 实现站内信_站内信设计
  15. 无效的m3u8怎么办_你还在为m3u8文件如何转换而发愁?看了我就有答案了
  16. 坚定信念,追求自己的理想!让那些坏人去死把!!!
  17. 软件开发工程师 - 面试手册
  18. ecplise配置tomcat
  19. 社会保障计算机考试证书查询,便利查|打开电子社保卡可查询职业资格证书啦!...
  20. exit和_exit,fock和vfock

热门文章

  1. WIN11电脑如何使用IE浏览器进行正常办公操作-以建行网银为例
  2. 计算机图标被选定无法取消,我电脑桌面上图标全被选中的状态,去不掉怎么处理?...
  3. 查看无线网络密码的操作
  4. 计算机键盘上如何打对勾,电脑键盘怎么打对勾符号
  5. 同事是竞合关系不是零和关系
  6. LBS与空间索引原理
  7. 手机什么软件测试打字速度,有什么软件是测试打字速度的,介绍个给我啊
  8. 火狐浏览器怎么样 火狐浏览器都有哪些优缺点
  9. html下拉框字体大小,select下拉框选择字体大小
  10. linux单引号作用,linux中单引号、双引号、反引号的作用