
FPGA
fpga学习笔记
Rraion
Kafen Wong
展开
-
数字电路(四)多级输出
多级电路什么是多级电路:级数大于一个级的电路如何读电路的级数:由外向里,层层数多级电路的优缺点:优点是可以减少门和输入的数量,进而减少成本,缺点是增加电路的延时如何得到多级电路:因式分解或者展开电路之间的比较比较门的数目比较级数比较输入的个数与非门和或非门概念:与非就是先与后非,或非就是先或后非用途:任何组合逻辑电路都可以只用与非门或者或非门表示...原创 2021-11-18 22:50:43 · 3619 阅读 · 0 评论 -
Verilog编程总结(一)
主程序assign赋值主程序里面只需要写 input,ouput和assign赋值assign格式: assign y=~a;多位赋值的时候也使用这个语句如果变量是多位使用input[7:0] A;这样的格式在反码输出逻辑里面使用了wire[6:0] b;来定义中间变量always赋值reg y; 输出变量需要定义为regalways语句的作用:循环执行语句always语句的格式:always@(a or b or sel) //输入列表需要写全begin//语句end原创 2021-11-17 14:17:58 · 597 阅读 · 0 评论 -
(三)补码转换和译码器
补码转换`timescale 1ns/10psmodule device(a,a_comp);input [7:0]a; //括号要写在前面output[7:0]a_comp;wire[6:0] b;//按位取反的幅度位wire[7:0] y;//负数的补码assign b=~a[6:0];assign y[6:0]=b+1;//按位取反再加1assign y[7]=a[7];//符号位不变assign a_comp=a[7]?y:a;//二选一endmodulemodule原创 2021-11-17 13:46:36 · 420 阅读 · 0 评论 -
(二)多路选择器
使用always(testbench不会变)modeule fn_sw_4(a,b,sel,y);input a,b;input [1:0]sel;output y ;reg y; //always 语句块里面赋值的变量需要是reg型always@(a or b or sel)//三个为敏感变量,组合逻辑输入begin if(sel==1) begin y<=a^b; end else begin y<=a&b; endend endmodule原创 2021-11-16 17:32:56 · 821 阅读 · 0 评论 -
(一)基本门编写和仿真
8位非门module inv(A,Y);input[7:0] A;output[7:0] Y;assign y=~A;endmodulemodule inv_tb;reg aa; //输入的变量都定义成regwire yy;//输出的变量定义为wireinv inv(.A(aa),.Y(yy));initial begin aa<=0; //reg变量赋值的时候要使用带箭头的等号 #10 aa<=0; #10 aa<=1; .原创 2021-11-16 16:55:34 · 299 阅读 · 0 评论 -
(零)基础入门
新建工程文件以及文件编译新建工程新建文件(可以使用原理图或者代码文件,注意文件名和模块名要一致)编译文件分配引脚重新编译下载程序到开发板testbench的编写改变工作目录建一个work library编译选中work里面的testbench仿真如图restart 重启run-all观察波形非门测试代码和testbench`timescale 1ns/10psmodule inv(A,Y); input A; output Y; assign Y=~A;原创 2021-11-16 16:11:29 · 93 阅读 · 0 评论