| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

PARWANCPU状态机设计基于FPGA的数字系统设计

文***品

贡献于2023-05-23

字数:7257





基FPGA数字系统设计

作业









学号:
姓名:
班级:





题目:设计Parwan control section 部状态机s1\s2\\s9\出功仿真?
题目二:利分层结构设计ParwanCPU出功仿真 (利实验课中出TESTBENCH)
实验原理图



Control Section Structure:s1…s9(图示)



Inputs and outputs of PARWAN control sections
–Applied to categories signal name functions


实验程
11 创建工程
(1) 开ISE13x软件选择File>New Project弹出话框中输入工程名路径
(2) 单击步选择芯片Spartan3E开发板芯片型号Spartan3E XC3S500E芯片FG320封装
(3) 单击Next进入工程信息页面确认误点击Finish完成工程创建
12 测试文件
(1) 选择菜单栏中Project>New Source
(2) Select Source Type窗口中选择左侧VHDL Test Bench右侧File Name栏中输入文件名par_control_unit_tb
(3) 单击Next钮选择关联文件
13 实验截图





实验代码
实现程中定义CPU信号接口外设置输出类型接口名字present_state_value调试仿真程中输出CPU处状态便调试分析
整状态机实现程case … IS … when 逻辑结构present_state next_state两状态变量详细实现代码示:
LIBRARY IEEE
USE IEEEstd_logic_1164ALL
USE worksynthesis_utilitiesALL

ENTITY par_control_unit IS

PORT (clk IN std_logic
register control signals
load_ac zero_ac
load_ir
increment_pc load_page_pc load_offset_pc reset_pc
load_page_mar load_offset_mar
load_sr cm_carry_sr
bus connection control signals
pc_on_mar_page_bus ir_on_mar_page_bus
pc_on_mar_offset_bus dbus_on_mar_offset_bus
pc_offset_on_dbus obus_on_dbus databus_on_dbus
mar_on_adbus
dbus_on_databus
logic unit function control outputs
arith_shift_left arith_shift_right OUT std_logic
alu_andalu_notalu_aalu_addalu_balu_sub out std_logic
inputs from the data section
ir_lines IN std_logic_vector (7 DOWNTO 0)
status IN std_logic_vector (3 DOWNTO 0)
memory control and other external signals
read_mem write_mem OUT std_logic interrupt IN std_logic
test
present_state_value out std_logic_vector (3 DOWNTO 0)
)

END par_control_unit

ARCHITECTURE dataflow_synthesizable OF par_control_unit IS

TYPE cpu_states IS (s1s2s3s4s5s6s7s8s9)
SIGNAL present_state next_state cpu_states

SIGNAL next_state_value std_logic_vector (3 DOWNTO 0)


BEGIN

clocking PROCESS (clk interrupt)
BEGIN
IF (interrupt '1') THEN
present_state < s1
present_state_value <0001
ELSIF clk'EVENT AND clk '0' THEN
present_state < next_state
present_state_value END IF
END PROCESS clocking

sequencing PROCESS ( present_state ir_lines status
interrupt)
BEGIN
load_ac < '0' zero_ac < '0' load_ir < '0'
increment_pc < '0'
load_page_pc < '0' load_offset_pc < '0' reset_pc
< '0'
load_page_mar < '0' load_offset_mar < '0'
load_sr < '0' cm_carry_sr < '0'
bus connection control signals
pc_on_mar_page_bus < '0' ir_on_mar_page_bus < '0'
pc_on_mar_offset_bus < '0' dbus_on_mar_offset_bus <
'0'
pc_offset_on_dbus < '0' obus_on_dbus < '0'
databus_on_dbus < '0'
mar_on_adbus < '0' dbus_on_databus < '0'
logic unit function control outputs
arith_shift_left < '0' arith_shift_right < '0'
alu_and <'0'alu_not <'0'alu_a <'0'alu_add <'0'alu_b <'0'alu_sub <'0'
memory control and other external signals
read_mem < '0' write_mem < '0'

