[Mon Anniversaire de Création] Les gens d'IC sont toujours sur la route, non-stop...

chance

La plateforme m'a rappelé aujourd'hui que je crée depuis 3 ans. Si je ne me rappelle pas, je ne ressens rien. Trois ans, ce n'est pas long, et ce n'est pas court. À ce jour, j'ai publié 213 articles et téléchargé 117 ressources sur CSDN. Les domaines concernés incluent : le traitement numérique du signal, la conception de FPGA, la vérification de la conception de circuits intégrés, la simulation d'algorithmes de traitement du signal radar, etc.

Dans ce résumé ( 2022 est en route~ ) j'ai aussi mentionné l'intention originelle de la création. Je veux principalement enregistrer mon propre processus d'apprentissage. Il y a un dicton qui est très bon : une bonne mémoire n'est pas aussi bonne qu'un mauvais stylo. Aujourd'hui, avec une technologie aussi avancée, je choisis de poursuivre mes habitudes d'apprentissage sous forme de blogs, il est toujours bon d'en enregistrer davantage. Lors de l'enregistrement et de la synthèse, c'est aussi un bon moment pour réfléchir sur vous-même et améliorer votre technologie. De plus, le contenu du blog que j'ai enregistré peut également inspirer et aider les étudiants qui en sont également aux premiers stades de l'apprentissage. Et les échanges techniques peuvent être réalisés par le biais de messages privés ou de commentaires. Il est inacceptable pour moi de travailler à huis clos, donc cette méthode peut vraiment offrir une bonne opportunité d'apprentissage et de communication.

Donc, ici, je veux aussi dire, tous les techniciens IC / IT, ceux qui ont l'habitude de bloguer et d'enregistrer devraient continuer à le maintenir, car les enregistrements et l'accumulation de la technologie petit à petit s'accumuleront un jour beaucoup et deviendront un problème technique expert dans un certain domaine / grosse vache. Pour ceux qui n'ont pas encore blogué, faisons le premier pas avec audace. N'ayez pas peur que la qualité des articles que vous postez ne suffise pas. Ce qu'il faut savoir, c'est que le but premier de poster un blog n'est pas pour d'autres à lire, mais pour résumer la technologie pour vous regarder. Après le lavage du temps, nous pouvons aussi nous transformer lentement d'un novice technique à un maître technique. allez!


récompense

Bien sûr, il y a des gains : le nombre actuel de fans recensés par la plateforme est de 8 379, le nombre total de visites dépasse les 360 000 et le nombre de collectes d'articles atteint 3 285. Cela me donnera également beaucoup de motivation et me motivera à continuer à créer de meilleurs blogs et à les partager avec tout le monde.

De plus, j'ai également reçu beaucoup de technologies de communication et de commentaires qui m'ont convenu:

En plus de cela, d'autres collègues ont rejoint le groupe d'échange technique que j'ai créé via le lien à la fin de l'article :


quotidien

A ce stade, je suis encore étudiant diplômé (recherche secondaire). Dans mon temps libre, je prendrai encore l'initiative de créer quelques articles techniques. Surtout face au problème de la recherche d'emploi cette année, je partagerai peut-être quelques expériences lors d'entretiens test écrits au fur et à mesure que j'avance dans la recherche d'emploi.

Je crois qu'après avoir obtenu mon diplôme dans le futur, je continuerai à créer sur mon lieu de travail.


Réalisation

Je suis une personne qui écrit souvent du code. Si je veux dire quel est le meilleur code que j'ai jamais écrit, je ne pourrai peut-être pas y penser pendant un moment. Mais le code de l'arbitre du scrutin écrit en Verilog m'a récemment impressionné. Voici le code implémenté :

Lien d'origine, détails : MediaTek 2024 Pratique de vérification de la conception des circuits intégrés Analyse des tests écrits

// ===================================================================================
// 功能:
// 		-1- Round Robin 仲裁器
//      -2- 仲裁请求个数N可变
// 		-3- 加入lock机制(类似握手)
// 		-4- 复位时的最高优先级定为 0 ,次优先级:1 -> 2 …… -> N-2 -> N-1
// By:Xu Y. B.
// ===================================================================================
 
