PARWAN-CPU-状态机设计Word下载.doc
- 文档编号:13014212
- 上传时间:2022-10-02
- 格式:DOC
- 页数:17
- 大小:577.50KB
PARWAN-CPU-状态机设计Word下载.doc
《PARWAN-CPU-状态机设计Word下载.doc》由会员分享,可在线阅读,更多相关《PARWAN-CPU-状态机设计Word下载.doc(17页珍藏版)》请在冰豆网上搜索。
s1…s9(如下图所示)
:
InputsandoutputsofPARWANcontrolsections:
–Appliedto,categories,signalname,functions
实验过程
;
创建工程
(1) 打开软件,选择File->
NewProject在弹出的对话框中输入工程名和路径。
(2) 单击下一步选择所使用的芯片。
Spartan3E开发板的芯片型号为Spartan3EXC3S500E芯片,FG320封装。
(3) 单击Next,进入工程信息页面,确认无误后,点击Finish完成工程的创建。
测试文件
(1)选择菜单栏中的Project->
NewSource。
(2)在SelectSourceType窗口中,选择左侧的VHDLTestBench,在右侧FileName栏中输入文件名par_control_unit_tb
(3)单击Next按钮,选择关联文件。
…
实验截图
实验代码
在实现过程中,除了定义CPU的信号接口外,还设置了一个输出类型的接口,名字叫present_state_value,主要是用来在调试或仿真的过程中输出CPU所处的状态,便于调试分析。
>
整个状态机的实现过程主要使用了case…IS…when逻辑结构。
用了present_state和next_state两个状态变量。
详细的实现代码如下所示:
LIBRARYIEEE;
USE
--
ENTITYpar_control_unitIS
PORT(clk:
INstd_logic;
`
--registercontrolsignals:
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,
--busconnectioncontrolsignals:
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,
--logicunitfunctioncontroloutputs:
arith_shift_left,arith_shift_right:
OUTstd_logic;
alu_and,alu_not,alu_a,alu_add,alu_b,alu_sub:
outstd_logic;
--inputsfromthedatasection:
·
ir_lines:
INstd_logic_vector(7DOWNTO0);
status:
INstd_logic_vector(3DOWNTO0);
--memorycontrolandotherexternalsignals:
read_mem,write_mem:
interrupt:
--test
present_state_value:
outstd_logic_vector(3DOWNTO0)
);
】
ENDpar_control_unit;
ARCHITECTUREdataflow_synthesizableOFpar_control_unitIS
TYPEcpu_statesIS(s1,s2,s3,s4,s5,s6,s7,s8,s9);
SIGNALpresent_state,next_state:
cpu_states;
SIGNALnext_state_value:
std_logic_vector(3DOWNTO0);
(
BEGIN
clocking:
PROCESS(clk,interrupt)
BEGIN
IF(interrupt='
1'
)THEN
present_state<
=s1;
present_state_value<
="
0001"
;
ELSIFclk'
EVENTANDclk='
0'
THEN
=next_state;
=next_state_value;
ENDIF;
ENDPROCESSclocking;
--
sequencing:
PROCESS(present_state,ir_lines,status,
interrupt)
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<
?
--busconnectioncontrolsignals:
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<
--logicunitfunctioncontroloutputs:
arith_shift_left<
arith_shift_right<
alu_and<
='
alu_not<
alu_a<
alu_add<
alu_b<
alu_sub<
--memorycontrolandotherexternalsignals:
read_mem<
write_mem<
CASEpresent_stateIS
WHENs1=>
-------------------------------------------1
^
IF(interrupt='
reset_pc<
next_state<
next_state_value<
ELSE
pc_on_mar_page_bus<
pc_on_mar_offset_bus<
load_page_mar<
load_offset_mar<
=s2;
0010"
ENDIF;
WHENs2=>
---------------------------------------2
--readmemoryintoir
mar_on_adbus<
read_mem<
databus_on_dbus<
alu_a<
load_ir<
increment_pc<
next_state<
=s3;
next_state_value<
0011"
WHENs3=>
--------------------------------------3
pc_on_mar_page_bus<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PARWAN CPU 状态机 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)