CASE present_state IS
WHEN s1 >
1
IF (interrupt '1') THEN
reset_pc < '1'
next_state < s1
next_state_value <0001
ELSE
pc_on_mar_page_bus < '1'
pc_on_mar_offset_bus < '1'
load_page_mar < '1'
load_offset_mar < '1'
next_state < s2
next_state_value <0010
END IF
WHEN s2 >
2
read memory into ir
mar_on_adbus < '1'
read_mem < '1'
databus_on_dbus < '1'
alu_a < '1'
load_ir < '1'
increment_pc < '1'
next_state < s3
next_state_value <0011

WHEN s3 >
3
pc_on_mar_page_bus < '1'
pc_on_mar_offset_bus < '1'
load_page_mar < '1'
load_offset_mar < '1'
IF (ir_lines (7 DOWNTO 4) 1110) THEN
next_state < s4
next_state_value <0100
ELSE
CASE ir_lines (3 DOWNTO 0) IS
WHEN 0001 > cla
zero_ac < '1'
load_ac < '1'
WHEN 0100 > cmc
cm_carry_sr < '1'
WHEN 1000 > asl
alu_b < '1'
arith_shift_left < '1'
load_sr < '1'
load_ac < '1'
WHEN 1001 > asr
alu_b < '1'
arith_shift_right < '1'
load_sr < '1'
load_ac < '1'
WHEN OTHERS > NULL
END CASE
next_state < s2
next_state_value <0010
END IF
WHEN s4 >
4
read memory into mar offset
mar_on_adbus < '1'
read_mem < '1'
databus_on_dbus < '1'
dbus_on_mar_offset_bus < '1'
load_offset_mar < '1'
IF ( ir_lines (7 DOWNTO 6) 11 ) THEN
ir_on_mar_page_bus < '1'
load_page_mar < '1'
IF ( ir_lines (4) '1' )
THEN
next_state < s5
next_state_value <0101
ELSE
next_state < s6
next_state_value <0110
END IF
ELSE jsr or bra do not alter mar
page
IF ( ir_lines (5) '0' ) THEN
jsr
next_state < s7
next_state_value <0111
ELSE
next_state < s9
next_state_value <1001
END IF
END IF
increment_pc < '1'

WHEN s5 >
5
read actual operand from memory into mar
offset
mar_on_adbus < '1'
read_mem < '1'
databus_on_dbus < '1'
dbus_on_mar_offset_bus < '1'
load_offset_mar < '1'
next_state < s6
next_state_value <0110

WHEN s6 >
6
IF ( ir_lines (7 DOWNTO 5) 100 ) THEN jmp
load_page_pc < '1'
load_offset_pc < '1'
next_state < s2
next_state_value <0010
ELSIF ( ir_lines (7 DOWNTO 5) 101 ) THEN
mar on adbus ac on databus write
to memory
mar_on_adbus < '1'
alu_b< '1'
obus_on_dbus < '1'
dbus_on_databus < '1'
write_mem < '1'
next_state < s1
next_state_value <0001

ELSIF ( ir_lines (7) '0' ) THEN
lda and add sub
mar on adbus read memory for
operand perform operation
mar_on_adbus < '1'
read_mem < '1'
databus_on_dbus < '1'
IF ( ir_lines (6) '0' ) THEN
lda and
IF ( ir_lines (5) '0' )
THEN lda
alu_a< '1'
ELSE and
alu_and< '1'
END IF
ELSE add sub
IF ( ir_lines (5) '0' )
THEN add
alu_add< '1'
ELSE sub
alu_sub< '1'
END IF
END IF
load_sr < '1'
load_ac < '1'
next_state < s1
next_state_value <0001
END IF
WHEN s7 >
7
write pc offset to top of subroutine
mar_on_adbus < '1'
pc_offset_on_dbus < '1'
dbus_on_databus < '1'
write_mem < '1'
load_offset_pc < '1'
next_state < s8
next_state_value <1000

WHEN s8 >
8
increment_pc < '1'
next_state < s1
next_state_value <0001

