Find Jobs
Hire Freelancers

Build a Small CPU Micro-Architecture

$10-30 USD

已完成
已发布超过 7 年前

$10-30 USD

货到付款
Your task is to construct a partial CPU micro-architecture (Thunderbolt) for the Instruction Set Architecture (ISA). The ISA: Memory is 4096 16-bit words and is word addressed (i.e., each 16-bit word has an address, not each 8-bit byte). There is a 16-bit register named ACCUM, a 12-bit register named INDEX, a 2-bit register named CC, and a 12-bit register named PC (the program counter). ACCUM, INDEX, and PC are initially 0. CC is initially 2. All instructions are 16 bits in one of the two formats: A format Bits 15-13 = op code Bits 12 = index bit Bits 11-0 = an immediate value 3 1 12 +---+-+------------+ | op|i| imm | +---+-+------------+ B format Bits 15-13 = op code Bits 12-10 = a condition Bits 9-0 = a distance 3 3 10 +---+---+---------+ | op|cnd| dist | +---+---+---------+ In the descriptions below for A format instructions, "EA" refers to an unsigned 12-bit effective (memory) address, computed as follows: if i=0, the EA is "imm"; if i=1, the EA is the sum of "imm" (2's complement) and the contents of the INDEX register (2's complement). The EA, although computed as a 2's complement number, is treated as unsigned when accessing memory (i.e., a negative value will be interpreted to be a large positive value). In the descriptions below for the B format instructions, "TA" refers to an unsigned 12-bit branch target address, computed by sign extending "dist" to 12 bits and adding it to the contents of the PC register (after the PC has been incremented). The TA, although computed as a 2's complement number, is treated as unsigned when put into the PC. All A-format instructions except "st" set the CC register based on the value being put into either the ACCUM or INDEX register. If the value, interpreted as a 2's complement value, is <0, CC is set to 1. If the value, interpreted as a 2's complement value, is =0, CC is set to 2. If the value, interpreted as a 2's complement value, is >0, CC is set to 3. The instructions are: A format ld i,imm opcode = 0 ACCUM = M[EA] , set CC as described above. ldi i,imm opcode = 1 INDEX = lower 12 bits of M[EA] , set CC as described above. st i,imm opcode = 2 M[EA] = ACCUM add i,imm opcode = 3 ACCUM += M[EA] , set CC as described above. addi i,imm opcode = 4 INDEX += lower 12 bits of M[EA] , set CC as described above. sub i,imm opcode = 5 ACCUM -= M[EA] , set CC as described above. subi i,imm opcode = 6 INDEX -= lower 12 bits of M[EA] , set CC as described above. B format halt opcode = 7, cnd = 0 Stop execution (i.e., terminate the fetch/execute cycle). b dist (branch always) opcode = 7, cnd = 7 If CC = 1, 2 or 3, PC = TA bz dist (branch zero) opcode = 7, cnd = 2 If CC = 2, PC = TA bnz dist (branch not zero) opcode = 7, cnd = 5 If CC = 1 or 3, PC = TA bn dist (branch negative, i.e., <0) opcode = 7, cnd = 4 If CC = 1 , PC = TA bp dist (branch positive - i.e., >0) opcode = 7, cnd = 1 If CC = 3 , PC = TA bnp dist (branch not positive - i.e, <=0) opcode = 7, cnd = 6 If CC = 1 or 2 , PC = TA bnn dist (branch not negative - i.e., >=0) opcode = 7, cnd = 3 If CC = 2 or 3 , PC = TA Based off the given information, the circuit should look something like the attached photo to start. You're welcome to build the circuit in any program you'd like, but the final circuit should use pipe-lining to improve the cycle time. What I need from you is a picture of the circuit, the original file, and proof it'll properly execute each instruction. If you have any questions let me know and I'll do my best to answer them.
项目 ID: 12080147

关于此项目

6提案
远程项目
活跃7 年前

想赚点钱吗?

在Freelancer上竞价的好处

设定您的预算和时间范围
为您的工作获得报酬
简要概述您的提案
免费注册和竞标工作
颁发给:
用户头像
Hello! Please check my reviews to know a bit about me and my work. It would be great if I could help you out. Thank you!
$166 USD 在3天之内
5.0 (5条评论)
3.1
3.1
6威客以平均价$235 USD来参与此工作竞价
用户头像
I am an Electrical Engineer having specialization in Electronics and Control, teaching in Electrical Department at FAST National University Pakistan. I am also persuing my MS degree in Electrical Engineering with specialization in CONTROL. I have taught the followings courses, and also done many projects related to these subjects as well as related to consumer electronics products. 1. Control System Design & Modelling (Continuous, Discrete, Linear, Non-Linear, Optimal, Fuzzy Logic + Matlab & Simulink) 2. Digital System/Logic Design (Verilog, VHDL, Logisim) 3. Micro-controllers (8051, Arduino, PIC) 4. Power Electronics (PSIM, MATLAB, PSpice) 5. Control of Electric Machine Drives 6. Circuit Analysis and Designe etc 7. PCB Design (Proteous + Ultiboard + Altium Designer) I assure you, if you assign your project to me, you surely gonna work with me in future. Note: I also provide the solution to Mechanical Engineering Projects.
$250 USD 在3天之内
4.8 (176条评论)
6.7
6.7
用户头像
please visit my profile
$270 USD 在5天之内
4.9 (76条评论)
6.2
6.2
用户头像
hi i am an electrical engineer. i have vast experience related to circuit design and cpu design. i have done many digital system projects. i have experience regarding designing cpu in logisim. let me know if you are interested. we can discuss further on chat.
$500 USD 在5天之内
4.8 (22条评论)
5.3
5.3
用户头像
Hi, I am an electrical engineer and expert in computer architecture. I have designed many circuit related to this one like multiplier using shift registers, ALU etc. I assure you I will complete the project according to your requirements. Thanks
$200 USD 在5天之内
0.0 (0条评论)
0.0
0.0

关于客户

UNITED STATES的国旗
Sitka, United States
5.0
1
付款方式已验证
会员自11月 1, 2016起

客户认证

谢谢!我们已通过电子邮件向您发送了索取免费积分的链接。
发送电子邮件时出现问题。请再试一次。
已注册用户 发布工作总数
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
加载预览
授予地理位置权限。
您的登录会话已过期而且您已经登出,请再次登录。