问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

verilog hdl 贺敬凯写的,有没有什么好点的教案啊,,有的话发给我

发布网友 发布时间:2022-04-26 09:02

我来回答

1个回答

热心网友 时间:2023-10-09 03:25

基于FPGA的专用CPU的设计
摘要:简要介绍了专用CPU的组成及其工作原理,给出了基于Altera公司的FPGA实现专用CPU的设计过程和电路结构。设计在QuartusII软件中完成,并给出了仿真波形。该设计用FPGA实现,因此有许多优点,可以灵活地地扩展或修改ALU、寄存器文件等,可以很方便地转变为其他专用CPU。
关键词:专用处理器; 数据路径; 控制器

Design of Application specific processor Based on FPGA
Abstract:This article simply introced the structure and the work principle of Application specific processor,then brought forward the designed process and electric circuit structure of Application specific processor. The design and simulation is completed in the environment of QuartusII software. The design is implemented with FPGA, so it has many advantages, such as flexible ALU, register file, etc. .
Keywords: Application specific processor; data path; controller

1 引言
处理器是计算机中的重要部分,也是嵌入式系统中必不可少的部分。随处理问题的不同,处理器有着不同的定制化程度,据此可将处理器分类三类[1]:通用处理器、单用途处理器和专用处理器。这三类处理器在NRE费用、上市时间、功耗和性能等方面有着巨大的差异,这也是嵌入式系统设计者在三种处理器之间作选择出的依据,三类处理器之间的差异可参阅文献[1]。虽然三类处理器有着各自的特点,但在具体设计实现方面,这三类处理器则大同小异。
在现代电子设计中,采用FPGA来实现数字系统具有很高的性价比,设计参数和设计指标的调整也比较灵活,因此在电子设计中逐渐为大家所采用[2~3]。同时,嵌入式系统日新月益,其中很重要的一个方面是广泛采用专用处理器,这主要是因为一方面专用处理器具有针对性,针对应用作了优化,功耗和性能有显著提高,另一方面也可以推出具有自主知识产权的产品,领先竞争对手。有鉴于此,本文尝试采用FPGA来实现能够完成某特定功能的专用处理器,以此说明专用处理器的设计方法。

2 专用处理器结构
专用处理器是一个可编程处理器,针对某一特定类型的应用进行了优化。这些特定类型的应用具有共同的特点,例如嵌入式控制、数字信号处理等,典型的专用处理器有单片机、数字信号处理器等。在专用处理器的设计过程中,设计者可针对现实中的应用对通用处理器的数据路径进行优化,可能是增加专门的功能单元执行常用运算以及删除不常用的其他功能单元。专用处理器的结构如图1所示。

图1 专用处理器结构
Fig.1 Structure of Application specific processor
图中,数据路径可针对特定的应用进行定制,寄存器可以增加,并且寄存器允许在一个指令内把一个寄存器内容与某一存储器位置相加,以减少寄存器数量,简化控制器。

3 专用处理器设计方案
3.1 专用处理器可完成的功能
要求本专用处理器可完成自然数的相加功能。例如完成:0+1+2+…+10=?。算法用C语言可表示为:
int total = 0;
for (int i=10; i!=0; i--)
total += i;
// next instructions...
3.2 功能的实现
为了设计专用处理器,对可应用于该专用处理器的指令集作出约定是非常必要的。针对累加功能,可以约定下面的一个简单的指令集。

图2 简单指令集
Fig.2 Simple instruction set
从该指令集我们可以看出该专用处理器的一些结构特点:比如,在寄存器文件*有4个寄存器,立即数最多为4位二进制数等等。当然,可以根据专用处理器的功能要求修改指令集。在对图2的指令集作出约定后,我们就可以用汇编语言来描述算法,汇编语言代码如下:
// 0 MOV R0,#0; //total=0
// 1 MOV R1,#10; //i=10
// 2 MOV R2,#1; //常数1
// 3 MOV R3,#0; //常数0
// Loop: JZ R1,NEXT; //如果i=0,则完成
// 5 ADD R0,R1; //total+=i
// 6 SUB R1,R2; //i--
// 7 JZ R3,Loop //不为零则跳转
// NEXT: HALT //停在这里
在此基础上可以方便地将求和算法转换为机器码并存放在程序存储器中,如下所示:
PM [0] = 10'b0011_00_0000; //MOV R0,#0;
PM [1] = 10'b0011_01_1010; //MOV R1,#10;
PM [2] = 10'b0011_10_0001; //MOV R2,#1;
PM [3] = 10'b0011_11_0000; //MOV R3,#0;
PM [4] = 10'b0110_01_1000; // JZ R1,NEXT;
PM [5] = 10'b0100_00_0100; //ADD R0,R1;
PM [6] = 10'b0101_01_1000; //SUB R1,R2;
PM [7] = 10'b0110_11_0100; //JZ R3,Loop
PM [8] = 10'b1111_00_1111; //halt
显然,程序存储器的字长取为10bit较为合适。目前市面上常见的存储器的字长为8位、16位、32位或64位。当然,我们的设计可以很方便地根据需要将每条指令的机器码扩展为16bit。

