简单的CPU设计,采用QuartusⅡ软件实现。压缩包中有每个元件的设计,也有最终的CPU(压缩包中名为middle)
2021-12-30 13:44:48 1.7MB CPU,指令集, cpu设计quart cpu设计 quar
1
vhdl设计FPGA读写DS18B20温度传感器quartus工程源码+文档说明 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity ds18B20 is port( clk : in std_logic;---50MHz rst_n: in std_logic; --复位信号输入 one_wire : inout std_logic; --DS18B20数据线 ---------------- dataout : out std_logic_vector(7 downto 0); --数码管数据输出 en : out std_logic_vector(3 downto 0)); --数码管位选信号 end ds18B20; architecture Behavioral of ds18B20 is signal dataout_buf:std_logic_vector(3 downto 0); signal count:std_logic_vector(17 downto 0); --分频计数器 signal cnt_scan:std_logic_vector(17 downto 0); --数码管的扫描显示计数器 signal clk_1us:std_logic;-- 1MHz 时钟 signal cnt_1us:integer range 0 to 750002;-- 1us延时计数子 signal cnt_1us_clear:std_logic;-- 请1us延时计数子 TYPE STATE_TYPE is (S00,S0,S1,S2,S3,S4,S5,S6,S7, WRITE0,WRITE1,WRITE00,WRITE01,READ0,READ1,READ2,READ3); --状态机 signal state: STATE_TYPE; --初始状态设置为复位状态 signal one_wire_buf:std_logic;-- One-Wire总线 缓存寄存器 signal temperature_buf:std_logic_vector(15 downto 0);-- 采集到的温度值缓存器(未处理) signal DS18B20_DATA_buf:std_logic_vector(15 downto 0);-- 采集到的温度值缓存器(未处理) signal DS18B20_DATA_buf_temp:std_logic_vector(15 downto 0);-- 采集到的温度值缓存器(未处理) signal step:integer range 0 to 50;--子状态寄存器 0~50 signal bit_valid:integer range 0 to 15;--有效位 signal one_wire_in:std_logic; signal t_buf:std_logic_vector(15 downto 0); signal t_buf_temp:std_logic_vector(15 downto 0); signal cnt:integer range 0 to 50;-- 计数子 -- //++++++++++++++++++++++++++++++++++++++ -- // 分频器50MHz->1MHz 开始 -- //++++++++++++++++++++++++++++++++++++++ begin -- process (clk,rst_n) -- begin -- if rising_edge(clk) then -- if(rst_n='0') then -- cnt <= 0; -- else -- if(cnt = 49)then -- cnt <= 0; -- else -- cnt <= cnt + 1; -- end if; -- end if; -- end if; -- end Process;
16位乘法器芯片verilog设计实验Quartus9.1工程源码+设计说明文件,可以做为的学习实验设计参考。 module mux16( clk,rst_n, start,ain,bin,yout,done ); input clk; //芯片的时钟信号。 input rst_n; //低电平复位、清零信号。定义为0表示芯片复位;定义为1表示复位信号无效。 input start; //芯片使能信号。定义为0表示信号无效;定义为1表示芯片读入输入管脚得乘数和被乘数,并将乘积复位清零。 input[15:0] ain; //输入a(被乘数),其数据位宽为16bit. input[15:0] bin; //输入b(乘数),其数据位宽为16bit. output[31:0] yout; //乘积输出,其数据位宽为32bit. output done; //芯片输出标志信号。定义为1表示乘法运算完成. reg[15:0] areg; //乘数a寄存器 reg[15:0] breg; //乘数b寄存器 reg[31:0] yout_r; //乘积寄存器 reg done_r; reg[4:0] i; //移位次数寄存器 always@(posedge clk) begin if(!rst_n) begin areg <= 16'h0000; breg <= 16'h0000; done_r <= 1'b0; yout_r <= 32'h00000000; i <= 5'd0; end else if(start) //启动运算 begin if(i < 5'd21) i <= i+1'b1; if(i == 5'd0) begin //锁存乘数、被乘数 areg <= ain; breg 5'd0 && i < 5'd16) begin if(areg[i-1]) yout_r = {1'b0,yout[30:15]+breg,yout_r[14:1]}; //累加并移位 else yout_r >1; //移位不累加 end else if(i == 5'd16 && areg[15]) yout_r[31:16] <= yout_r[31:16]+breg; //累加不移位 else if(i == 5'd18) done_r <= 1'b1; //乘完成标志位置位 else if(i == 5'd20) done_r <= 1'b0; //乘完成标志位清除 end else i <= 5'd0; end assign done = done_r; assign yout = yout_r;
FPGA读写SD卡读取BMP图片通过LCD显示例程实验 Verilog逻辑源码Quartus工程文件+文档说明,FPGA型号Cyclone4E系列中的EP4CE6F17C8,Quartus版本17.1。 1 实验简介 在前面的实验中我们练习了 SD 卡读写,VGA 视频显示等例程,本实验将 SD 卡里的 BMP 图 片读出,写入到外部存储器,再通过 VGA、LCD 等显示。 本实验如果通过液晶屏显示,需要有液晶屏模块。 2 实验原理 在前面的实验中我们在 VGA、LCD 上显示的是彩条,是 FPGA 内部产生的数据,本实验将彩 条替换为 SD 内的 BMP 图片数据,但是 SD 卡读取速度远远不能满足显示速度的要求,只能先写 入外部高速 RAM,再读出后给视频时序模块显示 module top( input clk, input rst_n, input key1, output [5:0] seg_sel, output [7:0] seg_data, output vga_out_hs, //vga horizontal synchronization output vga_out_vs, //vga vertical synchronization output[4:0] vga_out_r, //vga red output[5:0] vga_out_g, //vga green output[4:0] vga_out_b, //vga blue output sd_ncs, //SD card chip select (SPI mode) output sd_dclk, //SD card clock output sd_mosi, //SD card controller data output input sd_miso, //SD card controller data input output sdram_clk, //sdram clock output sdram_cke, //sdram clock enable output sdram_cs_n, //sdram chip select output sdram_we_n, //sdram write enable output sdram_cas_n, //sdram column address strobe output sdram_ras_n, //sdram row address strobe output[1:0] sdram_dqm, //sdram data enable output[1:0] sdram_ba, //sdram bank address output[12:0] sdram_addr, //sdram address inout[15:0] sdram_dq //sdram data ); parameter MEM_DATA_BITS = 16 ; //external memory user interface data width parameter ADDR_BITS = 24
springboot整合quartz
2021-02-21 14:07:09 79KB springboot整合quar