CPU设计实战(一)
第二章、第三章 任务与实践
文章目录
- 第二章、第三章 任务与实践
- 第二章 硬件实验平台及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设计实战(一)相关推荐
- CPU设计实战 第5章 实践任务
CPU设计实战-汪文祥 邢金璋 第5章 实践任务一 实验环境 lab6.zip 文章目录 前言 一.实验内容 前言 在lab5的实验环境下,添加算术逻辑运算类指令,乘除运算类指令,以及乘数法配套的数据 ...
- 【CPU设计实战】数字逻辑电路设计基础(一)
cpu设计中,需要遵守一些规定 禁止出现initial语句 禁止出现casex,casez 禁止使用#表达电路延迟 时钟信号clock只允许出现在always@(posedge clk)中 带复位的触 ...
- 可用性高达5个9!支付系统高可用架构设计实战
可用性高达5个9!支付系统高可用架构设计实战 一.背景 对于互联网应用和企业大型应用而言,多数都尽可能地要求做到7*24小时不间断运行,而要做到完全不间断运行可以说"难于上青天". ...
- 单周期十条指令CPU设计与verilog实现(Modelsim)
目录 一.实验目的 二.实验内容 三.实验原理 1. 规定 2. 原理图 四.实验步骤 1. CPU各部件实现 pc insMem acc alu cu dataMem 2. CPU例化实现 3. 编 ...
- ***帮兄设计实战分析
点击後会打开新窗口显示本文章: ***帮兄设计实战分析 转载于:https://blog.51cto.com/hawke/141962
- Black Hat|英特尔CPU设计漏洞为恶意软件打开后门
本文讲的是 Black Hat|英特尔CPU设计漏洞为恶意软件打开后门,约二十年前在x86处理器架构中存在一个设计缺陷,这个缺陷可以允许攻击者在低级别的计算机固件中安装恶意软件,而且安全产品无法检测的 ...
- [.NET领域驱动设计实战系列]专题八:DDD案例:网上书店分布式消息队列和分布式缓存的实现...
原文:[.NET领域驱动设计实战系列]专题八:DDD案例:网上书店分布式消息队列和分布式缓存的实现 一.引言 在上一专题中,商家发货和用户确认收货功能引入了消息队列来实现的,引入消息队列的好处可以保证 ...
- Java生鲜电商平台-电商中海量搜索ElasticSearch架构设计实战与源码解析
Java生鲜电商平台-电商中海量搜索ElasticSearch架构设计实战与源码解析 生鲜电商搜索引擎的特点 众所周知,标准的搜索引擎主要分成三个大的部分,第一步是爬虫系统,第二步是数据分析,第三步才 ...
- Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲
Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲 Java生鲜电商平台: 微服务是当前非常流行的技术框架,通过服务的小型化.原子化以及分布式架构的弹性伸缩和高可用性, ...
- 《大规模分布式系统架构与设计实战》
<大规模分布式系统架构与设计实战> 基本信息 作者: 彭渊 丛书名: 大数据技术丛书 出版社:机械工业出版社 ISBN:9787111455035 上架时间:2014-2-21 出版日期: ...
最新文章
- 数据中心系统管理员基础知识培训
- 计算机技术与自动化期刊官网,计算技术与自动化是什么级别
- 【转】windows多线程CreateThread与_beginthreadex本质区别
- ETC因背胶问题脱落,如何重新激活?
- 海康威视:工程项目不是我们的目标,对创新业务发展充满信心...
- 如何进行大数据分析与处理
- 用turtle实现动态汉诺塔
- mysql类exadata功能_查看Exadata的版本
- Jquery(十)jqueryUI常用功能实战
- html格式蠕虫病毒,XiaoBa自制蠕虫病毒[2018-1-10]
- jupyter不显示直接保存图片
- 9N90-ASEMI的MOS管9N90
- 网络文件共享服务(一)
- java 实现站内信_站内信设计
- 无效的m3u8怎么办_你还在为m3u8文件如何转换而发愁?看了我就有答案了
- 坚定信念,追求自己的理想!让那些坏人去死把!!!
- 软件开发工程师 - 面试手册
- ecplise配置tomcat
- 社会保障计算机考试证书查询,便利查|打开电子社保卡可查询职业资格证书啦!...
- exit和_exit,fock和vfock
热门文章
- WIN11电脑如何使用IE浏览器进行正常办公操作-以建行网银为例
- 计算机图标被选定无法取消,我电脑桌面上图标全被选中的状态,去不掉怎么处理?...
- 查看无线网络密码的操作
- 计算机键盘上如何打对勾,电脑键盘怎么打对勾符号
- 同事是竞合关系不是零和关系
- LBS与空间索引原理
- 手机什么软件测试打字速度,有什么软件是测试打字速度的,介绍个给我啊
- 火狐浏览器怎么样 火狐浏览器都有哪些优缺点
- html下拉框字体大小,select下拉框选择字体大小
- linux单引号作用,linux中单引号、双引号、反引号的作用