
计算机硬件理论与设计
文章平均质量分 61
数字逻辑、计算机组成原理、
在键盘上弹钢琴的菜菜
这个作者很懒,什么都没留下…
展开
-
Bin2Mem工具,通过二进制文件生成coe文件(Pthon)
GItHub上的Bin2Mem竟然不能在Windows x64下使用,只好自己写一个了。原理大致就是按字符读取,然后将一个字符(8位)转换为2位16进制数(4位2进制数)name = "calcu"filepath = name+".bin"targetpath = name+".data"target = open(targetpath, "w")binfile = open(filepath, 'rb')i = 0ch = binfile.read(1)target.writ原创 2022-04-06 22:40:06 · 1683 阅读 · 0 评论 -
vivado2020 xdc约束文件未配置所有端口报错解决办法
问题描述: 在源文件中使用了32位变量,但他在板子上对应的只有16位端口,有16个端口没有配置,vivado报错。报错信息如下:[DRC UCIO-1] Unconstrained Logical Port: 16 out of 22 logical ports have no user assigned specific location constraint (LOC). This may cause I/O contention or incompatibility with t...原创 2022-04-05 20:44:51 · 2405 阅读 · 0 评论 -
计组课设:单周期31条MIPS指令CPU设计(含代码)
多周期54条CPU:https://blog.youkuaiyun.com/a_vegetable/article/details/118419345单周期CPU源码:while-TuRe/Single-cycle-CPU31 (github.com)单周期CPU指的是一个周期就能得出结果的CPU。如何做到一个周期得出结果呢?答案是巧妙地利用时钟上升沿和下降沿,将同步控制和异步控制相结合。异步控制PC~instruction~RsRt~reg....原创 2021-07-10 17:34:41 · 8595 阅读 · 0 评论 -
计组课设:多周期54条MIPS指令CPU设计(含代码)
为什么要划分多周期?为不同指令按需分配周期,节省时间。 以【j】指令和【lw】指令为例:j指令,只需要完成【读取指令、为PC赋值实现跳转】,而lw指令则需要【读取指令、获得地址、通过地址读取通用寄存器内容、通过寄存器内容读取data memory、将读取结果写入通用寄存器】。如果使用单周期实现,在决定周期长度时就不得不采用lw指令能完成的时长,此时执行j指令就会有相当长时间空闲。但是采用多周期的话,为j指令分配2个周期,lw分配5个周期,时钟频率就可以大幅增加,提高效率...原创 2021-07-10 11:01:25 · 5329 阅读 · 1 评论 -
有符号数加法溢出判断的三种方法
溢出判断逻辑一溢出Fa,Fb—加数,被加数符号位Fs—运算和符号位溢出判断逻辑二溢出=Cf⊕C=1Cf—符号位运算产生的进位C —最高有效位产生的进位溢出判断逻辑三单符号位的信息量只能表示两种可能,数为 正或为负,如产生溢出,就会使符号位含义产 生混乱。将符号位扩充到二位,采用变形补码 (或称模4补码),就能通过符号位直接判断 是否溢出。变形补码为:{符号位,原数}变形补码用00表示正,11表示负。 计算结果符号位为:00—结果为正,无溢出;11—结果为负,.原创 2021-04-19 08:38:49 · 12442 阅读 · 5 评论 -
Verilog 非阻塞赋值操作延时 加法延时 移位延时
问题:为什么得到结果滞后了几个时钟周期Verilog语言是硬件描述语言,电流通过电路会产生延时。我们通过clk时钟将延时控制在可控的范围内。那么,Verilog延时有什么规律呢?在此我先给出结论:在always模块中,如果某步操作需要用到之前操作的结果,那么在这一步会产生一个时钟周期的延时。规避方法是,将某些步骤改成assign,或者用阻塞赋值下面以两位有符号数乘法举例,说明延时产生的机理以及规避措施这是无延时乘法器`timescale 1ns / 1psmodule MULT2原创 2021-04-15 17:00:36 · 2984 阅读 · 0 评论 -
以verilog语言 inout类型赋值 为例深入理解wire线网数据类型
因为inout类型既是input有事output类型,所以必须同时遵守输入输出的描述规定。那么,在向inout类型传入数据数据流描述方式:连续使用赋值语句(assign)对电路的逻辑功能进行描述。连续赋值语句用于对wire型变量进行赋值,它由关键字assign开始,后面跟着由操作数和运算符组成的逻辑表达式。...原创 2020-11-28 20:13:17 · 10669 阅读 · 1 评论 -
Logisim基本使用 蓝灰红线出现原因
两个过程:布线、仿真 对两个过程分别讨论每条线的起始都要链接元件。输入用Pin引脚,输出连Probe探针在布线时使用编辑工具,仿真时使用戳工具(Poke toll)切换到仿真模式:菜单栏Simulate-->Simulate Enable勾选,编辑工具改成戳工具。布线时,蓝色表示该点值未知,灰色表示未连接到任何东西仿真时,不应出现蓝灰,戳工具点Pin使其值改变。值为1的线浅绿,0为深绿...原创 2020-10-04 17:49:24 · 33612 阅读 · 7 评论 -
数字逻辑 Vivado软件结合Modolsim仿真编写varilog语言过程
几个文件:设计文件:design sources name.v文件约束文件:constraints name.xdc文件仿真文件、测试文件:simulation sources name_tb.v文件 为设计文件输入模拟信号几个过程:仿真(Simulation):检查逻辑功能是否正确综合(Synthesis):是将RTL级电路( 由硬件语言描述的电路)转换到门级电路的过程。完成一个工程步骤:1. 新建工程--》将出现4个添加文件界面,在第一个界面新建...原创 2020-10-04 18:20:09 · 770 阅读 · 0 评论