WHEN s9 >
9
IF ( all_or (status AND ir_lines (3 DOWNTO 0)) '1') THEN
load_offset_pc < '1'
END IF
next_state < s1
next_state_value <0001

实验原理

实验程
21 创建工程
(1) 开ISE13x软件选择File>New Project弹出话框中输入工程名路径
(2) 单击步选择芯片Spartan3E开发板芯片型号Spartan3E XC3S500E芯片FG320封装
(3) 单击Next进入工程信息页面确认误点击Finish完成工程创建
22 设计输入
选择Project>Add copy of source实验源代码添加工程中
23 综合实现
(1) 编写汇编测试代码
(2)文编辑器开实验源代码中simpleasm文件
(3)测试代码转换存文件
(4)编译执行程序

24 设计仿真

25 结果截图





编写testbench代码状态机进行功仿真Testbench核心代码:
stim_proc process
begin
hold reset state for 100 ns
wait for 10 ns
ir_lines < 01101111 SUB loc
wait for clk_period*10
ir_lines < 10001111 JMP loc
wait for clk_period*10
ir_lines < 10101111 STA loc
wait for clk_period*10
ir_lines < 11111000 BRA_V_addr
wait for clk_period*10
ir_lines < 11100001 CLA
wait for clk_period*10

end process

代码见测试波形中选取4种ir_line值测试面选择两处仿真波形进行分析:

图51 STA loc 仿真波形图
STA loc 仿真波形图中连续时钟周期里ir_line值10101111知该指令STA 1111结合parwan状态转换关系开始CPU处s1状态interrupt0’转s2状态转s3状态ir_line(7to4)1110转s4状态ir_line(7to4)11X0转s6状态ir_line(7to5)1010转回s1完成次循环周期相应状态相应信号会设1s1中信号load_page_marload_offset_marpc_on_mar_page_buspc_on_mar_offset_bus等信号1状态机设计相符

图52 CLA 仿真波形图
CLA 仿真波形图中黄线部分开始时钟周期ir_line值11100001parwan指令集知指令CLA结合parwan状态设计开始CPU处s1状态interrupt0’转s2状态转s3状态ir_line(7to4)1110转s2状态s2s3中循环验证程序正确性

实验总结:次作业前四次机基础通利机实验力部分实验代码进行次Parwan CPU设计基说次作业机更难度首先进行次综合性实验次机时均出实验步骤否认次实验更提高Parwan CPU理解提高实验力更帮助



文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

基于FPGA的温度检测系统设计