`timescale 1ns / 1ps
module Round_Robin_Arbiter #(
parameter 		N 		= 		4 //仲裁请求个数
)(
input 							clock,
input 							reset_b,
input 			[N-1:0]			request,
input 			[N-1:0]			lock,
output reg 		[N-1:0] 		grant//one-hot
    );
// 模块内部参数
 
localparam LP_ST_IDLE      		 = 3'b001;// 复位进入空闲状态,接收并处理系统的初次仲裁请求
localparam LP_ST_WAIT_REQ_GRANT  = 3'b010;// 等待后续仲裁请求到来,并进行仲裁
localparam LP_ST_WAIT_LOCK 		 = 3'b100;// 等待LOCK拉低
 
// 模块内部信号
reg [2:0]   R_STATUS;
reg [N-1:0] R_MASK;
wire [N-1:0] W_REQ_MASKED;
 
assign W_REQ_MASKED = request & R_MASK;
 
always @ (posedge clock)
begin
	if(~reset_b)
	begin
		R_STATUS <= LP_ST_IDLE;
		R_MASK <= 0;
		grant <= 0;
	end
	else
	begin
		case(R_STATUS)
		LP_ST_IDLE:
		begin
			if(|request) //首次仲裁请求
			begin
				R_STATUS <= LP_ST_WAIT_LOCK;
				grant <= request & ((~request)+1);
				R_MASK <= ~((request & ((~request)+1))-1 | (request & ((~request)+1)));	
			end
			else
			begin
				R_STATUS <= LP_ST_IDLE;
			end
		end     
		LP_ST_WAIT_REQ_GRANT://处理后续的仲裁请求
		begin
			if(|request)
			begin
				R_STATUS <= LP_ST_WAIT_LOCK;
				if(|(request & R_MASK))//不全为零
				begin
					grant <= W_REQ_MASKED & ((~W_REQ_MASKED)+1);
					R_MASK <= ~((W_REQ_MASKED & ((~W_REQ_MASKED)+1))-1 | (W_REQ_MASKED & ((~W_REQ_MASKED)+1)));
				end
				else
				begin
					grant <= request & ((~request)+1);
					R_MASK <= ~((request & ((~request)+1))-1 | (request & ((~request)+1)));
				end
			end
			else
			begin
				R_STATUS <= LP_ST_WAIT_REQ_GRANT;			
				grant <= 0;			
				R_MASK <= 0;			
			end
		end   
		LP_ST_WAIT_LOCK:
		begin
			if(|(lock & grant)) //未释放仲裁器		
			begin		
				R_STATUS <= LP_ST_WAIT_LOCK;		
			end		
			else if(|request) //释放的同时存在仲裁请求		 
			begin		
				R_STATUS <= LP_ST_WAIT_LOCK;
				if(|(request & R_MASK))//不全为零
				begin
					grant <= W_REQ_MASKED & ((~W_REQ_MASKED)+1);
					R_MASK <= ~((W_REQ_MASKED & ((~W_REQ_MASKED)+1))-1 | (W_REQ_MASKED & ((~W_REQ_MASKED)+1)));
				end
				else
				begin
					grant <= request & ((~request)+1);
					R_MASK <= ~((request & ((~request)+1))-1 | (request & ((~request)+1)));
				end		
			end
			else
			begin
				R_STATUS <= LP_ST_WAIT_REQ_GRANT;
				grant <= 0;			
				R_MASK <= 0;
			end		
		end		
		default:		
		begin
			R_STATUS <= LP_ST_IDLE;
			R_MASK <= 0;
			grant <= 0;
		end
		endcase
	end
end
endmodule

hâte de

Cette année, c'est aussi le moment de chercher un emploi. Pour l'avenir, j'ai deux projets professionnels :

1. S'engager dans une carrière dans le sens de la vérification de conception FPGA

2. S'engager dans l'occupation de la conception et de la vérification des puces ASIC

A force de possibilité et de volonté, je suis plus enclin à la seconde : concevoir et vérifier l'ASIC. Des efforts pour apporter une petite contribution à la cause d'IC.

Je souhaite également à moi-même et à mes pairs de trouver l'emploi qu'ils souhaitent lors du recrutement d'automne de cette année. Allez, allez, allez, allez !

Je suppose que tu aimes

Origine blog.csdn.net/qq_43045275/article/details/130677670
conseillé
Classement