3.3 系统设计方案
本系统主要由控制器和数据路径两大部分构成。由于本设计涉及的程序代码较少,故本设计将程序代码存放在了控制器内部的一个数组中,而没有单独设计一个程序存储器。事实上,可以很容易地单独设立一个程序存储器,并在控制器中增加读取程序存储器的操作,这部分原理清晰,实现容易,感兴趣的读者可自行设计。

图3 系统设计原理框图
Fig.3 Principle of the system design

4 专用处理器的设计实现
4.1 专用处理器的设计实现
根据图3的原理,在QuartusII软件中实现该设计,整个专用处理器的设计结构框图如图4所示。整个处理器分为控制器和数据路径两部分,两个部分的工作时钟设计为两个同频不同相的时钟。
图4 专用处理器实现框图
Fig.4 Implementation of Application specific processor
图4中控制器中的状态机的设计无疑是最重要也是最容易出错的地方。由于控制器的代码较长,这里仅摘录用于加法部分的状态机,代码使用Verilog HDL语言书写。
case(state)
s0: //-- steady state
begin
PC = 0;
if(start == 1'b1)
state <= s1;
else
state <= s0;
end
s1: //-- fetch instruction
begin
IR = PM[PC];
OPCODE = IR[9:6];
register=IR[5:4];
address= IR[3:0];
state <= s2;
end
s2://-- increment PC
begin
PC = PC + 1;
state <= s4;
end
s4://-- decode instruction
begin
case(OPCODE)
add:
state <= s6;


halt:
state <= done;
default:
state <= s1;
endcase
end
s6:
begin //-- add
sel_rf=IR[3:2];
en_rf=1;
r_wf=1;
state <= s6_2;
end
s6_2:
begin
en_reg=1;
state <= s6_3;
end
s6_3:
begin
sel_rf=register;
en_rf=1;
r_wf=1;
state <= s6_4;
end
s6_4:
begin
en_alu=1;
sel_alu=2'b10;
state <= s6_5;
end
s6_5:
begin
sel_rf=register;
en_rf=1;
r_wf=0;
state <= s9;
end
s9: //-- go back for next instruction
state <= s1;
done: //-- stay here forever
state <= done;
在图4中,又对数据路径部分进行了细分,主要包括ALU和REGISTER FILE两部分,细分框图如图5所示。

图5 数据路径部分实现框图
Fig.5 Implementation of the datapath
由图5可以看出,数据路径部分包括二选一数据选择器、寄存器、寄存器文件、ALU等部分。这些部分的时钟为同一个时钟。
上述的设计具有很大的灵活性,可以根据不同的实际应用情况来修改参数。例如,对于寄存器文件中的寄存器数目,可以根据实际的情况增减;对于ALU中进行的计算,也可以根据实际情况进行增减,等等。
4.2 仿真验证
仿真时,取CLK的时钟周期为10ns,也就是工作时钟为100MHz。将寄存器文件中的寄存器选择信号连接至seclect,将存入寄存器中数据的端口连接至resister_in,将这些信号连同程序计数器PC和状态机信号作为待观察信号,如仿真窗口所示。仿真波形如图6所示。从图中可以看出,该专用处理器完成了累加的功能,累加的结果为55。该仿真结果表明该设计是正确的。

图6 仿真波形
Fig.6 simulation waveform
我们也可以将该设计引脚锁定,建立SignalTap文件,引出相应的引脚,然后将设计编译下载到硬件FPGA板中,通过逻辑分析仪观察。硬件的验证结果同以上仿真结果,这同样可以说明设计是正确的。

5 结束语
越来越多的专用处理器应用于嵌入式系统中,这对嵌入式系统的应用和发展起到了很大的推动作用。本文完成了一个功能简单的专用处理器的设计,该设计用FPGA实现,因此具有很高的灵活性。该设计可以看作是一个专用处理器的原型产品,我们可以在此基础上增加元器件,比如可以在寄存器文件模块中增加更多的特定功能寄存器,也可以在ALU中完成更多的算术逻辑功能,如移位、计数等功能,这样就可以形成一个功能更强大的专用处理器,甚至可以构建一个通用处理器。

参考文献(References)
[1] [美]Frank vahid, Tony Givargis著, 骆丽译. 嵌入式系统设计[M]. 北京航空航天大学出版社,2004年第一版
Frank vahid, Tony Givargis. Embedded system design[M]. Beihang University Press, 2004(in Chinese)
[2] 贺敬凯. 基于FPGA的信号发生器的设计 [J]. 深圳信息职业技术学院学报, 2008年02期
He Jingkai. Signal Generator Design Based on FPGA [J]. Journal of Shenzhen Institute of Information Technology, 2008,No.2
[3] 潘松,黄继业. EDA技术与VHDL[M]. 清华大学出版社,2007年第二版
PAN Song, HUANG Jiye. EDA technology and VHDL[M]. Tsinghua University Press, 2007(in Chinese)

兄弟 你找的是不是这
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎么样制作个人简历 上海海事大学对外交流多麽出国会不会容易一些 上海海事大学提前批今年要几号才能出来 怎么查找大学家长群 北京慧学堂在线教育学校的老师打电话来说要交3480元钱,给孩子半年的在... 左脸颊长青春痘是什么原因? 某商店上午9:00开始营业全天营业8小时下午几点关门 (2012?泗县模拟)某商店每天10:00-18:00营业,全天营业88小时. 某商店每天9:20-18:00营业,全天营业()小时。老师早上7:30到校,下午4... 商场营业时间是上午8:00-下午6:00,一位顾客向一位老先生嗯打听时间了... 什么叫做移项?今天刚学移项,搞不懂什么叫移项?要怎么移? 如何呼叫转移? 如何呼叫转移啊? OPPO A91用的是哪种SIM卡? 怎样呼叫转移 村长可以签订5年后的土地租赁合同吗? 怎么样弄呼叫转移? 0PPOA91型号pcpM00-11-A.19-fe 407a2d多少钱? 你好oppopcpm00这款手机多少钱? 重新签订租赁合同,租期仍为五年,租金不高于原房租的百分之十 这是什么意思 手机如何呼叫转移! oppoa91手机型号pcpm00登录OPPO账号显示登录设备是19151是什么意思? 手机怎么办理呼叫转移功能 合作社,和我签合同五年租金可以一次给清吗? Pcpm00刷抖音时声音一会大一会小怎么回事? 手机怎么操作呼叫转移? 租房合同五年(但合同上面没写明违约金) 房东不租了怎么办???高悬赏 房屋租赁签订五年合同后未按原合同履行两年后甲方要求按原合同履行,能拒绝吗? 租赁合同填五年还剩两年怎么办合同有规定,也有违约金怎么办? 甲乙订立房屋租赁合同,租期五年,第四年重新签订了一年,这个合同有效吗? 在PC上的VisualBoyAdvance中,如何调超级绿宝石7.0的金手指??? 这个图是情头吗 这张图片是哪部动漫里面的 谁知道这张图片是哪部动漫的? 手电筒有必要用南孚电池这样的好电池吗?1元一对的5号电池上手电筒里就可以了吧? 百目鬼静的角色设定 百目鬼静的介绍 怎样检测自己适合什么发型? xxxholic真人版里,百目鬼静的扮演者是谁? 抖音发型测试怎么用 xxxholic漫画里 四月一日和百目鬼到底怎么样了 xxxHOLiC真人版的人物介绍 如何测试自己适合什么发型呢? xxxHOLiC笼徒梦百目鬼要结婚了!!!谁能告诉我这不是真的!!! XXXholic中,四月一日到底等了侑子几年?漫画大结局的时候坐在四月一日旁边的是白目鬼静的曾孙吗? 怎么才能知道自己适合什么样的发型? 动漫中有哪几位异瞳少年? 怎么测试自己适合什么发型 四月一日灵异事件簿原创动漫中百目鬼静怎么死了?希望可以把百目鬼静怎么死了的剧情好好地介绍一下 想买个强光手电,介绍下