XX学院信息工程学院数字系统与Verilog设计报告题 目: 基于FPGA的温度检测系统设计 姓 名: 学 号: 指导老师: 2014摘 要 本文利用数字温度传感器DS18B20的数据接口和特点,阐述了一种基于现场可编程门阵列( FPG

文***享 3年前 上传610   0

基于FPGA的数字跑表

基于FPGA的数字跑表学院:物电学院姓名: 学号:班级:班日期:2011年X月X日目录一、实例的主要内容 3二、实验目标: 41初步掌握Verilog HDL语言的设计方法 42、完成一个数字跑表的设计。 4三、实验原理: 4四、程序代码及分析 5五、实验步骤 95.1新建一个文件夹, 95.2创建工程 105.3 编译、运行程

文***品 3年前 上传632   0

基于FPGA的电梯控制系统设计毕业设计论文

毕 业 设 计 [论 文]题 目: 基于FPGA的电梯控制系统设计 学 院: 电气与信息工程学院 专 业: 电 子 信 息 工 程 姓 名:

文***享 3年前 上传1277   0

基于FPGA的FSK数字调制解调器设计

等级:课 程 设 计课程名称专业课程设计课题名称基于FPGA的FSK数字调制解调器设计专 业电子信息工程班 级学 号姓 名指导老师2016年X月X日电气信息学院专业设计任务书课题名称基于FPGA的FSK数字调制器或解调器设计姓 名专业电子信息工程班级 学号指导老师课程设计时间

文***品 1年前 上传336   0

基于FPGA的IIR滤波器设计

 基于FPGA的IIR滤波器设计摘 要:数字信号处理在科学和工程技术许多领域中得到广泛的应用,与FIR数字滤波器相比,IIR数字滤波器可以用较低的阶数获得较高的选择性,故本课题采用一种基于FPGA的IIR数字滤波器的设计方案,首先分析了IIR数字滤波器的原理及设计方法,然后通过MAX+PLUSⅡ的设计平台,

文***品 3年前 上传541   0

数字系统设计-秒表设计

 深 圳 大 学 实 验 报 告 课程名称: 数字系统设计 实验项目名称: Verilog秒表设计 学院: 信息工程学院

l***金 5年前 上传1234   0

基于FPGA的键盘扫描程序的设计毕业设计

X X 学 院 CHANGSHA UNIVERSITY本科生毕业设计设计(论文)题目: 基于FPGA的键盘扫描程序的设计 系    部: 专 业:

知***享 4年前 上传866   0

基于FPGA的多路彩灯控制器的设计课程设计

 FPGA课程设计报告 学院: 信息工程学院班 级: 信息级班姓 名: 学 号: 完成时间: 2015年X月X日 评阅意见: 题目基于FPGA多路彩灯控制器的设计一、引言 21世纪,电子技术迅猛发展,高薪技术日新月异。传统的设计方法正逐步退出历史的舞台,取而代之的

文***品 3年前 上传530   0

基于FPGA的计数器设计电子技术课程设计

XX学院电子技术课程设计 题 目 _基于FPGA的计数器设计___ _________________________ 学生姓名 _ XXX_________________ 专业班级 电子信息工程班__ __

z***u 1年前 上传322   0

基于FPGA的语音录制与回放系统

本语音录制与回放系统的基本工作原理是将模拟语音信号通过模数转换器(A/D)转换成数字信号,再通过FPGA(控制器)将数字信号存储到存储器中; 回放时, 由 FPGA控制将数据从存储器中读出, 然后通过数模转换器(D/A)转换成模拟信号, 经放大后由扬声器输出。

国***锅 5年前 上传1188   0

基于UML的图书管理系统设计课程设计

滨江学院 统一建模语言课程设计报告( 2013 -- 2014 年度第 二 学期)课程名称: 统一建模语言课程设计 题 目: 图书馆管理系统 院 系: 计算机系 班 级: 学 号: 姓 名:

文***品 1年前 上传399   0

EDA与数字系统课程设计

 课 程 设 计 任 务 书(2011 ~2012 第三学期)设 计 题 目: EDA与数字系统课程设计 学 院 名 称: 电气与自动化工程学院 专 业(班 级): 自动化2010级 姓 名(学 号): 起 讫 日

文***享 3年前 上传564   0

基于SpringBoot博客系统的设计与实现

 基于SpringBoot博客系统的设计与实现Design and implementation of blog system based on SpringBoot中文摘要互联网随着社会的进步也渐渐得到普及,给人们带来很多便利,可以提供更多的服务,在互联网还没有发展起来之前,人们需要购买纸质报

平***苏 2年前 上传972   0

基于LabVIEW的数据采集系统设计

基于LabVIEW的数据采集系统设计--图像采集基于LabVIEW的数据采集系统设计 ——图像采集摘 要数字图像处理技术的应用越来越广泛,在国防建设、工农业生产、人们的日常生活中,都用到了数字图像处理技术。图像识别是数字图像处理技术的一个组成部分,在卫星遥感、航拍等领域的应用也比较广泛。本文主要介绍了在LabVIEW软件下,利用摄像头完成图像的采集和处理的虚拟仪器

平***苏 2年前 上传673   0

FPGA课程设计基于RAM的十口8位计数器

FPGA课程设计报告题 目: 基于RAM的十口8位计数器 院 系: 通信与信息工程学院 专业班级: 电科班 学生姓名: 导师姓名:

文***品 3年前 上传455   0

通信工程基于FPGA的图像数据处理FIFO核设计论文

 基于FPGA的图像数据处理 FIFO核设计 院 系:信息科学与工程学院 专 业 班:通信1201 姓 名: 学 号: 指导教师: 2016年5月 基于FPGA的图像数据处理 FIFO核设计 The Design of FIFO Core Processing Image Dat

文***品 5年前 上传1084   0

基于单片机的数字温度计设计课程设计

基于单片机的数字温度计设计引言随着现代信息技术的飞速发展和传统工业改造的逐步实现.能够独立工作的温度检测和显示系统应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。与传统的温度计相比,这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。选用AT89C51型单

文***享 3年前 上传945   0

基于原理图的数字跑表设计课程设计

XX大学设计报告课程名称: 基于FPGA的现代数字系统设计 设计名称: 基于原理图的数字跑表设计 姓 名: 学 号: 班 级: 指导教师:

文***享 11个月前 上传319   0

基于51单片机数字温度计设计课程设计

课 题: 基于51单片机数字温度计设计专 业: 电子信息工程班 级: 班学 号: 姓 名: 指导教师: 设计日期:成 绩:XX大学XX学院电气学院 基于51单片机数字温度计设计一、设计目的 1、掌握单片机电路的设计原理

文***品 3年前 上传980   0

基于MATLAB的IIR数字滤波器的设计与仿真毕业设计

 本科毕业设计论文 题 目 基于MATLAB的IIR数字滤波器的设计与仿真 专业名称 电子信息工程 学生姓名 指导教师 完成时间 20XX年6月 目录 摘 要 1 ABSTRACT 2 前 言 3 第1章 滤波

z***u 5年前 上传1528   0

基于安卓系统的点餐系统毕业设计

 本科毕业论文(设计) 题 目: 基于安卓系统的点餐系统 专 业: 姓 名: 指导教师: 职 称: 答辩日期: 基于安卓系统的点餐系统 摘 要 现如今我们生活在一个信息化的时代,信息数据随处可见。特别是无线数据传输

z***u 5年前 上传1691   0

通信系统课程设计基于MATLAB的FM通信系统设计

XX大学课 程 设 计 报 告课程名称: 通信系统课程设计 设计名称: 基于MATLAB的FM通信系统设计 姓 名: 学 号: 班 级:

文***享 3年前 上传719   0

数字电路与系统设计课后习题答案

1.1将下列各式写成按权展开式: (352.6)10=3×102+5×101+2×100+6×10-1 (101.101)2=1×22+1×20+1×2-1+1×2-3 (54.6)8=5×81+54×80+6×8-1 (13A.4F)16=1×162+3×161+10×160+4×16-1+15×16-2 1.2按十进制0~17的次序,列表填写出相应的二进制、八进制、十六进制数。

n***s 5年前 上传2497   0

基于SSH框架的图书管理系统的设计与实现

基于SSH框架的图书管理系统的设计与实现基于SSH框架的图书管理系统摘 要 如今已经我们已经步入了信息时代,而在信息科技快速发展的形势下,网络现已成为我们工作和日常生活中必不可少的一部分。计算机技术的发展不仅提高了我们的工作效率,为日常工作提供了极大的便利,而且还在大大地改善了我们生活质量。通过计算机代替人工来处理数据已经成为趋势。传统的通过人工来管理图书资源和读者借阅信息

平***苏 2年前 上传758   0

基于Android的教学课程系统设计与开发

摘 要移动应用已经成为人们生活必不可缺的一部分,大学生身为移动应用的最大用户群体,在生活学习娱乐各个方面都与移动应用有着紧密联系,然而针对大学生校园学习的移动应用却寥寥无几,因为不同的学校,甚至不同的院系,都有着自己独特的情况。该项目借鉴了现有的一些和学习相关的移动应用,结合软件学院的特点,针对软件学院的学生,提供了学生日常学习生活常用的一些功能。主要分为我的课表,我的日程,我的学习

平***苏 3年前 上传612   0