fpga
文章平均质量分 51
FPGA混子
这个作者很懒,什么都没留下…
展开
-
使用8线-3线优先编码器Ⅰ实现16线-4线优先编码器
当L[3]为1时,他表示高8位有数据为1,此时输出值记为Y1,此时不用管低8位,则输出L的构成为{1,Y1},当L[3]为0时,此时不管高8为,输出记为Y2,此时L构成为{0,Y2}.首先对于A[15:8],在他全为0时,开始进行后面的判断,即:1、他的优先级高于低8位;2、他如果不为0,只需要判断高8位即可,为0,判断低8位。因为要使用8位去处理16位的工作,因此要先将16位分为两个8位的,分别为A[15:8]与A[7:0]。即L[3]表示他是低8位还是高8位,L[2:0]表示他的数值。原创 2024-07-01 05:26:23 · 978 阅读 · 0 评论 -
优先编码器Ⅰ
注意:如果他不是连续的,例如Y[1],他是在I[7]、I[6]、I[3]、I[2]为1时,Y[1]为1,但是不能只判断这几位:例如:47转化为二进制为00101111,如果只判断上述几位,则为1,但是按照功能表来说应该为0.但是对于I[0]来说,却没有上述的问题。2、对于EO,在EI等于0时等于0,在EI不等于0时,于GS值相反。1、首先对于GS,在EI等于0或EI不等于0且I等于0时,他为0。3、Y[2]在I[7:4]任意一位为1时,他为1,否则为0.4、Y[1]与Y[0]与Y[2]类似。原创 2024-06-30 00:56:28 · 591 阅读 · 0 评论 -
用优先编码器实现键盘编码电路
10个按键分别对应十进制数0-9,按键9的优先级别最高;按键悬空时,按键输出高电平,按键按下时,按键输出低电平;那么只要有一个被摁下,结果就是0,但是使能需要用1去表示被摁下,所以要对使能进行取反。摁键悬空时,为1,摁下时为0.且使用8421BCD码,为高电平有效。请使用优先编码器实现键盘编码电路,可添加并例化题目中已给出的优先编码器代码。要求:键盘编码电路要有工作状态标志,以区分没有按键按下和按键0按下两种情况。首先10个摁键0-9,9的优先级最高,所以取高9位进行判断。因此,需要对结果进行取反。原创 2024-06-25 07:34:13 · 328 阅读 · 0 评论 -
优先编码器电路①
不过由于在判断时只判断部分位,所以要区分case、casex、casez的区别。只需要采用case语句将每种情况进行描述,根据输入选择不同的输出。①请用System Verilog实现此优先编码器。case:进行全等匹配,只有全部相等才进行下一步。casez:不处理高阻值的位,视为正常z状态。casex:高阻值与不定值都忽略,不关心。下表是某优先编码器的真值表。原创 2024-06-23 07:47:43 · 330 阅读 · 0 评论 -
4bit超前进位加法器电路
和:𝑆𝑖=𝑃𝑖⊕𝐶𝑖−1Si=Pi⊕Ci−1,进位:𝐶𝑖=𝐺𝑖+𝑃𝑖𝐶𝑖−1Ci=Gi+PiCi−1。按照逻辑表达式进行编写即可。原创 2024-06-22 21:49:58 · 315 阅读 · 0 评论 -
4位数值比较器电路
本题目为简单的判断大小问题,A>B,Y2为1,其余为0;A=B,Y1为1,其余为0;请用system Verilog语言采用门级描述方式,实现此4位数值比较器。某4位数值比较器的功能表如下。原创 2024-06-21 08:07:04 · 323 阅读 · 0 评论 -
使用函数实现数据大小端转换
在数字芯片设计中,经常把实现特定功能的模块编写成函数,在需要的时候再在主模块中调用,以提高代码的复用性和提高设计的层次,分别后续的修改。请用函数实现一个4bit数据大小端转换的功能。实现对两个不同的输入分别转换并输出。这个模块实现两个数据的大小端转换,使用generate函数刚好解决这个问题。使用Verilog HDL实现以上功能并编写testbench验证。rst_n:异步复位信号,低电平有效。a,b:4bit位宽的无符号数。c,d:8bit位宽的无符号数。原创 2024-06-21 07:44:41 · 343 阅读 · 0 评论 -
使用子模块实现三输入数的大小比较
使用子模块进行比较大小,子模块为两个数比较大小,因此需要先写子模块为两个数比较大小,输出较小值,将较小值与第三个数进行比较输出最小值,因此需要进行两次两个数比较大小。在数字芯片设计中,通常把完成特定功能且相对独立的代码编写成子模块,在需要的时候再在主模块中例化使用,以提高代码的可复用性和设计的层次性,方便后续的修改。在第一次比较时,因为使用时序逻辑,再使用第一次后,会有一拍的延迟,因此需要将第三个数打一拍,否则,你就是用上一刻的两个值与这一刻的第三个值进行比较。a,b,c:8bit位宽的无符号数。原创 2024-06-21 07:04:04 · 203 阅读 · 0 评论 -
使用generate…for语句简化代码
在某个module中包含了很多相似的连续赋值语句,请使用generata…for语句编写代码,替代该语句,要求不能改变原module的功能。本题目就是简单的使用generate...for语句将多个句子进行整合。data_out:8bit位宽的无符号数。data_in:8bit位宽的无符号数。原创 2024-06-20 20:30:58 · 289 阅读 · 0 评论 -
求两个数的差值
根据输入信号a,b的大小关系,求解两个数的差值:输入信号a,b为8bit位宽的无符号数。如果a>b,则输出a-b,如果a≤b,则输出b-a。对a与b进行比较,然后判断输出哪一个。rst_n:复位信号,低电平有效。a,b:8bit位宽的无符号数。c:8bit位宽的无符号数。原创 2024-06-20 08:24:22 · 212 阅读 · 0 评论 -
多功能数据处理器
根据指示信号select的不同,对输入信号a,b实现不同的运算。输入信号a,b为8bit有符号数,当select信号为0,输出a;当select信号为1,输出b;当select信号为2,输出a+b;当select信号为3,输出a-b.根据不同的select选择不同的处理结果。需要注意加减是有符号的,需要注意符号。因此将运算的数据全部定义为signed即可避免这个问题。select:2bit位宽的无符号数。rst_n:复位信号,低电平有效。a,b:8bit位宽的有符号数。c:9bit位宽的有符号数。原创 2024-06-20 07:57:58 · 245 阅读 · 0 评论 -
位拆分与运算
现在输入了一个压缩的16位数据,其实际上包含了四个数据[3:0][7:4][11:8][15:12],根据不同的选择进行不同位相加即可;但是只有选择为0时才更新输入值,否则不更新。现在请按照sel选择输出四个数据的相加结果,并输出valid_out信号(在不输出时候拉低)输出信号 validout out。0: 不输出且只有此时的输入有效。3:输出[3:0]+[15:12]2:输出[3:0]+[11:8]1:输出[3:0]+[7:4]原创 2024-06-19 07:15:40 · 304 阅读 · 0 评论 -
移位运算与乘法
然后再看波形示意图,143到7这块,说明他已经有新的数据输入了,但是他还是之前的数据继续计算,直到乘以8结束。8位数,乘以1,3,7,8;是对每一个输入的8位数都要进行的,所以是一个死循环,对输入的数据分别乘以1,3,7,8然后输出;已知d为一个8位数,请在每个时钟周期分别输出该数乘1/3/7/8,并输出一个信号通知此时刻输入的d有效(d给出的信号的上升沿表示写入有效)在每一个状态乘以1,3,7,8然后输出,然后回到初始状态。对于使能信号,他只在乘以1的时候进行输出为1,所以只在状态机第一态将他拉高即可。原创 2024-06-19 06:54:08 · 218 阅读 · 0 评论 -
FPGA奇偶校验
因此此题目为对32位数据进行按位异或输出为奇校验,因为异或为不同为1,即奇数个1为1;所以异或结果为奇校验,取反则为偶校验;奇偶结果根据sel值进行选择。但是对32位进行相加,需要使用for函数,浪费时间,因此只需要满足相加一个数据按位相加即可,即按位异或。现在需要对输入的32位数据进行奇偶校验,根据sel输出校验结果(1输出奇校验,0输出偶校验)对32位数据进行奇偶校验,则,32位相加为1为奇,反之为偶;输出信号 check。输入信号 bus sel。原创 2024-06-18 07:47:35 · 254 阅读 · 0 评论 -
异步复位的串联T触发器
根据T触发器的原理,相当于将此刻输入值与上一个时钟的输入值进行异或。同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。输入为1时,输出进行反转,输入为0时,输出保持。原创 2024-06-08 05:01:39 · 322 阅读 · 0 评论 -
四选一多路器
根据波形图:已知,d1=0;且sel=0,mux_out=2;制作一个四选一的多路选择器,要求输出定义上为线网类型。输入信号 d1,d2,d3,d4 sel。因为他输出与输出对齐的,所以为组合逻辑;输出信号 mux_out。原创 2024-06-02 22:13:48 · 387 阅读 · 0 评论 -
1、安装FPGA软件modelsim-win-10.4-se
安装FPGA软件modelsim-win-10.4-se原创 2022-07-12 23:20:36 · 4186 阅读 · 0 评论 -
2、Modelsim使用教程
modelsim编程使用教程,步解,超详细原创 2022-07-13 23:43:48 · 6448 阅读 · 0 评论 -
3、Modelsim编辑与运行
3、Modelsim编辑与运行原创 2022-07-18 23:49:42 · 2971 阅读 · 1 评论 -
搭配modelsim使用的程序编译软件vscode
VScode使用教程原创 2023-12-24 20:21:46 · 562 阅读 · 1 评论